{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "int24",
          "name": "tickLower",
          "type": "int24"
        },
        {
          "indexed": true,
          "internalType": "int24",
          "name": "tickUpper",
          "type": "int24"
        },
        {
          "indexed": false,
          "internalType": "uint128",
          "name": "amount",
          "type": "uint128"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount0",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount1",
          "type": "uint256"
        }
      ],
      "name": "Burn",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "int24",
          "name": "tickLower",
          "type": "int24"
        },
        {
          "indexed": true,
          "internalType": "int24",
          "name": "tickUpper",
          "type": "int24"
        },
        {
          "indexed": false,
          "internalType": "uint128",
          "name": "amount0",
          "type": "uint128"
        },
        {
          "indexed": false,
          "internalType": "uint128",
          "name": "amount1",
          "type": "uint128"
        }
      ],
      "name": "Collect",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint128",
          "name": "amount0",
          "type": "uint128"
        },
        {
          "indexed": false,
          "internalType": "uint128",
          "name": "amount1",
          "type": "uint128"
        }
      ],
      "name": "CollectProtocol",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount0",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount1",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "paid0",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "paid1",
          "type": "uint256"
        }
      ],
      "name": "Flash",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "observationCardinalityNextOld",
          "type": "uint16"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "observationCardinalityNextNew",
          "type": "uint16"
        }
      ],
      "name": "IncreaseObservationCardinalityNext",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint160",
          "name": "sqrtPriceX96",
          "type": "uint160"
        },
        {
          "indexed": false,
          "internalType": "int24",
          "name": "tick",
          "type": "int24"
        }
      ],
      "name": "Initialize",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "int24",
          "name": "tickLower",
          "type": "int24"
        },
        {
          "indexed": true,
          "internalType": "int24",
          "name": "tickUpper",
          "type": "int24"
        },
        {
          "indexed": false,
          "internalType": "uint128",
          "name": "amount",
          "type": "uint128"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount0",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount1",
          "type": "uint256"
        }
      ],
      "name": "Mint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "feeProtocol0Old",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "feeProtocol1Old",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "feeProtocol0New",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "feeProtocol1New",
          "type": "uint8"
        }
      ],
      "name": "SetFeeProtocol",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "amount0",
          "type": "int256"
        },
        {
          "indexed": false,
          "internalType": "int256",
          "name": "amount1",
          "type": "int256"
        },
        {
          "indexed": false,
          "internalType": "uint160",
          "name": "sqrtPriceX96",
          "type": "uint160"
        },
        {
          "indexed": false,
          "internalType": "uint128",
          "name": "liquidity",
          "type": "uint128"
        },
        {
          "indexed": false,
          "internalType": "int24",
          "name": "tick",
          "type": "int24"
        }
      ],
      "name": "Swap",
      "type": "event"
    }
  ],
  "bytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "methodIdentifiers": {},
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"name\":\"Collect\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"name\":\"CollectProtocol\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paid0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paid1\",\"type\":\"uint256\"}],\"name\":\"Flash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextOld\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextNew\",\"type\":\"uint16\"}],\"name\":\"IncreaseObservationCardinalityNext\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"Initialize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol0Old\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol1Old\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol0New\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol1New\",\"type\":\"uint8\"}],\"name\":\"SetFeeProtocol\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"Swap\",\"type\":\"event\"}],\"devdoc\":{\"events\":{\"Burn(address,int24,int24,uint128,uint256,uint256)\":{\"details\":\"Does not withdraw any fees earned by the liquidity position, which must be withdrawn via #collect\",\"params\":{\"amount\":\"The amount of liquidity to remove\",\"amount0\":\"The amount of token0 withdrawn\",\"amount1\":\"The amount of token1 withdrawn\",\"owner\":\"The owner of the position for which liquidity is removed\",\"tickLower\":\"The lower tick of the position\",\"tickUpper\":\"The upper tick of the position\"}},\"Collect(address,address,int24,int24,uint128,uint128)\":{\"details\":\"Collect events may be emitted with zero amount0 and amount1 when the caller chooses not to collect fees\",\"params\":{\"amount0\":\"The amount of token0 fees collected\",\"amount1\":\"The amount of token1 fees collected\",\"owner\":\"The owner of the position for which fees are collected\",\"tickLower\":\"The lower tick of the position\",\"tickUpper\":\"The upper tick of the position\"}},\"CollectProtocol(address,address,uint128,uint128)\":{\"params\":{\"amount0\":\"The amount of token1 protocol fees that is withdrawn\",\"recipient\":\"The address that receives the collected protocol fees\",\"sender\":\"The address that collects the protocol fees\"}},\"Flash(address,address,uint256,uint256,uint256,uint256)\":{\"params\":{\"amount0\":\"The amount of token0 that was flashed\",\"amount1\":\"The amount of token1 that was flashed\",\"paid0\":\"The amount of token0 paid for the flash, which can exceed the amount0 plus the fee\",\"paid1\":\"The amount of token1 paid for the flash, which can exceed the amount1 plus the fee\",\"recipient\":\"The address that received the tokens from flash\",\"sender\":\"The address that initiated the swap call, and that received the callback\"}},\"IncreaseObservationCardinalityNext(uint16,uint16)\":{\"details\":\"observationCardinalityNext is not the observation cardinality until an observation is written at the index just before a mint/swap/burn.\",\"params\":{\"observationCardinalityNextNew\":\"The updated value of the next observation cardinality\",\"observationCardinalityNextOld\":\"The previous value of the next observation cardinality\"}},\"Initialize(uint160,int24)\":{\"details\":\"Mint/Burn/Swap cannot be emitted by the pool before Initialize\",\"params\":{\"sqrtPriceX96\":\"The initial sqrt price of the pool, as a Q64.96\",\"tick\":\"The initial tick of the pool, i.e. log base 1.0001 of the starting price of the pool\"}},\"Mint(address,address,int24,int24,uint128,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of liquidity minted to the position range\",\"amount0\":\"How much token0 was required for the minted liquidity\",\"amount1\":\"How much token1 was required for the minted liquidity\",\"owner\":\"The owner of the position and recipient of any minted liquidity\",\"sender\":\"The address that minted the liquidity\",\"tickLower\":\"The lower tick of the position\",\"tickUpper\":\"The upper tick of the position\"}},\"SetFeeProtocol(uint8,uint8,uint8,uint8)\":{\"params\":{\"feeProtocol0New\":\"The updated value of the token0 protocol fee\",\"feeProtocol0Old\":\"The previous value of the token0 protocol fee\",\"feeProtocol1New\":\"The updated value of the token1 protocol fee\",\"feeProtocol1Old\":\"The previous value of the token1 protocol fee\"}},\"Swap(address,address,int256,int256,uint160,uint128,int24)\":{\"params\":{\"amount0\":\"The delta of the token0 balance of the pool\",\"amount1\":\"The delta of the token1 balance of the pool\",\"liquidity\":\"The liquidity of the pool after the swap\",\"recipient\":\"The address that received the output of the swap\",\"sender\":\"The address that initiated the swap call, and that received the callback\",\"sqrtPriceX96\":\"The sqrt(price) of the pool after the swap, as a Q64.96\",\"tick\":\"The log base 1.0001 of price of the pool after the swap\"}}},\"kind\":\"dev\",\"methods\":{},\"title\":\"Events emitted by a pool\",\"version\":1},\"userdoc\":{\"events\":{\"Burn(address,int24,int24,uint128,uint256,uint256)\":{\"notice\":\"Emitted when a position's liquidity is removed\"},\"Collect(address,address,int24,int24,uint128,uint128)\":{\"notice\":\"Emitted when fees are collected by the owner of a position\"},\"CollectProtocol(address,address,uint128,uint128)\":{\"notice\":\"Emitted when the collected protocol fees are withdrawn by the factory owner\"},\"Flash(address,address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted by the pool for any flashes of token0/token1\"},\"IncreaseObservationCardinalityNext(uint16,uint16)\":{\"notice\":\"Emitted by the pool for increases to the number of observations that can be stored\"},\"Initialize(uint160,int24)\":{\"notice\":\"Emitted exactly once by a pool when #initialize is first called on the pool\"},\"Mint(address,address,int24,int24,uint128,uint256,uint256)\":{\"notice\":\"Emitted when liquidity is minted for a given position\"},\"SetFeeProtocol(uint8,uint8,uint8,uint8)\":{\"notice\":\"Emitted when the protocol fee is changed by the pool\"},\"Swap(address,address,int256,int256,uint160,uint128,int24)\":{\"notice\":\"Emitted by the pool for any swaps between token0 and token1\"}},\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains all events emitted by the pool\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":\"IUniswapV3PoolEvents\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":999999999},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib_uniswap/v3-core/\",\":@uniswap/v3-periphery/=lib_uniswap/v3-periphery/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":v3-core/=lib_uniswap/v3-core/\",\":v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/\"]},\"sources\":{\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.22+commit.4fc1097e"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "owner",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "int24",
              "name": "tickLower",
              "type": "int24",
              "indexed": true
            },
            {
              "internalType": "int24",
              "name": "tickUpper",
              "type": "int24",
              "indexed": true
            },
            {
              "internalType": "uint128",
              "name": "amount",
              "type": "uint128",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "amount0",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "amount1",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Burn",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "owner",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "recipient",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "int24",
              "name": "tickLower",
              "type": "int24",
              "indexed": true
            },
            {
              "internalType": "int24",
              "name": "tickUpper",
              "type": "int24",
              "indexed": true
            },
            {
              "internalType": "uint128",
              "name": "amount0",
              "type": "uint128",
              "indexed": false
            },
            {
              "internalType": "uint128",
              "name": "amount1",
              "type": "uint128",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Collect",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "sender",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "recipient",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint128",
              "name": "amount0",
              "type": "uint128",
              "indexed": false
            },
            {
              "internalType": "uint128",
              "name": "amount1",
              "type": "uint128",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "CollectProtocol",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "sender",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "recipient",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "amount0",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "amount1",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "paid0",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "paid1",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Flash",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint16",
              "name": "observationCardinalityNextOld",
              "type": "uint16",
              "indexed": false
            },
            {
              "internalType": "uint16",
              "name": "observationCardinalityNextNew",
              "type": "uint16",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "IncreaseObservationCardinalityNext",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint160",
              "name": "sqrtPriceX96",
              "type": "uint160",
              "indexed": false
            },
            {
              "internalType": "int24",
              "name": "tick",
              "type": "int24",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Initialize",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "sender",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "owner",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "int24",
              "name": "tickLower",
              "type": "int24",
              "indexed": true
            },
            {
              "internalType": "int24",
              "name": "tickUpper",
              "type": "int24",
              "indexed": true
            },
            {
              "internalType": "uint128",
              "name": "amount",
              "type": "uint128",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "amount0",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "amount1",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Mint",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint8",
              "name": "feeProtocol0Old",
              "type": "uint8",
              "indexed": false
            },
            {
              "internalType": "uint8",
              "name": "feeProtocol1Old",
              "type": "uint8",
              "indexed": false
            },
            {
              "internalType": "uint8",
              "name": "feeProtocol0New",
              "type": "uint8",
              "indexed": false
            },
            {
              "internalType": "uint8",
              "name": "feeProtocol1New",
              "type": "uint8",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "SetFeeProtocol",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "sender",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "recipient",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "int256",
              "name": "amount0",
              "type": "int256",
              "indexed": false
            },
            {
              "internalType": "int256",
              "name": "amount1",
              "type": "int256",
              "indexed": false
            },
            {
              "internalType": "uint160",
              "name": "sqrtPriceX96",
              "type": "uint160",
              "indexed": false
            },
            {
              "internalType": "uint128",
              "name": "liquidity",
              "type": "uint128",
              "indexed": false
            },
            {
              "internalType": "int24",
              "name": "tick",
              "type": "int24",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Swap",
          "anonymous": false
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {},
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {},
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
        "@uniswap/v3-core/=lib_uniswap/v3-core/",
        "@uniswap/v3-periphery/=lib_uniswap/v3-periphery/",
        "ds-test/=lib/forge-std/lib/ds-test/src/",
        "forge-std/=lib/forge-std/src/",
        "openzeppelin-contracts/=lib/openzeppelin-contracts/",
        "v3-core/=lib_uniswap/v3-core/",
        "v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/"
      ],
      "optimizer": {
        "runs": 999999999,
        "details": {
          "peephole": true,
          "inliner": true,
          "jumpdestRemover": true,
          "orderLiterals": true,
          "deduplicate": true,
          "cse": true,
          "constantOptimizer": true,
          "yul": true,
          "yulDetails": {
            "stackAllocation": true,
            "optimizerSteps": "dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu"
          }
        }
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol": "IUniswapV3PoolEvents"
      },
      "libraries": {}
    },
    "sources": {
      "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol": {
        "keccak256": "0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd",
        "urls": [
          "bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03",
          "dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"
        ],
        "license": "GPL-2.0-or-later"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol",
    "id": 44155,
    "exportedSymbols": {
      "IUniswapV3PoolEvents": [
        44154
      ]
    },
    "nodeType": "SourceUnit",
    "src": "45:5919:32",
    "nodes": [
      {
        "id": 44037,
        "nodeType": "PragmaDirective",
        "src": "45:24:32",
        "nodes": [],
        "literals": [
          "solidity",
          ">=",
          "0.5",
          ".0"
        ]
      },
      {
        "id": 44154,
        "nodeType": "ContractDefinition",
        "src": "159:5804:32",
        "nodes": [
          {
            "id": 44045,
            "nodeType": "EventDefinition",
            "src": "545:51:32",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 44039,
              "nodeType": "StructuredDocumentation",
              "src": "196:344:32",
              "text": "@notice Emitted exactly once by a pool when #initialize is first called on the pool\n @dev Mint/Burn/Swap cannot be emitted by the pool before Initialize\n @param sqrtPriceX96 The initial sqrt price of the pool, as a Q64.96\n @param tick The initial tick of the pool, i.e. log base 1.0001 of the starting price of the pool"
            },
            "eventSelector": "98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c95",
            "name": "Initialize",
            "nameLocation": "551:10:32",
            "parameters": {
              "id": 44044,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44041,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "sqrtPriceX96",
                  "nameLocation": "570:12:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44045,
                  "src": "562:20:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint160",
                    "typeString": "uint160"
                  },
                  "typeName": {
                    "id": 44040,
                    "name": "uint160",
                    "nodeType": "ElementaryTypeName",
                    "src": "562:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44043,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "tick",
                  "nameLocation": "590:4:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44045,
                  "src": "584:10:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 44042,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "584:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "561:34:32"
            }
          },
          {
            "id": 44062,
            "nodeType": "EventDefinition",
            "src": "1158:212:32",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 44046,
              "nodeType": "StructuredDocumentation",
              "src": "602:551:32",
              "text": "@notice Emitted when liquidity is minted for a given position\n @param sender The address that minted the liquidity\n @param owner The owner of the position and recipient of any minted liquidity\n @param tickLower The lower tick of the position\n @param tickUpper The upper tick of the position\n @param amount The amount of liquidity minted to the position range\n @param amount0 How much token0 was required for the minted liquidity\n @param amount1 How much token1 was required for the minted liquidity"
            },
            "eventSelector": "7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde",
            "name": "Mint",
            "nameLocation": "1164:4:32",
            "parameters": {
              "id": 44061,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44048,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "sender",
                  "nameLocation": "1186:6:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44062,
                  "src": "1178:14:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44047,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1178:7:32",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44050,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "1218:5:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44062,
                  "src": "1202:21:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44049,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1202:7:32",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44052,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "tickLower",
                  "nameLocation": "1247:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44062,
                  "src": "1233:23:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 44051,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "1233:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44054,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "tickUpper",
                  "nameLocation": "1280:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44062,
                  "src": "1266:23:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 44053,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "1266:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44056,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1307:6:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44062,
                  "src": "1299:14:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint128",
                    "typeString": "uint128"
                  },
                  "typeName": {
                    "id": 44055,
                    "name": "uint128",
                    "nodeType": "ElementaryTypeName",
                    "src": "1299:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44058,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount0",
                  "nameLocation": "1331:7:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44062,
                  "src": "1323:15:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44057,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1323:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44060,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount1",
                  "nameLocation": "1356:7:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44062,
                  "src": "1348:15:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44059,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1348:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1168:201:32"
            }
          },
          {
            "id": 44077,
            "nodeType": "EventDefinition",
            "src": "1874:194:32",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 44063,
              "nodeType": "StructuredDocumentation",
              "src": "1376:493:32",
              "text": "@notice Emitted when fees are collected by the owner of a position\n @dev Collect events may be emitted with zero amount0 and amount1 when the caller chooses not to collect fees\n @param owner The owner of the position for which fees are collected\n @param tickLower The lower tick of the position\n @param tickUpper The upper tick of the position\n @param amount0 The amount of token0 fees collected\n @param amount1 The amount of token1 fees collected"
            },
            "eventSelector": "70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0",
            "name": "Collect",
            "nameLocation": "1880:7:32",
            "parameters": {
              "id": 44076,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44065,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "1913:5:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44077,
                  "src": "1897:21:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44064,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1897:7:32",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44067,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nameLocation": "1936:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44077,
                  "src": "1928:17:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44066,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1928:7:32",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44069,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "tickLower",
                  "nameLocation": "1969:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44077,
                  "src": "1955:23:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 44068,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "1955:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44071,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "tickUpper",
                  "nameLocation": "2002:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44077,
                  "src": "1988:23:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 44070,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "1988:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44073,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount0",
                  "nameLocation": "2029:7:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44077,
                  "src": "2021:15:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint128",
                    "typeString": "uint128"
                  },
                  "typeName": {
                    "id": 44072,
                    "name": "uint128",
                    "nodeType": "ElementaryTypeName",
                    "src": "2021:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44075,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount1",
                  "nameLocation": "2054:7:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44077,
                  "src": "2046:15:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint128",
                    "typeString": "uint128"
                  },
                  "typeName": {
                    "id": 44074,
                    "name": "uint128",
                    "nodeType": "ElementaryTypeName",
                    "src": "2046:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1887:180:32"
            }
          },
          {
            "id": 44092,
            "nodeType": "EventDefinition",
            "src": "2602:188:32",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 44078,
              "nodeType": "StructuredDocumentation",
              "src": "2074:523:32",
              "text": "@notice Emitted when a position's liquidity is removed\n @dev Does not withdraw any fees earned by the liquidity position, which must be withdrawn via #collect\n @param owner The owner of the position for which liquidity is removed\n @param tickLower The lower tick of the position\n @param tickUpper The upper tick of the position\n @param amount The amount of liquidity to remove\n @param amount0 The amount of token0 withdrawn\n @param amount1 The amount of token1 withdrawn"
            },
            "eventSelector": "0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c",
            "name": "Burn",
            "nameLocation": "2608:4:32",
            "parameters": {
              "id": 44091,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44080,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "2638:5:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44092,
                  "src": "2622:21:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44079,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2622:7:32",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44082,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "tickLower",
                  "nameLocation": "2667:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44092,
                  "src": "2653:23:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 44081,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "2653:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44084,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "tickUpper",
                  "nameLocation": "2700:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44092,
                  "src": "2686:23:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 44083,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "2686:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44086,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "2727:6:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44092,
                  "src": "2719:14:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint128",
                    "typeString": "uint128"
                  },
                  "typeName": {
                    "id": 44085,
                    "name": "uint128",
                    "nodeType": "ElementaryTypeName",
                    "src": "2719:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44088,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount0",
                  "nameLocation": "2751:7:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44092,
                  "src": "2743:15:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44087,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2743:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44090,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount1",
                  "nameLocation": "2776:7:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44092,
                  "src": "2768:15:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44089,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2768:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2612:177:32"
            }
          },
          {
            "id": 44109,
            "nodeType": "EventDefinition",
            "src": "3401:209:32",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 44093,
              "nodeType": "StructuredDocumentation",
              "src": "2796:600:32",
              "text": "@notice Emitted by the pool for any swaps between token0 and token1\n @param sender The address that initiated the swap call, and that received the callback\n @param recipient The address that received the output of the swap\n @param amount0 The delta of the token0 balance of the pool\n @param amount1 The delta of the token1 balance of the pool\n @param sqrtPriceX96 The sqrt(price) of the pool after the swap, as a Q64.96\n @param liquidity The liquidity of the pool after the swap\n @param tick The log base 1.0001 of price of the pool after the swap"
            },
            "eventSelector": "c42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67",
            "name": "Swap",
            "nameLocation": "3407:4:32",
            "parameters": {
              "id": 44108,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44095,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "sender",
                  "nameLocation": "3437:6:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44109,
                  "src": "3421:22:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44094,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3421:7:32",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44097,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nameLocation": "3469:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44109,
                  "src": "3453:25:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44096,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3453:7:32",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44099,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount0",
                  "nameLocation": "3495:7:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44109,
                  "src": "3488:14:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 44098,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3488:6:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44101,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount1",
                  "nameLocation": "3519:7:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44109,
                  "src": "3512:14:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 44100,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3512:6:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44103,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "sqrtPriceX96",
                  "nameLocation": "3544:12:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44109,
                  "src": "3536:20:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint160",
                    "typeString": "uint160"
                  },
                  "typeName": {
                    "id": 44102,
                    "name": "uint160",
                    "nodeType": "ElementaryTypeName",
                    "src": "3536:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44105,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "liquidity",
                  "nameLocation": "3574:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44109,
                  "src": "3566:17:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint128",
                    "typeString": "uint128"
                  },
                  "typeName": {
                    "id": 44104,
                    "name": "uint128",
                    "nodeType": "ElementaryTypeName",
                    "src": "3566:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44107,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "tick",
                  "nameLocation": "3599:4:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44109,
                  "src": "3593:10:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 44106,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "3593:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3411:198:32"
            }
          },
          {
            "id": 44124,
            "nodeType": "EventDefinition",
            "src": "4183:181:32",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 44110,
              "nodeType": "StructuredDocumentation",
              "src": "3616:562:32",
              "text": "@notice Emitted by the pool for any flashes of token0/token1\n @param sender The address that initiated the swap call, and that received the callback\n @param recipient The address that received the tokens from flash\n @param amount0 The amount of token0 that was flashed\n @param amount1 The amount of token1 that was flashed\n @param paid0 The amount of token0 paid for the flash, which can exceed the amount0 plus the fee\n @param paid1 The amount of token1 paid for the flash, which can exceed the amount1 plus the fee"
            },
            "eventSelector": "bdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca633",
            "name": "Flash",
            "nameLocation": "4189:5:32",
            "parameters": {
              "id": 44123,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44112,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "sender",
                  "nameLocation": "4220:6:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44124,
                  "src": "4204:22:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44111,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4204:7:32",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44114,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nameLocation": "4252:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44124,
                  "src": "4236:25:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44113,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4236:7:32",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44116,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount0",
                  "nameLocation": "4279:7:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44124,
                  "src": "4271:15:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44115,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4271:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44118,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount1",
                  "nameLocation": "4304:7:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44124,
                  "src": "4296:15:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44117,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4296:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44120,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "paid0",
                  "nameLocation": "4329:5:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44124,
                  "src": "4321:13:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44119,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4321:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44122,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "paid1",
                  "nameLocation": "4352:5:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44124,
                  "src": "4344:13:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 44121,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4344:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4194:169:32"
            }
          },
          {
            "id": 44131,
            "nodeType": "EventDefinition",
            "src": "4826:139:32",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 44125,
              "nodeType": "StructuredDocumentation",
              "src": "4370:451:32",
              "text": "@notice Emitted by the pool for increases to the number of observations that can be stored\n @dev observationCardinalityNext is not the observation cardinality until an observation is written at the index\n just before a mint/swap/burn.\n @param observationCardinalityNextOld The previous value of the next observation cardinality\n @param observationCardinalityNextNew The updated value of the next observation cardinality"
            },
            "eventSelector": "ac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a",
            "name": "IncreaseObservationCardinalityNext",
            "nameLocation": "4832:34:32",
            "parameters": {
              "id": 44130,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44127,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "observationCardinalityNextOld",
                  "nameLocation": "4883:29:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44131,
                  "src": "4876:36:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 44126,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "4876:6:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44129,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "observationCardinalityNextNew",
                  "nameLocation": "4929:29:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44131,
                  "src": "4922:36:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 44128,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "4922:6:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4866:98:32"
            }
          },
          {
            "id": 44142,
            "nodeType": "EventDefinition",
            "src": "5346:113:32",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 44132,
              "nodeType": "StructuredDocumentation",
              "src": "4971:370:32",
              "text": "@notice Emitted when the protocol fee is changed by the pool\n @param feeProtocol0Old The previous value of the token0 protocol fee\n @param feeProtocol1Old The previous value of the token1 protocol fee\n @param feeProtocol0New The updated value of the token0 protocol fee\n @param feeProtocol1New The updated value of the token1 protocol fee"
            },
            "eventSelector": "973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b133",
            "name": "SetFeeProtocol",
            "nameLocation": "5352:14:32",
            "parameters": {
              "id": 44141,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44134,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "feeProtocol0Old",
                  "nameLocation": "5373:15:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44142,
                  "src": "5367:21:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 44133,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "5367:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44136,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "feeProtocol1Old",
                  "nameLocation": "5396:15:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44142,
                  "src": "5390:21:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 44135,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "5390:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44138,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "feeProtocol0New",
                  "nameLocation": "5419:15:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44142,
                  "src": "5413:21:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 44137,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "5413:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44140,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "feeProtocol1New",
                  "nameLocation": "5442:15:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44142,
                  "src": "5436:21:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 44139,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "5436:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5366:92:32"
            }
          },
          {
            "id": 44153,
            "nodeType": "EventDefinition",
            "src": "5854:107:32",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 44143,
              "nodeType": "StructuredDocumentation",
              "src": "5465:384:32",
              "text": "@notice Emitted when the collected protocol fees are withdrawn by the factory owner\n @param sender The address that collects the protocol fees\n @param recipient The address that receives the collected protocol fees\n @param amount0 The amount of token0 protocol fees that is withdrawn\n @param amount0 The amount of token1 protocol fees that is withdrawn"
            },
            "eventSelector": "596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151",
            "name": "CollectProtocol",
            "nameLocation": "5860:15:32",
            "parameters": {
              "id": 44152,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44145,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "sender",
                  "nameLocation": "5892:6:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44153,
                  "src": "5876:22:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44144,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5876:7:32",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44147,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nameLocation": "5916:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44153,
                  "src": "5900:25:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44146,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5900:7:32",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44149,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount0",
                  "nameLocation": "5935:7:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44153,
                  "src": "5927:15:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint128",
                    "typeString": "uint128"
                  },
                  "typeName": {
                    "id": 44148,
                    "name": "uint128",
                    "nodeType": "ElementaryTypeName",
                    "src": "5927:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44151,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount1",
                  "nameLocation": "5952:7:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 44153,
                  "src": "5944:15:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint128",
                    "typeString": "uint128"
                  },
                  "typeName": {
                    "id": 44150,
                    "name": "uint128",
                    "nodeType": "ElementaryTypeName",
                    "src": "5944:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5875:85:32"
            }
          }
        ],
        "abstract": false,
        "baseContracts": [],
        "canonicalName": "IUniswapV3PoolEvents",
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": {
          "id": 44038,
          "nodeType": "StructuredDocumentation",
          "src": "71:88:32",
          "text": "@title Events emitted by a pool\n @notice Contains all events emitted by the pool"
        },
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          44154
        ],
        "name": "IUniswapV3PoolEvents",
        "nameLocation": "169:20:32",
        "scope": 44155,
        "usedErrors": [],
        "usedEvents": [
          44045,
          44062,
          44077,
          44092,
          44109,
          44124,
          44131,
          44142,
          44153
        ]
      }
    ],
    "license": "GPL-2.0-or-later"
  },
  "id": 32
}