{
  "contractName": "TickLens",
  "abi": [],
  "metadata": "{\"compiler\":{\"version\":\"0.6.8+commit.0bbfe453\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/uniswap/TickLens.sol\":\"TickLens\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/uniswap/IUniswapV3Pool.sol\":{\"keccak256\":\"0xe957ed4e407f0286c022184f451aa37cc0949b6a0d35415932a8c8fe00cb98b9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://afb6131e293dec2a54d43353b0a4063070a7534cc913de30feeebedc9c801c28\",\"dweb:/ipfs/QmfDgaBfrnvjBUhR69tN1c2XYCi17ofVL7QkJY68LW9bZ7\"]},\"project:/contracts/interfaces/uniswap/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"project:/contracts/interfaces/uniswap/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"project:/contracts/interfaces/uniswap/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"project:/contracts/interfaces/uniswap/TickLens.sol\":{\"keccak256\":\"0x675e09d7d3af3480552f2d975b92bd2807a625a1844199422cec05f2f4a368e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37d270f352a2e6a5eb4d0095f64beaa0b7cac8c5d5a615a002264126134aaf03\",\"dweb:/ipfs/Qmbnz7gdHPTLrkhpjEADKVfx1BWayqssQovv9XHPYsSjP6\"]},\"project:/contracts/interfaces/uniswap/TickMath.sol\":{\"keccak256\":\"0xda8c2c0b12d2976acfd364453ba5f5bf0117ba3c91175ee9e1067d3fb26944d9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://3f3d2d7c2723c91830c74d96292f28fc1cfe28d388cdb9c1a5ebadb4c2b96f81\",\"dweb:/ipfs/QmYU4wk8MEm33wVWR38LoncvR7b8PP1mLuGBKX3dUpYJVE\"]}},\"version\":1}",
  "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205f75d1706730ee3473790c4561c9c06b95c639a514fdc25178d6703f25d0924a64736f6c63430006080033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205f75d1706730ee3473790c4561c9c06b95c639a514fdc25178d6703f25d0924a64736f6c63430006080033",
  "immutableReferences": {},
  "sourceMap": "156:5201:42:-:0;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24",
  "deployedSourceMap": "156:5201:42:-:0;;;;;;12:1:-1;9;2:12",
  "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.0 <0.8.0;\npragma experimental ABIEncoderV2;\n\nimport \"./IUniswapV3Pool.sol\";\nimport \"./TickMath.sol\";\n\nlibrary TickLens {\n    struct PopulatedTick {\n        int24 tick;\n        int128 liquidityNet;\n        uint128 liquidityGross;\n    }\n\n    // getPoolTicks returns populated ticks from the Uniswapv3 pool.\n    // To keep things reasonably performant it only tries to fetch 5 populated tick words.\n    // populatedTicks are not sorted, thus it is up to the user to sort them appropriately.\n    function getPoolTicks(\n        IUniswapV3Pool pool,\n        int16 maxLoopN\n    )\n        internal\n        view\n        returns (\n            uint160 sqrtPriceX96,\n            int24 tick,\n            uint128 liquidity,\n            PopulatedTick[] memory populatedTicks0,\n            PopulatedTick[] memory populatedTicks1,\n            PopulatedTick[] memory populatedTicks2,\n            PopulatedTick[] memory populatedTicks3,\n            PopulatedTick[] memory populatedTicks4\n        )\n    {\n        (\n            sqrtPriceX96,\n            tick, // uint16 observationIndex\n            // uint16 observationCardinality\n            // uint16 observationCardinalityNext\n            // uint8 feeProtocol\n            // bool unlocked\n            ,\n            ,\n            ,\n            ,\n\n        ) = pool.slot0();\n        liquidity = pool.liquidity();\n\n        int24 tickSpacing = pool.tickSpacing();\n        int24 compressed = tick / tickSpacing;\n        if (tick < 0 && tick % tickSpacing != 0) compressed--; // round towards negative infinity\n\n        // current word position within bitmap\n        int16 tickBitmapIndex = int16(compressed >> 8);\n\n        // get the populated ticks near current tick.\n        int16 boundTickBitmapIndex = tickBitmapIndex + maxLoopN / 2;\n        int16 nextBitmapIndex = tickBitmapIndex;\n        (populatedTicks0, nextBitmapIndex) = nextPopulatedTick(\n            pool,\n            nextBitmapIndex,\n            boundTickBitmapIndex\n        );\n        (populatedTicks1, nextBitmapIndex) = nextPopulatedTick(\n            pool,\n            nextBitmapIndex,\n            boundTickBitmapIndex\n        );\n        (populatedTicks2, nextBitmapIndex) = nextPopulatedTick(\n            pool,\n            nextBitmapIndex,\n            boundTickBitmapIndex\n        );\n\n        boundTickBitmapIndex = tickBitmapIndex - maxLoopN / 2;\n        nextBitmapIndex = tickBitmapIndex - 1;\n        (populatedTicks3, nextBitmapIndex) = prevPopulatedTick(\n            pool,\n            nextBitmapIndex,\n            boundTickBitmapIndex\n        );\n        (populatedTicks4, nextBitmapIndex) = prevPopulatedTick(\n            pool,\n            nextBitmapIndex,\n            boundTickBitmapIndex\n        );\n    }\n\n    function nextPopulatedTick(\n        IUniswapV3Pool pool,\n        int16 tickBitmapIndex,\n        int16 maxTickBitmapIndex\n    )\n        internal\n        view\n        returns (PopulatedTick[] memory populatedTicks, int16 nextBitmapIndex)\n    {\n        for (\n            nextBitmapIndex = tickBitmapIndex;\n            nextBitmapIndex <= maxTickBitmapIndex && populatedTicks.length == 0;\n            nextBitmapIndex += 1\n        ) {\n            uint256 bitmap = pool.tickBitmap(nextBitmapIndex);\n            if (bitmap > 0) {\n                populatedTicks = getPopulatedTicksInWord(\n                    pool,\n                    nextBitmapIndex,\n                    bitmap\n                );\n            }\n        }\n    }\n\n    function prevPopulatedTick(\n        IUniswapV3Pool pool,\n        int16 tickBitmapIndex,\n        int16 minTickBitmapIndex\n    )\n        internal\n        view\n        returns (PopulatedTick[] memory populatedTicks, int16 nextBitmapIndex)\n    {\n        for (\n            nextBitmapIndex = tickBitmapIndex;\n            nextBitmapIndex >= minTickBitmapIndex && populatedTicks.length == 0;\n            nextBitmapIndex -= 1\n        ) {\n            uint256 bitmap = pool.tickBitmap(nextBitmapIndex);\n            if (bitmap > 0) {\n                populatedTicks = getPopulatedTicksInWord(\n                    pool,\n                    nextBitmapIndex,\n                    bitmap\n                );\n            }\n        }\n    }\n\n    function getPopulatedTicksInWord(\n        IUniswapV3Pool pool,\n        int16 tickBitmapIndex,\n        uint256 bitmap\n    ) internal view returns (PopulatedTick[] memory populatedTicks) {\n        // calculate the number of populated ticks\n        uint256 numberOfPopulatedTicks;\n        for (uint256 i = 0; i < 256; i++) {\n            if (bitmap & (1 << i) > 0) numberOfPopulatedTicks++;\n        }\n\n        // fetch populated tick data\n        int24 tickSpacing = pool.tickSpacing();\n        populatedTicks = new PopulatedTick[](numberOfPopulatedTicks);\n        for (uint256 i = 0; i < 256; i++) {\n            if (bitmap & (1 << i) > 0) {\n                int24 populatedTick = ((int24(tickBitmapIndex) << 8) +\n                    int24(i)) * tickSpacing;\n                (uint128 liquidityGross, int128 liquidityNet, , , , , , ) = pool\n                    .ticks(populatedTick);\n                populatedTicks[--numberOfPopulatedTicks] = PopulatedTick({\n                    tick: populatedTick,\n                    liquidityNet: liquidityNet,\n                    liquidityGross: liquidityGross\n                });\n            }\n        }\n    }\n}\n",
  "sourcePath": "/home/thezviad_gmail_com/src/swappa/contracts/interfaces/uniswap/TickLens.sol",
  "ast": {
    "absolutePath": "project:/contracts/interfaces/uniswap/TickLens.sol",
    "exportedSymbols": {
      "TickLens": [
        4751
      ]
    },
    "id": 4752,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4367,
        "literals": [
          "solidity",
          ">=",
          "0.4",
          ".0",
          "<",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "32:31:42"
      },
      {
        "id": 4368,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "64:33:42"
      },
      {
        "absolutePath": "project:/contracts/interfaces/uniswap/IUniswapV3Pool.sol",
        "file": "./IUniswapV3Pool.sol",
        "id": 4369,
        "nodeType": "ImportDirective",
        "scope": 4752,
        "sourceUnit": 2822,
        "src": "99:30:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/interfaces/uniswap/TickMath.sol",
        "file": "./TickMath.sol",
        "id": 4370,
        "nodeType": "ImportDirective",
        "scope": 4752,
        "sourceUnit": 5283,
        "src": "130:24:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": null,
        "fullyImplemented": true,
        "id": 4751,
        "linearizedBaseContracts": [
          4751
        ],
        "name": "TickLens",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "TickLens.PopulatedTick",
            "id": 4377,
            "members": [
              {
                "constant": false,
                "id": 4372,
                "mutability": "mutable",
                "name": "tick",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 4377,
                "src": "210:10:42",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_int24",
                  "typeString": "int24"
                },
                "typeName": {
                  "id": 4371,
                  "name": "int24",
                  "nodeType": "ElementaryTypeName",
                  "src": "210:5:42",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4374,
                "mutability": "mutable",
                "name": "liquidityNet",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 4377,
                "src": "230:19:42",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_int128",
                  "typeString": "int128"
                },
                "typeName": {
                  "id": 4373,
                  "name": "int128",
                  "nodeType": "ElementaryTypeName",
                  "src": "230:6:42",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 4376,
                "mutability": "mutable",
                "name": "liquidityGross",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 4377,
                "src": "259:22:42",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint128",
                  "typeString": "uint128"
                },
                "typeName": {
                  "id": 4375,
                  "name": "uint128",
                  "nodeType": "ElementaryTypeName",
                  "src": "259:7:42",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint128",
                    "typeString": "uint128"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "PopulatedTick",
            "nodeType": "StructDefinition",
            "scope": 4751,
            "src": "179:109:42",
            "visibility": "public"
          },
          {
            "body": {
              "id": 4529,
              "nodeType": "Block",
              "src": "1037:1722:42",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4411,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 4405,
                          "name": "sqrtPriceX96",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4384,
                          "src": "1061:12:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint160",
                            "typeString": "uint160"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4406,
                          "name": "tick",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4386,
                          "src": "1087:4:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        null,
                        null,
                        null,
                        null,
                        null
                      ],
                      "id": 4407,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "1047:295:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint160_$_t_int24_$__$__$__$__$__$",
                        "typeString": "tuple(uint160,int24,,,,,)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "id": 4408,
                          "name": "pool",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4379,
                          "src": "1345:4:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                            "typeString": "contract IUniswapV3Pool"
                          }
                        },
                        "id": 4409,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "slot0",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 2978,
                        "src": "1345:10:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_uint160_$_t_int24_$_t_uint16_$_t_uint16_$_t_uint16_$_t_uint8_$_t_bool_$",
                          "typeString": "function () view external returns (uint160,int24,uint16,uint16,uint16,uint8,bool)"
                        }
                      },
                      "id": 4410,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1345:12:42",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint160_$_t_int24_$_t_uint16_$_t_uint16_$_t_uint16_$_t_uint8_$_t_bool_$",
                        "typeString": "tuple(uint160,int24,uint16,uint16,uint16,uint8,bool)"
                      }
                    },
                    "src": "1047:310:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4412,
                  "nodeType": "ExpressionStatement",
                  "src": "1047:310:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4417,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4413,
                      "name": "liquidity",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4388,
                      "src": "1367:9:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint128",
                        "typeString": "uint128"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "id": 4414,
                          "name": "pool",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4379,
                          "src": "1379:4:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                            "typeString": "contract IUniswapV3Pool"
                          }
                        },
                        "id": 4415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "liquidity",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3004,
                        "src": "1379:14:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_uint128_$",
                          "typeString": "function () view external returns (uint128)"
                        }
                      },
                      "id": 4416,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1379:16:42",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint128",
                        "typeString": "uint128"
                      }
                    },
                    "src": "1367:28:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    }
                  },
                  "id": 4418,
                  "nodeType": "ExpressionStatement",
                  "src": "1367:28:42"
                },
                {
                  "assignments": [
                    4420
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4420,
                      "mutability": "mutable",
                      "name": "tickSpacing",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4529,
                      "src": "1406:17:42",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      },
                      "typeName": {
                        "id": 4419,
                        "name": "int24",
                        "nodeType": "ElementaryTypeName",
                        "src": "1406:5:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4424,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 4421,
                        "name": "pool",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4379,
                        "src": "1426:4:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                          "typeString": "contract IUniswapV3Pool"
                        }
                      },
                      "id": 4422,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "tickSpacing",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2950,
                      "src": "1426:16:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_int24_$",
                        "typeString": "function () view external returns (int24)"
                      }
                    },
                    "id": 4423,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1426:18:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1406:38:42"
                },
                {
                  "assignments": [
                    4426
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4426,
                      "mutability": "mutable",
                      "name": "compressed",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4529,
                      "src": "1454:16:42",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      },
                      "typeName": {
                        "id": 4425,
                        "name": "int24",
                        "nodeType": "ElementaryTypeName",
                        "src": "1454:5:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4430,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    },
                    "id": 4429,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4427,
                      "name": "tick",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4386,
                      "src": "1473:4:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 4428,
                      "name": "tickSpacing",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4420,
                      "src": "1480:11:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      }
                    },
                    "src": "1473:18:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1454:37:42"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 4439,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      },
                      "id": 4433,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 4431,
                        "name": "tick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4386,
                        "src": "1505:4:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4432,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1512:1:42",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "1505:8:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      },
                      "id": 4438,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        },
                        "id": 4436,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4434,
                          "name": "tick",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4386,
                          "src": "1517:4:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "%",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 4435,
                          "name": "tickSpacing",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4420,
                          "src": "1524:11:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "src": "1517:18:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4437,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1539:1:42",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "1517:23:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1505:35:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4443,
                  "nodeType": "IfStatement",
                  "src": "1501:53:42",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4441,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "--",
                      "prefix": false,
                      "src": "1542:12:42",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4440,
                        "name": "compressed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4426,
                        "src": "1542:10:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      }
                    },
                    "id": 4442,
                    "nodeType": "ExpressionStatement",
                    "src": "1542:12:42"
                  }
                },
                {
                  "assignments": [
                    4445
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4445,
                      "mutability": "mutable",
                      "name": "tickBitmapIndex",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4529,
                      "src": "1647:21:42",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      },
                      "typeName": {
                        "id": 4444,
                        "name": "int16",
                        "nodeType": "ElementaryTypeName",
                        "src": "1647:5:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4452,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        },
                        "id": 4450,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4448,
                          "name": "compressed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4426,
                          "src": "1677:10:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "38",
                          "id": 4449,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1691:1:42",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_8_by_1",
                            "typeString": "int_const 8"
                          },
                          "value": "8"
                        },
                        "src": "1677:15:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      ],
                      "id": 4447,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1671:5:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int16_$",
                        "typeString": "type(int16)"
                      },
                      "typeName": {
                        "id": 4446,
                        "name": "int16",
                        "nodeType": "ElementaryTypeName",
                        "src": "1671:5:42",
                        "typeDescriptions": {
                          "typeIdentifier": null,
                          "typeString": null
                        }
                      }
                    },
                    "id": 4451,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1671:22:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1647:46:42"
                },
                {
                  "assignments": [
                    4454
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4454,
                      "mutability": "mutable",
                      "name": "boundTickBitmapIndex",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4529,
                      "src": "1758:26:42",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      },
                      "typeName": {
                        "id": 4453,
                        "name": "int16",
                        "nodeType": "ElementaryTypeName",
                        "src": "1758:5:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4460,
                  "initialValue": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    },
                    "id": 4459,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4455,
                      "name": "tickBitmapIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4445,
                      "src": "1787:15:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      },
                      "id": 4458,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 4456,
                        "name": "maxLoopN",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4381,
                        "src": "1805:8:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "/",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "32",
                        "id": 4457,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1816:1:42",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      },
                      "src": "1805:12:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      }
                    },
                    "src": "1787:30:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1758:59:42"
                },
                {
                  "assignments": [
                    4462
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4462,
                      "mutability": "mutable",
                      "name": "nextBitmapIndex",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4529,
                      "src": "1827:21:42",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      },
                      "typeName": {
                        "id": 4461,
                        "name": "int16",
                        "nodeType": "ElementaryTypeName",
                        "src": "1827:5:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4464,
                  "initialValue": {
                    "argumentTypes": null,
                    "id": 4463,
                    "name": "tickBitmapIndex",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4445,
                    "src": "1851:15:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1827:39:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4473,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 4465,
                          "name": "populatedTicks0",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4391,
                          "src": "1877:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                            "typeString": "struct TickLens.PopulatedTick memory[] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4466,
                          "name": "nextBitmapIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4462,
                          "src": "1894:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        }
                      ],
                      "id": 4467,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "1876:34:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$_t_int16_$",
                        "typeString": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4469,
                          "name": "pool",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4379,
                          "src": "1944:4:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                            "typeString": "contract IUniswapV3Pool"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4470,
                          "name": "nextBitmapIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4462,
                          "src": "1962:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4471,
                          "name": "boundTickBitmapIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4454,
                          "src": "1991:20:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                            "typeString": "contract IUniswapV3Pool"
                          },
                          {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          },
                          {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        ],
                        "id": 4468,
                        "name": "nextPopulatedTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4583,
                        "src": "1913:17:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_contract$_IUniswapV3Pool_$2821_$_t_int16_$_t_int16_$returns$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$_t_int16_$",
                          "typeString": "function (contract IUniswapV3Pool,int16,int16) view returns (struct TickLens.PopulatedTick memory[] memory,int16)"
                        }
                      },
                      "id": 4472,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1913:108:42",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$_t_int16_$",
                        "typeString": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)"
                      }
                    },
                    "src": "1876:145:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4474,
                  "nodeType": "ExpressionStatement",
                  "src": "1876:145:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4483,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 4475,
                          "name": "populatedTicks1",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4394,
                          "src": "2032:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                            "typeString": "struct TickLens.PopulatedTick memory[] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4476,
                          "name": "nextBitmapIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4462,
                          "src": "2049:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        }
                      ],
                      "id": 4477,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "2031:34:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$_t_int16_$",
                        "typeString": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4479,
                          "name": "pool",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4379,
                          "src": "2099:4:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                            "typeString": "contract IUniswapV3Pool"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4480,
                          "name": "nextBitmapIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4462,
                          "src": "2117:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4481,
                          "name": "boundTickBitmapIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4454,
                          "src": "2146:20:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                            "typeString": "contract IUniswapV3Pool"
                          },
                          {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          },
                          {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        ],
                        "id": 4478,
                        "name": "nextPopulatedTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4583,
                        "src": "2068:17:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_contract$_IUniswapV3Pool_$2821_$_t_int16_$_t_int16_$returns$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$_t_int16_$",
                          "typeString": "function (contract IUniswapV3Pool,int16,int16) view returns (struct TickLens.PopulatedTick memory[] memory,int16)"
                        }
                      },
                      "id": 4482,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2068:108:42",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$_t_int16_$",
                        "typeString": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)"
                      }
                    },
                    "src": "2031:145:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4484,
                  "nodeType": "ExpressionStatement",
                  "src": "2031:145:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4493,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 4485,
                          "name": "populatedTicks2",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4397,
                          "src": "2187:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                            "typeString": "struct TickLens.PopulatedTick memory[] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4486,
                          "name": "nextBitmapIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4462,
                          "src": "2204:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        }
                      ],
                      "id": 4487,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "2186:34:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$_t_int16_$",
                        "typeString": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4489,
                          "name": "pool",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4379,
                          "src": "2254:4:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                            "typeString": "contract IUniswapV3Pool"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4490,
                          "name": "nextBitmapIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4462,
                          "src": "2272:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4491,
                          "name": "boundTickBitmapIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4454,
                          "src": "2301:20:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                            "typeString": "contract IUniswapV3Pool"
                          },
                          {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          },
                          {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        ],
                        "id": 4488,
                        "name": "nextPopulatedTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4583,
                        "src": "2223:17:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_contract$_IUniswapV3Pool_$2821_$_t_int16_$_t_int16_$returns$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$_t_int16_$",
                          "typeString": "function (contract IUniswapV3Pool,int16,int16) view returns (struct TickLens.PopulatedTick memory[] memory,int16)"
                        }
                      },
                      "id": 4492,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2223:108:42",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$_t_int16_$",
                        "typeString": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)"
                      }
                    },
                    "src": "2186:145:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4494,
                  "nodeType": "ExpressionStatement",
                  "src": "2186:145:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4501,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4495,
                      "name": "boundTickBitmapIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4454,
                      "src": "2342:20:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      },
                      "id": 4500,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 4496,
                        "name": "tickBitmapIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4445,
                        "src": "2365:15:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "-",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        },
                        "id": 4499,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 4497,
                          "name": "maxLoopN",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4381,
                          "src": "2383:8:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "/",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "32",
                          "id": 4498,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2394:1:42",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_2_by_1",
                            "typeString": "int_const 2"
                          },
                          "value": "2"
                        },
                        "src": "2383:12:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "src": "2365:30:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      }
                    },
                    "src": "2342:53:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    }
                  },
                  "id": 4502,
                  "nodeType": "ExpressionStatement",
                  "src": "2342:53:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4507,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4503,
                      "name": "nextBitmapIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4462,
                      "src": "2405:15:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      },
                      "id": 4506,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 4504,
                        "name": "tickBitmapIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4445,
                        "src": "2423:15:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "-",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 4505,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2441:1:42",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "2423:19:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      }
                    },
                    "src": "2405:37:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    }
                  },
                  "id": 4508,
                  "nodeType": "ExpressionStatement",
                  "src": "2405:37:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4517,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 4509,
                          "name": "populatedTicks3",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4400,
                          "src": "2453:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                            "typeString": "struct TickLens.PopulatedTick memory[] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4510,
                          "name": "nextBitmapIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4462,
                          "src": "2470:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        }
                      ],
                      "id": 4511,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "2452:34:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$_t_int16_$",
                        "typeString": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4513,
                          "name": "pool",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4379,
                          "src": "2520:4:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                            "typeString": "contract IUniswapV3Pool"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4514,
                          "name": "nextBitmapIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4462,
                          "src": "2538:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4515,
                          "name": "boundTickBitmapIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4454,
                          "src": "2567:20:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                            "typeString": "contract IUniswapV3Pool"
                          },
                          {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          },
                          {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        ],
                        "id": 4512,
                        "name": "prevPopulatedTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4636,
                        "src": "2489:17:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_contract$_IUniswapV3Pool_$2821_$_t_int16_$_t_int16_$returns$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$_t_int16_$",
                          "typeString": "function (contract IUniswapV3Pool,int16,int16) view returns (struct TickLens.PopulatedTick memory[] memory,int16)"
                        }
                      },
                      "id": 4516,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2489:108:42",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$_t_int16_$",
                        "typeString": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)"
                      }
                    },
                    "src": "2452:145:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4518,
                  "nodeType": "ExpressionStatement",
                  "src": "2452:145:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4527,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 4519,
                          "name": "populatedTicks4",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4403,
                          "src": "2608:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                            "typeString": "struct TickLens.PopulatedTick memory[] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4520,
                          "name": "nextBitmapIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4462,
                          "src": "2625:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        }
                      ],
                      "id": 4521,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "2607:34:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$_t_int16_$",
                        "typeString": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4523,
                          "name": "pool",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4379,
                          "src": "2675:4:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                            "typeString": "contract IUniswapV3Pool"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4524,
                          "name": "nextBitmapIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4462,
                          "src": "2693:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 4525,
                          "name": "boundTickBitmapIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4454,
                          "src": "2722:20:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                            "typeString": "contract IUniswapV3Pool"
                          },
                          {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          },
                          {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          }
                        ],
                        "id": 4522,
                        "name": "prevPopulatedTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4636,
                        "src": "2644:17:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_contract$_IUniswapV3Pool_$2821_$_t_int16_$_t_int16_$returns$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$_t_int16_$",
                          "typeString": "function (contract IUniswapV3Pool,int16,int16) view returns (struct TickLens.PopulatedTick memory[] memory,int16)"
                        }
                      },
                      "id": 4526,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2644:108:42",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$_t_int16_$",
                        "typeString": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)"
                      }
                    },
                    "src": "2607:145:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 4528,
                  "nodeType": "ExpressionStatement",
                  "src": "2607:145:42"
                }
              ]
            },
            "documentation": null,
            "id": 4530,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getPoolTicks",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 4382,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4379,
                  "mutability": "mutable",
                  "name": "pool",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4530,
                  "src": "577:19:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                    "typeString": "contract IUniswapV3Pool"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4378,
                    "name": "IUniswapV3Pool",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2821,
                    "src": "577:14:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                      "typeString": "contract IUniswapV3Pool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4381,
                  "mutability": "mutable",
                  "name": "maxLoopN",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4530,
                  "src": "606:14:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int16",
                    "typeString": "int16"
                  },
                  "typeName": {
                    "id": 4380,
                    "name": "int16",
                    "nodeType": "ElementaryTypeName",
                    "src": "606:5:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "567:59:42"
            },
            "returnParameters": {
              "id": 4404,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4384,
                  "mutability": "mutable",
                  "name": "sqrtPriceX96",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4530,
                  "src": "687:20:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint160",
                    "typeString": "uint160"
                  },
                  "typeName": {
                    "id": 4383,
                    "name": "uint160",
                    "nodeType": "ElementaryTypeName",
                    "src": "687:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4386,
                  "mutability": "mutable",
                  "name": "tick",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4530,
                  "src": "721:10:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 4385,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "721:5:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4388,
                  "mutability": "mutable",
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4530,
                  "src": "745:17:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint128",
                    "typeString": "uint128"
                  },
                  "typeName": {
                    "id": 4387,
                    "name": "uint128",
                    "nodeType": "ElementaryTypeName",
                    "src": "745:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4391,
                  "mutability": "mutable",
                  "name": "populatedTicks0",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4530,
                  "src": "776:38:42",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct TickLens.PopulatedTick[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 4389,
                      "name": "PopulatedTick",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4377,
                      "src": "776:13:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PopulatedTick_$4377_storage_ptr",
                        "typeString": "struct TickLens.PopulatedTick"
                      }
                    },
                    "id": 4390,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "776:15:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_storage_$dyn_storage_ptr",
                      "typeString": "struct TickLens.PopulatedTick[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4394,
                  "mutability": "mutable",
                  "name": "populatedTicks1",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4530,
                  "src": "828:38:42",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct TickLens.PopulatedTick[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 4392,
                      "name": "PopulatedTick",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4377,
                      "src": "828:13:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PopulatedTick_$4377_storage_ptr",
                        "typeString": "struct TickLens.PopulatedTick"
                      }
                    },
                    "id": 4393,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "828:15:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_storage_$dyn_storage_ptr",
                      "typeString": "struct TickLens.PopulatedTick[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4397,
                  "mutability": "mutable",
                  "name": "populatedTicks2",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4530,
                  "src": "880:38:42",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct TickLens.PopulatedTick[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 4395,
                      "name": "PopulatedTick",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4377,
                      "src": "880:13:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PopulatedTick_$4377_storage_ptr",
                        "typeString": "struct TickLens.PopulatedTick"
                      }
                    },
                    "id": 4396,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "880:15:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_storage_$dyn_storage_ptr",
                      "typeString": "struct TickLens.PopulatedTick[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4400,
                  "mutability": "mutable",
                  "name": "populatedTicks3",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4530,
                  "src": "932:38:42",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct TickLens.PopulatedTick[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 4398,
                      "name": "PopulatedTick",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4377,
                      "src": "932:13:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PopulatedTick_$4377_storage_ptr",
                        "typeString": "struct TickLens.PopulatedTick"
                      }
                    },
                    "id": 4399,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "932:15:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_storage_$dyn_storage_ptr",
                      "typeString": "struct TickLens.PopulatedTick[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4403,
                  "mutability": "mutable",
                  "name": "populatedTicks4",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4530,
                  "src": "984:38:42",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct TickLens.PopulatedTick[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 4401,
                      "name": "PopulatedTick",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4377,
                      "src": "984:13:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PopulatedTick_$4377_storage_ptr",
                        "typeString": "struct TickLens.PopulatedTick"
                      }
                    },
                    "id": 4402,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "984:15:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_storage_$dyn_storage_ptr",
                      "typeString": "struct TickLens.PopulatedTick[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "673:359:42"
            },
            "scope": 4751,
            "src": "546:2213:42",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4582,
              "nodeType": "Block",
              "src": "3005:478:42",
              "statements": [
                {
                  "body": {
                    "id": 4580,
                    "nodeType": "Block",
                    "src": "3192:285:42",
                    "statements": [
                      {
                        "assignments": [
                          4561
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4561,
                            "mutability": "mutable",
                            "name": "bitmap",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 4580,
                            "src": "3206:14:42",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 4560,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "3206:7:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4566,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4564,
                              "name": "nextBitmapIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4542,
                              "src": "3239:15:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int16",
                                "typeString": "int16"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int16",
                                "typeString": "int16"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 4562,
                              "name": "pool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4532,
                              "src": "3223:4:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                                "typeString": "contract IUniswapV3Pool"
                              }
                            },
                            "id": 4563,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "tickBitmap",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3034,
                            "src": "3223:15:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_int16_$returns$_t_uint256_$",
                              "typeString": "function (int16) view external returns (uint256)"
                            }
                          },
                          "id": 4565,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3223:32:42",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3206:49:42"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4569,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4567,
                            "name": "bitmap",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4561,
                            "src": "3273:6:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 4568,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3282:1:42",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "3273:10:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 4579,
                        "nodeType": "IfStatement",
                        "src": "3269:198:42",
                        "trueBody": {
                          "id": 4578,
                          "nodeType": "Block",
                          "src": "3285:182:42",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4576,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 4570,
                                  "name": "populatedTicks",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4540,
                                  "src": "3303:14:42",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                                    "typeString": "struct TickLens.PopulatedTick memory[] memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 4572,
                                      "name": "pool",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4532,
                                      "src": "3365:4:42",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                                        "typeString": "contract IUniswapV3Pool"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 4573,
                                      "name": "nextBitmapIndex",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4542,
                                      "src": "3391:15:42",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int16",
                                        "typeString": "int16"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 4574,
                                      "name": "bitmap",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4561,
                                      "src": "3428:6:42",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                                        "typeString": "contract IUniswapV3Pool"
                                      },
                                      {
                                        "typeIdentifier": "t_int16",
                                        "typeString": "int16"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 4571,
                                    "name": "getPopulatedTicksInWord",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4750,
                                    "src": "3320:23:42",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_view$_t_contract$_IUniswapV3Pool_$2821_$_t_int16_$_t_uint256_$returns$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$",
                                      "typeString": "function (contract IUniswapV3Pool,int16,uint256) view returns (struct TickLens.PopulatedTick memory[] memory)"
                                    }
                                  },
                                  "id": 4575,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3320:132:42",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                                    "typeString": "struct TickLens.PopulatedTick memory[] memory"
                                  }
                                },
                                "src": "3303:149:42",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                                  "typeString": "struct TickLens.PopulatedTick memory[] memory"
                                }
                              },
                              "id": 4577,
                              "nodeType": "ExpressionStatement",
                              "src": "3303:149:42"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 4555,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      },
                      "id": 4550,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 4548,
                        "name": "nextBitmapIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4542,
                        "src": "3080:15:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 4549,
                        "name": "maxTickBitmapIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4536,
                        "src": "3099:18:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "src": "3080:37:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 4554,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4551,
                          "name": "populatedTicks",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4540,
                          "src": "3121:14:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                            "typeString": "struct TickLens.PopulatedTick memory[] memory"
                          }
                        },
                        "id": 4552,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3121:21:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4553,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3146:1:42",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "3121:26:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "3080:67:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4581,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4546,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 4544,
                        "name": "nextBitmapIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4542,
                        "src": "3033:15:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "id": 4545,
                        "name": "tickBitmapIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4534,
                        "src": "3051:15:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "src": "3033:33:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      }
                    },
                    "id": 4547,
                    "nodeType": "ExpressionStatement",
                    "src": "3033:33:42"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4558,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 4556,
                        "name": "nextBitmapIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4542,
                        "src": "3161:15:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "+=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 4557,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3180:1:42",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "3161:20:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      }
                    },
                    "id": 4559,
                    "nodeType": "ExpressionStatement",
                    "src": "3161:20:42"
                  },
                  "nodeType": "ForStatement",
                  "src": "3015:462:42"
                }
              ]
            },
            "documentation": null,
            "id": 4583,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "nextPopulatedTick",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 4537,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4532,
                  "mutability": "mutable",
                  "name": "pool",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4583,
                  "src": "2801:19:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                    "typeString": "contract IUniswapV3Pool"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4531,
                    "name": "IUniswapV3Pool",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2821,
                    "src": "2801:14:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                      "typeString": "contract IUniswapV3Pool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4534,
                  "mutability": "mutable",
                  "name": "tickBitmapIndex",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4583,
                  "src": "2830:21:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int16",
                    "typeString": "int16"
                  },
                  "typeName": {
                    "id": 4533,
                    "name": "int16",
                    "nodeType": "ElementaryTypeName",
                    "src": "2830:5:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4536,
                  "mutability": "mutable",
                  "name": "maxTickBitmapIndex",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4583,
                  "src": "2861:24:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int16",
                    "typeString": "int16"
                  },
                  "typeName": {
                    "id": 4535,
                    "name": "int16",
                    "nodeType": "ElementaryTypeName",
                    "src": "2861:5:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2791:100:42"
            },
            "returnParameters": {
              "id": 4543,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4540,
                  "mutability": "mutable",
                  "name": "populatedTicks",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4583,
                  "src": "2939:37:42",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct TickLens.PopulatedTick[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 4538,
                      "name": "PopulatedTick",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4377,
                      "src": "2939:13:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PopulatedTick_$4377_storage_ptr",
                        "typeString": "struct TickLens.PopulatedTick"
                      }
                    },
                    "id": 4539,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2939:15:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_storage_$dyn_storage_ptr",
                      "typeString": "struct TickLens.PopulatedTick[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4542,
                  "mutability": "mutable",
                  "name": "nextBitmapIndex",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4583,
                  "src": "2978:21:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int16",
                    "typeString": "int16"
                  },
                  "typeName": {
                    "id": 4541,
                    "name": "int16",
                    "nodeType": "ElementaryTypeName",
                    "src": "2978:5:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2938:62:42"
            },
            "scope": 4751,
            "src": "2765:718:42",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4635,
              "nodeType": "Block",
              "src": "3729:478:42",
              "statements": [
                {
                  "body": {
                    "id": 4633,
                    "nodeType": "Block",
                    "src": "3916:285:42",
                    "statements": [
                      {
                        "assignments": [
                          4614
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4614,
                            "mutability": "mutable",
                            "name": "bitmap",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 4633,
                            "src": "3930:14:42",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 4613,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "3930:7:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 4619,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 4617,
                              "name": "nextBitmapIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4595,
                              "src": "3963:15:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int16",
                                "typeString": "int16"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int16",
                                "typeString": "int16"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 4615,
                              "name": "pool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4585,
                              "src": "3947:4:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                                "typeString": "contract IUniswapV3Pool"
                              }
                            },
                            "id": 4616,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "tickBitmap",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3034,
                            "src": "3947:15:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_int16_$returns$_t_uint256_$",
                              "typeString": "function (int16) view external returns (uint256)"
                            }
                          },
                          "id": 4618,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3947:32:42",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3930:49:42"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4622,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 4620,
                            "name": "bitmap",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4614,
                            "src": "3997:6:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 4621,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4006:1:42",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "3997:10:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 4632,
                        "nodeType": "IfStatement",
                        "src": "3993:198:42",
                        "trueBody": {
                          "id": 4631,
                          "nodeType": "Block",
                          "src": "4009:182:42",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4629,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 4623,
                                  "name": "populatedTicks",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4593,
                                  "src": "4027:14:42",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                                    "typeString": "struct TickLens.PopulatedTick memory[] memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 4625,
                                      "name": "pool",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4585,
                                      "src": "4089:4:42",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                                        "typeString": "contract IUniswapV3Pool"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 4626,
                                      "name": "nextBitmapIndex",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4595,
                                      "src": "4115:15:42",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int16",
                                        "typeString": "int16"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 4627,
                                      "name": "bitmap",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4614,
                                      "src": "4152:6:42",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                                        "typeString": "contract IUniswapV3Pool"
                                      },
                                      {
                                        "typeIdentifier": "t_int16",
                                        "typeString": "int16"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 4624,
                                    "name": "getPopulatedTicksInWord",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4750,
                                    "src": "4044:23:42",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_view$_t_contract$_IUniswapV3Pool_$2821_$_t_int16_$_t_uint256_$returns$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$",
                                      "typeString": "function (contract IUniswapV3Pool,int16,uint256) view returns (struct TickLens.PopulatedTick memory[] memory)"
                                    }
                                  },
                                  "id": 4628,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4044:132:42",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                                    "typeString": "struct TickLens.PopulatedTick memory[] memory"
                                  }
                                },
                                "src": "4027:149:42",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                                  "typeString": "struct TickLens.PopulatedTick memory[] memory"
                                }
                              },
                              "id": 4630,
                              "nodeType": "ExpressionStatement",
                              "src": "4027:149:42"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 4608,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      },
                      "id": 4603,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 4601,
                        "name": "nextBitmapIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4595,
                        "src": "3804:15:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 4602,
                        "name": "minTickBitmapIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4589,
                        "src": "3823:18:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "src": "3804:37:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 4607,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 4604,
                          "name": "populatedTicks",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4593,
                          "src": "3845:14:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                            "typeString": "struct TickLens.PopulatedTick memory[] memory"
                          }
                        },
                        "id": 4605,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3845:21:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 4606,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3870:1:42",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "3845:26:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "3804:67:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4634,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4599,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 4597,
                        "name": "nextBitmapIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4595,
                        "src": "3757:15:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "id": 4598,
                        "name": "tickBitmapIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4587,
                        "src": "3775:15:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "src": "3757:33:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      }
                    },
                    "id": 4600,
                    "nodeType": "ExpressionStatement",
                    "src": "3757:33:42"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4611,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "argumentTypes": null,
                        "id": 4609,
                        "name": "nextBitmapIndex",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4595,
                        "src": "3885:15:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int16",
                          "typeString": "int16"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "-=",
                      "rightHandSide": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 4610,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3904:1:42",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "3885:20:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int16",
                        "typeString": "int16"
                      }
                    },
                    "id": 4612,
                    "nodeType": "ExpressionStatement",
                    "src": "3885:20:42"
                  },
                  "nodeType": "ForStatement",
                  "src": "3739:462:42"
                }
              ]
            },
            "documentation": null,
            "id": 4636,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "prevPopulatedTick",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 4590,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4585,
                  "mutability": "mutable",
                  "name": "pool",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4636,
                  "src": "3525:19:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                    "typeString": "contract IUniswapV3Pool"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4584,
                    "name": "IUniswapV3Pool",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2821,
                    "src": "3525:14:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                      "typeString": "contract IUniswapV3Pool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4587,
                  "mutability": "mutable",
                  "name": "tickBitmapIndex",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4636,
                  "src": "3554:21:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int16",
                    "typeString": "int16"
                  },
                  "typeName": {
                    "id": 4586,
                    "name": "int16",
                    "nodeType": "ElementaryTypeName",
                    "src": "3554:5:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4589,
                  "mutability": "mutable",
                  "name": "minTickBitmapIndex",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4636,
                  "src": "3585:24:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int16",
                    "typeString": "int16"
                  },
                  "typeName": {
                    "id": 4588,
                    "name": "int16",
                    "nodeType": "ElementaryTypeName",
                    "src": "3585:5:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3515:100:42"
            },
            "returnParameters": {
              "id": 4596,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4593,
                  "mutability": "mutable",
                  "name": "populatedTicks",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4636,
                  "src": "3663:37:42",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct TickLens.PopulatedTick[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 4591,
                      "name": "PopulatedTick",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4377,
                      "src": "3663:13:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PopulatedTick_$4377_storage_ptr",
                        "typeString": "struct TickLens.PopulatedTick"
                      }
                    },
                    "id": 4592,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3663:15:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_storage_$dyn_storage_ptr",
                      "typeString": "struct TickLens.PopulatedTick[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4595,
                  "mutability": "mutable",
                  "name": "nextBitmapIndex",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4636,
                  "src": "3702:21:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int16",
                    "typeString": "int16"
                  },
                  "typeName": {
                    "id": 4594,
                    "name": "int16",
                    "nodeType": "ElementaryTypeName",
                    "src": "3702:5:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3662:62:42"
            },
            "scope": 4751,
            "src": "3489:718:42",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4749,
              "nodeType": "Block",
              "src": "4398:957:42",
              "statements": [
                {
                  "assignments": [
                    4649
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4649,
                      "mutability": "mutable",
                      "name": "numberOfPopulatedTicks",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4749,
                      "src": "4459:30:42",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4648,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4459:7:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4650,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4459:30:42"
                },
                {
                  "body": {
                    "id": 4673,
                    "nodeType": "Block",
                    "src": "4533:76:42",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4668,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4666,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 4661,
                              "name": "bitmap",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4642,
                              "src": "4551:6:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&",
                            "rightExpression": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 4664,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 4662,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4561:1:42",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "id": 4663,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4652,
                                    "src": "4566:1:42",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "4561:6:42",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 4665,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "4560:8:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "4551:17:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 4667,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4571:1:42",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4551:21:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 4672,
                        "nodeType": "IfStatement",
                        "src": "4547:51:42",
                        "trueBody": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 4670,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "4574:24:42",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 4669,
                              "name": "numberOfPopulatedTicks",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4649,
                              "src": "4574:22:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 4671,
                          "nodeType": "ExpressionStatement",
                          "src": "4574:24:42"
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4657,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4655,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4652,
                      "src": "4519:1:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "323536",
                      "id": 4656,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4523:3:42",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_256_by_1",
                        "typeString": "int_const 256"
                      },
                      "value": "256"
                    },
                    "src": "4519:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4674,
                  "initializationExpression": {
                    "assignments": [
                      4652
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4652,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 4674,
                        "src": "4504:9:42",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4651,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4504:7:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 4654,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4653,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4516:1:42",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "4504:13:42"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4659,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "4528:3:42",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4658,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4652,
                        "src": "4528:1:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4660,
                    "nodeType": "ExpressionStatement",
                    "src": "4528:3:42"
                  },
                  "nodeType": "ForStatement",
                  "src": "4499:110:42"
                },
                {
                  "assignments": [
                    4676
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4676,
                      "mutability": "mutable",
                      "name": "tickSpacing",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 4749,
                      "src": "4656:17:42",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      },
                      "typeName": {
                        "id": 4675,
                        "name": "int24",
                        "nodeType": "ElementaryTypeName",
                        "src": "4656:5:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4680,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 4677,
                        "name": "pool",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4638,
                        "src": "4676:4:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                          "typeString": "contract IUniswapV3Pool"
                        }
                      },
                      "id": 4678,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "tickSpacing",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2950,
                      "src": "4676:16:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_int24_$",
                        "typeString": "function () view external returns (int24)"
                      }
                    },
                    "id": 4679,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4676:18:42",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4656:38:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 4687,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 4681,
                      "name": "populatedTicks",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4646,
                      "src": "4704:14:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct TickLens.PopulatedTick memory[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 4685,
                          "name": "numberOfPopulatedTicks",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4649,
                          "src": "4741:22:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 4684,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "4721:19:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (struct TickLens.PopulatedTick memory[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "contractScope": null,
                            "id": 4682,
                            "name": "PopulatedTick",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 4377,
                            "src": "4725:13:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PopulatedTick_$4377_storage_ptr",
                              "typeString": "struct TickLens.PopulatedTick"
                            }
                          },
                          "id": 4683,
                          "length": null,
                          "nodeType": "ArrayTypeName",
                          "src": "4725:15:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_storage_$dyn_storage_ptr",
                            "typeString": "struct TickLens.PopulatedTick[]"
                          }
                        }
                      },
                      "id": 4686,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4721:43:42",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct TickLens.PopulatedTick memory[] memory"
                      }
                    },
                    "src": "4704:60:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                      "typeString": "struct TickLens.PopulatedTick memory[] memory"
                    }
                  },
                  "id": 4688,
                  "nodeType": "ExpressionStatement",
                  "src": "4704:60:42"
                },
                {
                  "body": {
                    "id": 4747,
                    "nodeType": "Block",
                    "src": "4808:541:42",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 4706,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4704,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 4699,
                              "name": "bitmap",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4642,
                              "src": "4826:6:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&",
                            "rightExpression": {
                              "argumentTypes": null,
                              "components": [
                                {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 4702,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 4700,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4836:1:42",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "id": 4701,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4690,
                                    "src": "4841:1:42",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "4836:6:42",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 4703,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "4835:8:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "4826:17:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 4705,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4846:1:42",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "4826:21:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 4746,
                        "nodeType": "IfStatement",
                        "src": "4822:517:42",
                        "trueBody": {
                          "id": 4745,
                          "nodeType": "Block",
                          "src": "4849:490:42",
                          "statements": [
                            {
                              "assignments": [
                                4708
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 4708,
                                  "mutability": "mutable",
                                  "name": "populatedTick",
                                  "nodeType": "VariableDeclaration",
                                  "overrides": null,
                                  "scope": 4745,
                                  "src": "4867:19:42",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int24",
                                    "typeString": "int24"
                                  },
                                  "typeName": {
                                    "id": 4707,
                                    "name": "int24",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4867:5:42",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 4724,
                              "initialValue": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                },
                                "id": 4723,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      },
                                      "id": 4720,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "components": [
                                          {
                                            "argumentTypes": null,
                                            "commonType": {
                                              "typeIdentifier": "t_int24",
                                              "typeString": "int24"
                                            },
                                            "id": 4714,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "argumentTypes": null,
                                              "arguments": [
                                                {
                                                  "argumentTypes": null,
                                                  "id": 4711,
                                                  "name": "tickBitmapIndex",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 4640,
                                                  "src": "4897:15:42",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_int16",
                                                    "typeString": "int16"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_int16",
                                                    "typeString": "int16"
                                                  }
                                                ],
                                                "id": 4710,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "4891:5:42",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_type$_t_int24_$",
                                                  "typeString": "type(int24)"
                                                },
                                                "typeName": {
                                                  "id": 4709,
                                                  "name": "int24",
                                                  "nodeType": "ElementaryTypeName",
                                                  "src": "4891:5:42",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": null,
                                                    "typeString": null
                                                  }
                                                }
                                              },
                                              "id": 4712,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "typeConversion",
                                              "lValueRequested": false,
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "4891:22:42",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_int24",
                                                "typeString": "int24"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "<<",
                                            "rightExpression": {
                                              "argumentTypes": null,
                                              "hexValue": "38",
                                              "id": 4713,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "4917:1:42",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_8_by_1",
                                                "typeString": "int_const 8"
                                              },
                                              "value": "8"
                                            },
                                            "src": "4891:27:42",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_int24",
                                              "typeString": "int24"
                                            }
                                          }
                                        ],
                                        "id": 4715,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "4890:29:42",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int24",
                                          "typeString": "int24"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "+",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 4718,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4690,
                                            "src": "4948:1:42",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "id": 4717,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "4942:5:42",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_int24_$",
                                            "typeString": "type(int24)"
                                          },
                                          "typeName": {
                                            "id": 4716,
                                            "name": "int24",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "4942:5:42",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 4719,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4942:8:42",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int24",
                                          "typeString": "int24"
                                        }
                                      },
                                      "src": "4890:60:42",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      }
                                    }
                                  ],
                                  "id": 4721,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "4889:62:42",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int24",
                                    "typeString": "int24"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 4722,
                                  "name": "tickSpacing",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4676,
                                  "src": "4954:11:42",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int24",
                                    "typeString": "int24"
                                  }
                                },
                                "src": "4889:76:42",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "4867:98:42"
                            },
                            {
                              "assignments": [
                                4726,
                                4728,
                                null,
                                null,
                                null,
                                null,
                                null,
                                null
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 4726,
                                  "mutability": "mutable",
                                  "name": "liquidityGross",
                                  "nodeType": "VariableDeclaration",
                                  "overrides": null,
                                  "scope": 4745,
                                  "src": "4984:22:42",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint128",
                                    "typeString": "uint128"
                                  },
                                  "typeName": {
                                    "id": 4725,
                                    "name": "uint128",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "4984:7:42",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint128",
                                      "typeString": "uint128"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                },
                                {
                                  "constant": false,
                                  "id": 4728,
                                  "mutability": "mutable",
                                  "name": "liquidityNet",
                                  "nodeType": "VariableDeclaration",
                                  "overrides": null,
                                  "scope": 4745,
                                  "src": "5008:19:42",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int128",
                                    "typeString": "int128"
                                  },
                                  "typeName": {
                                    "id": 4727,
                                    "name": "int128",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5008:6:42",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int128",
                                      "typeString": "int128"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                },
                                null,
                                null,
                                null,
                                null,
                                null,
                                null
                              ],
                              "id": 4733,
                              "initialValue": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 4731,
                                    "name": "populatedTick",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4708,
                                    "src": "5075:13:42",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int24",
                                      "typeString": "int24"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 4729,
                                    "name": "pool",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4638,
                                    "src": "5043:4:42",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                                      "typeString": "contract IUniswapV3Pool"
                                    }
                                  },
                                  "id": 4730,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "ticks",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3026,
                                  "src": "5043:31:42",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_int24_$returns$_t_uint128_$_t_int128_$_t_uint256_$_t_uint256_$_t_int56_$_t_uint160_$_t_uint32_$_t_bool_$",
                                    "typeString": "function (int24) view external returns (uint128,int128,uint256,uint256,int56,uint160,uint32,bool)"
                                  }
                                },
                                "id": 4732,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5043:46:42",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$_t_uint128_$_t_int128_$_t_uint256_$_t_uint256_$_t_int56_$_t_uint160_$_t_uint32_$_t_bool_$",
                                  "typeString": "tuple(uint128,int128,uint256,uint256,int56,uint160,uint32,bool)"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "4983:106:42"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 4743,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 4734,
                                    "name": "populatedTicks",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4646,
                                    "src": "5107:14:42",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                                      "typeString": "struct TickLens.PopulatedTick memory[] memory"
                                    }
                                  },
                                  "id": 4737,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 4736,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "UnaryOperation",
                                    "operator": "--",
                                    "prefix": true,
                                    "src": "5122:24:42",
                                    "subExpression": {
                                      "argumentTypes": null,
                                      "id": 4735,
                                      "name": "numberOfPopulatedTicks",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4649,
                                      "src": "5124:22:42",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "5107:40:42",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_PopulatedTick_$4377_memory_ptr",
                                    "typeString": "struct TickLens.PopulatedTick memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 4739,
                                      "name": "populatedTick",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4708,
                                      "src": "5192:13:42",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 4740,
                                      "name": "liquidityNet",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4728,
                                      "src": "5241:12:42",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int128",
                                        "typeString": "int128"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 4741,
                                      "name": "liquidityGross",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4726,
                                      "src": "5291:14:42",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint128",
                                        "typeString": "uint128"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_int24",
                                        "typeString": "int24"
                                      },
                                      {
                                        "typeIdentifier": "t_int128",
                                        "typeString": "int128"
                                      },
                                      {
                                        "typeIdentifier": "t_uint128",
                                        "typeString": "uint128"
                                      }
                                    ],
                                    "id": 4738,
                                    "name": "PopulatedTick",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4377,
                                    "src": "5150:13:42",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_struct$_PopulatedTick_$4377_storage_ptr_$",
                                      "typeString": "type(struct TickLens.PopulatedTick storage pointer)"
                                    }
                                  },
                                  "id": 4742,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "structConstructorCall",
                                  "lValueRequested": false,
                                  "names": [
                                    "tick",
                                    "liquidityNet",
                                    "liquidityGross"
                                  ],
                                  "nodeType": "FunctionCall",
                                  "src": "5150:174:42",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_PopulatedTick_$4377_memory_ptr",
                                    "typeString": "struct TickLens.PopulatedTick memory"
                                  }
                                },
                                "src": "5107:217:42",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_PopulatedTick_$4377_memory_ptr",
                                  "typeString": "struct TickLens.PopulatedTick memory"
                                }
                              },
                              "id": 4744,
                              "nodeType": "ExpressionStatement",
                              "src": "5107:217:42"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4695,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4693,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4690,
                      "src": "4794:1:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "323536",
                      "id": 4694,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4798:3:42",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_256_by_1",
                        "typeString": "int_const 256"
                      },
                      "value": "256"
                    },
                    "src": "4794:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4748,
                  "initializationExpression": {
                    "assignments": [
                      4690
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4690,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 4748,
                        "src": "4779:9:42",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4689,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4779:7:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 4692,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 4691,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4791:1:42",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "4779:13:42"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 4697,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "4803:3:42",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 4696,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4690,
                        "src": "4803:1:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4698,
                    "nodeType": "ExpressionStatement",
                    "src": "4803:3:42"
                  },
                  "nodeType": "ForStatement",
                  "src": "4774:575:42"
                }
              ]
            },
            "documentation": null,
            "id": 4750,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getPopulatedTicksInWord",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 4643,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4638,
                  "mutability": "mutable",
                  "name": "pool",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4750,
                  "src": "4255:19:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                    "typeString": "contract IUniswapV3Pool"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 4637,
                    "name": "IUniswapV3Pool",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2821,
                    "src": "4255:14:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                      "typeString": "contract IUniswapV3Pool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4640,
                  "mutability": "mutable",
                  "name": "tickBitmapIndex",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4750,
                  "src": "4284:21:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int16",
                    "typeString": "int16"
                  },
                  "typeName": {
                    "id": 4639,
                    "name": "int16",
                    "nodeType": "ElementaryTypeName",
                    "src": "4284:5:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int16",
                      "typeString": "int16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4642,
                  "mutability": "mutable",
                  "name": "bitmap",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4750,
                  "src": "4315:14:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4641,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4315:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4245:90:42"
            },
            "returnParameters": {
              "id": 4647,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4646,
                  "mutability": "mutable",
                  "name": "populatedTicks",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 4750,
                  "src": "4359:37:42",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct TickLens.PopulatedTick[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 4644,
                      "name": "PopulatedTick",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 4377,
                      "src": "4359:13:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PopulatedTick_$4377_storage_ptr",
                        "typeString": "struct TickLens.PopulatedTick"
                      }
                    },
                    "id": 4645,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4359:15:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PopulatedTick_$4377_storage_$dyn_storage_ptr",
                      "typeString": "struct TickLens.PopulatedTick[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4358:39:42"
            },
            "scope": 4751,
            "src": "4213:1142:42",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 4752,
        "src": "156:5201:42"
      }
    ],
    "src": "32:5326:42"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "project:/contracts/interfaces/uniswap/TickLens.sol",
      "exportedSymbols": {
        "TickLens": [
          4751
        ]
      },
      "license": "MIT"
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            ">=",
            "0.4",
            ".0",
            "<",
            "0.8",
            ".0"
          ]
        },
        "id": 4367,
        "name": "PragmaDirective",
        "src": "32:31:42"
      },
      {
        "attributes": {
          "literals": [
            "experimental",
            "ABIEncoderV2"
          ]
        },
        "id": 4368,
        "name": "PragmaDirective",
        "src": "64:33:42"
      },
      {
        "attributes": {
          "SourceUnit": 2822,
          "absolutePath": "project:/contracts/interfaces/uniswap/IUniswapV3Pool.sol",
          "file": "./IUniswapV3Pool.sol",
          "scope": 4752,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4369,
        "name": "ImportDirective",
        "src": "99:30:42"
      },
      {
        "attributes": {
          "SourceUnit": 5283,
          "absolutePath": "project:/contracts/interfaces/uniswap/TickMath.sol",
          "file": "./TickMath.sol",
          "scope": 4752,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 4370,
        "name": "ImportDirective",
        "src": "130:24:42"
      },
      {
        "attributes": {
          "abstract": false,
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "library",
          "documentation": null,
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            4751
          ],
          "name": "TickLens",
          "scope": 4752
        },
        "children": [
          {
            "attributes": {
              "canonicalName": "TickLens.PopulatedTick",
              "name": "PopulatedTick",
              "scope": 4751,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "tick",
                  "overrides": null,
                  "scope": 4377,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "int24",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "int24",
                      "type": "int24"
                    },
                    "id": 4371,
                    "name": "ElementaryTypeName",
                    "src": "210:5:42"
                  }
                ],
                "id": 4372,
                "name": "VariableDeclaration",
                "src": "210:10:42"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "liquidityNet",
                  "overrides": null,
                  "scope": 4377,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "int128",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "int128",
                      "type": "int128"
                    },
                    "id": 4373,
                    "name": "ElementaryTypeName",
                    "src": "230:6:42"
                  }
                ],
                "id": 4374,
                "name": "VariableDeclaration",
                "src": "230:19:42"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "liquidityGross",
                  "overrides": null,
                  "scope": 4377,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint128",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint128",
                      "type": "uint128"
                    },
                    "id": 4375,
                    "name": "ElementaryTypeName",
                    "src": "259:7:42"
                  }
                ],
                "id": 4376,
                "name": "VariableDeclaration",
                "src": "259:22:42"
              }
            ],
            "id": 4377,
            "name": "StructDefinition",
            "src": "179:109:42"
          },
          {
            "attributes": {
              "documentation": null,
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getPoolTicks",
              "overrides": null,
              "scope": 4751,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "pool",
                      "overrides": null,
                      "scope": 4530,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IUniswapV3Pool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IUniswapV3Pool",
                          "referencedDeclaration": 2821,
                          "type": "contract IUniswapV3Pool"
                        },
                        "id": 4378,
                        "name": "UserDefinedTypeName",
                        "src": "577:14:42"
                      }
                    ],
                    "id": 4379,
                    "name": "VariableDeclaration",
                    "src": "577:19:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "maxLoopN",
                      "overrides": null,
                      "scope": 4530,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int16",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int16",
                          "type": "int16"
                        },
                        "id": 4380,
                        "name": "ElementaryTypeName",
                        "src": "606:5:42"
                      }
                    ],
                    "id": 4381,
                    "name": "VariableDeclaration",
                    "src": "606:14:42"
                  }
                ],
                "id": 4382,
                "name": "ParameterList",
                "src": "567:59:42"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "sqrtPriceX96",
                      "overrides": null,
                      "scope": 4530,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint160",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint160",
                          "type": "uint160"
                        },
                        "id": 4383,
                        "name": "ElementaryTypeName",
                        "src": "687:7:42"
                      }
                    ],
                    "id": 4384,
                    "name": "VariableDeclaration",
                    "src": "687:20:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tick",
                      "overrides": null,
                      "scope": 4530,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int24",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int24",
                          "type": "int24"
                        },
                        "id": 4385,
                        "name": "ElementaryTypeName",
                        "src": "721:5:42"
                      }
                    ],
                    "id": 4386,
                    "name": "VariableDeclaration",
                    "src": "721:10:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "liquidity",
                      "overrides": null,
                      "scope": 4530,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint128",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint128",
                          "type": "uint128"
                        },
                        "id": 4387,
                        "name": "ElementaryTypeName",
                        "src": "745:7:42"
                      }
                    ],
                    "id": 4388,
                    "name": "VariableDeclaration",
                    "src": "745:17:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "populatedTicks0",
                      "overrides": null,
                      "scope": 4530,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "struct TickLens.PopulatedTick[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "struct TickLens.PopulatedTick[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "PopulatedTick",
                              "referencedDeclaration": 4377,
                              "type": "struct TickLens.PopulatedTick"
                            },
                            "id": 4389,
                            "name": "UserDefinedTypeName",
                            "src": "776:13:42"
                          }
                        ],
                        "id": 4390,
                        "name": "ArrayTypeName",
                        "src": "776:15:42"
                      }
                    ],
                    "id": 4391,
                    "name": "VariableDeclaration",
                    "src": "776:38:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "populatedTicks1",
                      "overrides": null,
                      "scope": 4530,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "struct TickLens.PopulatedTick[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "struct TickLens.PopulatedTick[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "PopulatedTick",
                              "referencedDeclaration": 4377,
                              "type": "struct TickLens.PopulatedTick"
                            },
                            "id": 4392,
                            "name": "UserDefinedTypeName",
                            "src": "828:13:42"
                          }
                        ],
                        "id": 4393,
                        "name": "ArrayTypeName",
                        "src": "828:15:42"
                      }
                    ],
                    "id": 4394,
                    "name": "VariableDeclaration",
                    "src": "828:38:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "populatedTicks2",
                      "overrides": null,
                      "scope": 4530,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "struct TickLens.PopulatedTick[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "struct TickLens.PopulatedTick[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "PopulatedTick",
                              "referencedDeclaration": 4377,
                              "type": "struct TickLens.PopulatedTick"
                            },
                            "id": 4395,
                            "name": "UserDefinedTypeName",
                            "src": "880:13:42"
                          }
                        ],
                        "id": 4396,
                        "name": "ArrayTypeName",
                        "src": "880:15:42"
                      }
                    ],
                    "id": 4397,
                    "name": "VariableDeclaration",
                    "src": "880:38:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "populatedTicks3",
                      "overrides": null,
                      "scope": 4530,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "struct TickLens.PopulatedTick[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "struct TickLens.PopulatedTick[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "PopulatedTick",
                              "referencedDeclaration": 4377,
                              "type": "struct TickLens.PopulatedTick"
                            },
                            "id": 4398,
                            "name": "UserDefinedTypeName",
                            "src": "932:13:42"
                          }
                        ],
                        "id": 4399,
                        "name": "ArrayTypeName",
                        "src": "932:15:42"
                      }
                    ],
                    "id": 4400,
                    "name": "VariableDeclaration",
                    "src": "932:38:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "populatedTicks4",
                      "overrides": null,
                      "scope": 4530,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "struct TickLens.PopulatedTick[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "struct TickLens.PopulatedTick[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "PopulatedTick",
                              "referencedDeclaration": 4377,
                              "type": "struct TickLens.PopulatedTick"
                            },
                            "id": 4401,
                            "name": "UserDefinedTypeName",
                            "src": "984:13:42"
                          }
                        ],
                        "id": 4402,
                        "name": "ArrayTypeName",
                        "src": "984:15:42"
                      }
                    ],
                    "id": 4403,
                    "name": "VariableDeclaration",
                    "src": "984:38:42"
                  }
                ],
                "id": 4404,
                "name": "ParameterList",
                "src": "673:359:42"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "tuple(uint160,int24,,,,,)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4384,
                                  "type": "uint160",
                                  "value": "sqrtPriceX96"
                                },
                                "id": 4405,
                                "name": "Identifier",
                                "src": "1061:12:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4386,
                                  "type": "int24",
                                  "value": "tick"
                                },
                                "id": 4406,
                                "name": "Identifier",
                                "src": "1087:4:42"
                              }
                            ],
                            "id": 4407,
                            "name": "TupleExpression",
                            "src": "1047:295:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "tuple(uint160,int24,uint16,uint16,uint16,uint8,bool)",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "slot0",
                                  "referencedDeclaration": 2978,
                                  "type": "function () view external returns (uint160,int24,uint16,uint16,uint16,uint8,bool)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4379,
                                      "type": "contract IUniswapV3Pool",
                                      "value": "pool"
                                    },
                                    "id": 4408,
                                    "name": "Identifier",
                                    "src": "1345:4:42"
                                  }
                                ],
                                "id": 4409,
                                "name": "MemberAccess",
                                "src": "1345:10:42"
                              }
                            ],
                            "id": 4410,
                            "name": "FunctionCall",
                            "src": "1345:12:42"
                          }
                        ],
                        "id": 4411,
                        "name": "Assignment",
                        "src": "1047:310:42"
                      }
                    ],
                    "id": 4412,
                    "name": "ExpressionStatement",
                    "src": "1047:310:42"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint128"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4388,
                              "type": "uint128",
                              "value": "liquidity"
                            },
                            "id": 4413,
                            "name": "Identifier",
                            "src": "1367:9:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "uint128",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "liquidity",
                                  "referencedDeclaration": 3004,
                                  "type": "function () view external returns (uint128)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4379,
                                      "type": "contract IUniswapV3Pool",
                                      "value": "pool"
                                    },
                                    "id": 4414,
                                    "name": "Identifier",
                                    "src": "1379:4:42"
                                  }
                                ],
                                "id": 4415,
                                "name": "MemberAccess",
                                "src": "1379:14:42"
                              }
                            ],
                            "id": 4416,
                            "name": "FunctionCall",
                            "src": "1379:16:42"
                          }
                        ],
                        "id": 4417,
                        "name": "Assignment",
                        "src": "1367:28:42"
                      }
                    ],
                    "id": 4418,
                    "name": "ExpressionStatement",
                    "src": "1367:28:42"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        4420
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "tickSpacing",
                          "overrides": null,
                          "scope": 4529,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int24",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int24",
                              "type": "int24"
                            },
                            "id": 4419,
                            "name": "ElementaryTypeName",
                            "src": "1406:5:42"
                          }
                        ],
                        "id": 4420,
                        "name": "VariableDeclaration",
                        "src": "1406:17:42"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int24",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "tickSpacing",
                              "referencedDeclaration": 2950,
                              "type": "function () view external returns (int24)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4379,
                                  "type": "contract IUniswapV3Pool",
                                  "value": "pool"
                                },
                                "id": 4421,
                                "name": "Identifier",
                                "src": "1426:4:42"
                              }
                            ],
                            "id": 4422,
                            "name": "MemberAccess",
                            "src": "1426:16:42"
                          }
                        ],
                        "id": 4423,
                        "name": "FunctionCall",
                        "src": "1426:18:42"
                      }
                    ],
                    "id": 4424,
                    "name": "VariableDeclarationStatement",
                    "src": "1406:38:42"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        4426
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "compressed",
                          "overrides": null,
                          "scope": 4529,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int24",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int24",
                              "type": "int24"
                            },
                            "id": 4425,
                            "name": "ElementaryTypeName",
                            "src": "1454:5:42"
                          }
                        ],
                        "id": 4426,
                        "name": "VariableDeclaration",
                        "src": "1454:16:42"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "/",
                          "type": "int24"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4386,
                              "type": "int24",
                              "value": "tick"
                            },
                            "id": 4427,
                            "name": "Identifier",
                            "src": "1473:4:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4420,
                              "type": "int24",
                              "value": "tickSpacing"
                            },
                            "id": 4428,
                            "name": "Identifier",
                            "src": "1480:11:42"
                          }
                        ],
                        "id": 4429,
                        "name": "BinaryOperation",
                        "src": "1473:18:42"
                      }
                    ],
                    "id": 4430,
                    "name": "VariableDeclarationStatement",
                    "src": "1454:37:42"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "&&",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4386,
                                  "type": "int24",
                                  "value": "tick"
                                },
                                "id": 4431,
                                "name": "Identifier",
                                "src": "1505:4:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 4432,
                                "name": "Literal",
                                "src": "1512:1:42"
                              }
                            ],
                            "id": 4433,
                            "name": "BinaryOperation",
                            "src": "1505:8:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_int24",
                                    "typeString": "int24"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "%",
                                  "type": "int24"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4386,
                                      "type": "int24",
                                      "value": "tick"
                                    },
                                    "id": 4434,
                                    "name": "Identifier",
                                    "src": "1517:4:42"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4420,
                                      "type": "int24",
                                      "value": "tickSpacing"
                                    },
                                    "id": 4435,
                                    "name": "Identifier",
                                    "src": "1524:11:42"
                                  }
                                ],
                                "id": 4436,
                                "name": "BinaryOperation",
                                "src": "1517:18:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 4437,
                                "name": "Literal",
                                "src": "1539:1:42"
                              }
                            ],
                            "id": 4438,
                            "name": "BinaryOperation",
                            "src": "1517:23:42"
                          }
                        ],
                        "id": 4439,
                        "name": "BinaryOperation",
                        "src": "1505:35:42"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "--",
                              "prefix": false,
                              "type": "int24"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4426,
                                  "type": "int24",
                                  "value": "compressed"
                                },
                                "id": 4440,
                                "name": "Identifier",
                                "src": "1542:10:42"
                              }
                            ],
                            "id": 4441,
                            "name": "UnaryOperation",
                            "src": "1542:12:42"
                          }
                        ],
                        "id": 4442,
                        "name": "ExpressionStatement",
                        "src": "1542:12:42"
                      }
                    ],
                    "id": 4443,
                    "name": "IfStatement",
                    "src": "1501:53:42"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        4445
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "tickBitmapIndex",
                          "overrides": null,
                          "scope": 4529,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int16",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int16",
                              "type": "int16"
                            },
                            "id": 4444,
                            "name": "ElementaryTypeName",
                            "src": "1647:5:42"
                          }
                        ],
                        "id": 4445,
                        "name": "VariableDeclaration",
                        "src": "1647:21:42"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int16",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int16)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int16",
                                  "type": null
                                },
                                "id": 4446,
                                "name": "ElementaryTypeName",
                                "src": "1671:5:42"
                              }
                            ],
                            "id": 4447,
                            "name": "ElementaryTypeNameExpression",
                            "src": "1671:5:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">>",
                              "type": "int24"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4426,
                                  "type": "int24",
                                  "value": "compressed"
                                },
                                "id": 4448,
                                "name": "Identifier",
                                "src": "1677:10:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "38",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 8",
                                  "value": "8"
                                },
                                "id": 4449,
                                "name": "Literal",
                                "src": "1691:1:42"
                              }
                            ],
                            "id": 4450,
                            "name": "BinaryOperation",
                            "src": "1677:15:42"
                          }
                        ],
                        "id": 4451,
                        "name": "FunctionCall",
                        "src": "1671:22:42"
                      }
                    ],
                    "id": 4452,
                    "name": "VariableDeclarationStatement",
                    "src": "1647:46:42"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        4454
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "boundTickBitmapIndex",
                          "overrides": null,
                          "scope": 4529,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int16",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int16",
                              "type": "int16"
                            },
                            "id": 4453,
                            "name": "ElementaryTypeName",
                            "src": "1758:5:42"
                          }
                        ],
                        "id": 4454,
                        "name": "VariableDeclaration",
                        "src": "1758:26:42"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int16",
                            "typeString": "int16"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "+",
                          "type": "int16"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4445,
                              "type": "int16",
                              "value": "tickBitmapIndex"
                            },
                            "id": 4455,
                            "name": "Identifier",
                            "src": "1787:15:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int16",
                                "typeString": "int16"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "/",
                              "type": "int16"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4381,
                                  "type": "int16",
                                  "value": "maxLoopN"
                                },
                                "id": 4456,
                                "name": "Identifier",
                                "src": "1805:8:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "32",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 2",
                                  "value": "2"
                                },
                                "id": 4457,
                                "name": "Literal",
                                "src": "1816:1:42"
                              }
                            ],
                            "id": 4458,
                            "name": "BinaryOperation",
                            "src": "1805:12:42"
                          }
                        ],
                        "id": 4459,
                        "name": "BinaryOperation",
                        "src": "1787:30:42"
                      }
                    ],
                    "id": 4460,
                    "name": "VariableDeclarationStatement",
                    "src": "1758:59:42"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        4462
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "nextBitmapIndex",
                          "overrides": null,
                          "scope": 4529,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int16",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int16",
                              "type": "int16"
                            },
                            "id": 4461,
                            "name": "ElementaryTypeName",
                            "src": "1827:5:42"
                          }
                        ],
                        "id": 4462,
                        "name": "VariableDeclaration",
                        "src": "1827:21:42"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 4445,
                          "type": "int16",
                          "value": "tickBitmapIndex"
                        },
                        "id": 4463,
                        "name": "Identifier",
                        "src": "1851:15:42"
                      }
                    ],
                    "id": 4464,
                    "name": "VariableDeclarationStatement",
                    "src": "1827:39:42"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4391,
                                  "type": "struct TickLens.PopulatedTick memory[] memory",
                                  "value": "populatedTicks0"
                                },
                                "id": 4465,
                                "name": "Identifier",
                                "src": "1877:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4462,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4466,
                                "name": "Identifier",
                                "src": "1894:15:42"
                              }
                            ],
                            "id": 4467,
                            "name": "TupleExpression",
                            "src": "1876:34:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                                      "typeString": "contract IUniswapV3Pool"
                                    },
                                    {
                                      "typeIdentifier": "t_int16",
                                      "typeString": "int16"
                                    },
                                    {
                                      "typeIdentifier": "t_int16",
                                      "typeString": "int16"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4583,
                                  "type": "function (contract IUniswapV3Pool,int16,int16) view returns (struct TickLens.PopulatedTick memory[] memory,int16)",
                                  "value": "nextPopulatedTick"
                                },
                                "id": 4468,
                                "name": "Identifier",
                                "src": "1913:17:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4379,
                                  "type": "contract IUniswapV3Pool",
                                  "value": "pool"
                                },
                                "id": 4469,
                                "name": "Identifier",
                                "src": "1944:4:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4462,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4470,
                                "name": "Identifier",
                                "src": "1962:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4454,
                                  "type": "int16",
                                  "value": "boundTickBitmapIndex"
                                },
                                "id": 4471,
                                "name": "Identifier",
                                "src": "1991:20:42"
                              }
                            ],
                            "id": 4472,
                            "name": "FunctionCall",
                            "src": "1913:108:42"
                          }
                        ],
                        "id": 4473,
                        "name": "Assignment",
                        "src": "1876:145:42"
                      }
                    ],
                    "id": 4474,
                    "name": "ExpressionStatement",
                    "src": "1876:145:42"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4394,
                                  "type": "struct TickLens.PopulatedTick memory[] memory",
                                  "value": "populatedTicks1"
                                },
                                "id": 4475,
                                "name": "Identifier",
                                "src": "2032:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4462,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4476,
                                "name": "Identifier",
                                "src": "2049:15:42"
                              }
                            ],
                            "id": 4477,
                            "name": "TupleExpression",
                            "src": "2031:34:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                                      "typeString": "contract IUniswapV3Pool"
                                    },
                                    {
                                      "typeIdentifier": "t_int16",
                                      "typeString": "int16"
                                    },
                                    {
                                      "typeIdentifier": "t_int16",
                                      "typeString": "int16"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4583,
                                  "type": "function (contract IUniswapV3Pool,int16,int16) view returns (struct TickLens.PopulatedTick memory[] memory,int16)",
                                  "value": "nextPopulatedTick"
                                },
                                "id": 4478,
                                "name": "Identifier",
                                "src": "2068:17:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4379,
                                  "type": "contract IUniswapV3Pool",
                                  "value": "pool"
                                },
                                "id": 4479,
                                "name": "Identifier",
                                "src": "2099:4:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4462,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4480,
                                "name": "Identifier",
                                "src": "2117:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4454,
                                  "type": "int16",
                                  "value": "boundTickBitmapIndex"
                                },
                                "id": 4481,
                                "name": "Identifier",
                                "src": "2146:20:42"
                              }
                            ],
                            "id": 4482,
                            "name": "FunctionCall",
                            "src": "2068:108:42"
                          }
                        ],
                        "id": 4483,
                        "name": "Assignment",
                        "src": "2031:145:42"
                      }
                    ],
                    "id": 4484,
                    "name": "ExpressionStatement",
                    "src": "2031:145:42"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4397,
                                  "type": "struct TickLens.PopulatedTick memory[] memory",
                                  "value": "populatedTicks2"
                                },
                                "id": 4485,
                                "name": "Identifier",
                                "src": "2187:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4462,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4486,
                                "name": "Identifier",
                                "src": "2204:15:42"
                              }
                            ],
                            "id": 4487,
                            "name": "TupleExpression",
                            "src": "2186:34:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                                      "typeString": "contract IUniswapV3Pool"
                                    },
                                    {
                                      "typeIdentifier": "t_int16",
                                      "typeString": "int16"
                                    },
                                    {
                                      "typeIdentifier": "t_int16",
                                      "typeString": "int16"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4583,
                                  "type": "function (contract IUniswapV3Pool,int16,int16) view returns (struct TickLens.PopulatedTick memory[] memory,int16)",
                                  "value": "nextPopulatedTick"
                                },
                                "id": 4488,
                                "name": "Identifier",
                                "src": "2223:17:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4379,
                                  "type": "contract IUniswapV3Pool",
                                  "value": "pool"
                                },
                                "id": 4489,
                                "name": "Identifier",
                                "src": "2254:4:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4462,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4490,
                                "name": "Identifier",
                                "src": "2272:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4454,
                                  "type": "int16",
                                  "value": "boundTickBitmapIndex"
                                },
                                "id": 4491,
                                "name": "Identifier",
                                "src": "2301:20:42"
                              }
                            ],
                            "id": 4492,
                            "name": "FunctionCall",
                            "src": "2223:108:42"
                          }
                        ],
                        "id": 4493,
                        "name": "Assignment",
                        "src": "2186:145:42"
                      }
                    ],
                    "id": 4494,
                    "name": "ExpressionStatement",
                    "src": "2186:145:42"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "int16"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4454,
                              "type": "int16",
                              "value": "boundTickBitmapIndex"
                            },
                            "id": 4495,
                            "name": "Identifier",
                            "src": "2342:20:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int16",
                                "typeString": "int16"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "-",
                              "type": "int16"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4445,
                                  "type": "int16",
                                  "value": "tickBitmapIndex"
                                },
                                "id": 4496,
                                "name": "Identifier",
                                "src": "2365:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_int16",
                                    "typeString": "int16"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "/",
                                  "type": "int16"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4381,
                                      "type": "int16",
                                      "value": "maxLoopN"
                                    },
                                    "id": 4497,
                                    "name": "Identifier",
                                    "src": "2383:8:42"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "32",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 2",
                                      "value": "2"
                                    },
                                    "id": 4498,
                                    "name": "Literal",
                                    "src": "2394:1:42"
                                  }
                                ],
                                "id": 4499,
                                "name": "BinaryOperation",
                                "src": "2383:12:42"
                              }
                            ],
                            "id": 4500,
                            "name": "BinaryOperation",
                            "src": "2365:30:42"
                          }
                        ],
                        "id": 4501,
                        "name": "Assignment",
                        "src": "2342:53:42"
                      }
                    ],
                    "id": 4502,
                    "name": "ExpressionStatement",
                    "src": "2342:53:42"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "int16"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4462,
                              "type": "int16",
                              "value": "nextBitmapIndex"
                            },
                            "id": 4503,
                            "name": "Identifier",
                            "src": "2405:15:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int16",
                                "typeString": "int16"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "-",
                              "type": "int16"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4445,
                                  "type": "int16",
                                  "value": "tickBitmapIndex"
                                },
                                "id": 4504,
                                "name": "Identifier",
                                "src": "2423:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "1"
                                },
                                "id": 4505,
                                "name": "Literal",
                                "src": "2441:1:42"
                              }
                            ],
                            "id": 4506,
                            "name": "BinaryOperation",
                            "src": "2423:19:42"
                          }
                        ],
                        "id": 4507,
                        "name": "Assignment",
                        "src": "2405:37:42"
                      }
                    ],
                    "id": 4508,
                    "name": "ExpressionStatement",
                    "src": "2405:37:42"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4400,
                                  "type": "struct TickLens.PopulatedTick memory[] memory",
                                  "value": "populatedTicks3"
                                },
                                "id": 4509,
                                "name": "Identifier",
                                "src": "2453:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4462,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4510,
                                "name": "Identifier",
                                "src": "2470:15:42"
                              }
                            ],
                            "id": 4511,
                            "name": "TupleExpression",
                            "src": "2452:34:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                                      "typeString": "contract IUniswapV3Pool"
                                    },
                                    {
                                      "typeIdentifier": "t_int16",
                                      "typeString": "int16"
                                    },
                                    {
                                      "typeIdentifier": "t_int16",
                                      "typeString": "int16"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4636,
                                  "type": "function (contract IUniswapV3Pool,int16,int16) view returns (struct TickLens.PopulatedTick memory[] memory,int16)",
                                  "value": "prevPopulatedTick"
                                },
                                "id": 4512,
                                "name": "Identifier",
                                "src": "2489:17:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4379,
                                  "type": "contract IUniswapV3Pool",
                                  "value": "pool"
                                },
                                "id": 4513,
                                "name": "Identifier",
                                "src": "2520:4:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4462,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4514,
                                "name": "Identifier",
                                "src": "2538:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4454,
                                  "type": "int16",
                                  "value": "boundTickBitmapIndex"
                                },
                                "id": 4515,
                                "name": "Identifier",
                                "src": "2567:20:42"
                              }
                            ],
                            "id": 4516,
                            "name": "FunctionCall",
                            "src": "2489:108:42"
                          }
                        ],
                        "id": 4517,
                        "name": "Assignment",
                        "src": "2452:145:42"
                      }
                    ],
                    "id": 4518,
                    "name": "ExpressionStatement",
                    "src": "2452:145:42"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4403,
                                  "type": "struct TickLens.PopulatedTick memory[] memory",
                                  "value": "populatedTicks4"
                                },
                                "id": 4519,
                                "name": "Identifier",
                                "src": "2608:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4462,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4520,
                                "name": "Identifier",
                                "src": "2625:15:42"
                              }
                            ],
                            "id": 4521,
                            "name": "TupleExpression",
                            "src": "2607:34:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "tuple(struct TickLens.PopulatedTick memory[] memory,int16)",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                                      "typeString": "contract IUniswapV3Pool"
                                    },
                                    {
                                      "typeIdentifier": "t_int16",
                                      "typeString": "int16"
                                    },
                                    {
                                      "typeIdentifier": "t_int16",
                                      "typeString": "int16"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4636,
                                  "type": "function (contract IUniswapV3Pool,int16,int16) view returns (struct TickLens.PopulatedTick memory[] memory,int16)",
                                  "value": "prevPopulatedTick"
                                },
                                "id": 4522,
                                "name": "Identifier",
                                "src": "2644:17:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4379,
                                  "type": "contract IUniswapV3Pool",
                                  "value": "pool"
                                },
                                "id": 4523,
                                "name": "Identifier",
                                "src": "2675:4:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4462,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4524,
                                "name": "Identifier",
                                "src": "2693:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4454,
                                  "type": "int16",
                                  "value": "boundTickBitmapIndex"
                                },
                                "id": 4525,
                                "name": "Identifier",
                                "src": "2722:20:42"
                              }
                            ],
                            "id": 4526,
                            "name": "FunctionCall",
                            "src": "2644:108:42"
                          }
                        ],
                        "id": 4527,
                        "name": "Assignment",
                        "src": "2607:145:42"
                      }
                    ],
                    "id": 4528,
                    "name": "ExpressionStatement",
                    "src": "2607:145:42"
                  }
                ],
                "id": 4529,
                "name": "Block",
                "src": "1037:1722:42"
              }
            ],
            "id": 4530,
            "name": "FunctionDefinition",
            "src": "546:2213:42"
          },
          {
            "attributes": {
              "documentation": null,
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "nextPopulatedTick",
              "overrides": null,
              "scope": 4751,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "pool",
                      "overrides": null,
                      "scope": 4583,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IUniswapV3Pool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IUniswapV3Pool",
                          "referencedDeclaration": 2821,
                          "type": "contract IUniswapV3Pool"
                        },
                        "id": 4531,
                        "name": "UserDefinedTypeName",
                        "src": "2801:14:42"
                      }
                    ],
                    "id": 4532,
                    "name": "VariableDeclaration",
                    "src": "2801:19:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tickBitmapIndex",
                      "overrides": null,
                      "scope": 4583,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int16",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int16",
                          "type": "int16"
                        },
                        "id": 4533,
                        "name": "ElementaryTypeName",
                        "src": "2830:5:42"
                      }
                    ],
                    "id": 4534,
                    "name": "VariableDeclaration",
                    "src": "2830:21:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "maxTickBitmapIndex",
                      "overrides": null,
                      "scope": 4583,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int16",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int16",
                          "type": "int16"
                        },
                        "id": 4535,
                        "name": "ElementaryTypeName",
                        "src": "2861:5:42"
                      }
                    ],
                    "id": 4536,
                    "name": "VariableDeclaration",
                    "src": "2861:24:42"
                  }
                ],
                "id": 4537,
                "name": "ParameterList",
                "src": "2791:100:42"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "populatedTicks",
                      "overrides": null,
                      "scope": 4583,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "struct TickLens.PopulatedTick[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "struct TickLens.PopulatedTick[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "PopulatedTick",
                              "referencedDeclaration": 4377,
                              "type": "struct TickLens.PopulatedTick"
                            },
                            "id": 4538,
                            "name": "UserDefinedTypeName",
                            "src": "2939:13:42"
                          }
                        ],
                        "id": 4539,
                        "name": "ArrayTypeName",
                        "src": "2939:15:42"
                      }
                    ],
                    "id": 4540,
                    "name": "VariableDeclaration",
                    "src": "2939:37:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "nextBitmapIndex",
                      "overrides": null,
                      "scope": 4583,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int16",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int16",
                          "type": "int16"
                        },
                        "id": 4541,
                        "name": "ElementaryTypeName",
                        "src": "2978:5:42"
                      }
                    ],
                    "id": 4542,
                    "name": "VariableDeclaration",
                    "src": "2978:21:42"
                  }
                ],
                "id": 4543,
                "name": "ParameterList",
                "src": "2938:62:42"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "int16"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4542,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4544,
                                "name": "Identifier",
                                "src": "3033:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4534,
                                  "type": "int16",
                                  "value": "tickBitmapIndex"
                                },
                                "id": 4545,
                                "name": "Identifier",
                                "src": "3051:15:42"
                              }
                            ],
                            "id": 4546,
                            "name": "Assignment",
                            "src": "3033:33:42"
                          }
                        ],
                        "id": 4547,
                        "name": "ExpressionStatement",
                        "src": "3033:33:42"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "&&",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int16",
                                "typeString": "int16"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4542,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4548,
                                "name": "Identifier",
                                "src": "3080:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4536,
                                  "type": "int16",
                                  "value": "maxTickBitmapIndex"
                                },
                                "id": 4549,
                                "name": "Identifier",
                                "src": "3099:18:42"
                              }
                            ],
                            "id": 4550,
                            "name": "BinaryOperation",
                            "src": "3080:37:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4540,
                                      "type": "struct TickLens.PopulatedTick memory[] memory",
                                      "value": "populatedTicks"
                                    },
                                    "id": 4551,
                                    "name": "Identifier",
                                    "src": "3121:14:42"
                                  }
                                ],
                                "id": 4552,
                                "name": "MemberAccess",
                                "src": "3121:21:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 4553,
                                "name": "Literal",
                                "src": "3146:1:42"
                              }
                            ],
                            "id": 4554,
                            "name": "BinaryOperation",
                            "src": "3121:26:42"
                          }
                        ],
                        "id": 4555,
                        "name": "BinaryOperation",
                        "src": "3080:67:42"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "+=",
                              "type": "int16"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4542,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4556,
                                "name": "Identifier",
                                "src": "3161:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "1"
                                },
                                "id": 4557,
                                "name": "Literal",
                                "src": "3180:1:42"
                              }
                            ],
                            "id": 4558,
                            "name": "Assignment",
                            "src": "3161:20:42"
                          }
                        ],
                        "id": 4559,
                        "name": "ExpressionStatement",
                        "src": "3161:20:42"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                4561
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "bitmap",
                                  "overrides": null,
                                  "scope": 4580,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 4560,
                                    "name": "ElementaryTypeName",
                                    "src": "3206:7:42"
                                  }
                                ],
                                "id": 4561,
                                "name": "VariableDeclaration",
                                "src": "3206:14:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "uint256",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_int16",
                                          "typeString": "int16"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "tickBitmap",
                                      "referencedDeclaration": 3034,
                                      "type": "function (int16) view external returns (uint256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4532,
                                          "type": "contract IUniswapV3Pool",
                                          "value": "pool"
                                        },
                                        "id": 4562,
                                        "name": "Identifier",
                                        "src": "3223:4:42"
                                      }
                                    ],
                                    "id": 4563,
                                    "name": "MemberAccess",
                                    "src": "3223:15:42"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4542,
                                      "type": "int16",
                                      "value": "nextBitmapIndex"
                                    },
                                    "id": 4564,
                                    "name": "Identifier",
                                    "src": "3239:15:42"
                                  }
                                ],
                                "id": 4565,
                                "name": "FunctionCall",
                                "src": "3223:32:42"
                              }
                            ],
                            "id": 4566,
                            "name": "VariableDeclarationStatement",
                            "src": "3206:49:42"
                          },
                          {
                            "attributes": {
                              "falseBody": null
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4561,
                                      "type": "uint256",
                                      "value": "bitmap"
                                    },
                                    "id": 4567,
                                    "name": "Identifier",
                                    "src": "3273:6:42"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 4568,
                                    "name": "Literal",
                                    "src": "3282:1:42"
                                  }
                                ],
                                "id": 4569,
                                "name": "BinaryOperation",
                                "src": "3273:10:42"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "=",
                                          "type": "struct TickLens.PopulatedTick memory[] memory"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4540,
                                              "type": "struct TickLens.PopulatedTick memory[] memory",
                                              "value": "populatedTicks"
                                            },
                                            "id": 4570,
                                            "name": "Identifier",
                                            "src": "3303:14:42"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "tryCall": false,
                                              "type": "struct TickLens.PopulatedTick memory[] memory",
                                              "type_conversion": false
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                                                      "typeString": "contract IUniswapV3Pool"
                                                    },
                                                    {
                                                      "typeIdentifier": "t_int16",
                                                      "typeString": "int16"
                                                    },
                                                    {
                                                      "typeIdentifier": "t_uint256",
                                                      "typeString": "uint256"
                                                    }
                                                  ],
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4750,
                                                  "type": "function (contract IUniswapV3Pool,int16,uint256) view returns (struct TickLens.PopulatedTick memory[] memory)",
                                                  "value": "getPopulatedTicksInWord"
                                                },
                                                "id": 4571,
                                                "name": "Identifier",
                                                "src": "3320:23:42"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4532,
                                                  "type": "contract IUniswapV3Pool",
                                                  "value": "pool"
                                                },
                                                "id": 4572,
                                                "name": "Identifier",
                                                "src": "3365:4:42"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4542,
                                                  "type": "int16",
                                                  "value": "nextBitmapIndex"
                                                },
                                                "id": 4573,
                                                "name": "Identifier",
                                                "src": "3391:15:42"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4561,
                                                  "type": "uint256",
                                                  "value": "bitmap"
                                                },
                                                "id": 4574,
                                                "name": "Identifier",
                                                "src": "3428:6:42"
                                              }
                                            ],
                                            "id": 4575,
                                            "name": "FunctionCall",
                                            "src": "3320:132:42"
                                          }
                                        ],
                                        "id": 4576,
                                        "name": "Assignment",
                                        "src": "3303:149:42"
                                      }
                                    ],
                                    "id": 4577,
                                    "name": "ExpressionStatement",
                                    "src": "3303:149:42"
                                  }
                                ],
                                "id": 4578,
                                "name": "Block",
                                "src": "3285:182:42"
                              }
                            ],
                            "id": 4579,
                            "name": "IfStatement",
                            "src": "3269:198:42"
                          }
                        ],
                        "id": 4580,
                        "name": "Block",
                        "src": "3192:285:42"
                      }
                    ],
                    "id": 4581,
                    "name": "ForStatement",
                    "src": "3015:462:42"
                  }
                ],
                "id": 4582,
                "name": "Block",
                "src": "3005:478:42"
              }
            ],
            "id": 4583,
            "name": "FunctionDefinition",
            "src": "2765:718:42"
          },
          {
            "attributes": {
              "documentation": null,
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "prevPopulatedTick",
              "overrides": null,
              "scope": 4751,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "pool",
                      "overrides": null,
                      "scope": 4636,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IUniswapV3Pool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IUniswapV3Pool",
                          "referencedDeclaration": 2821,
                          "type": "contract IUniswapV3Pool"
                        },
                        "id": 4584,
                        "name": "UserDefinedTypeName",
                        "src": "3525:14:42"
                      }
                    ],
                    "id": 4585,
                    "name": "VariableDeclaration",
                    "src": "3525:19:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tickBitmapIndex",
                      "overrides": null,
                      "scope": 4636,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int16",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int16",
                          "type": "int16"
                        },
                        "id": 4586,
                        "name": "ElementaryTypeName",
                        "src": "3554:5:42"
                      }
                    ],
                    "id": 4587,
                    "name": "VariableDeclaration",
                    "src": "3554:21:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "minTickBitmapIndex",
                      "overrides": null,
                      "scope": 4636,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int16",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int16",
                          "type": "int16"
                        },
                        "id": 4588,
                        "name": "ElementaryTypeName",
                        "src": "3585:5:42"
                      }
                    ],
                    "id": 4589,
                    "name": "VariableDeclaration",
                    "src": "3585:24:42"
                  }
                ],
                "id": 4590,
                "name": "ParameterList",
                "src": "3515:100:42"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "populatedTicks",
                      "overrides": null,
                      "scope": 4636,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "struct TickLens.PopulatedTick[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "struct TickLens.PopulatedTick[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "PopulatedTick",
                              "referencedDeclaration": 4377,
                              "type": "struct TickLens.PopulatedTick"
                            },
                            "id": 4591,
                            "name": "UserDefinedTypeName",
                            "src": "3663:13:42"
                          }
                        ],
                        "id": 4592,
                        "name": "ArrayTypeName",
                        "src": "3663:15:42"
                      }
                    ],
                    "id": 4593,
                    "name": "VariableDeclaration",
                    "src": "3663:37:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "nextBitmapIndex",
                      "overrides": null,
                      "scope": 4636,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int16",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int16",
                          "type": "int16"
                        },
                        "id": 4594,
                        "name": "ElementaryTypeName",
                        "src": "3702:5:42"
                      }
                    ],
                    "id": 4595,
                    "name": "VariableDeclaration",
                    "src": "3702:21:42"
                  }
                ],
                "id": 4596,
                "name": "ParameterList",
                "src": "3662:62:42"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "int16"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4595,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4597,
                                "name": "Identifier",
                                "src": "3757:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4587,
                                  "type": "int16",
                                  "value": "tickBitmapIndex"
                                },
                                "id": 4598,
                                "name": "Identifier",
                                "src": "3775:15:42"
                              }
                            ],
                            "id": 4599,
                            "name": "Assignment",
                            "src": "3757:33:42"
                          }
                        ],
                        "id": 4600,
                        "name": "ExpressionStatement",
                        "src": "3757:33:42"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "&&",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_int16",
                                "typeString": "int16"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4595,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4601,
                                "name": "Identifier",
                                "src": "3804:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4589,
                                  "type": "int16",
                                  "value": "minTickBitmapIndex"
                                },
                                "id": 4602,
                                "name": "Identifier",
                                "src": "3823:18:42"
                              }
                            ],
                            "id": 4603,
                            "name": "BinaryOperation",
                            "src": "3804:37:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4593,
                                      "type": "struct TickLens.PopulatedTick memory[] memory",
                                      "value": "populatedTicks"
                                    },
                                    "id": 4604,
                                    "name": "Identifier",
                                    "src": "3845:14:42"
                                  }
                                ],
                                "id": 4605,
                                "name": "MemberAccess",
                                "src": "3845:21:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 4606,
                                "name": "Literal",
                                "src": "3870:1:42"
                              }
                            ],
                            "id": 4607,
                            "name": "BinaryOperation",
                            "src": "3845:26:42"
                          }
                        ],
                        "id": 4608,
                        "name": "BinaryOperation",
                        "src": "3804:67:42"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "-=",
                              "type": "int16"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4595,
                                  "type": "int16",
                                  "value": "nextBitmapIndex"
                                },
                                "id": 4609,
                                "name": "Identifier",
                                "src": "3885:15:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "1"
                                },
                                "id": 4610,
                                "name": "Literal",
                                "src": "3904:1:42"
                              }
                            ],
                            "id": 4611,
                            "name": "Assignment",
                            "src": "3885:20:42"
                          }
                        ],
                        "id": 4612,
                        "name": "ExpressionStatement",
                        "src": "3885:20:42"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                4614
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "bitmap",
                                  "overrides": null,
                                  "scope": 4633,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 4613,
                                    "name": "ElementaryTypeName",
                                    "src": "3930:7:42"
                                  }
                                ],
                                "id": 4614,
                                "name": "VariableDeclaration",
                                "src": "3930:14:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "uint256",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_int16",
                                          "typeString": "int16"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "tickBitmap",
                                      "referencedDeclaration": 3034,
                                      "type": "function (int16) view external returns (uint256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4585,
                                          "type": "contract IUniswapV3Pool",
                                          "value": "pool"
                                        },
                                        "id": 4615,
                                        "name": "Identifier",
                                        "src": "3947:4:42"
                                      }
                                    ],
                                    "id": 4616,
                                    "name": "MemberAccess",
                                    "src": "3947:15:42"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4595,
                                      "type": "int16",
                                      "value": "nextBitmapIndex"
                                    },
                                    "id": 4617,
                                    "name": "Identifier",
                                    "src": "3963:15:42"
                                  }
                                ],
                                "id": 4618,
                                "name": "FunctionCall",
                                "src": "3947:32:42"
                              }
                            ],
                            "id": 4619,
                            "name": "VariableDeclarationStatement",
                            "src": "3930:49:42"
                          },
                          {
                            "attributes": {
                              "falseBody": null
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4614,
                                      "type": "uint256",
                                      "value": "bitmap"
                                    },
                                    "id": 4620,
                                    "name": "Identifier",
                                    "src": "3997:6:42"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 4621,
                                    "name": "Literal",
                                    "src": "4006:1:42"
                                  }
                                ],
                                "id": 4622,
                                "name": "BinaryOperation",
                                "src": "3997:10:42"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "=",
                                          "type": "struct TickLens.PopulatedTick memory[] memory"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4593,
                                              "type": "struct TickLens.PopulatedTick memory[] memory",
                                              "value": "populatedTicks"
                                            },
                                            "id": 4623,
                                            "name": "Identifier",
                                            "src": "4027:14:42"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "tryCall": false,
                                              "type": "struct TickLens.PopulatedTick memory[] memory",
                                              "type_conversion": false
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_contract$_IUniswapV3Pool_$2821",
                                                      "typeString": "contract IUniswapV3Pool"
                                                    },
                                                    {
                                                      "typeIdentifier": "t_int16",
                                                      "typeString": "int16"
                                                    },
                                                    {
                                                      "typeIdentifier": "t_uint256",
                                                      "typeString": "uint256"
                                                    }
                                                  ],
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4750,
                                                  "type": "function (contract IUniswapV3Pool,int16,uint256) view returns (struct TickLens.PopulatedTick memory[] memory)",
                                                  "value": "getPopulatedTicksInWord"
                                                },
                                                "id": 4624,
                                                "name": "Identifier",
                                                "src": "4044:23:42"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4585,
                                                  "type": "contract IUniswapV3Pool",
                                                  "value": "pool"
                                                },
                                                "id": 4625,
                                                "name": "Identifier",
                                                "src": "4089:4:42"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4595,
                                                  "type": "int16",
                                                  "value": "nextBitmapIndex"
                                                },
                                                "id": 4626,
                                                "name": "Identifier",
                                                "src": "4115:15:42"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4614,
                                                  "type": "uint256",
                                                  "value": "bitmap"
                                                },
                                                "id": 4627,
                                                "name": "Identifier",
                                                "src": "4152:6:42"
                                              }
                                            ],
                                            "id": 4628,
                                            "name": "FunctionCall",
                                            "src": "4044:132:42"
                                          }
                                        ],
                                        "id": 4629,
                                        "name": "Assignment",
                                        "src": "4027:149:42"
                                      }
                                    ],
                                    "id": 4630,
                                    "name": "ExpressionStatement",
                                    "src": "4027:149:42"
                                  }
                                ],
                                "id": 4631,
                                "name": "Block",
                                "src": "4009:182:42"
                              }
                            ],
                            "id": 4632,
                            "name": "IfStatement",
                            "src": "3993:198:42"
                          }
                        ],
                        "id": 4633,
                        "name": "Block",
                        "src": "3916:285:42"
                      }
                    ],
                    "id": 4634,
                    "name": "ForStatement",
                    "src": "3739:462:42"
                  }
                ],
                "id": 4635,
                "name": "Block",
                "src": "3729:478:42"
              }
            ],
            "id": 4636,
            "name": "FunctionDefinition",
            "src": "3489:718:42"
          },
          {
            "attributes": {
              "documentation": null,
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getPopulatedTicksInWord",
              "overrides": null,
              "scope": 4751,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "pool",
                      "overrides": null,
                      "scope": 4750,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IUniswapV3Pool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IUniswapV3Pool",
                          "referencedDeclaration": 2821,
                          "type": "contract IUniswapV3Pool"
                        },
                        "id": 4637,
                        "name": "UserDefinedTypeName",
                        "src": "4255:14:42"
                      }
                    ],
                    "id": 4638,
                    "name": "VariableDeclaration",
                    "src": "4255:19:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tickBitmapIndex",
                      "overrides": null,
                      "scope": 4750,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int16",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int16",
                          "type": "int16"
                        },
                        "id": 4639,
                        "name": "ElementaryTypeName",
                        "src": "4284:5:42"
                      }
                    ],
                    "id": 4640,
                    "name": "VariableDeclaration",
                    "src": "4284:21:42"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "bitmap",
                      "overrides": null,
                      "scope": 4750,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 4641,
                        "name": "ElementaryTypeName",
                        "src": "4315:7:42"
                      }
                    ],
                    "id": 4642,
                    "name": "VariableDeclaration",
                    "src": "4315:14:42"
                  }
                ],
                "id": 4643,
                "name": "ParameterList",
                "src": "4245:90:42"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "populatedTicks",
                      "overrides": null,
                      "scope": 4750,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "struct TickLens.PopulatedTick[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "struct TickLens.PopulatedTick[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "PopulatedTick",
                              "referencedDeclaration": 4377,
                              "type": "struct TickLens.PopulatedTick"
                            },
                            "id": 4644,
                            "name": "UserDefinedTypeName",
                            "src": "4359:13:42"
                          }
                        ],
                        "id": 4645,
                        "name": "ArrayTypeName",
                        "src": "4359:15:42"
                      }
                    ],
                    "id": 4646,
                    "name": "VariableDeclaration",
                    "src": "4359:37:42"
                  }
                ],
                "id": 4647,
                "name": "ParameterList",
                "src": "4358:39:42"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        4649
                      ],
                      "initialValue": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "numberOfPopulatedTicks",
                          "overrides": null,
                          "scope": 4749,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 4648,
                            "name": "ElementaryTypeName",
                            "src": "4459:7:42"
                          }
                        ],
                        "id": 4649,
                        "name": "VariableDeclaration",
                        "src": "4459:30:42"
                      }
                    ],
                    "id": 4650,
                    "name": "VariableDeclarationStatement",
                    "src": "4459:30:42"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            4652
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "mutability": "mutable",
                              "name": "i",
                              "overrides": null,
                              "scope": 4674,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint256",
                                  "type": "uint256"
                                },
                                "id": 4651,
                                "name": "ElementaryTypeName",
                                "src": "4504:7:42"
                              }
                            ],
                            "id": 4652,
                            "name": "VariableDeclaration",
                            "src": "4504:9:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 4653,
                            "name": "Literal",
                            "src": "4516:1:42"
                          }
                        ],
                        "id": 4654,
                        "name": "VariableDeclarationStatement",
                        "src": "4504:13:42"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4652,
                              "type": "uint256",
                              "value": "i"
                            },
                            "id": 4655,
                            "name": "Identifier",
                            "src": "4519:1:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "323536",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 256",
                              "value": "256"
                            },
                            "id": 4656,
                            "name": "Literal",
                            "src": "4523:3:42"
                          }
                        ],
                        "id": 4657,
                        "name": "BinaryOperation",
                        "src": "4519:7:42"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4652,
                                  "type": "uint256",
                                  "value": "i"
                                },
                                "id": 4658,
                                "name": "Identifier",
                                "src": "4528:1:42"
                              }
                            ],
                            "id": 4659,
                            "name": "UnaryOperation",
                            "src": "4528:3:42"
                          }
                        ],
                        "id": 4660,
                        "name": "ExpressionStatement",
                        "src": "4528:3:42"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "falseBody": null
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "&",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4642,
                                          "type": "uint256",
                                          "value": "bitmap"
                                        },
                                        "id": 4661,
                                        "name": "Identifier",
                                        "src": "4551:6:42"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isInlineArray": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "<<",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "hexvalue": "31",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "subdenomination": null,
                                                  "token": "number",
                                                  "type": "int_const 1",
                                                  "value": "1"
                                                },
                                                "id": 4662,
                                                "name": "Literal",
                                                "src": "4561:1:42"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4652,
                                                  "type": "uint256",
                                                  "value": "i"
                                                },
                                                "id": 4663,
                                                "name": "Identifier",
                                                "src": "4566:1:42"
                                              }
                                            ],
                                            "id": 4664,
                                            "name": "BinaryOperation",
                                            "src": "4561:6:42"
                                          }
                                        ],
                                        "id": 4665,
                                        "name": "TupleExpression",
                                        "src": "4560:8:42"
                                      }
                                    ],
                                    "id": 4666,
                                    "name": "BinaryOperation",
                                    "src": "4551:17:42"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 4667,
                                    "name": "Literal",
                                    "src": "4571:1:42"
                                  }
                                ],
                                "id": 4668,
                                "name": "BinaryOperation",
                                "src": "4551:21:42"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "++",
                                      "prefix": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4649,
                                          "type": "uint256",
                                          "value": "numberOfPopulatedTicks"
                                        },
                                        "id": 4669,
                                        "name": "Identifier",
                                        "src": "4574:22:42"
                                      }
                                    ],
                                    "id": 4670,
                                    "name": "UnaryOperation",
                                    "src": "4574:24:42"
                                  }
                                ],
                                "id": 4671,
                                "name": "ExpressionStatement",
                                "src": "4574:24:42"
                              }
                            ],
                            "id": 4672,
                            "name": "IfStatement",
                            "src": "4547:51:42"
                          }
                        ],
                        "id": 4673,
                        "name": "Block",
                        "src": "4533:76:42"
                      }
                    ],
                    "id": 4674,
                    "name": "ForStatement",
                    "src": "4499:110:42"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        4676
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "tickSpacing",
                          "overrides": null,
                          "scope": 4749,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int24",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int24",
                              "type": "int24"
                            },
                            "id": 4675,
                            "name": "ElementaryTypeName",
                            "src": "4656:5:42"
                          }
                        ],
                        "id": 4676,
                        "name": "VariableDeclaration",
                        "src": "4656:17:42"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int24",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "tickSpacing",
                              "referencedDeclaration": 2950,
                              "type": "function () view external returns (int24)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4638,
                                  "type": "contract IUniswapV3Pool",
                                  "value": "pool"
                                },
                                "id": 4677,
                                "name": "Identifier",
                                "src": "4676:4:42"
                              }
                            ],
                            "id": 4678,
                            "name": "MemberAccess",
                            "src": "4676:16:42"
                          }
                        ],
                        "id": 4679,
                        "name": "FunctionCall",
                        "src": "4676:18:42"
                      }
                    ],
                    "id": 4680,
                    "name": "VariableDeclarationStatement",
                    "src": "4656:38:42"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct TickLens.PopulatedTick memory[] memory"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4646,
                              "type": "struct TickLens.PopulatedTick memory[] memory",
                              "value": "populatedTicks"
                            },
                            "id": 4681,
                            "name": "Identifier",
                            "src": "4704:14:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "struct TickLens.PopulatedTick memory[] memory",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "function (uint256) pure returns (struct TickLens.PopulatedTick memory[] memory)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "length": null,
                                      "type": "struct TickLens.PopulatedTick[]"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "contractScope": null,
                                          "name": "PopulatedTick",
                                          "referencedDeclaration": 4377,
                                          "type": "struct TickLens.PopulatedTick"
                                        },
                                        "id": 4682,
                                        "name": "UserDefinedTypeName",
                                        "src": "4725:13:42"
                                      }
                                    ],
                                    "id": 4683,
                                    "name": "ArrayTypeName",
                                    "src": "4725:15:42"
                                  }
                                ],
                                "id": 4684,
                                "name": "NewExpression",
                                "src": "4721:19:42"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4649,
                                  "type": "uint256",
                                  "value": "numberOfPopulatedTicks"
                                },
                                "id": 4685,
                                "name": "Identifier",
                                "src": "4741:22:42"
                              }
                            ],
                            "id": 4686,
                            "name": "FunctionCall",
                            "src": "4721:43:42"
                          }
                        ],
                        "id": 4687,
                        "name": "Assignment",
                        "src": "4704:60:42"
                      }
                    ],
                    "id": 4688,
                    "name": "ExpressionStatement",
                    "src": "4704:60:42"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            4690
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "mutability": "mutable",
                              "name": "i",
                              "overrides": null,
                              "scope": 4748,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint256",
                                  "type": "uint256"
                                },
                                "id": 4689,
                                "name": "ElementaryTypeName",
                                "src": "4779:7:42"
                              }
                            ],
                            "id": 4690,
                            "name": "VariableDeclaration",
                            "src": "4779:9:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 4691,
                            "name": "Literal",
                            "src": "4791:1:42"
                          }
                        ],
                        "id": 4692,
                        "name": "VariableDeclarationStatement",
                        "src": "4779:13:42"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4690,
                              "type": "uint256",
                              "value": "i"
                            },
                            "id": 4693,
                            "name": "Identifier",
                            "src": "4794:1:42"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "323536",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 256",
                              "value": "256"
                            },
                            "id": 4694,
                            "name": "Literal",
                            "src": "4798:3:42"
                          }
                        ],
                        "id": 4695,
                        "name": "BinaryOperation",
                        "src": "4794:7:42"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 4690,
                                  "type": "uint256",
                                  "value": "i"
                                },
                                "id": 4696,
                                "name": "Identifier",
                                "src": "4803:1:42"
                              }
                            ],
                            "id": 4697,
                            "name": "UnaryOperation",
                            "src": "4803:3:42"
                          }
                        ],
                        "id": 4698,
                        "name": "ExpressionStatement",
                        "src": "4803:3:42"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "falseBody": null
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "&",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 4642,
                                          "type": "uint256",
                                          "value": "bitmap"
                                        },
                                        "id": 4699,
                                        "name": "Identifier",
                                        "src": "4826:6:42"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isInlineArray": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "<<",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "hexvalue": "31",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "subdenomination": null,
                                                  "token": "number",
                                                  "type": "int_const 1",
                                                  "value": "1"
                                                },
                                                "id": 4700,
                                                "name": "Literal",
                                                "src": "4836:1:42"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4690,
                                                  "type": "uint256",
                                                  "value": "i"
                                                },
                                                "id": 4701,
                                                "name": "Identifier",
                                                "src": "4841:1:42"
                                              }
                                            ],
                                            "id": 4702,
                                            "name": "BinaryOperation",
                                            "src": "4836:6:42"
                                          }
                                        ],
                                        "id": 4703,
                                        "name": "TupleExpression",
                                        "src": "4835:8:42"
                                      }
                                    ],
                                    "id": 4704,
                                    "name": "BinaryOperation",
                                    "src": "4826:17:42"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 4705,
                                    "name": "Literal",
                                    "src": "4846:1:42"
                                  }
                                ],
                                "id": 4706,
                                "name": "BinaryOperation",
                                "src": "4826:21:42"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "assignments": [
                                        4708
                                      ]
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "constant": false,
                                          "mutability": "mutable",
                                          "name": "populatedTick",
                                          "overrides": null,
                                          "scope": 4745,
                                          "stateVariable": false,
                                          "storageLocation": "default",
                                          "type": "int24",
                                          "value": null,
                                          "visibility": "internal"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "int24",
                                              "type": "int24"
                                            },
                                            "id": 4707,
                                            "name": "ElementaryTypeName",
                                            "src": "4867:5:42"
                                          }
                                        ],
                                        "id": 4708,
                                        "name": "VariableDeclaration",
                                        "src": "4867:19:42"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_int24",
                                            "typeString": "int24"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "int24"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isInlineArray": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "int24"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "commonType": {
                                                    "typeIdentifier": "t_int24",
                                                    "typeString": "int24"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "+",
                                                  "type": "int24"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isInlineArray": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "type": "int24"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "commonType": {
                                                            "typeIdentifier": "t_int24",
                                                            "typeString": "int24"
                                                          },
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "operator": "<<",
                                                          "type": "int24"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": false,
                                                              "isStructConstructorCall": false,
                                                              "lValueRequested": false,
                                                              "names": [
                                                                null
                                                              ],
                                                              "tryCall": false,
                                                              "type": "int24",
                                                              "type_conversion": true
                                                            },
                                                            "children": [
                                                              {
                                                                "attributes": {
                                                                  "argumentTypes": [
                                                                    {
                                                                      "typeIdentifier": "t_int16",
                                                                      "typeString": "int16"
                                                                    }
                                                                  ],
                                                                  "isConstant": false,
                                                                  "isLValue": false,
                                                                  "isPure": true,
                                                                  "lValueRequested": false,
                                                                  "type": "type(int24)"
                                                                },
                                                                "children": [
                                                                  {
                                                                    "attributes": {
                                                                      "name": "int24",
                                                                      "type": null
                                                                    },
                                                                    "id": 4709,
                                                                    "name": "ElementaryTypeName",
                                                                    "src": "4891:5:42"
                                                                  }
                                                                ],
                                                                "id": 4710,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "4891:5:42"
                                                              },
                                                              {
                                                                "attributes": {
                                                                  "argumentTypes": null,
                                                                  "overloadedDeclarations": [
                                                                    null
                                                                  ],
                                                                  "referencedDeclaration": 4640,
                                                                  "type": "int16",
                                                                  "value": "tickBitmapIndex"
                                                                },
                                                                "id": 4711,
                                                                "name": "Identifier",
                                                                "src": "4897:15:42"
                                                              }
                                                            ],
                                                            "id": 4712,
                                                            "name": "FunctionCall",
                                                            "src": "4891:22:42"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "hexvalue": "38",
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": true,
                                                              "lValueRequested": false,
                                                              "subdenomination": null,
                                                              "token": "number",
                                                              "type": "int_const 8",
                                                              "value": "8"
                                                            },
                                                            "id": 4713,
                                                            "name": "Literal",
                                                            "src": "4917:1:42"
                                                          }
                                                        ],
                                                        "id": 4714,
                                                        "name": "BinaryOperation",
                                                        "src": "4891:27:42"
                                                      }
                                                    ],
                                                    "id": 4715,
                                                    "name": "TupleExpression",
                                                    "src": "4890:29:42"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "isStructConstructorCall": false,
                                                      "lValueRequested": false,
                                                      "names": [
                                                        null
                                                      ],
                                                      "tryCall": false,
                                                      "type": "int24",
                                                      "type_conversion": true
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": [
                                                            {
                                                              "typeIdentifier": "t_uint256",
                                                              "typeString": "uint256"
                                                            }
                                                          ],
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "type": "type(int24)"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "name": "int24",
                                                              "type": null
                                                            },
                                                            "id": 4716,
                                                            "name": "ElementaryTypeName",
                                                            "src": "4942:5:42"
                                                          }
                                                        ],
                                                        "id": 4717,
                                                        "name": "ElementaryTypeNameExpression",
                                                        "src": "4942:5:42"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 4690,
                                                          "type": "uint256",
                                                          "value": "i"
                                                        },
                                                        "id": 4718,
                                                        "name": "Identifier",
                                                        "src": "4948:1:42"
                                                      }
                                                    ],
                                                    "id": 4719,
                                                    "name": "FunctionCall",
                                                    "src": "4942:8:42"
                                                  }
                                                ],
                                                "id": 4720,
                                                "name": "BinaryOperation",
                                                "src": "4890:60:42"
                                              }
                                            ],
                                            "id": 4721,
                                            "name": "TupleExpression",
                                            "src": "4889:62:42"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4676,
                                              "type": "int24",
                                              "value": "tickSpacing"
                                            },
                                            "id": 4722,
                                            "name": "Identifier",
                                            "src": "4954:11:42"
                                          }
                                        ],
                                        "id": 4723,
                                        "name": "BinaryOperation",
                                        "src": "4889:76:42"
                                      }
                                    ],
                                    "id": 4724,
                                    "name": "VariableDeclarationStatement",
                                    "src": "4867:98:42"
                                  },
                                  {
                                    "attributes": {
                                      "assignments": [
                                        4726,
                                        4728,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null,
                                        null
                                      ]
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "constant": false,
                                          "mutability": "mutable",
                                          "name": "liquidityGross",
                                          "overrides": null,
                                          "scope": 4745,
                                          "stateVariable": false,
                                          "storageLocation": "default",
                                          "type": "uint128",
                                          "value": null,
                                          "visibility": "internal"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "uint128",
                                              "type": "uint128"
                                            },
                                            "id": 4725,
                                            "name": "ElementaryTypeName",
                                            "src": "4984:7:42"
                                          }
                                        ],
                                        "id": 4726,
                                        "name": "VariableDeclaration",
                                        "src": "4984:22:42"
                                      },
                                      {
                                        "attributes": {
                                          "constant": false,
                                          "mutability": "mutable",
                                          "name": "liquidityNet",
                                          "overrides": null,
                                          "scope": 4745,
                                          "stateVariable": false,
                                          "storageLocation": "default",
                                          "type": "int128",
                                          "value": null,
                                          "visibility": "internal"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "int128",
                                              "type": "int128"
                                            },
                                            "id": 4727,
                                            "name": "ElementaryTypeName",
                                            "src": "5008:6:42"
                                          }
                                        ],
                                        "id": 4728,
                                        "name": "VariableDeclaration",
                                        "src": "5008:19:42"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "tryCall": false,
                                          "type": "tuple(uint128,int128,uint256,uint256,int56,uint160,uint32,bool)",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_int24",
                                                  "typeString": "int24"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "ticks",
                                              "referencedDeclaration": 3026,
                                              "type": "function (int24) view external returns (uint128,int128,uint256,uint256,int56,uint160,uint32,bool)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4638,
                                                  "type": "contract IUniswapV3Pool",
                                                  "value": "pool"
                                                },
                                                "id": 4729,
                                                "name": "Identifier",
                                                "src": "5043:4:42"
                                              }
                                            ],
                                            "id": 4730,
                                            "name": "MemberAccess",
                                            "src": "5043:31:42"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4708,
                                              "type": "int24",
                                              "value": "populatedTick"
                                            },
                                            "id": 4731,
                                            "name": "Identifier",
                                            "src": "5075:13:42"
                                          }
                                        ],
                                        "id": 4732,
                                        "name": "FunctionCall",
                                        "src": "5043:46:42"
                                      }
                                    ],
                                    "id": 4733,
                                    "name": "VariableDeclarationStatement",
                                    "src": "4983:106:42"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "=",
                                          "type": "struct TickLens.PopulatedTick memory"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": true,
                                              "type": "struct TickLens.PopulatedTick memory"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4646,
                                                  "type": "struct TickLens.PopulatedTick memory[] memory",
                                                  "value": "populatedTicks"
                                                },
                                                "id": 4734,
                                                "name": "Identifier",
                                                "src": "5107:14:42"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "--",
                                                  "prefix": true,
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 4649,
                                                      "type": "uint256",
                                                      "value": "numberOfPopulatedTicks"
                                                    },
                                                    "id": 4735,
                                                    "name": "Identifier",
                                                    "src": "5124:22:42"
                                                  }
                                                ],
                                                "id": 4736,
                                                "name": "UnaryOperation",
                                                "src": "5122:24:42"
                                              }
                                            ],
                                            "id": 4737,
                                            "name": "IndexAccess",
                                            "src": "5107:40:42"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": true,
                                              "lValueRequested": false,
                                              "names": [
                                                "tick",
                                                "liquidityNet",
                                                "liquidityGross"
                                              ],
                                              "tryCall": false,
                                              "type": "struct TickLens.PopulatedTick memory",
                                              "type_conversion": false
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_int24",
                                                      "typeString": "int24"
                                                    },
                                                    {
                                                      "typeIdentifier": "t_int128",
                                                      "typeString": "int128"
                                                    },
                                                    {
                                                      "typeIdentifier": "t_uint128",
                                                      "typeString": "uint128"
                                                    }
                                                  ],
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4377,
                                                  "type": "type(struct TickLens.PopulatedTick storage pointer)",
                                                  "value": "PopulatedTick"
                                                },
                                                "id": 4738,
                                                "name": "Identifier",
                                                "src": "5150:13:42"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4708,
                                                  "type": "int24",
                                                  "value": "populatedTick"
                                                },
                                                "id": 4739,
                                                "name": "Identifier",
                                                "src": "5192:13:42"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4728,
                                                  "type": "int128",
                                                  "value": "liquidityNet"
                                                },
                                                "id": 4740,
                                                "name": "Identifier",
                                                "src": "5241:12:42"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 4726,
                                                  "type": "uint128",
                                                  "value": "liquidityGross"
                                                },
                                                "id": 4741,
                                                "name": "Identifier",
                                                "src": "5291:14:42"
                                              }
                                            ],
                                            "id": 4742,
                                            "name": "FunctionCall",
                                            "src": "5150:174:42"
                                          }
                                        ],
                                        "id": 4743,
                                        "name": "Assignment",
                                        "src": "5107:217:42"
                                      }
                                    ],
                                    "id": 4744,
                                    "name": "ExpressionStatement",
                                    "src": "5107:217:42"
                                  }
                                ],
                                "id": 4745,
                                "name": "Block",
                                "src": "4849:490:42"
                              }
                            ],
                            "id": 4746,
                            "name": "IfStatement",
                            "src": "4822:517:42"
                          }
                        ],
                        "id": 4747,
                        "name": "Block",
                        "src": "4808:541:42"
                      }
                    ],
                    "id": 4748,
                    "name": "ForStatement",
                    "src": "4774:575:42"
                  }
                ],
                "id": 4749,
                "name": "Block",
                "src": "4398:957:42"
              }
            ],
            "id": 4750,
            "name": "FunctionDefinition",
            "src": "4213:1142:42"
          }
        ],
        "id": 4751,
        "name": "ContractDefinition",
        "src": "156:5201:42"
      }
    ],
    "id": 4752,
    "name": "SourceUnit",
    "src": "32:5326:42"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.8+commit.0bbfe453.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-02-07T17:50:42.806Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}