{
  "abi": [],
  "bytecode": {
    "object": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122030bc009e46805a15e5865df1b53618409a3eca5b0655cd2daf934767cbfe23f764736f6c63430008160033",
    "sourceMap": "306:8361:38:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;306:8361:38;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122030bc009e46805a15e5865df1b53618409a3eca5b0655cd2daf934767cbfe23f764736f6c63430008160033",
    "sourceMap": "306:8361:38:-:0;;;;;;;;",
    "linkReferences": {}
  },
  "methodIdentifiers": {},
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"MAX_SQRT_RATIO\":{\"details\":\"The maximum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MAX_TICK)\"},\"MAX_TICK\":{\"details\":\"The maximum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**128\"},\"MIN_SQRT_RATIO\":{\"details\":\"The minimum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MIN_TICK)\"},\"MIN_TICK\":{\"details\":\"The minimum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**-128\"}},\"title\":\"Math library for computing sqrt prices from ticks and vice versa\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Computes sqrt price for ticks of size 1.0001, i.e. sqrt(1.0001^tick) as fixed point Q64.96 numbers. Supports prices between 2**-128 and 2**128\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":\"TickMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":999999999},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib_uniswap/v3-core/\",\":@uniswap/v3-periphery/=lib_uniswap/v3-periphery/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":v3-core/=lib_uniswap/v3-core/\",\":v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/\"]},\"sources\":{\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.22+commit.4fc1097e"
    },
    "language": "Solidity",
    "output": {
      "abi": [],
      "devdoc": {
        "kind": "dev",
        "methods": {},
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {},
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
        "@uniswap/v3-core/=lib_uniswap/v3-core/",
        "@uniswap/v3-periphery/=lib_uniswap/v3-periphery/",
        "ds-test/=lib/forge-std/lib/ds-test/src/",
        "forge-std/=lib/forge-std/src/",
        "openzeppelin-contracts/=lib/openzeppelin-contracts/",
        "v3-core/=lib_uniswap/v3-core/",
        "v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/"
      ],
      "optimizer": {
        "runs": 999999999,
        "details": {
          "peephole": true,
          "inliner": true,
          "jumpdestRemover": true,
          "orderLiterals": true,
          "deduplicate": true,
          "cse": true,
          "constantOptimizer": true,
          "yul": true,
          "yulDetails": {
            "stackAllocation": true,
            "optimizerSteps": "dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu"
          }
        }
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "lib_uniswap/v3-core/contracts/libraries/TickMath.sol": "TickMath"
      },
      "libraries": {}
    },
    "sources": {
      "lib_uniswap/v3-core/contracts/libraries/TickMath.sol": {
        "keccak256": "0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d",
        "urls": [
          "bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3",
          "dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"
        ],
        "license": "GPL-2.0-or-later"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "lib_uniswap/v3-core/contracts/libraries/TickMath.sol",
    "id": 45060,
    "exportedSymbols": {
      "TickMath": [
        45059
      ]
    },
    "nodeType": "SourceUnit",
    "src": "45:8623:38",
    "nodes": [
      {
        "id": 44521,
        "nodeType": "PragmaDirective",
        "src": "45:24:38",
        "nodes": [],
        "literals": [
          "solidity",
          ">=",
          "0.5",
          ".0"
        ]
      },
      {
        "id": 45059,
        "nodeType": "ContractDefinition",
        "src": "306:8361:38",
        "nodes": [
          {
            "id": 44527,
            "nodeType": "VariableDeclaration",
            "src": "442:42:38",
            "nodes": [],
            "constant": true,
            "documentation": {
              "id": 44523,
              "nodeType": "StructuredDocumentation",
              "src": "329:108:38",
              "text": "@dev The minimum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**-128"
            },
            "mutability": "constant",
            "name": "MIN_TICK",
            "nameLocation": "466:8:38",
            "scope": 45059,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int24",
              "typeString": "int24"
            },
            "typeName": {
              "id": 44524,
              "name": "int24",
              "nodeType": "ElementaryTypeName",
              "src": "442:5:38",
              "typeDescriptions": {
                "typeIdentifier": "t_int24",
                "typeString": "int24"
              }
            },
            "value": {
              "id": 44526,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "-",
              "prefix": true,
              "src": "477:7:38",
              "subExpression": {
                "hexValue": "383837323732",
                "id": 44525,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "478:6:38",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_887272_by_1",
                  "typeString": "int_const 887272"
                },
                "value": "887272"
              },
              "typeDescriptions": {
                "typeIdentifier": "t_rational_minus_887272_by_1",
                "typeString": "int_const -887272"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 44532,
            "nodeType": "VariableDeclaration",
            "src": "602:44:38",
            "nodes": [],
            "constant": true,
            "documentation": {
              "id": 44528,
              "nodeType": "StructuredDocumentation",
              "src": "490:107:38",
              "text": "@dev The maximum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**128"
            },
            "mutability": "constant",
            "name": "MAX_TICK",
            "nameLocation": "626:8:38",
            "scope": 45059,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int24",
              "typeString": "int24"
            },
            "typeName": {
              "id": 44529,
              "name": "int24",
              "nodeType": "ElementaryTypeName",
              "src": "602:5:38",
              "typeDescriptions": {
                "typeIdentifier": "t_int24",
                "typeString": "int24"
              }
            },
            "value": {
              "id": 44531,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "-",
              "prefix": true,
              "src": "637:9:38",
              "subExpression": {
                "id": 44530,
                "name": "MIN_TICK",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 44527,
                "src": "638:8:38",
                "typeDescriptions": {
                  "typeIdentifier": "t_int24",
                  "typeString": "int24"
                }
              },
              "typeDescriptions": {
                "typeIdentifier": "t_int24",
                "typeString": "int24"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 44536,
            "nodeType": "VariableDeclaration",
            "src": "774:53:38",
            "nodes": [],
            "constant": true,
            "documentation": {
              "id": 44533,
              "nodeType": "StructuredDocumentation",
              "src": "653:116:38",
              "text": "@dev The minimum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MIN_TICK)"
            },
            "mutability": "constant",
            "name": "MIN_SQRT_RATIO",
            "nameLocation": "800:14:38",
            "scope": 45059,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint160",
              "typeString": "uint160"
            },
            "typeName": {
              "id": 44534,
              "name": "uint160",
              "nodeType": "ElementaryTypeName",
              "src": "774:7:38",
              "typeDescriptions": {
                "typeIdentifier": "t_uint160",
                "typeString": "uint160"
              }
            },
            "value": {
              "hexValue": "34323935313238373339",
              "id": 44535,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "817:10:38",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4295128739_by_1",
                "typeString": "int_const 4295128739"
              },
              "value": "4295128739"
            },
            "visibility": "internal"
          },
          {
            "id": 44540,
            "nodeType": "VariableDeclaration",
            "src": "954:92:38",
            "nodes": [],
            "constant": true,
            "documentation": {
              "id": 44537,
              "nodeType": "StructuredDocumentation",
              "src": "833:116:38",
              "text": "@dev The maximum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MAX_TICK)"
            },
            "mutability": "constant",
            "name": "MAX_SQRT_RATIO",
            "nameLocation": "980:14:38",
            "scope": 45059,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint160",
              "typeString": "uint160"
            },
            "typeName": {
              "id": 44538,
              "name": "uint160",
              "nodeType": "ElementaryTypeName",
              "src": "954:7:38",
              "typeDescriptions": {
                "typeIdentifier": "t_uint160",
                "typeString": "uint160"
              }
            },
            "value": {
              "hexValue": "31343631343436373033343835323130313033323837323733303532323033393838383232333738373233393730333432",
              "id": 44539,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "997:49:38",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1461446703485210103287273052203988822378723970342_by_1",
                "typeString": "int_const 1461...(41 digits omitted)...0342"
              },
              "value": "1461446703485210103287273052203988822378723970342"
            },
            "visibility": "internal"
          },
          {
            "id": 44918,
            "nodeType": "FunctionDefinition",
            "src": "1355:2599:38",
            "nodes": [],
            "body": {
              "id": 44917,
              "nodeType": "Block",
              "src": "1440:2514:38",
              "nodes": [],
              "statements": [
                {
                  "id": 44916,
                  "nodeType": "UncheckedBlock",
                  "src": "1441:2512:38",
                  "statements": [
                    {
                      "assignments": [
                        44549
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 44549,
                          "mutability": "mutable",
                          "name": "absTick",
                          "nameLocation": "1468:7:38",
                          "nodeType": "VariableDeclaration",
                          "scope": 44916,
                          "src": "1460:15:38",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 44548,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1460:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 44569,
                      "initialValue": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          },
                          "id": 44552,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44550,
                            "name": "tick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44543,
                            "src": "1478:4:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int24",
                              "typeString": "int24"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 44551,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1485:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1478:8:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 44565,
                                  "name": "tick",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 44543,
                                  "src": "1529:4:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int24",
                                    "typeString": "int24"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_int24",
                                    "typeString": "int24"
                                  }
                                ],
                                "id": 44564,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1522:6:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_int256_$",
                                  "typeString": "type(int256)"
                                },
                                "typeName": {
                                  "id": 44563,
                                  "name": "int256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "1522:6:38",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 44566,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1522:12:38",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            ],
                            "id": 44562,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1514:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint256_$",
                              "typeString": "type(uint256)"
                            },
                            "typeName": {
                              "id": 44561,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "1514:7:38",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 44567,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1514:21:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44568,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "1478:57:38",
                        "trueExpression": {
                          "arguments": [
                            {
                              "id": 44559,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "-",
                              "prefix": true,
                              "src": "1497:13:38",
                              "subExpression": {
                                "arguments": [
                                  {
                                    "id": 44557,
                                    "name": "tick",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44543,
                                    "src": "1505:4:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    }
                                  ],
                                  "id": 44556,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1498:6:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_int256_$",
                                    "typeString": "type(int256)"
                                  },
                                  "typeName": {
                                    "id": 44555,
                                    "name": "int256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1498:6:38",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 44558,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1498:12:38",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            ],
                            "id": 44554,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1489:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint256_$",
                              "typeString": "type(uint256)"
                            },
                            "typeName": {
                              "id": 44553,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "1489:7:38",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 44560,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1489:22:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "1460:75:38"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44579,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 44571,
                              "name": "absTick",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44549,
                              "src": "1553:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "id": 44576,
                                      "name": "MAX_TICK",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 44532,
                                      "src": "1579:8:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      }
                                    ],
                                    "id": 44575,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "1572:6:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_int256_$",
                                      "typeString": "type(int256)"
                                    },
                                    "typeName": {
                                      "id": 44574,
                                      "name": "int256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "1572:6:38",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 44577,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1572:16:38",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                ],
                                "id": 44573,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1564:7:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 44572,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "1564:7:38",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 44578,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1564:25:38",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1553:36:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "hexValue": "54",
                            "id": 44580,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1591:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_846b7b6deb1cfa110d0ea7ec6162a7123b761785528db70cceed5143183b11fc",
                              "typeString": "literal_string \"T\""
                            },
                            "value": "T"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_846b7b6deb1cfa110d0ea7ec6162a7123b761785528db70cceed5143183b11fc",
                              "typeString": "literal_string \"T\""
                            }
                          ],
                          "id": 44570,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            -18,
                            -18
                          ],
                          "referencedDeclaration": -18,
                          "src": "1545:7:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 44581,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1545:50:38",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 44582,
                      "nodeType": "ExpressionStatement",
                      "src": "1545:50:38"
                    },
                    {
                      "assignments": [
                        44584
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 44584,
                          "mutability": "mutable",
                          "name": "ratio",
                          "nameLocation": "1614:5:38",
                          "nodeType": "VariableDeclaration",
                          "scope": 44916,
                          "src": "1606:13:38",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 44583,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1606:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 44593,
                      "initialValue": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44589,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44587,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 44585,
                              "name": "absTick",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44549,
                              "src": "1622:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&",
                            "rightExpression": {
                              "hexValue": "307831",
                              "id": 44586,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1632:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "0x1"
                            },
                            "src": "1622:13:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 44588,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1639:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1622:18:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030",
                          "id": 44591,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1680:35:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
                            "typeString": "int_const 3402...(31 digits omitted)...1456"
                          },
                          "value": "0x100000000000000000000000000000000"
                        },
                        "id": 44592,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "1622:93:38",
                        "trueExpression": {
                          "hexValue": "30786666666362393333626436666164333761613264313632643161353934303031",
                          "id": 44590,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1643:34:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_340265354078544963557816517032075149313_by_1",
                            "typeString": "int_const 3402...(31 digits omitted)...9313"
                          },
                          "value": "0xfffcb933bd6fad37aa2d162d1a594001"
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint136",
                          "typeString": "uint136"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "1606:109:38"
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44598,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44596,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44594,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "1729:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "307832",
                            "id": 44595,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1739:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_2_by_1",
                              "typeString": "int_const 2"
                            },
                            "value": "0x2"
                          },
                          "src": "1729:13:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44597,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1746:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1729:18:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44608,
                      "nodeType": "IfStatement",
                      "src": "1725:83:38",
                      "trueBody": {
                        "expression": {
                          "id": 44606,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44599,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "1749:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44605,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44602,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44600,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "1758:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30786666663937323732333733643431333235396134363939303538306532313361",
                                    "id": 44601,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1766:34:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_340248342086729790484326174814286782778_by_1",
                                      "typeString": "int_const 3402...(31 digits omitted)...2778"
                                    },
                                    "value": "0xfff97272373d413259a46990580e213a"
                                  },
                                  "src": "1758:42:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44603,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "1757:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44604,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1805:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "1757:51:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1749:59:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44607,
                        "nodeType": "ExpressionStatement",
                        "src": "1749:59:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44613,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44611,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44609,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "1822:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "307834",
                            "id": 44610,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1832:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            },
                            "value": "0x4"
                          },
                          "src": "1822:13:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44612,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1839:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1822:18:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44623,
                      "nodeType": "IfStatement",
                      "src": "1818:83:38",
                      "trueBody": {
                        "expression": {
                          "id": 44621,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44614,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "1842:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44620,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44617,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44615,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "1851:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30786666663265353066356636353639333265663132333537636633633766646363",
                                    "id": 44616,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1859:34:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_340214320654664324051920982716015181260_by_1",
                                      "typeString": "int_const 3402...(31 digits omitted)...1260"
                                    },
                                    "value": "0xfff2e50f5f656932ef12357cf3c7fdcc"
                                  },
                                  "src": "1851:42:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44618,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "1850:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44619,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1898:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "1850:51:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1842:59:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44622,
                        "nodeType": "ExpressionStatement",
                        "src": "1842:59:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44628,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44626,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44624,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "1915:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "307838",
                            "id": 44625,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1925:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "0x8"
                          },
                          "src": "1915:13:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44627,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1932:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1915:18:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44638,
                      "nodeType": "IfStatement",
                      "src": "1911:83:38",
                      "trueBody": {
                        "expression": {
                          "id": 44636,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44629,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "1935:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44635,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44632,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44630,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "1944:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30786666653563616361376531306534653631633336323465616130393431636430",
                                    "id": 44631,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "1952:34:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_340146287995602323631171512101879684304_by_1",
                                      "typeString": "int_const 3401...(31 digits omitted)...4304"
                                    },
                                    "value": "0xffe5caca7e10e4e61c3624eaa0941cd0"
                                  },
                                  "src": "1944:42:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44633,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "1943:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44634,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1991:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "1943:51:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1935:59:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44637,
                        "nodeType": "ExpressionStatement",
                        "src": "1935:59:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44643,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44641,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44639,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "2008:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "30783130",
                            "id": 44640,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2018:4:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "0x10"
                          },
                          "src": "2008:14:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44642,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2026:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2008:19:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44653,
                      "nodeType": "IfStatement",
                      "src": "2004:84:38",
                      "trueBody": {
                        "expression": {
                          "id": 44651,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44644,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "2029:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44650,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44647,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44645,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "2038:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30786666636239383433643630663631353963396462353838333563393236363434",
                                    "id": 44646,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2046:34:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_340010263488231146823593991679159461444_by_1",
                                      "typeString": "int_const 3400...(31 digits omitted)...1444"
                                    },
                                    "value": "0xffcb9843d60f6159c9db58835c926644"
                                  },
                                  "src": "2038:42:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44648,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2037:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44649,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2085:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "2037:51:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2029:59:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44652,
                        "nodeType": "ExpressionStatement",
                        "src": "2029:59:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44658,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44656,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44654,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "2102:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "30783230",
                            "id": 44655,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2112:4:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_32_by_1",
                              "typeString": "int_const 32"
                            },
                            "value": "0x20"
                          },
                          "src": "2102:14:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44657,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2120:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2102:19:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44668,
                      "nodeType": "IfStatement",
                      "src": "2098:84:38",
                      "trueBody": {
                        "expression": {
                          "id": 44666,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44659,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "2123:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44665,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44662,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44660,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "2132:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30786666393733623431666139386330383134373265363839366466623235346330",
                                    "id": 44661,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2140:34:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_339738377640345403697157401104375502016_by_1",
                                      "typeString": "int_const 3397...(31 digits omitted)...2016"
                                    },
                                    "value": "0xff973b41fa98c081472e6896dfb254c0"
                                  },
                                  "src": "2132:42:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44663,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2131:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44664,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2179:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "2131:51:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2123:59:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44667,
                        "nodeType": "ExpressionStatement",
                        "src": "2123:59:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44673,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44671,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44669,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "2196:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "30783430",
                            "id": 44670,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2206:4:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_64_by_1",
                              "typeString": "int_const 64"
                            },
                            "value": "0x40"
                          },
                          "src": "2196:14:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44672,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2214:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2196:19:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44683,
                      "nodeType": "IfStatement",
                      "src": "2192:84:38",
                      "trueBody": {
                        "expression": {
                          "id": 44681,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44674,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "2217:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44680,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44677,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44675,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "2226:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30786666326561313634363663393661333834336563373862333236623532383631",
                                    "id": 44676,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2234:34:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_339195258003219555707034227454543997025_by_1",
                                      "typeString": "int_const 3391...(31 digits omitted)...7025"
                                    },
                                    "value": "0xff2ea16466c96a3843ec78b326b52861"
                                  },
                                  "src": "2226:42:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44678,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2225:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44679,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2273:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "2225:51:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2217:59:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44682,
                        "nodeType": "ExpressionStatement",
                        "src": "2217:59:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44688,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44686,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44684,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "2290:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "30783830",
                            "id": 44685,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2300:4:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "0x80"
                          },
                          "src": "2290:14:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44687,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2308:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2290:19:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44698,
                      "nodeType": "IfStatement",
                      "src": "2286:84:38",
                      "trueBody": {
                        "expression": {
                          "id": 44696,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44689,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "2311:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44695,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44692,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44690,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "2320:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30786665356465653034366139396132613831316334363166313936396333303533",
                                    "id": 44691,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2328:34:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_338111622100601834656805679988414885971_by_1",
                                      "typeString": "int_const 3381...(31 digits omitted)...5971"
                                    },
                                    "value": "0xfe5dee046a99a2a811c461f1969c3053"
                                  },
                                  "src": "2320:42:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44693,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2319:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44694,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2367:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "2319:51:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2311:59:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44697,
                        "nodeType": "ExpressionStatement",
                        "src": "2311:59:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44703,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44701,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44699,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "2384:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "3078313030",
                            "id": 44700,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2394:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_256_by_1",
                              "typeString": "int_const 256"
                            },
                            "value": "0x100"
                          },
                          "src": "2384:15:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44702,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2403:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2384:20:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44713,
                      "nodeType": "IfStatement",
                      "src": "2380:85:38",
                      "trueBody": {
                        "expression": {
                          "id": 44711,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44704,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "2406:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44710,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44707,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44705,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "2415:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30786663626538366337393030613838616564636666633833623437396161336134",
                                    "id": 44706,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2423:34:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_335954724994790223023589805789778977700_by_1",
                                      "typeString": "int_const 3359...(31 digits omitted)...7700"
                                    },
                                    "value": "0xfcbe86c7900a88aedcffc83b479aa3a4"
                                  },
                                  "src": "2415:42:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44708,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2414:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44709,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2462:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "2414:51:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2406:59:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44712,
                        "nodeType": "ExpressionStatement",
                        "src": "2406:59:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44718,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44716,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44714,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "2479:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "3078323030",
                            "id": 44715,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2489:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_512_by_1",
                              "typeString": "int_const 512"
                            },
                            "value": "0x200"
                          },
                          "src": "2479:15:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44717,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2498:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2479:20:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44728,
                      "nodeType": "IfStatement",
                      "src": "2475:85:38",
                      "trueBody": {
                        "expression": {
                          "id": 44726,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44719,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "2501:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44725,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44722,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44720,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "2510:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30786639383761373235336163343133313736663262303734636637383135653534",
                                    "id": 44721,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2518:34:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_331682121138379247127172139078559817300_by_1",
                                      "typeString": "int_const 3316...(31 digits omitted)...7300"
                                    },
                                    "value": "0xf987a7253ac413176f2b074cf7815e54"
                                  },
                                  "src": "2510:42:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44723,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2509:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44724,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2557:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "2509:51:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2501:59:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44727,
                        "nodeType": "ExpressionStatement",
                        "src": "2501:59:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44733,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44731,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44729,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "2574:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "3078343030",
                            "id": 44730,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2584:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1024_by_1",
                              "typeString": "int_const 1024"
                            },
                            "value": "0x400"
                          },
                          "src": "2574:15:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44732,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2593:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2574:20:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44743,
                      "nodeType": "IfStatement",
                      "src": "2570:85:38",
                      "trueBody": {
                        "expression": {
                          "id": 44741,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44734,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "2596:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44740,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44737,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44735,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "2605:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30786633333932623038323262373030303539343063376133393865346237306633",
                                    "id": 44736,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2613:34:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_323299236684853023288211250268160618739_by_1",
                                      "typeString": "int_const 3232...(31 digits omitted)...8739"
                                    },
                                    "value": "0xf3392b0822b70005940c7a398e4b70f3"
                                  },
                                  "src": "2605:42:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44738,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2604:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44739,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2652:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "2604:51:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2596:59:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44742,
                        "nodeType": "ExpressionStatement",
                        "src": "2596:59:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44748,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44746,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44744,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "2669:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "3078383030",
                            "id": 44745,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2679:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_2048_by_1",
                              "typeString": "int_const 2048"
                            },
                            "value": "0x800"
                          },
                          "src": "2669:15:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44747,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2688:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2669:20:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44758,
                      "nodeType": "IfStatement",
                      "src": "2665:85:38",
                      "trueBody": {
                        "expression": {
                          "id": 44756,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44749,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "2691:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44755,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44752,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44750,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "2700:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30786537313539343735613263323962373434336232396337666136653838396439",
                                    "id": 44751,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2708:34:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_307163716377032989948697243942600083929_by_1",
                                      "typeString": "int_const 3071...(31 digits omitted)...3929"
                                    },
                                    "value": "0xe7159475a2c29b7443b29c7fa6e889d9"
                                  },
                                  "src": "2700:42:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44753,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2699:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44754,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2747:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "2699:51:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2691:59:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44757,
                        "nodeType": "ExpressionStatement",
                        "src": "2691:59:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44763,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44761,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44759,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "2764:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "307831303030",
                            "id": 44760,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2774:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4096_by_1",
                              "typeString": "int_const 4096"
                            },
                            "value": "0x1000"
                          },
                          "src": "2764:16:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44762,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2784:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2764:21:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44773,
                      "nodeType": "IfStatement",
                      "src": "2760:86:38",
                      "trueBody": {
                        "expression": {
                          "id": 44771,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44764,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "2787:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44770,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44767,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44765,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "2796:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30786430393766336264666432303232623838343561643866373932616135383235",
                                    "id": 44766,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2804:34:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_277268403626896220162999269216087595045_by_1",
                                      "typeString": "int_const 2772...(31 digits omitted)...5045"
                                    },
                                    "value": "0xd097f3bdfd2022b8845ad8f792aa5825"
                                  },
                                  "src": "2796:42:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44768,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2795:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44769,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2843:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "2795:51:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2787:59:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44772,
                        "nodeType": "ExpressionStatement",
                        "src": "2787:59:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44778,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44776,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44774,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "2860:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "307832303030",
                            "id": 44775,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2870:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8192_by_1",
                              "typeString": "int_const 8192"
                            },
                            "value": "0x2000"
                          },
                          "src": "2860:16:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44777,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2880:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2860:21:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44788,
                      "nodeType": "IfStatement",
                      "src": "2856:86:38",
                      "trueBody": {
                        "expression": {
                          "id": 44786,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44779,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "2883:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44785,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44782,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44780,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "2892:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30786139663734363436326438373066646638613635646331663930653036316535",
                                    "id": 44781,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2900:34:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_225923453940442621947126027127485391333_by_1",
                                      "typeString": "int_const 2259...(31 digits omitted)...1333"
                                    },
                                    "value": "0xa9f746462d870fdf8a65dc1f90e061e5"
                                  },
                                  "src": "2892:42:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44783,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2891:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44784,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2939:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "2891:51:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2883:59:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44787,
                        "nodeType": "ExpressionStatement",
                        "src": "2883:59:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44793,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44791,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44789,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "2956:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "307834303030",
                            "id": 44790,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2966:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16384_by_1",
                              "typeString": "int_const 16384"
                            },
                            "value": "0x4000"
                          },
                          "src": "2956:16:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44792,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2976:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2956:21:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44803,
                      "nodeType": "IfStatement",
                      "src": "2952:86:38",
                      "trueBody": {
                        "expression": {
                          "id": 44801,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44794,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "2979:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44800,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44797,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44795,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "2988:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30783730643836396131353664326131623839306262336466363262616633326637",
                                    "id": 44796,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2996:34:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_149997214084966997727330242082538205943_by_1",
                                      "typeString": "int_const 1499...(31 digits omitted)...5943"
                                    },
                                    "value": "0x70d869a156d2a1b890bb3df62baf32f7"
                                  },
                                  "src": "2988:42:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44798,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "2987:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44799,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3035:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "2987:51:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2979:59:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44802,
                        "nodeType": "ExpressionStatement",
                        "src": "2979:59:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44808,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44806,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44804,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "3052:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "307838303030",
                            "id": 44805,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3062:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_32768_by_1",
                              "typeString": "int_const 32768"
                            },
                            "value": "0x8000"
                          },
                          "src": "3052:16:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44807,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3072:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3052:21:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44818,
                      "nodeType": "IfStatement",
                      "src": "3048:86:38",
                      "trueBody": {
                        "expression": {
                          "id": 44816,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44809,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "3075:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44815,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44812,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44810,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "3084:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30783331626531333566393764303866643938313233313530353534326663666136",
                                    "id": 44811,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "3092:34:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_66119101136024775622716233608466517926_by_1",
                                      "typeString": "int_const 6611...(30 digits omitted)...7926"
                                    },
                                    "value": "0x31be135f97d08fd981231505542fcfa6"
                                  },
                                  "src": "3084:42:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44813,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "3083:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44814,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3131:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "3083:51:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3075:59:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44817,
                        "nodeType": "ExpressionStatement",
                        "src": "3075:59:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44823,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44821,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44819,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "3148:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "30783130303030",
                            "id": 44820,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3158:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_65536_by_1",
                              "typeString": "int_const 65536"
                            },
                            "value": "0x10000"
                          },
                          "src": "3148:17:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44822,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3169:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3148:22:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44833,
                      "nodeType": "IfStatement",
                      "src": "3144:86:38",
                      "trueBody": {
                        "expression": {
                          "id": 44831,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44824,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "3172:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44830,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44827,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44825,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "3181:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "307839616135303862356237613834653163363737646535346633653939626339",
                                    "id": 44826,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "3189:33:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_12847376061809297530290974190478138313_by_1",
                                      "typeString": "int_const 1284...(30 digits omitted)...8313"
                                    },
                                    "value": "0x9aa508b5b7a84e1c677de54f3e99bc9"
                                  },
                                  "src": "3181:41:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44828,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "3180:43:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44829,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3227:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "3180:50:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3172:58:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44832,
                        "nodeType": "ExpressionStatement",
                        "src": "3172:58:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44838,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44836,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44834,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "3244:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "30783230303030",
                            "id": 44835,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3254:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_131072_by_1",
                              "typeString": "int_const 131072"
                            },
                            "value": "0x20000"
                          },
                          "src": "3244:17:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44837,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3265:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3244:22:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44848,
                      "nodeType": "IfStatement",
                      "src": "3240:85:38",
                      "trueBody": {
                        "expression": {
                          "id": 44846,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44839,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "3268:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44845,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44842,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44840,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "3277:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "3078356436616638646564623831313936363939633332393232356565363034",
                                    "id": 44841,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "3285:32:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_485053260817066172746253684029974020_by_1",
                                      "typeString": "int_const 4850...(28 digits omitted)...4020"
                                    },
                                    "value": "0x5d6af8dedb81196699c329225ee604"
                                  },
                                  "src": "3277:40:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44843,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "3276:42:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44844,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3322:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "3276:49:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3268:57:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44847,
                        "nodeType": "ExpressionStatement",
                        "src": "3268:57:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44853,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44851,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44849,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "3339:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "30783430303030",
                            "id": 44850,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3349:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_262144_by_1",
                              "typeString": "int_const 262144"
                            },
                            "value": "0x40000"
                          },
                          "src": "3339:17:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44852,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3360:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3339:22:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44863,
                      "nodeType": "IfStatement",
                      "src": "3335:83:38",
                      "trueBody": {
                        "expression": {
                          "id": 44861,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44854,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "3363:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44860,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44857,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44855,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "3372:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "307832323136653538346635666131656139323630343162656466653938",
                                    "id": 44856,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "3380:30:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_691415978906521570653435304214168_by_1",
                                      "typeString": "int_const 6914...(25 digits omitted)...4168"
                                    },
                                    "value": "0x2216e584f5fa1ea926041bedfe98"
                                  },
                                  "src": "3372:38:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44858,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "3371:40:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44859,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3415:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "3371:47:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3363:55:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44862,
                        "nodeType": "ExpressionStatement",
                        "src": "3363:55:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44868,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 44866,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 44864,
                            "name": "absTick",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44549,
                            "src": "3432:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "hexValue": "30783830303030",
                            "id": 44865,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3442:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_524288_by_1",
                              "typeString": "int_const 524288"
                            },
                            "value": "0x80000"
                          },
                          "src": "3432:17:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44867,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3453:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3432:22:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44878,
                      "nodeType": "IfStatement",
                      "src": "3428:78:38",
                      "trueBody": {
                        "expression": {
                          "id": 44876,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44869,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "3456:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44875,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44872,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44870,
                                    "name": "ratio",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44584,
                                    "src": "3465:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "hexValue": "30783438613137303339316637646334323434346538666132",
                                    "id": 44871,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "3473:25:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1404880482679654955896180642_by_1",
                                      "typeString": "int_const 1404880482679654955896180642"
                                    },
                                    "value": "0x48a170391f7dc42444e8fa2"
                                  },
                                  "src": "3465:33:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44873,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "3464:35:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 44874,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3503:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "3464:42:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3456:50:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44877,
                        "nodeType": "ExpressionStatement",
                        "src": "3456:50:38"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        },
                        "id": 44881,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 44879,
                          "name": "tick",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44543,
                          "src": "3521:4:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 44880,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3528:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3521:8:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 44892,
                      "nodeType": "IfStatement",
                      "src": "3517:47:38",
                      "trueBody": {
                        "expression": {
                          "id": 44890,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44882,
                            "name": "ratio",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44584,
                            "src": "3531:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44889,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "arguments": [
                                  {
                                    "id": 44885,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "3544:7:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 44884,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "3544:7:38",
                                      "typeDescriptions": {}
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    }
                                  ],
                                  "id": 44883,
                                  "name": "type",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -27,
                                  "src": "3539:4:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                    "typeString": "function () pure"
                                  }
                                },
                                "id": 44886,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3539:13:38",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_meta_type_t_uint256",
                                  "typeString": "type(uint256)"
                                }
                              },
                              "id": 44887,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "3553:3:38",
                              "memberName": "max",
                              "nodeType": "MemberAccess",
                              "src": "3539:17:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "/",
                            "rightExpression": {
                              "id": 44888,
                              "name": "ratio",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44584,
                              "src": "3559:5:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "3539:25:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3531:33:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44891,
                        "nodeType": "ExpressionStatement",
                        "src": "3531:33:38"
                      }
                    },
                    {
                      "expression": {
                        "id": 44914,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "id": 44893,
                          "name": "sqrtPriceX96",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44546,
                          "src": "3874:12:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint160",
                            "typeString": "uint160"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 44912,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "components": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 44898,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 44896,
                                      "name": "ratio",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 44584,
                                      "src": "3898:5:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": ">>",
                                    "rightExpression": {
                                      "hexValue": "3332",
                                      "id": 44897,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3907:2:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_32_by_1",
                                        "typeString": "int_const 32"
                                      },
                                      "value": "32"
                                    },
                                    "src": "3898:11:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "id": 44899,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "3897:13:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "components": [
                                  {
                                    "condition": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 44907,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 44905,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 44900,
                                          "name": "ratio",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 44584,
                                          "src": "3914:5:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "%",
                                        "rightExpression": {
                                          "components": [
                                            {
                                              "commonType": {
                                                "typeIdentifier": "t_rational_4294967296_by_1",
                                                "typeString": "int_const 4294967296"
                                              },
                                              "id": 44903,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "leftExpression": {
                                                "hexValue": "31",
                                                "id": 44901,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "3923:1:38",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_1_by_1",
                                                  "typeString": "int_const 1"
                                                },
                                                "value": "1"
                                              },
                                              "nodeType": "BinaryOperation",
                                              "operator": "<<",
                                              "rightExpression": {
                                                "hexValue": "3332",
                                                "id": 44902,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "3928:2:38",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_32_by_1",
                                                  "typeString": "int_const 32"
                                                },
                                                "value": "32"
                                              },
                                              "src": "3923:7:38",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_4294967296_by_1",
                                                "typeString": "int_const 4294967296"
                                              }
                                            }
                                          ],
                                          "id": 44904,
                                          "isConstant": false,
                                          "isInlineArray": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "TupleExpression",
                                          "src": "3922:9:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_4294967296_by_1",
                                            "typeString": "int_const 4294967296"
                                          }
                                        },
                                        "src": "3914:17:38",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "==",
                                      "rightExpression": {
                                        "hexValue": "30",
                                        "id": 44906,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3935:1:38",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        },
                                        "value": "0"
                                      },
                                      "src": "3914:22:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseExpression": {
                                      "hexValue": "31",
                                      "id": 44909,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3943:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "id": 44910,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "Conditional",
                                    "src": "3914:30:38",
                                    "trueExpression": {
                                      "hexValue": "30",
                                      "id": 44908,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "3939:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  }
                                ],
                                "id": 44911,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "3913:32:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "src": "3897:48:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 44895,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "3889:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint160_$",
                              "typeString": "type(uint160)"
                            },
                            "typeName": {
                              "id": 44894,
                              "name": "uint160",
                              "nodeType": "ElementaryTypeName",
                              "src": "3889:7:38",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 44913,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3889:57:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint160",
                            "typeString": "uint160"
                          }
                        },
                        "src": "3874:72:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      },
                      "id": 44915,
                      "nodeType": "ExpressionStatement",
                      "src": "3874:72:38"
                    }
                  ]
                }
              ]
            },
            "documentation": {
              "id": 44541,
              "nodeType": "StructuredDocumentation",
              "src": "1053:297:38",
              "text": "@notice Calculates sqrt(1.0001^tick) * 2^96\n @dev Throws if |tick| > max tick\n @param tick The input tick for the above formula\n @return sqrtPriceX96 A Fixed point Q64.96 number representing the sqrt of the ratio of the two assets (token1/token0)\n at the given tick"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getSqrtRatioAtTick",
            "nameLocation": "1364:18:38",
            "parameters": {
              "id": 44544,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44543,
                  "mutability": "mutable",
                  "name": "tick",
                  "nameLocation": "1389:4:38",
                  "nodeType": "VariableDeclaration",
                  "scope": 44918,
                  "src": "1383:10:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 44542,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "1383:5:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1382:12:38"
            },
            "returnParameters": {
              "id": 44547,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44546,
                  "mutability": "mutable",
                  "name": "sqrtPriceX96",
                  "nameLocation": "1426:12:38",
                  "nodeType": "VariableDeclaration",
                  "scope": 44918,
                  "src": "1418:20:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint160",
                    "typeString": "uint160"
                  },
                  "typeName": {
                    "id": 44545,
                    "name": "uint160",
                    "nodeType": "ElementaryTypeName",
                    "src": "1418:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1417:22:38"
            },
            "scope": 45059,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 45058,
            "nodeType": "FunctionDefinition",
            "src": "4373:4293:38",
            "nodes": [],
            "body": {
              "id": 45057,
              "nodeType": "Block",
              "src": "4458:4208:38",
              "nodes": [],
              "statements": [
                {
                  "id": 45056,
                  "nodeType": "UncheckedBlock",
                  "src": "4459:4205:38",
                  "statements": [
                    {
                      "expression": {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 44933,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              },
                              "id": 44929,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 44927,
                                "name": "sqrtPriceX96",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 44921,
                                "src": "4585:12:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">=",
                              "rightExpression": {
                                "id": 44928,
                                "name": "MIN_SQRT_RATIO",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 44536,
                                "src": "4601:14:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              },
                              "src": "4585:30:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&&",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              },
                              "id": 44932,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 44930,
                                "name": "sqrtPriceX96",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 44921,
                                "src": "4619:12:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "id": 44931,
                                "name": "MAX_SQRT_RATIO",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 44540,
                                "src": "4634:14:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              },
                              "src": "4619:29:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "4585:63:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "hexValue": "52",
                            "id": 44934,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4650:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_ef22bddd350b943170a67d35191c27e310709a28c38b5762a152ff640108f5b2",
                              "typeString": "literal_string \"R\""
                            },
                            "value": "R"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_ef22bddd350b943170a67d35191c27e310709a28c38b5762a152ff640108f5b2",
                              "typeString": "literal_string \"R\""
                            }
                          ],
                          "id": 44926,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            -18,
                            -18
                          ],
                          "referencedDeclaration": -18,
                          "src": "4577:7:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 44935,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4577:77:38",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 44936,
                      "nodeType": "ExpressionStatement",
                      "src": "4577:77:38"
                    },
                    {
                      "assignments": [
                        44938
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 44938,
                          "mutability": "mutable",
                          "name": "ratio",
                          "nameLocation": "4672:5:38",
                          "nodeType": "VariableDeclaration",
                          "scope": 45056,
                          "src": "4664:13:38",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 44937,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4664:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 44945,
                      "initialValue": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44944,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "id": 44941,
                              "name": "sqrtPriceX96",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44921,
                              "src": "4688:12:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              }
                            ],
                            "id": 44940,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4680:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint256_$",
                              "typeString": "type(uint256)"
                            },
                            "typeName": {
                              "id": 44939,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "4680:7:38",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 44942,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4680:21:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<<",
                        "rightExpression": {
                          "hexValue": "3332",
                          "id": 44943,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4705:2:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_32_by_1",
                            "typeString": "int_const 32"
                          },
                          "value": "32"
                        },
                        "src": "4680:27:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "4664:43:38"
                    },
                    {
                      "assignments": [
                        44947
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 44947,
                          "mutability": "mutable",
                          "name": "r",
                          "nameLocation": "4726:1:38",
                          "nodeType": "VariableDeclaration",
                          "scope": 45056,
                          "src": "4718:9:38",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 44946,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4718:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 44949,
                      "initialValue": {
                        "id": 44948,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44938,
                        "src": "4730:5:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "4718:17:38"
                    },
                    {
                      "assignments": [
                        44951
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 44951,
                          "mutability": "mutable",
                          "name": "msb",
                          "nameLocation": "4753:3:38",
                          "nodeType": "VariableDeclaration",
                          "scope": 45056,
                          "src": "4745:11:38",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "typeName": {
                            "id": 44950,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4745:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 44953,
                      "initialValue": {
                        "hexValue": "30",
                        "id": 44952,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4759:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "4745:15:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "4780:139:38",
                        "nodeType": "YulBlock",
                        "src": "4780:139:38",
                        "statements": [
                          {
                            "nativeSrc": "4794:58:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "4794:58:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "4807:1:38",
                                  "nodeType": "YulLiteral",
                                  "src": "4807:1:38",
                                  "type": "",
                                  "value": "7"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "4813:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "4813:1:38"
                                    },
                                    {
                                      "kind": "number",
                                      "nativeSrc": "4816:34:38",
                                      "nodeType": "YulLiteral",
                                      "src": "4816:34:38",
                                      "type": "",
                                      "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "gt",
                                    "nativeSrc": "4810:2:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "4810:2:38"
                                  },
                                  "nativeSrc": "4810:41:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "4810:41:38"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nativeSrc": "4803:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "4803:3:38"
                              },
                              "nativeSrc": "4803:49:38",
                              "nodeType": "YulFunctionCall",
                              "src": "4803:49:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "4798:1:38",
                                "nodeType": "YulTypedName",
                                "src": "4798:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "4865:17:38",
                            "nodeType": "YulAssignment",
                            "src": "4865:17:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "msb",
                                  "nativeSrc": "4875:3:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "4875:3:38"
                                },
                                {
                                  "name": "f",
                                  "nativeSrc": "4880:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "4880:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "4872:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "4872:2:38"
                              },
                              "nativeSrc": "4872:10:38",
                              "nodeType": "YulFunctionCall",
                              "src": "4872:10:38"
                            },
                            "variableNames": [
                              {
                                "name": "msb",
                                "nativeSrc": "4865:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "4865:3:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "4895:14:38",
                            "nodeType": "YulAssignment",
                            "src": "4895:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "4904:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "4904:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "4907:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "4907:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "4900:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "4900:3:38"
                              },
                              "nativeSrc": "4900:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "4900:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "4895:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "4895:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "4865:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "4875:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "4813:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "4895:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "4907:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 44954,
                      "nodeType": "InlineAssembly",
                      "src": "4771:148:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "4937:123:38",
                        "nodeType": "YulBlock",
                        "src": "4937:123:38",
                        "statements": [
                          {
                            "nativeSrc": "4951:42:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "4951:42:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "4964:1:38",
                                  "nodeType": "YulLiteral",
                                  "src": "4964:1:38",
                                  "type": "",
                                  "value": "6"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "4970:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "4970:1:38"
                                    },
                                    {
                                      "kind": "number",
                                      "nativeSrc": "4973:18:38",
                                      "nodeType": "YulLiteral",
                                      "src": "4973:18:38",
                                      "type": "",
                                      "value": "0xFFFFFFFFFFFFFFFF"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "gt",
                                    "nativeSrc": "4967:2:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "4967:2:38"
                                  },
                                  "nativeSrc": "4967:25:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "4967:25:38"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nativeSrc": "4960:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "4960:3:38"
                              },
                              "nativeSrc": "4960:33:38",
                              "nodeType": "YulFunctionCall",
                              "src": "4960:33:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "4955:1:38",
                                "nodeType": "YulTypedName",
                                "src": "4955:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "5006:17:38",
                            "nodeType": "YulAssignment",
                            "src": "5006:17:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "msb",
                                  "nativeSrc": "5016:3:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5016:3:38"
                                },
                                {
                                  "name": "f",
                                  "nativeSrc": "5021:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5021:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "5013:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "5013:2:38"
                              },
                              "nativeSrc": "5013:10:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5013:10:38"
                            },
                            "variableNames": [
                              {
                                "name": "msb",
                                "nativeSrc": "5006:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5006:3:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "5036:14:38",
                            "nodeType": "YulAssignment",
                            "src": "5036:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "5045:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5045:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "5048:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5048:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "5041:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5041:3:38"
                              },
                              "nativeSrc": "5041:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5041:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "5036:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "5036:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5006:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5016:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "4970:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5036:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5048:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 44955,
                      "nodeType": "InlineAssembly",
                      "src": "4928:132:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "5078:115:38",
                        "nodeType": "YulBlock",
                        "src": "5078:115:38",
                        "statements": [
                          {
                            "nativeSrc": "5092:34:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "5092:34:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "5105:1:38",
                                  "nodeType": "YulLiteral",
                                  "src": "5105:1:38",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "5111:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "5111:1:38"
                                    },
                                    {
                                      "kind": "number",
                                      "nativeSrc": "5114:10:38",
                                      "nodeType": "YulLiteral",
                                      "src": "5114:10:38",
                                      "type": "",
                                      "value": "0xFFFFFFFF"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "gt",
                                    "nativeSrc": "5108:2:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "5108:2:38"
                                  },
                                  "nativeSrc": "5108:17:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "5108:17:38"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nativeSrc": "5101:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5101:3:38"
                              },
                              "nativeSrc": "5101:25:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5101:25:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "5096:1:38",
                                "nodeType": "YulTypedName",
                                "src": "5096:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "5139:17:38",
                            "nodeType": "YulAssignment",
                            "src": "5139:17:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "msb",
                                  "nativeSrc": "5149:3:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5149:3:38"
                                },
                                {
                                  "name": "f",
                                  "nativeSrc": "5154:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5154:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "5146:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "5146:2:38"
                              },
                              "nativeSrc": "5146:10:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5146:10:38"
                            },
                            "variableNames": [
                              {
                                "name": "msb",
                                "nativeSrc": "5139:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5139:3:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "5169:14:38",
                            "nodeType": "YulAssignment",
                            "src": "5169:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "5178:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5178:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "5181:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5181:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "5174:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5174:3:38"
                              },
                              "nativeSrc": "5174:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5174:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "5169:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "5169:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5139:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5149:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5111:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5169:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5181:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 44956,
                      "nodeType": "InlineAssembly",
                      "src": "5069:124:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "5211:111:38",
                        "nodeType": "YulBlock",
                        "src": "5211:111:38",
                        "statements": [
                          {
                            "nativeSrc": "5225:30:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "5225:30:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "5238:1:38",
                                  "nodeType": "YulLiteral",
                                  "src": "5238:1:38",
                                  "type": "",
                                  "value": "4"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "5244:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "5244:1:38"
                                    },
                                    {
                                      "kind": "number",
                                      "nativeSrc": "5247:6:38",
                                      "nodeType": "YulLiteral",
                                      "src": "5247:6:38",
                                      "type": "",
                                      "value": "0xFFFF"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "gt",
                                    "nativeSrc": "5241:2:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "5241:2:38"
                                  },
                                  "nativeSrc": "5241:13:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "5241:13:38"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nativeSrc": "5234:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5234:3:38"
                              },
                              "nativeSrc": "5234:21:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5234:21:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "5229:1:38",
                                "nodeType": "YulTypedName",
                                "src": "5229:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "5268:17:38",
                            "nodeType": "YulAssignment",
                            "src": "5268:17:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "msb",
                                  "nativeSrc": "5278:3:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5278:3:38"
                                },
                                {
                                  "name": "f",
                                  "nativeSrc": "5283:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5283:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "5275:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "5275:2:38"
                              },
                              "nativeSrc": "5275:10:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5275:10:38"
                            },
                            "variableNames": [
                              {
                                "name": "msb",
                                "nativeSrc": "5268:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5268:3:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "5298:14:38",
                            "nodeType": "YulAssignment",
                            "src": "5298:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "5307:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5307:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "5310:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5310:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "5303:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5303:3:38"
                              },
                              "nativeSrc": "5303:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5303:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "5298:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "5298:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5268:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5278:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5244:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5298:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5310:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 44957,
                      "nodeType": "InlineAssembly",
                      "src": "5202:120:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "5340:109:38",
                        "nodeType": "YulBlock",
                        "src": "5340:109:38",
                        "statements": [
                          {
                            "nativeSrc": "5354:28:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "5354:28:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "5367:1:38",
                                  "nodeType": "YulLiteral",
                                  "src": "5367:1:38",
                                  "type": "",
                                  "value": "3"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "5373:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "5373:1:38"
                                    },
                                    {
                                      "kind": "number",
                                      "nativeSrc": "5376:4:38",
                                      "nodeType": "YulLiteral",
                                      "src": "5376:4:38",
                                      "type": "",
                                      "value": "0xFF"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "gt",
                                    "nativeSrc": "5370:2:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "5370:2:38"
                                  },
                                  "nativeSrc": "5370:11:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "5370:11:38"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nativeSrc": "5363:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5363:3:38"
                              },
                              "nativeSrc": "5363:19:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5363:19:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "5358:1:38",
                                "nodeType": "YulTypedName",
                                "src": "5358:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "5395:17:38",
                            "nodeType": "YulAssignment",
                            "src": "5395:17:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "msb",
                                  "nativeSrc": "5405:3:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5405:3:38"
                                },
                                {
                                  "name": "f",
                                  "nativeSrc": "5410:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5410:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "5402:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "5402:2:38"
                              },
                              "nativeSrc": "5402:10:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5402:10:38"
                            },
                            "variableNames": [
                              {
                                "name": "msb",
                                "nativeSrc": "5395:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5395:3:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "5425:14:38",
                            "nodeType": "YulAssignment",
                            "src": "5425:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "5434:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5434:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "5437:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5437:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "5430:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5430:3:38"
                              },
                              "nativeSrc": "5430:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5430:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "5425:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "5425:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5395:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5405:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5373:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5425:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5437:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 44958,
                      "nodeType": "InlineAssembly",
                      "src": "5331:118:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "5467:108:38",
                        "nodeType": "YulBlock",
                        "src": "5467:108:38",
                        "statements": [
                          {
                            "nativeSrc": "5481:27:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "5481:27:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "5494:1:38",
                                  "nodeType": "YulLiteral",
                                  "src": "5494:1:38",
                                  "type": "",
                                  "value": "2"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "5500:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "5500:1:38"
                                    },
                                    {
                                      "kind": "number",
                                      "nativeSrc": "5503:3:38",
                                      "nodeType": "YulLiteral",
                                      "src": "5503:3:38",
                                      "type": "",
                                      "value": "0xF"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "gt",
                                    "nativeSrc": "5497:2:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "5497:2:38"
                                  },
                                  "nativeSrc": "5497:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "5497:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nativeSrc": "5490:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5490:3:38"
                              },
                              "nativeSrc": "5490:18:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5490:18:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "5485:1:38",
                                "nodeType": "YulTypedName",
                                "src": "5485:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "5521:17:38",
                            "nodeType": "YulAssignment",
                            "src": "5521:17:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "msb",
                                  "nativeSrc": "5531:3:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5531:3:38"
                                },
                                {
                                  "name": "f",
                                  "nativeSrc": "5536:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5536:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "5528:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "5528:2:38"
                              },
                              "nativeSrc": "5528:10:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5528:10:38"
                            },
                            "variableNames": [
                              {
                                "name": "msb",
                                "nativeSrc": "5521:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5521:3:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "5551:14:38",
                            "nodeType": "YulAssignment",
                            "src": "5551:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "5560:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5560:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "5563:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5563:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "5556:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5556:3:38"
                              },
                              "nativeSrc": "5556:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5556:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "5551:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "5551:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5521:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5531:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5500:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5551:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5563:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 44959,
                      "nodeType": "InlineAssembly",
                      "src": "5458:117:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "5593:108:38",
                        "nodeType": "YulBlock",
                        "src": "5593:108:38",
                        "statements": [
                          {
                            "nativeSrc": "5607:27:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "5607:27:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "5620:1:38",
                                  "nodeType": "YulLiteral",
                                  "src": "5620:1:38",
                                  "type": "",
                                  "value": "1"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "5626:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "5626:1:38"
                                    },
                                    {
                                      "kind": "number",
                                      "nativeSrc": "5629:3:38",
                                      "nodeType": "YulLiteral",
                                      "src": "5629:3:38",
                                      "type": "",
                                      "value": "0x3"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "gt",
                                    "nativeSrc": "5623:2:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "5623:2:38"
                                  },
                                  "nativeSrc": "5623:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "5623:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nativeSrc": "5616:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5616:3:38"
                              },
                              "nativeSrc": "5616:18:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5616:18:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "5611:1:38",
                                "nodeType": "YulTypedName",
                                "src": "5611:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "5647:17:38",
                            "nodeType": "YulAssignment",
                            "src": "5647:17:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "msb",
                                  "nativeSrc": "5657:3:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5657:3:38"
                                },
                                {
                                  "name": "f",
                                  "nativeSrc": "5662:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5662:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "5654:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "5654:2:38"
                              },
                              "nativeSrc": "5654:10:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5654:10:38"
                            },
                            "variableNames": [
                              {
                                "name": "msb",
                                "nativeSrc": "5647:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5647:3:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "5677:14:38",
                            "nodeType": "YulAssignment",
                            "src": "5677:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "5686:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5686:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "5689:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5689:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "5682:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5682:3:38"
                              },
                              "nativeSrc": "5682:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5682:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "5677:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "5677:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5647:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5657:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5626:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5677:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5689:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 44960,
                      "nodeType": "InlineAssembly",
                      "src": "5584:117:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "5719:73:38",
                        "nodeType": "YulBlock",
                        "src": "5719:73:38",
                        "statements": [
                          {
                            "nativeSrc": "5733:19:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "5733:19:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nativeSrc": "5745:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5745:1:38"
                                },
                                {
                                  "kind": "number",
                                  "nativeSrc": "5748:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "5748:3:38",
                                  "type": "",
                                  "value": "0x1"
                                }
                              ],
                              "functionName": {
                                "name": "gt",
                                "nativeSrc": "5742:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "5742:2:38"
                              },
                              "nativeSrc": "5742:10:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5742:10:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "5737:1:38",
                                "nodeType": "YulTypedName",
                                "src": "5737:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "5765:17:38",
                            "nodeType": "YulAssignment",
                            "src": "5765:17:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "msb",
                                  "nativeSrc": "5775:3:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5775:3:38"
                                },
                                {
                                  "name": "f",
                                  "nativeSrc": "5780:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "5780:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "5772:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "5772:2:38"
                              },
                              "nativeSrc": "5772:10:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5772:10:38"
                            },
                            "variableNames": [
                              {
                                "name": "msb",
                                "nativeSrc": "5765:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5765:3:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5765:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44951,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5775:3:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5745:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 44961,
                      "nodeType": "InlineAssembly",
                      "src": "5710:82:38"
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 44964,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 44962,
                          "name": "msb",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44951,
                          "src": "5806:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 44963,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5813:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "5806:10:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "expression": {
                          "id": 44981,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44974,
                            "name": "r",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44947,
                            "src": "5857:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44980,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 44975,
                              "name": "ratio",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44938,
                              "src": "5861:5:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44978,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "hexValue": "313237",
                                    "id": 44976,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5871:3:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_127_by_1",
                                      "typeString": "int_const 127"
                                    },
                                    "value": "127"
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "-",
                                  "rightExpression": {
                                    "id": 44977,
                                    "name": "msb",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44951,
                                    "src": "5877:3:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "5871:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44979,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "5870:11:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "5861:20:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5857:24:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44982,
                        "nodeType": "ExpressionStatement",
                        "src": "5857:24:38"
                      },
                      "id": 44983,
                      "nodeType": "IfStatement",
                      "src": "5802:79:38",
                      "trueBody": {
                        "expression": {
                          "id": 44972,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 44965,
                            "name": "r",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44947,
                            "src": "5818:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 44971,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 44966,
                              "name": "ratio",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44938,
                              "src": "5822:5:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 44969,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 44967,
                                    "name": "msb",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44951,
                                    "src": "5832:3:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "-",
                                  "rightExpression": {
                                    "hexValue": "313237",
                                    "id": 44968,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5838:3:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_127_by_1",
                                      "typeString": "int_const 127"
                                    },
                                    "value": "127"
                                  },
                                  "src": "5832:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 44970,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "5831:11:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "5822:20:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5818:24:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 44973,
                        "nodeType": "ExpressionStatement",
                        "src": "5818:24:38"
                      }
                    },
                    {
                      "assignments": [
                        44985
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 44985,
                          "mutability": "mutable",
                          "name": "log_2",
                          "nameLocation": "5899:5:38",
                          "nodeType": "VariableDeclaration",
                          "scope": 45056,
                          "src": "5892:12:38",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "typeName": {
                            "id": 44984,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5892:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 44995,
                      "initialValue": {
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 44994,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "id": 44991,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "arguments": [
                                  {
                                    "id": 44988,
                                    "name": "msb",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 44951,
                                    "src": "5915:3:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 44987,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "5908:6:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_int256_$",
                                    "typeString": "type(int256)"
                                  },
                                  "typeName": {
                                    "id": 44986,
                                    "name": "int256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5908:6:38",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 44989,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5908:11:38",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "hexValue": "313238",
                                "id": 44990,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5922:3:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_128_by_1",
                                  "typeString": "int_const 128"
                                },
                                "value": "128"
                              },
                              "src": "5908:17:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            }
                          ],
                          "id": 44992,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "5907:19:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<<",
                        "rightExpression": {
                          "hexValue": "3634",
                          "id": 44993,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5930:2:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_64_by_1",
                            "typeString": "int_const 64"
                          },
                          "value": "64"
                        },
                        "src": "5907:25:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "5892:40:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "5952:151:38",
                        "nodeType": "YulBlock",
                        "src": "5952:151:38",
                        "statements": [
                          {
                            "nativeSrc": "5966:24:38",
                            "nodeType": "YulAssignment",
                            "src": "5966:24:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "5975:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "5975:3:38",
                                  "type": "",
                                  "value": "127"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "5984:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "5984:1:38"
                                    },
                                    {
                                      "name": "r",
                                      "nativeSrc": "5987:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "5987:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nativeSrc": "5980:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "5980:3:38"
                                  },
                                  "nativeSrc": "5980:9:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "5980:9:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "5971:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "5971:3:38"
                              },
                              "nativeSrc": "5971:19:38",
                              "nodeType": "YulFunctionCall",
                              "src": "5971:19:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "5966:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "5966:1:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6003:20:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "6003:20:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "6016:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "6016:3:38",
                                  "type": "",
                                  "value": "128"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "6021:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6021:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6012:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6012:3:38"
                              },
                              "nativeSrc": "6012:11:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6012:11:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "6007:1:38",
                                "nodeType": "YulTypedName",
                                "src": "6007:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6036:30:38",
                            "nodeType": "YulAssignment",
                            "src": "6036:30:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "log_2",
                                  "nativeSrc": "6048:5:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6048:5:38"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "6059:2:38",
                                      "nodeType": "YulLiteral",
                                      "src": "6059:2:38",
                                      "type": "",
                                      "value": "63"
                                    },
                                    {
                                      "name": "f",
                                      "nativeSrc": "6063:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6063:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "shl",
                                    "nativeSrc": "6055:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "6055:3:38"
                                  },
                                  "nativeSrc": "6055:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "6055:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "6045:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "6045:2:38"
                              },
                              "nativeSrc": "6045:21:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6045:21:38"
                            },
                            "variableNames": [
                              {
                                "name": "log_2",
                                "nativeSrc": "6036:5:38",
                                "nodeType": "YulIdentifier",
                                "src": "6036:5:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6079:14:38",
                            "nodeType": "YulAssignment",
                            "src": "6079:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "6088:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6088:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "6091:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6091:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6084:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6084:3:38"
                              },
                              "nativeSrc": "6084:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6084:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "6079:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "6079:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6036:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6048:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5966:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5984:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5987:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6021:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6079:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6091:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 44996,
                      "nodeType": "InlineAssembly",
                      "src": "5943:160:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "6121:151:38",
                        "nodeType": "YulBlock",
                        "src": "6121:151:38",
                        "statements": [
                          {
                            "nativeSrc": "6135:24:38",
                            "nodeType": "YulAssignment",
                            "src": "6135:24:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "6144:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "6144:3:38",
                                  "type": "",
                                  "value": "127"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "6153:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6153:1:38"
                                    },
                                    {
                                      "name": "r",
                                      "nativeSrc": "6156:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6156:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nativeSrc": "6149:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "6149:3:38"
                                  },
                                  "nativeSrc": "6149:9:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "6149:9:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6140:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6140:3:38"
                              },
                              "nativeSrc": "6140:19:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6140:19:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "6135:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "6135:1:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6172:20:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "6172:20:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "6185:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "6185:3:38",
                                  "type": "",
                                  "value": "128"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "6190:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6190:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6181:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6181:3:38"
                              },
                              "nativeSrc": "6181:11:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6181:11:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "6176:1:38",
                                "nodeType": "YulTypedName",
                                "src": "6176:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6205:30:38",
                            "nodeType": "YulAssignment",
                            "src": "6205:30:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "log_2",
                                  "nativeSrc": "6217:5:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6217:5:38"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "6228:2:38",
                                      "nodeType": "YulLiteral",
                                      "src": "6228:2:38",
                                      "type": "",
                                      "value": "62"
                                    },
                                    {
                                      "name": "f",
                                      "nativeSrc": "6232:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6232:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "shl",
                                    "nativeSrc": "6224:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "6224:3:38"
                                  },
                                  "nativeSrc": "6224:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "6224:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "6214:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "6214:2:38"
                              },
                              "nativeSrc": "6214:21:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6214:21:38"
                            },
                            "variableNames": [
                              {
                                "name": "log_2",
                                "nativeSrc": "6205:5:38",
                                "nodeType": "YulIdentifier",
                                "src": "6205:5:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6248:14:38",
                            "nodeType": "YulAssignment",
                            "src": "6248:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "6257:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6257:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "6260:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6260:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6253:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6253:3:38"
                              },
                              "nativeSrc": "6253:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6253:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "6248:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "6248:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6205:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6217:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6135:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6153:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6156:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6190:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6248:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6260:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 44997,
                      "nodeType": "InlineAssembly",
                      "src": "6112:160:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "6290:151:38",
                        "nodeType": "YulBlock",
                        "src": "6290:151:38",
                        "statements": [
                          {
                            "nativeSrc": "6304:24:38",
                            "nodeType": "YulAssignment",
                            "src": "6304:24:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "6313:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "6313:3:38",
                                  "type": "",
                                  "value": "127"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "6322:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6322:1:38"
                                    },
                                    {
                                      "name": "r",
                                      "nativeSrc": "6325:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6325:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nativeSrc": "6318:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "6318:3:38"
                                  },
                                  "nativeSrc": "6318:9:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "6318:9:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6309:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6309:3:38"
                              },
                              "nativeSrc": "6309:19:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6309:19:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "6304:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "6304:1:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6341:20:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "6341:20:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "6354:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "6354:3:38",
                                  "type": "",
                                  "value": "128"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "6359:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6359:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6350:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6350:3:38"
                              },
                              "nativeSrc": "6350:11:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6350:11:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "6345:1:38",
                                "nodeType": "YulTypedName",
                                "src": "6345:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6374:30:38",
                            "nodeType": "YulAssignment",
                            "src": "6374:30:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "log_2",
                                  "nativeSrc": "6386:5:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6386:5:38"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "6397:2:38",
                                      "nodeType": "YulLiteral",
                                      "src": "6397:2:38",
                                      "type": "",
                                      "value": "61"
                                    },
                                    {
                                      "name": "f",
                                      "nativeSrc": "6401:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6401:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "shl",
                                    "nativeSrc": "6393:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "6393:3:38"
                                  },
                                  "nativeSrc": "6393:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "6393:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "6383:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "6383:2:38"
                              },
                              "nativeSrc": "6383:21:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6383:21:38"
                            },
                            "variableNames": [
                              {
                                "name": "log_2",
                                "nativeSrc": "6374:5:38",
                                "nodeType": "YulIdentifier",
                                "src": "6374:5:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6417:14:38",
                            "nodeType": "YulAssignment",
                            "src": "6417:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "6426:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6426:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "6429:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6429:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6422:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6422:3:38"
                              },
                              "nativeSrc": "6422:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6422:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "6417:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "6417:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6374:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6386:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6304:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6322:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6325:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6359:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6417:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6429:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 44998,
                      "nodeType": "InlineAssembly",
                      "src": "6281:160:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "6459:151:38",
                        "nodeType": "YulBlock",
                        "src": "6459:151:38",
                        "statements": [
                          {
                            "nativeSrc": "6473:24:38",
                            "nodeType": "YulAssignment",
                            "src": "6473:24:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "6482:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "6482:3:38",
                                  "type": "",
                                  "value": "127"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "6491:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6491:1:38"
                                    },
                                    {
                                      "name": "r",
                                      "nativeSrc": "6494:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6494:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nativeSrc": "6487:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "6487:3:38"
                                  },
                                  "nativeSrc": "6487:9:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "6487:9:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6478:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6478:3:38"
                              },
                              "nativeSrc": "6478:19:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6478:19:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "6473:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "6473:1:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6510:20:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "6510:20:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "6523:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "6523:3:38",
                                  "type": "",
                                  "value": "128"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "6528:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6528:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6519:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6519:3:38"
                              },
                              "nativeSrc": "6519:11:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6519:11:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "6514:1:38",
                                "nodeType": "YulTypedName",
                                "src": "6514:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6543:30:38",
                            "nodeType": "YulAssignment",
                            "src": "6543:30:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "log_2",
                                  "nativeSrc": "6555:5:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6555:5:38"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "6566:2:38",
                                      "nodeType": "YulLiteral",
                                      "src": "6566:2:38",
                                      "type": "",
                                      "value": "60"
                                    },
                                    {
                                      "name": "f",
                                      "nativeSrc": "6570:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6570:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "shl",
                                    "nativeSrc": "6562:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "6562:3:38"
                                  },
                                  "nativeSrc": "6562:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "6562:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "6552:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "6552:2:38"
                              },
                              "nativeSrc": "6552:21:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6552:21:38"
                            },
                            "variableNames": [
                              {
                                "name": "log_2",
                                "nativeSrc": "6543:5:38",
                                "nodeType": "YulIdentifier",
                                "src": "6543:5:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6586:14:38",
                            "nodeType": "YulAssignment",
                            "src": "6586:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "6595:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6595:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "6598:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6598:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6591:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6591:3:38"
                              },
                              "nativeSrc": "6591:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6591:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "6586:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "6586:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6543:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6555:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6473:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6491:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6494:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6528:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6586:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6598:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 44999,
                      "nodeType": "InlineAssembly",
                      "src": "6450:160:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "6628:151:38",
                        "nodeType": "YulBlock",
                        "src": "6628:151:38",
                        "statements": [
                          {
                            "nativeSrc": "6642:24:38",
                            "nodeType": "YulAssignment",
                            "src": "6642:24:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "6651:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "6651:3:38",
                                  "type": "",
                                  "value": "127"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "6660:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6660:1:38"
                                    },
                                    {
                                      "name": "r",
                                      "nativeSrc": "6663:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6663:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nativeSrc": "6656:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "6656:3:38"
                                  },
                                  "nativeSrc": "6656:9:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "6656:9:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6647:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6647:3:38"
                              },
                              "nativeSrc": "6647:19:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6647:19:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "6642:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "6642:1:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6679:20:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "6679:20:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "6692:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "6692:3:38",
                                  "type": "",
                                  "value": "128"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "6697:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6697:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6688:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6688:3:38"
                              },
                              "nativeSrc": "6688:11:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6688:11:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "6683:1:38",
                                "nodeType": "YulTypedName",
                                "src": "6683:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6712:30:38",
                            "nodeType": "YulAssignment",
                            "src": "6712:30:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "log_2",
                                  "nativeSrc": "6724:5:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6724:5:38"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "6735:2:38",
                                      "nodeType": "YulLiteral",
                                      "src": "6735:2:38",
                                      "type": "",
                                      "value": "59"
                                    },
                                    {
                                      "name": "f",
                                      "nativeSrc": "6739:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6739:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "shl",
                                    "nativeSrc": "6731:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "6731:3:38"
                                  },
                                  "nativeSrc": "6731:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "6731:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "6721:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "6721:2:38"
                              },
                              "nativeSrc": "6721:21:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6721:21:38"
                            },
                            "variableNames": [
                              {
                                "name": "log_2",
                                "nativeSrc": "6712:5:38",
                                "nodeType": "YulIdentifier",
                                "src": "6712:5:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6755:14:38",
                            "nodeType": "YulAssignment",
                            "src": "6755:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "6764:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6764:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "6767:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6767:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6760:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6760:3:38"
                              },
                              "nativeSrc": "6760:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6760:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "6755:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "6755:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6712:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6724:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6642:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6660:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6663:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6697:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6755:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6767:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 45000,
                      "nodeType": "InlineAssembly",
                      "src": "6619:160:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "6797:151:38",
                        "nodeType": "YulBlock",
                        "src": "6797:151:38",
                        "statements": [
                          {
                            "nativeSrc": "6811:24:38",
                            "nodeType": "YulAssignment",
                            "src": "6811:24:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "6820:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "6820:3:38",
                                  "type": "",
                                  "value": "127"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "6829:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6829:1:38"
                                    },
                                    {
                                      "name": "r",
                                      "nativeSrc": "6832:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6832:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nativeSrc": "6825:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "6825:3:38"
                                  },
                                  "nativeSrc": "6825:9:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "6825:9:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6816:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6816:3:38"
                              },
                              "nativeSrc": "6816:19:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6816:19:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "6811:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "6811:1:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6848:20:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "6848:20:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "6861:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "6861:3:38",
                                  "type": "",
                                  "value": "128"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "6866:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6866:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6857:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6857:3:38"
                              },
                              "nativeSrc": "6857:11:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6857:11:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "6852:1:38",
                                "nodeType": "YulTypedName",
                                "src": "6852:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6881:30:38",
                            "nodeType": "YulAssignment",
                            "src": "6881:30:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "log_2",
                                  "nativeSrc": "6893:5:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6893:5:38"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "6904:2:38",
                                      "nodeType": "YulLiteral",
                                      "src": "6904:2:38",
                                      "type": "",
                                      "value": "58"
                                    },
                                    {
                                      "name": "f",
                                      "nativeSrc": "6908:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6908:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "shl",
                                    "nativeSrc": "6900:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "6900:3:38"
                                  },
                                  "nativeSrc": "6900:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "6900:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "6890:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "6890:2:38"
                              },
                              "nativeSrc": "6890:21:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6890:21:38"
                            },
                            "variableNames": [
                              {
                                "name": "log_2",
                                "nativeSrc": "6881:5:38",
                                "nodeType": "YulIdentifier",
                                "src": "6881:5:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "6924:14:38",
                            "nodeType": "YulAssignment",
                            "src": "6924:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "6933:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6933:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "6936:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "6936:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6929:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6929:3:38"
                              },
                              "nativeSrc": "6929:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6929:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "6924:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "6924:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6881:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6893:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6811:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6829:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6832:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6866:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6924:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6936:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 45001,
                      "nodeType": "InlineAssembly",
                      "src": "6788:160:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "6966:151:38",
                        "nodeType": "YulBlock",
                        "src": "6966:151:38",
                        "statements": [
                          {
                            "nativeSrc": "6980:24:38",
                            "nodeType": "YulAssignment",
                            "src": "6980:24:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "6989:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "6989:3:38",
                                  "type": "",
                                  "value": "127"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "6998:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "6998:1:38"
                                    },
                                    {
                                      "name": "r",
                                      "nativeSrc": "7001:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7001:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nativeSrc": "6994:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "6994:3:38"
                                  },
                                  "nativeSrc": "6994:9:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "6994:9:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "6985:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "6985:3:38"
                              },
                              "nativeSrc": "6985:19:38",
                              "nodeType": "YulFunctionCall",
                              "src": "6985:19:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "6980:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "6980:1:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7017:20:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "7017:20:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "7030:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "7030:3:38",
                                  "type": "",
                                  "value": "128"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "7035:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7035:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7026:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7026:3:38"
                              },
                              "nativeSrc": "7026:11:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7026:11:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "7021:1:38",
                                "nodeType": "YulTypedName",
                                "src": "7021:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7050:30:38",
                            "nodeType": "YulAssignment",
                            "src": "7050:30:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "log_2",
                                  "nativeSrc": "7062:5:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7062:5:38"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "7073:2:38",
                                      "nodeType": "YulLiteral",
                                      "src": "7073:2:38",
                                      "type": "",
                                      "value": "57"
                                    },
                                    {
                                      "name": "f",
                                      "nativeSrc": "7077:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7077:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "shl",
                                    "nativeSrc": "7069:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "7069:3:38"
                                  },
                                  "nativeSrc": "7069:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "7069:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "7059:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "7059:2:38"
                              },
                              "nativeSrc": "7059:21:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7059:21:38"
                            },
                            "variableNames": [
                              {
                                "name": "log_2",
                                "nativeSrc": "7050:5:38",
                                "nodeType": "YulIdentifier",
                                "src": "7050:5:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7093:14:38",
                            "nodeType": "YulAssignment",
                            "src": "7093:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "7102:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7102:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "7105:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7105:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7098:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7098:3:38"
                              },
                              "nativeSrc": "7098:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7098:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "7093:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "7093:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7050:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7062:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6980:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6998:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7001:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7035:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7093:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7105:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 45002,
                      "nodeType": "InlineAssembly",
                      "src": "6957:160:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "7135:151:38",
                        "nodeType": "YulBlock",
                        "src": "7135:151:38",
                        "statements": [
                          {
                            "nativeSrc": "7149:24:38",
                            "nodeType": "YulAssignment",
                            "src": "7149:24:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "7158:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "7158:3:38",
                                  "type": "",
                                  "value": "127"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "7167:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7167:1:38"
                                    },
                                    {
                                      "name": "r",
                                      "nativeSrc": "7170:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7170:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nativeSrc": "7163:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "7163:3:38"
                                  },
                                  "nativeSrc": "7163:9:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "7163:9:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7154:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7154:3:38"
                              },
                              "nativeSrc": "7154:19:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7154:19:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "7149:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "7149:1:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7186:20:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "7186:20:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "7199:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "7199:3:38",
                                  "type": "",
                                  "value": "128"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "7204:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7204:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7195:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7195:3:38"
                              },
                              "nativeSrc": "7195:11:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7195:11:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "7190:1:38",
                                "nodeType": "YulTypedName",
                                "src": "7190:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7219:30:38",
                            "nodeType": "YulAssignment",
                            "src": "7219:30:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "log_2",
                                  "nativeSrc": "7231:5:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7231:5:38"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "7242:2:38",
                                      "nodeType": "YulLiteral",
                                      "src": "7242:2:38",
                                      "type": "",
                                      "value": "56"
                                    },
                                    {
                                      "name": "f",
                                      "nativeSrc": "7246:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7246:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "shl",
                                    "nativeSrc": "7238:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "7238:3:38"
                                  },
                                  "nativeSrc": "7238:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "7238:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "7228:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "7228:2:38"
                              },
                              "nativeSrc": "7228:21:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7228:21:38"
                            },
                            "variableNames": [
                              {
                                "name": "log_2",
                                "nativeSrc": "7219:5:38",
                                "nodeType": "YulIdentifier",
                                "src": "7219:5:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7262:14:38",
                            "nodeType": "YulAssignment",
                            "src": "7262:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "7271:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7271:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "7274:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7274:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7267:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7267:3:38"
                              },
                              "nativeSrc": "7267:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7267:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "7262:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "7262:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7219:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7231:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7149:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7167:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7170:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7204:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7262:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7274:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 45003,
                      "nodeType": "InlineAssembly",
                      "src": "7126:160:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "7304:151:38",
                        "nodeType": "YulBlock",
                        "src": "7304:151:38",
                        "statements": [
                          {
                            "nativeSrc": "7318:24:38",
                            "nodeType": "YulAssignment",
                            "src": "7318:24:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "7327:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "7327:3:38",
                                  "type": "",
                                  "value": "127"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "7336:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7336:1:38"
                                    },
                                    {
                                      "name": "r",
                                      "nativeSrc": "7339:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7339:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nativeSrc": "7332:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "7332:3:38"
                                  },
                                  "nativeSrc": "7332:9:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "7332:9:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7323:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7323:3:38"
                              },
                              "nativeSrc": "7323:19:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7323:19:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "7318:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "7318:1:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7355:20:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "7355:20:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "7368:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "7368:3:38",
                                  "type": "",
                                  "value": "128"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "7373:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7373:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7364:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7364:3:38"
                              },
                              "nativeSrc": "7364:11:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7364:11:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "7359:1:38",
                                "nodeType": "YulTypedName",
                                "src": "7359:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7388:30:38",
                            "nodeType": "YulAssignment",
                            "src": "7388:30:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "log_2",
                                  "nativeSrc": "7400:5:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7400:5:38"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "7411:2:38",
                                      "nodeType": "YulLiteral",
                                      "src": "7411:2:38",
                                      "type": "",
                                      "value": "55"
                                    },
                                    {
                                      "name": "f",
                                      "nativeSrc": "7415:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7415:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "shl",
                                    "nativeSrc": "7407:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "7407:3:38"
                                  },
                                  "nativeSrc": "7407:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "7407:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "7397:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "7397:2:38"
                              },
                              "nativeSrc": "7397:21:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7397:21:38"
                            },
                            "variableNames": [
                              {
                                "name": "log_2",
                                "nativeSrc": "7388:5:38",
                                "nodeType": "YulIdentifier",
                                "src": "7388:5:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7431:14:38",
                            "nodeType": "YulAssignment",
                            "src": "7431:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "7440:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7440:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "7443:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7443:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7436:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7436:3:38"
                              },
                              "nativeSrc": "7436:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7436:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "7431:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "7431:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7388:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7400:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7318:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7336:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7339:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7373:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7431:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7443:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 45004,
                      "nodeType": "InlineAssembly",
                      "src": "7295:160:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "7473:151:38",
                        "nodeType": "YulBlock",
                        "src": "7473:151:38",
                        "statements": [
                          {
                            "nativeSrc": "7487:24:38",
                            "nodeType": "YulAssignment",
                            "src": "7487:24:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "7496:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "7496:3:38",
                                  "type": "",
                                  "value": "127"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "7505:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7505:1:38"
                                    },
                                    {
                                      "name": "r",
                                      "nativeSrc": "7508:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7508:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nativeSrc": "7501:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "7501:3:38"
                                  },
                                  "nativeSrc": "7501:9:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "7501:9:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7492:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7492:3:38"
                              },
                              "nativeSrc": "7492:19:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7492:19:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "7487:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "7487:1:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7524:20:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "7524:20:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "7537:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "7537:3:38",
                                  "type": "",
                                  "value": "128"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "7542:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7542:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7533:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7533:3:38"
                              },
                              "nativeSrc": "7533:11:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7533:11:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "7528:1:38",
                                "nodeType": "YulTypedName",
                                "src": "7528:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7557:30:38",
                            "nodeType": "YulAssignment",
                            "src": "7557:30:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "log_2",
                                  "nativeSrc": "7569:5:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7569:5:38"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "7580:2:38",
                                      "nodeType": "YulLiteral",
                                      "src": "7580:2:38",
                                      "type": "",
                                      "value": "54"
                                    },
                                    {
                                      "name": "f",
                                      "nativeSrc": "7584:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7584:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "shl",
                                    "nativeSrc": "7576:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "7576:3:38"
                                  },
                                  "nativeSrc": "7576:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "7576:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "7566:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "7566:2:38"
                              },
                              "nativeSrc": "7566:21:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7566:21:38"
                            },
                            "variableNames": [
                              {
                                "name": "log_2",
                                "nativeSrc": "7557:5:38",
                                "nodeType": "YulIdentifier",
                                "src": "7557:5:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7600:14:38",
                            "nodeType": "YulAssignment",
                            "src": "7600:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "7609:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7609:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "7612:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7612:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7605:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7605:3:38"
                              },
                              "nativeSrc": "7605:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7605:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "7600:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "7600:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7557:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7569:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7487:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7505:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7508:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7542:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7600:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7612:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 45005,
                      "nodeType": "InlineAssembly",
                      "src": "7464:160:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "7642:151:38",
                        "nodeType": "YulBlock",
                        "src": "7642:151:38",
                        "statements": [
                          {
                            "nativeSrc": "7656:24:38",
                            "nodeType": "YulAssignment",
                            "src": "7656:24:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "7665:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "7665:3:38",
                                  "type": "",
                                  "value": "127"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "7674:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7674:1:38"
                                    },
                                    {
                                      "name": "r",
                                      "nativeSrc": "7677:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7677:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nativeSrc": "7670:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "7670:3:38"
                                  },
                                  "nativeSrc": "7670:9:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "7670:9:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7661:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7661:3:38"
                              },
                              "nativeSrc": "7661:19:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7661:19:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "7656:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "7656:1:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7693:20:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "7693:20:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "7706:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "7706:3:38",
                                  "type": "",
                                  "value": "128"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "7711:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7711:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7702:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7702:3:38"
                              },
                              "nativeSrc": "7702:11:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7702:11:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "7697:1:38",
                                "nodeType": "YulTypedName",
                                "src": "7697:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7726:30:38",
                            "nodeType": "YulAssignment",
                            "src": "7726:30:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "log_2",
                                  "nativeSrc": "7738:5:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7738:5:38"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "7749:2:38",
                                      "nodeType": "YulLiteral",
                                      "src": "7749:2:38",
                                      "type": "",
                                      "value": "53"
                                    },
                                    {
                                      "name": "f",
                                      "nativeSrc": "7753:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7753:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "shl",
                                    "nativeSrc": "7745:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "7745:3:38"
                                  },
                                  "nativeSrc": "7745:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "7745:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "7735:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "7735:2:38"
                              },
                              "nativeSrc": "7735:21:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7735:21:38"
                            },
                            "variableNames": [
                              {
                                "name": "log_2",
                                "nativeSrc": "7726:5:38",
                                "nodeType": "YulIdentifier",
                                "src": "7726:5:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7769:14:38",
                            "nodeType": "YulAssignment",
                            "src": "7769:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "7778:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7778:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "7781:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7781:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7774:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7774:3:38"
                              },
                              "nativeSrc": "7774:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7774:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "7769:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "7769:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7726:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7738:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7656:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7674:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7677:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7711:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7769:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7781:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 45006,
                      "nodeType": "InlineAssembly",
                      "src": "7633:160:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "7811:151:38",
                        "nodeType": "YulBlock",
                        "src": "7811:151:38",
                        "statements": [
                          {
                            "nativeSrc": "7825:24:38",
                            "nodeType": "YulAssignment",
                            "src": "7825:24:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "7834:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "7834:3:38",
                                  "type": "",
                                  "value": "127"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "7843:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7843:1:38"
                                    },
                                    {
                                      "name": "r",
                                      "nativeSrc": "7846:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7846:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nativeSrc": "7839:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "7839:3:38"
                                  },
                                  "nativeSrc": "7839:9:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "7839:9:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7830:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7830:3:38"
                              },
                              "nativeSrc": "7830:19:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7830:19:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "7825:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "7825:1:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7862:20:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "7862:20:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "7875:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "7875:3:38",
                                  "type": "",
                                  "value": "128"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "7880:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7880:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7871:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7871:3:38"
                              },
                              "nativeSrc": "7871:11:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7871:11:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "7866:1:38",
                                "nodeType": "YulTypedName",
                                "src": "7866:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7895:30:38",
                            "nodeType": "YulAssignment",
                            "src": "7895:30:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "log_2",
                                  "nativeSrc": "7907:5:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7907:5:38"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "7918:2:38",
                                      "nodeType": "YulLiteral",
                                      "src": "7918:2:38",
                                      "type": "",
                                      "value": "52"
                                    },
                                    {
                                      "name": "f",
                                      "nativeSrc": "7922:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "7922:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "shl",
                                    "nativeSrc": "7914:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "7914:3:38"
                                  },
                                  "nativeSrc": "7914:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "7914:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "7904:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "7904:2:38"
                              },
                              "nativeSrc": "7904:21:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7904:21:38"
                            },
                            "variableNames": [
                              {
                                "name": "log_2",
                                "nativeSrc": "7895:5:38",
                                "nodeType": "YulIdentifier",
                                "src": "7895:5:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "7938:14:38",
                            "nodeType": "YulAssignment",
                            "src": "7938:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "7947:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7947:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "7950:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "7950:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7943:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7943:3:38"
                              },
                              "nativeSrc": "7943:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7943:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "7938:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "7938:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7895:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7907:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7825:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7843:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7846:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7880:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7938:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7950:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 45007,
                      "nodeType": "InlineAssembly",
                      "src": "7802:160:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "7980:151:38",
                        "nodeType": "YulBlock",
                        "src": "7980:151:38",
                        "statements": [
                          {
                            "nativeSrc": "7994:24:38",
                            "nodeType": "YulAssignment",
                            "src": "7994:24:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "8003:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "8003:3:38",
                                  "type": "",
                                  "value": "127"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "8012:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "8012:1:38"
                                    },
                                    {
                                      "name": "r",
                                      "nativeSrc": "8015:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "8015:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nativeSrc": "8008:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "8008:3:38"
                                  },
                                  "nativeSrc": "8008:9:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "8008:9:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "7999:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "7999:3:38"
                              },
                              "nativeSrc": "7999:19:38",
                              "nodeType": "YulFunctionCall",
                              "src": "7999:19:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "7994:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "7994:1:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "8031:20:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "8031:20:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "8044:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "8044:3:38",
                                  "type": "",
                                  "value": "128"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "8049:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "8049:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "8040:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "8040:3:38"
                              },
                              "nativeSrc": "8040:11:38",
                              "nodeType": "YulFunctionCall",
                              "src": "8040:11:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "8035:1:38",
                                "nodeType": "YulTypedName",
                                "src": "8035:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "8064:30:38",
                            "nodeType": "YulAssignment",
                            "src": "8064:30:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "log_2",
                                  "nativeSrc": "8076:5:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "8076:5:38"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "8087:2:38",
                                      "nodeType": "YulLiteral",
                                      "src": "8087:2:38",
                                      "type": "",
                                      "value": "51"
                                    },
                                    {
                                      "name": "f",
                                      "nativeSrc": "8091:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "8091:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "shl",
                                    "nativeSrc": "8083:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "8083:3:38"
                                  },
                                  "nativeSrc": "8083:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "8083:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "8073:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "8073:2:38"
                              },
                              "nativeSrc": "8073:21:38",
                              "nodeType": "YulFunctionCall",
                              "src": "8073:21:38"
                            },
                            "variableNames": [
                              {
                                "name": "log_2",
                                "nativeSrc": "8064:5:38",
                                "nodeType": "YulIdentifier",
                                "src": "8064:5:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "8107:14:38",
                            "nodeType": "YulAssignment",
                            "src": "8107:14:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "f",
                                  "nativeSrc": "8116:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "8116:1:38"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "8119:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "8119:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "8112:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "8112:3:38"
                              },
                              "nativeSrc": "8112:9:38",
                              "nodeType": "YulFunctionCall",
                              "src": "8112:9:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "8107:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "8107:1:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8064:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8076:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7994:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8012:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8015:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8049:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8107:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8119:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 45008,
                      "nodeType": "InlineAssembly",
                      "src": "7971:160:38"
                    },
                    {
                      "AST": {
                        "nativeSrc": "8149:124:38",
                        "nodeType": "YulBlock",
                        "src": "8149:124:38",
                        "statements": [
                          {
                            "nativeSrc": "8163:24:38",
                            "nodeType": "YulAssignment",
                            "src": "8163:24:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "8172:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "8172:3:38",
                                  "type": "",
                                  "value": "127"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "r",
                                      "nativeSrc": "8181:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "8181:1:38"
                                    },
                                    {
                                      "name": "r",
                                      "nativeSrc": "8184:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "8184:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nativeSrc": "8177:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "8177:3:38"
                                  },
                                  "nativeSrc": "8177:9:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "8177:9:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "8168:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "8168:3:38"
                              },
                              "nativeSrc": "8168:19:38",
                              "nodeType": "YulFunctionCall",
                              "src": "8168:19:38"
                            },
                            "variableNames": [
                              {
                                "name": "r",
                                "nativeSrc": "8163:1:38",
                                "nodeType": "YulIdentifier",
                                "src": "8163:1:38"
                              }
                            ]
                          },
                          {
                            "nativeSrc": "8200:20:38",
                            "nodeType": "YulVariableDeclaration",
                            "src": "8200:20:38",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nativeSrc": "8213:3:38",
                                  "nodeType": "YulLiteral",
                                  "src": "8213:3:38",
                                  "type": "",
                                  "value": "128"
                                },
                                {
                                  "name": "r",
                                  "nativeSrc": "8218:1:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "8218:1:38"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nativeSrc": "8209:3:38",
                                "nodeType": "YulIdentifier",
                                "src": "8209:3:38"
                              },
                              "nativeSrc": "8209:11:38",
                              "nodeType": "YulFunctionCall",
                              "src": "8209:11:38"
                            },
                            "variables": [
                              {
                                "name": "f",
                                "nativeSrc": "8204:1:38",
                                "nodeType": "YulTypedName",
                                "src": "8204:1:38",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nativeSrc": "8233:30:38",
                            "nodeType": "YulAssignment",
                            "src": "8233:30:38",
                            "value": {
                              "arguments": [
                                {
                                  "name": "log_2",
                                  "nativeSrc": "8245:5:38",
                                  "nodeType": "YulIdentifier",
                                  "src": "8245:5:38"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nativeSrc": "8256:2:38",
                                      "nodeType": "YulLiteral",
                                      "src": "8256:2:38",
                                      "type": "",
                                      "value": "50"
                                    },
                                    {
                                      "name": "f",
                                      "nativeSrc": "8260:1:38",
                                      "nodeType": "YulIdentifier",
                                      "src": "8260:1:38"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "shl",
                                    "nativeSrc": "8252:3:38",
                                    "nodeType": "YulIdentifier",
                                    "src": "8252:3:38"
                                  },
                                  "nativeSrc": "8252:10:38",
                                  "nodeType": "YulFunctionCall",
                                  "src": "8252:10:38"
                                }
                              ],
                              "functionName": {
                                "name": "or",
                                "nativeSrc": "8242:2:38",
                                "nodeType": "YulIdentifier",
                                "src": "8242:2:38"
                              },
                              "nativeSrc": "8242:21:38",
                              "nodeType": "YulFunctionCall",
                              "src": "8242:21:38"
                            },
                            "variableNames": [
                              {
                                "name": "log_2",
                                "nativeSrc": "8233:5:38",
                                "nodeType": "YulIdentifier",
                                "src": "8233:5:38"
                              }
                            ]
                          }
                        ]
                      },
                      "evmVersion": "paris",
                      "externalReferences": [
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8233:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44985,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8245:5:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8163:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8181:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8184:1:38",
                          "valueSize": 1
                        },
                        {
                          "declaration": 44947,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8218:1:38",
                          "valueSize": 1
                        }
                      ],
                      "id": 45009,
                      "nodeType": "InlineAssembly",
                      "src": "8140:133:38"
                    },
                    {
                      "assignments": [
                        45011
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 45011,
                          "mutability": "mutable",
                          "name": "log_sqrt10001",
                          "nameLocation": "8290:13:38",
                          "nodeType": "VariableDeclaration",
                          "scope": 45056,
                          "src": "8283:20:38",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "typeName": {
                            "id": 45010,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "8283:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 45015,
                      "initialValue": {
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 45014,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 45012,
                          "name": "log_2",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44985,
                          "src": "8306:5:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "*",
                        "rightExpression": {
                          "hexValue": "323535373338393538393939363033383236333437313431",
                          "id": 45013,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8314:24:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_255738958999603826347141_by_1",
                            "typeString": "int_const 255738958999603826347141"
                          },
                          "value": "255738958999603826347141"
                        },
                        "src": "8306:32:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "8283:55:38"
                    },
                    {
                      "assignments": [
                        45017
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 45017,
                          "mutability": "mutable",
                          "name": "tickLow",
                          "nameLocation": "8373:7:38",
                          "nodeType": "VariableDeclaration",
                          "scope": 45056,
                          "src": "8367:13:38",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          },
                          "typeName": {
                            "id": 45016,
                            "name": "int24",
                            "nodeType": "ElementaryTypeName",
                            "src": "8367:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int24",
                              "typeString": "int24"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 45027,
                      "initialValue": {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "id": 45025,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "id": 45022,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 45020,
                                    "name": "log_sqrt10001",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 45011,
                                    "src": "8390:13:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "-",
                                  "rightExpression": {
                                    "hexValue": "33343032393932393536383039313332343138353936313430313030363630323437323130",
                                    "id": 45021,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8406:37:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_3402992956809132418596140100660247210_by_1",
                                      "typeString": "int_const 3402...(29 digits omitted)...7210"
                                    },
                                    "value": "3402992956809132418596140100660247210"
                                  },
                                  "src": "8390:53:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                }
                              ],
                              "id": 45023,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "8389:55:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 45024,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8448:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "8389:62:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 45019,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8383:5:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int24_$",
                            "typeString": "type(int24)"
                          },
                          "typeName": {
                            "id": 45018,
                            "name": "int24",
                            "nodeType": "ElementaryTypeName",
                            "src": "8383:5:38",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 45026,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8383:69:38",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "8367:85:38"
                    },
                    {
                      "assignments": [
                        45029
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 45029,
                          "mutability": "mutable",
                          "name": "tickHi",
                          "nameLocation": "8468:6:38",
                          "nodeType": "VariableDeclaration",
                          "scope": 45056,
                          "src": "8462:12:38",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          },
                          "typeName": {
                            "id": 45028,
                            "name": "int24",
                            "nodeType": "ElementaryTypeName",
                            "src": "8462:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int24",
                              "typeString": "int24"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 45039,
                      "initialValue": {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "id": 45037,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "id": 45034,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 45032,
                                    "name": "log_sqrt10001",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 45011,
                                    "src": "8484:13:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "hexValue": "323931333339343634373731393839363232393037303237363231313533333938303838343935",
                                    "id": 45033,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8500:39:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_291339464771989622907027621153398088495_by_1",
                                      "typeString": "int_const 2913...(31 digits omitted)...8495"
                                    },
                                    "value": "291339464771989622907027621153398088495"
                                  },
                                  "src": "8484:55:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                }
                              ],
                              "id": 45035,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "8483:57:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 45036,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8544:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "8483:64:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 45031,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8477:5:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int24_$",
                            "typeString": "type(int24)"
                          },
                          "typeName": {
                            "id": 45030,
                            "name": "int24",
                            "nodeType": "ElementaryTypeName",
                            "src": "8477:5:38",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 45038,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8477:71:38",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "8462:86:38"
                    },
                    {
                      "expression": {
                        "id": 45054,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "id": 45040,
                          "name": "tick",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44924,
                          "src": "8559:4:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_int24",
                              "typeString": "int24"
                            },
                            "id": 45043,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 45041,
                              "name": "tickLow",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 45017,
                              "src": "8566:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "id": 45042,
                              "name": "tickHi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 45029,
                              "src": "8577:6:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            },
                            "src": "8566:17:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "condition": {
                              "commonType": {
                                "typeIdentifier": "t_uint160",
                                "typeString": "uint160"
                              },
                              "id": 45049,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "arguments": [
                                  {
                                    "id": 45046,
                                    "name": "tickHi",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 45029,
                                    "src": "8615:6:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    }
                                  ],
                                  "id": 45045,
                                  "name": "getSqrtRatioAtTick",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 44918,
                                  "src": "8596:18:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_int24_$returns$_t_uint160_$",
                                    "typeString": "function (int24) pure returns (uint160)"
                                  }
                                },
                                "id": 45047,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8596:26:38",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "id": 45048,
                                "name": "sqrtPriceX96",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 44921,
                                "src": "8626:12:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint160",
                                  "typeString": "uint160"
                                }
                              },
                              "src": "8596:42:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseExpression": {
                              "id": 45051,
                              "name": "tickLow",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 45017,
                              "src": "8650:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            },
                            "id": 45052,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "Conditional",
                            "src": "8596:61:38",
                            "trueExpression": {
                              "id": 45050,
                              "name": "tickHi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 45029,
                              "src": "8641:6:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_int24",
                              "typeString": "int24"
                            }
                          },
                          "id": 45053,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "8566:91:38",
                          "trueExpression": {
                            "id": 45044,
                            "name": "tickLow",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45017,
                            "src": "8586:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int24",
                              "typeString": "int24"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "src": "8559:98:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "id": 45055,
                      "nodeType": "ExpressionStatement",
                      "src": "8559:98:38"
                    }
                  ]
                }
              ]
            },
            "documentation": {
              "id": 44919,
              "nodeType": "StructuredDocumentation",
              "src": "3960:408:38",
              "text": "@notice Calculates the greatest tick value such that getRatioAtTick(tick) <= ratio\n @dev Throws in case sqrtPriceX96 < MIN_SQRT_RATIO, as MIN_SQRT_RATIO is the lowest value getRatioAtTick may\n ever return.\n @param sqrtPriceX96 The sqrt ratio for which to compute the tick as a Q64.96\n @return tick The greatest tick for which the ratio is less than or equal to the input ratio"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getTickAtSqrtRatio",
            "nameLocation": "4382:18:38",
            "parameters": {
              "id": 44922,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44921,
                  "mutability": "mutable",
                  "name": "sqrtPriceX96",
                  "nameLocation": "4409:12:38",
                  "nodeType": "VariableDeclaration",
                  "scope": 45058,
                  "src": "4401:20:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint160",
                    "typeString": "uint160"
                  },
                  "typeName": {
                    "id": 44920,
                    "name": "uint160",
                    "nodeType": "ElementaryTypeName",
                    "src": "4401:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4400:22:38"
            },
            "returnParameters": {
              "id": 44925,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44924,
                  "mutability": "mutable",
                  "name": "tick",
                  "nameLocation": "4452:4:38",
                  "nodeType": "VariableDeclaration",
                  "scope": 45058,
                  "src": "4446:10:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 44923,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "4446:5:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4445:12:38"
            },
            "scope": 45059,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "abstract": false,
        "baseContracts": [],
        "canonicalName": "TickMath",
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": {
          "id": 44522,
          "nodeType": "StructuredDocumentation",
          "src": "71:235:38",
          "text": "@title Math library for computing sqrt prices from ticks and vice versa\n @notice Computes sqrt price for ticks of size 1.0001, i.e. sqrt(1.0001^tick) as fixed point Q64.96 numbers. Supports\n prices between 2**-128 and 2**128"
        },
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          45059
        ],
        "name": "TickMath",
        "nameLocation": "314:8:38",
        "scope": 45060,
        "usedErrors": [],
        "usedEvents": []
      }
    ],
    "license": "GPL-2.0-or-later"
  },
  "id": 38
}