{ "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "", "type": "string" } ], "name": "log", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "", "type": "address" } ], "name": "log_address", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256[]", "name": "val", "type": "uint256[]" } ], "name": "log_array", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "int256[]", "name": "val", "type": "int256[]" } ], "name": "log_array", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address[]", "name": "val", "type": "address[]" } ], "name": "log_array", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "log_bytes", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "log_bytes32", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "int256", "name": "", "type": "int256" } ], "name": "log_int", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "address", "name": "val", "type": "address" } ], "name": "log_named_address", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "uint256[]", "name": "val", "type": "uint256[]" } ], "name": "log_named_array", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "int256[]", "name": "val", "type": "int256[]" } ], "name": "log_named_array", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "address[]", "name": "val", "type": "address[]" } ], "name": "log_named_array", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "bytes", "name": "val", "type": "bytes" } ], "name": "log_named_bytes", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "bytes32", "name": "val", "type": "bytes32" } ], "name": "log_named_bytes32", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "int256", "name": "val", "type": "int256" }, { "indexed": false, "internalType": "uint256", "name": "decimals", "type": "uint256" } ], "name": "log_named_decimal_int", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "val", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "decimals", "type": "uint256" } ], "name": "log_named_decimal_uint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "int256", "name": "val", "type": "int256" } ], "name": "log_named_int", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "string", "name": "val", "type": "string" } ], "name": "log_named_string", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "key", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "val", "type": "uint256" } ], "name": "log_named_uint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "", "type": "string" } ], "name": "log_string", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "log_uint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "logs", "type": "event" }, { "inputs": [], "name": "COIN", "outputs": [ { "internalType": "contract MockERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "IS_TEST", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "USD", "outputs": [ { "internalType": "contract MockERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "excludeArtifacts", "outputs": [ { "internalType": "string[]", "name": "excludedArtifacts_", "type": "string[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "excludeContracts", "outputs": [ { "internalType": "address[]", "name": "excludedContracts_", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "excludeSenders", "outputs": [ { "internalType": "address[]", "name": "excludedSenders_", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "failed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "fee", "outputs": [ { "internalType": "uint24", "name": "", "type": "uint24" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "inverted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nfpm", "outputs": [ { "internalType": "contract INonfungiblePositionManager", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pool", "outputs": [ { "internalType": "contract IUniswapV3Pool", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "price", "outputs": [ { "internalType": "uint160", "name": "sqrtPriceX96", "type": "uint160" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "setUp", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "int24", "name": "lower", "type": "int24" }, { "internalType": "int24", "name": "upper", "type": "int24" } ], "name": "stake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "coinAmount", "type": "uint256" }, { "internalType": "uint256", "name": "usdAmount", "type": "uint256" }, { "internalType": "int24", "name": "lower", "type": "int24" }, { "internalType": "int24", "name": "upper", "type": "int24" } ], "name": "stake", "outputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint128", "name": "liquidity", "type": "uint128" }, { "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "int24", "name": "width", "type": "int24" } ], "name": "stake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract MockERC20", "name": "inToken", "type": "address" }, { "internalType": "contract MockERC20", "name": "outToken", "type": "address" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "uint160", "name": "sqrtPriceLimitX96", "type": "uint160" } ], "name": "swap", "outputs": [ { "internalType": "uint256", "name": "amountOut", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract MockERC20", "name": "inToken", "type": "address" }, { "internalType": "contract MockERC20", "name": "outToken", "type": "address" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" } ], "name": "swap", "outputs": [ { "internalType": "uint256", "name": "amountOut", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint160", "name": "sqrtPriceLimitX96", "type": "uint160" } ], "name": "swapToPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapper", "outputs": [ { "internalType": "contract ISwapRouter", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "targetArtifactSelectors", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes4[]", "name": "selectors", "type": "bytes4[]" } ], "internalType": "struct StdInvariant.FuzzSelector[]", "name": "targetedArtifactSelectors_", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "targetArtifacts", "outputs": [ { "internalType": "string[]", "name": "targetedArtifacts_", "type": "string[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "targetContracts", "outputs": [ { "internalType": "address[]", "name": "targetedContracts_", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "targetSelectors", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes4[]", "name": "selectors", "type": "bytes4[]" } ], "internalType": "struct StdInvariant.FuzzSelector[]", "name": "targetedSelectors_", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "targetSenders", "outputs": [ { "internalType": "address[]", "name": "targetedSenders_", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "testSwap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "token0", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token1", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ], "bytecode": { "object": "0x6080604052600080546001600160a01b031990811673c36442b4a4522e871399cd717abdd847ab11fe88179091556001805490911673e592427a0aece92de3edee1f18e0157c058615641781556006805460ff60a81b1916600160a81b179055600a805460ff1916909117905534801561007857600080fd5b5061436a806100886000396000f3fe60806040523480156200001157600080fd5b5060043610620001f55760003560e01c806385226c811162000119578063d21220a711620000af578063e1c7392a116200007a578063e1c7392a14620004b4578063e20c9f7114620004be578063e3baf41a14620004c8578063fa7626d414620004df57600080fd5b8063d21220a7146200041c578063d6f13002146200043d578063ddca3f431462000466578063df791e50146200049d57600080fd5b8063a54a72b711620000f0578063a54a72b714620003d0578063b5508aa914620003f1578063ba414fa614620003fb578063c578d91d146200040557600080fd5b806385226c811462000394578063916a17c614620003ad578063a035b1fe14620003b757600080fd5b80633f7286f4116200018f57806366d9a9a0116200016657806366d9a9a0146200031b57806367e368fc14620003345780636e008a0314620003695780637303e913146200037357600080fd5b80633f7286f414620002d45780634a09d3dd14620002de57806353486e2f146200030457600080fd5b80631bf6c21b11620001d05780631bf6c21b146200026f5780631ed7831c14620002905780632b3297f914620002a95780633e5e3c2314620002ca57600080fd5b80630a9254e414620001fa5780630dfe1681146200020657806316f0115b146200023f575b600080fd5b6200020462000506565b005b600554620002279073ffffffffffffffffffffffffffffffffffffffff1681565b60405162000236919062002203565b60405180910390f35b600254620002609073ffffffffffffffffffffffffffffffffffffffff1681565b60405162000236919062002277565b600454620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200029a62000512565b604051620002369190620022e4565b600154620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200029a62000583565b6200029a620005f2565b620002f5620002ef36600462002372565b62000661565b604051620002369190620023de565b620002046200031536600462002407565b6200080a565b620003256200086a565b60405162000236919062002575565b6006546200035a9074010000000000000000000000000000000000000000900460ff1681565b60405162000236919062002593565b620002046200097f565b600054620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200039e62000a5c565b60405162000236919062002684565b6200032562000b36565b620003c162000c42565b604051620002369190620026b6565b600354620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200039e62000ce5565b6200035a62000dbf565b6200020462000416366004620026c6565b62000f79565b600654620002279073ffffffffffffffffffffffffffffffffffffffff1681565b620004546200044e366004620026e9565b620011d3565b6040516200023694939291906200275c565b6002546200048e9074010000000000000000000000000000000000000000900462ffffff1681565b604051620002369190620027ae565b620002f5620004ae366004620027be565b620011f9565b6200020462001317565b6200029a620018c4565b62000204620004d936600462002806565b62001933565b6006546200035a907501000000000000000000000000000000000000000000900460ff1681565b6200051062001317565b565b606060138054806020026020016040519081016040528092919081815260200182805480156200057957602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575b5050505050905090565b60606015805480602002602001604051908101604052809291908181526020018280548015620005795760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575050505050905090565b60606014805480602002602001604051908101604052809291908181526020018280548015620005795760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575050505050905090565b6001546040517f095ea7b300000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff8088169263095ea7b392620006be921690879060040162002844565b6020604051808303816000875af1158015620006de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200070491906200287a565b50604080516101008101825273ffffffffffffffffffffffffffffffffffffffff8781168252868116602083015260025474010000000000000000000000000000000000000000900462ffffff168284015233606083015242608083015260a08201869052600060c083015284811660e083015260015492517f414bf3890000000000000000000000000000000000000000000000000000000081529192169063414bf38990620007ba9084906004016200293c565b6020604051808303816000875af1158015620007da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200080091906200295b565b9695505050505050565b600060026200082285670de0b6b3a7640000620029ad565b6200082e919062002a02565b9050600060026200084386620f4240620029ad565b6200084f919062002a02565b90506200085f82828686620011d3565b505050505050505050565b60606018805480602002602001604051908101604052809291908181526020016000905b828210156200097657600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156200095d57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620009095790505b505050505081525050815260200190600101906200088e565b50505050905090565b6003546040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906340c10f1990620009e1903090670de0b6b3a76400009060040162002a38565b600060405180830381600087803b158015620009fc57600080fd5b505af115801562000a11573d6000803e3d6000fd5b50506003546004546000935062000a4c925073ffffffffffffffffffffffffffffffffffffffff9182169116670de0b6b3a7640000620011f9565b905062000a598162001a07565b50565b60606017805480602002602001604051908101604052809291908181526020016000905b828210156200097657838290600052602060002001805462000aa29062002a86565b80601f016020809104026020016040519081016040528092919081815260200182805462000ad09062002a86565b801562000b215780601f1062000af55761010080835404028352916020019162000b21565b820191906000526020600020905b81548152906001019060200180831162000b0357829003601f168201915b50505050508152602001906001019062000a80565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156200097657600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018101805483518187028101870190945280845293949193858301939283018282801562000c2957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000bd55790505b5050505050815250508152602001906001019062000b5a565b600254604080517f3850c7bd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691633850c7bd9160048083019260e09291908290030181865afa15801562000cb3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cd9919062002b06565b50949695505050505050565b60606016805480602002602001604051908101604052809291908181526020016000905b828210156200097657838290600052602060002001805462000d2b9062002a86565b80601f016020809104026020016040519081016040528092919081815260200182805462000d599062002a86565b801562000daa5780601f1062000d7e5761010080835404028352916020019162000daa565b820191906000526020600020905b81548152906001019060200180831162000d8c57829003601f168201915b50505050508152602001906001019062000d09565b600654600090760100000000000000000000000000000000000000000000900460ff161562000e0c5750600654760100000000000000000000000000000000000000000000900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1562000f7457604051600090737109709ecfa91a80626ff3989d68f67f5b1dd12d907f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49062000e9a9083907f6661696c656400000000000000000000000000000000000000000000000000009060200162002844565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262000ed8929160200162002bca565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262000f129162002be7565b6000604051808303816000865af19150503d806000811462000f51576040519150601f19603f3d011682016040523d82523d6000602084013e62000f56565b606091505b509150508080602001905181019062000f7091906200287a565b9150505b919050565b62000fb96040518060400160405280600b81526020017f73776170546f507269636500000000000000000000000000000000000000000081525062001a9a565b62000fda8173ffffffffffffffffffffffffffffffffffffffff1662001a07565b600062000fe662000c42565b9050620010098173ffffffffffffffffffffffffffffffffffffffff1662001a07565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362001041575050565b60008273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1611620010965760065473ffffffffffffffffffffffffffffffffffffffff16620010b0565b60055473ffffffffffffffffffffffffffffffffffffffff165b905060008373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1610620011075760065473ffffffffffffffffffffffffffffffffffffffff1662001121565b60055473ffffffffffffffffffffffffffffffffffffffff165b6040517f40c10f190000000000000000000000000000000000000000000000000000000081529091506c100000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff8416906340c10f199062001189903090859060040162002844565b600060405180830381600087803b158015620011a457600080fd5b505af1158015620011b9573d6000803e3d6000fd5b50505050620011cb8383838862000661565b505050505050565b600080600080620011e78888888862001b2d565b929b919a509850909650945050505050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200126a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001290919062002c0e565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614620012ea57620012e4600173fffd8963efd1fc6a506488495d951d5263988d2662002c31565b620012fc565b620012fc6401000276a3600162002c62565b90506200130c8585858462000661565b9150505b9392505050565b60126040516200132790620021c4565b62001333919062002d14565b604051809103906000f08015801562001350573d6000803e3d6000fd5b50600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091178155604080518082019091529081527f4d454800000000000000000000000000000000000000000000000000000000006020820152620013d49062001a9a565b600354620013f89073ffffffffffffffffffffffffffffffffffffffff1662002110565b60066040516200140890620021c4565b62001414919062002db3565b604051809103906000f08015801562001431573d6000803e3d6000fd5b50600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091178155604080518082019091529081527f55535844000000000000000000000000000000000000000000000000000000006020820152620014b59062001a9a565b600454620014d99073ffffffffffffffffffffffffffffffffffffffff1662002110565b600280547fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff167501f40000000000000000000000000000000000000000179055600454600354600680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff94851694909316939093118202929092179182905560ff910416620015ae5760035473ffffffffffffffffffffffffffffffffffffffff16620015c8565b60045473ffffffffffffffffffffffffffffffffffffffff165b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560065474010000000000000000000000000000000000000000900460ff166200164f5760045473ffffffffffffffffffffffffffffffffffffffff1662001669565b60035473ffffffffffffffffffffffffffffffffffffffff165b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179081905560009074010000000000000000000000000000000000000000900460ff16620016e4576910c6f7a0b5ed8d36b4c7620016f5565b6e0f42400000000000000000000000005b90506200171b604051806080016040528060538152602001620042e26053913962001a9a565b6000546005546006546002546040517f13ead56200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff948516946313ead56294620017a294908216939116917401000000000000000000000000000000000000000090910462ffffff1690879060040162002dda565b6020604051808303816000875af1158015620017c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017e8919062002c0e565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560408051808201909152600781527f763320706f6f6c0000000000000000000000000000000000000000000000000060208201526200186c9062001a9a565b600254620018909073ffffffffffffffffffffffffffffffffffffffff1662002110565b62000a59629896807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618620003158162002e17565b60606012805480602002602001604051908101604052809291908181526020018280548015620005795760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575050505050905090565b60008160020b136200194457600080fd5b600254604080517f3850c7bd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691633850c7bd9160048083019260e09291908290030181865afa158015620019b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019db919062002b06565b505050505091505062001a02838383620019f6919062002e5f565b62000315858562002eb6565b505050565b62000a598160405160240162001a1e9190620023de565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff82c50f1000000000000000000000000000000000000000000000000000000001790526200219e565b62000a598160405160240162001ab1919062002f0c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526200219e565b6003546040517f40c10f1900000000000000000000000000000000000000000000000000000000815260009182918291829173ffffffffffffffffffffffffffffffffffffffff909116906340c10f199062001b909030908c9060040162002844565b600060405180830381600087803b15801562001bab57600080fd5b505af115801562001bc0573d6000803e3d6000fd5b50506003546000546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316945063095ea7b3935062001c2392909116908c9060040162002844565b6020604051808303816000875af115801562001c43573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c6991906200287a565b50600480546040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116916340c10f199162001cc39130918c910162002844565b600060405180830381600087803b15801562001cde57600080fd5b505af115801562001cf3573d6000803e3d6000fd5b5050600480546000546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316955063095ea7b3945062001d569391909216918c910162002844565b6020604051808303816000875af115801562001d76573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d9c91906200287a565b50600254604080517fd0c93a7c000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163d0c93a7c9160048083019260209291908290030181865afa15801562001e0e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e34919062002f21565b6040517f97fd6da700000000000000000000000000000000000000000000000000000000815290915073__$74cfa661df799b6cc5f12f5b8f602e3b0f$__906397fd6da79062001e8b908a90859060040162002f4f565b602060405180830381865af415801562001ea9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ecf919062002f21565b6040517f97fd6da700000000000000000000000000000000000000000000000000000000815290975073__$74cfa661df799b6cc5f12f5b8f602e3b0f$__906397fd6da79062001f26908990859060040162002f4f565b602060405180830381865af415801562001f44573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f6a919062002f21565b604080516101608101825260035473ffffffffffffffffffffffffffffffffffffffff908116825260048054821660208401526002805474010000000000000000000000000000000000000000900462ffffff16848601528c810b606085015285900b608084015260a083018e905260c083018d9052600060e08401819052610100840181905233610120850152426101408501525493517f88316456000000000000000000000000000000000000000000000000000000008152949a509193921691638831645691620020419185910162003052565b6080604051808303816000875af115801562002061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200208791906200308a565b60408051808201909152600681527f6d696e7465640000000000000000000000000000000000000000000000000000602082015293995091975095509350620020d09062001a9a565b620020ed856fffffffffffffffffffffffffffffffff1662001a07565b620020f88462001a07565b620021038362001a07565b5050945094509450949050565b62000a598160405160240162002127919062002203565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c2ecbc2000000000000000000000000000000000000000000000000000000001790525b62000a598180516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6111fd80620030e583390190565b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b620021fd81620021d2565b82525050565b60208101620021ec8284620021f2565b6000620021ec73ffffffffffffffffffffffffffffffffffffffff831662002239565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b6000620021ec8262002213565b6000620021ec8262002252565b620021fd816200225f565b60208101620021ec82846200226c565b620022938282620021f2565b5060200190565b6000620022a5825190565b808452602093840193830160005b82811015620022da57620022c986835162002287565b9550602082019150600101620022b3565b5093949350505050565b6020815260006200131060208301846200229a565b6000620021ec82620021d2565b6200231181620022f9565b811462000a5957600080fd5b8035806200232b8162002306565b5092915050565b8062002311565b8035806200232b8162002332565b73ffffffffffffffffffffffffffffffffffffffff811662002311565b8035806200232b8162002347565b600080600080608085870312156200238d576200238d600080fd5b6200239986866200231d565b9350620023aa86602087016200231d565b9250620023bb866040870162002339565b9150620023cc866060870162002364565b905092959194509250565b80620021fd565b60208101620021ec8284620023d7565b620023118160020b90565b8035806200232b81620023ee565b600080600060608486031215620024215762002421600080fd5b6200242d858562002339565b92506200243e8560208601620023f9565b91506200244f8560408601620023f9565b90509250925092565b7fffffffff000000000000000000000000000000000000000000000000000000008116620021fd565b62002293828262002458565b600062002498825190565b808452602093840193830160005b82811015620022da57620024bc86835162002481565b9550602082019150600101620024a6565b620024da828251620021f2565b6000602082015160406020850152620024f760408501826200248d565b949350505050565b6000620013108383620024cd565b600062002518825190565b808452602084018094508160051b8101620025338560200190565b60005b848110156200256957838303885262002551838351620024ff565b92506020820160209890980197915060010162002536565b50909695505050505050565b6020815260006200131060208301846200250d565b801515620021fd565b60208101620021ec82846200258a565b60005b83811015620025c0578181015183820152602001620025a6565b50506000910152565b6000620025d4825190565b80845260208401620025eb828260208701620025a3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6000620013108383620025c9565b600062002633825190565b808452602084018094508160051b81016200264e8560200190565b60005b84811015620025695783830388526200266c8383516200261a565b92506020820160209890980197915060010162002651565b60208152600062001310602083018462002628565b73ffffffffffffffffffffffffffffffffffffffff8116620021fd565b60208101620021ec828462002699565b600060208284031215620026dd57620026dd600080fd5b62001310838362002364565b60008060008060808587031215620027045762002704600080fd5b62002710868662002339565b935062002721866020870162002339565b9250620027328660408701620023f9565b9150620023cc8660608701620023f9565b6fffffffffffffffffffffffffffffffff8116620021fd565b608081016200276c8287620023d7565b6200277b602083018662002743565b6200278a6040830185620023d7565b620027996060830184620023d7565b95945050505050565b62ffffff8116620021fd565b60208101620021ec8284620027a2565b600080600060608486031215620027d857620027d8600080fd5b620027e485856200231d565b9250620027f585602086016200231d565b91506200244f856040860162002339565b600080604083850312156200281e576200281e600080fd5b6200282a848462002339565b91506200283b8460208501620023f9565b90509250929050565b60408101620028548285620021f2565b620013106020830184620023d7565b80151562002311565b8051806200232b8162002863565b600060208284031215620028915762002891600080fd5b6200131083836200286c565b620028aa828251620021f2565b6020810151620028be6020840182620021f2565b506040810151620028d36040840182620027a2565b506060810151620028e86060840182620021f2565b506080810151620028fd6080840182620023d7565b5060a08101516200291260a0840182620023d7565b5060c08101516200292760c0840182620023d7565b5060e081015162001a0260e084018262002699565b6101008101620021ec82846200289d565b8051806200232b8162002332565b600060208284031215620029725762002972600080fd5b6200131083836200294d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181028183828215838204831417620029ca57620029ca6200297e565b50505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081838062002a165762002a16620029d3565b90049392505050565b6000620021ec620022368381565b620021fd8162002a1f565b6040810162002a488285620021f2565b62001310602083018462002a2d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c90819083168062002a9d57607f821692505b60208310810362002ab25762002ab262002a57565b5050919050565b8051806200232b8162002347565b8051806200232b81620023ee565b61ffff811662002311565b8051806200232b8162002ad5565b60ff811662002311565b8051806200232b8162002aee565b600080600080600080600060e0888a03121562002b265762002b26600080fd5b62002b32898962002ab9565b965062002b438960208a0162002ac7565b955062002b548960408a0162002ae0565b945062002b658960608a0162002ae0565b935062002b768960808a0162002ae0565b925062002b878960a08a0162002af8565b915062002b988960c08a016200286c565b905092959891949750929550565b600062002bb1825190565b8362002bc2828260208701620025a3565b019392505050565b62002bd6818462002458565b6000620024f7600483018462002ba6565b600062001310828462002ba6565b6200231181620021d2565b8051806200232b8162002bf5565b60006020828403121562002c255762002c25600080fd5b62001310838362002c00565b73ffffffffffffffffffffffffffffffffffffffff828116828216039081908111156200232b576200232b6200297e565b73ffffffffffffffffffffffffffffffffffffffff828116828216019081908111156200232b576200232b6200297e565b601681526000602082017f4d6f636b20457468657265756d2048617264666f726b0000000000000000000081525b60200192915050565b600381526000602082017f4d45480000000000000000000000000000000000000000000000000000000000815262002cc1565b600060ff8216620021ec565b620021fd8162002cfd565b60608152600062002d286060830162002c93565b828103602084015262002d3b8162002cca565b915050620021ec604083018462002d09565b601081526000602082017f4a6f6b652043757272656e637920584400000000000000000000000000000000815262002cc1565b600481526000602082017f5553584400000000000000000000000000000000000000000000000000000000815262002cc1565b60608152600062002dc76060830162002d4d565b828103602084015262002d3b8162002d80565b6080810162002dea8287620021f2565b62002df96020830186620021f2565b62002e086040830185620027a2565b62002799606083018462002699565b600062002e248260020b90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000810362002e565762002e566200297e565b60000392915050565b600062002e6c8260020b90565b62002e778460020b90565b90039050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008112627fffff821317156200232b576200232b6200297e565b600062002ec38260020b90565b62002ece8460020b90565b01905080627fffff81137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000821217156200232b576200232b6200297e565b602081526000620013106020830184620025c9565b60006020828403121562002f385762002f38600080fd5b62001310838362002ac7565b620021fd8160020b90565b6040810162002f5f828562002f44565b62001310602083018462002f44565b62002f7b828251620021f2565b602081015162002f8f6020840182620021f2565b50604081015162002fa46040840182620027a2565b50606081015162002fb9606084018262002f44565b50608081015162002fce608084018262002f44565b5060a081015162002fe360a0840182620023d7565b5060c081015162002ff860c0840182620023d7565b5060e08101516200300d60e0840182620023d7565b5061010081015162003024610100840182620023d7565b506101208101516200303b610120840182620021f2565b5061014081015162001a02610140840182620023d7565b6101608101620021ec828462002f6e565b6fffffffffffffffffffffffffffffffff811662002311565b8051806200232b8162003063565b60008060008060808587031215620030a557620030a5600080fd5b620030b186866200294d565b9350620030c286602087016200307c565b9250620030d386604087016200294d565b9150620023cc86606087016200294d56fe60806040523480156200001157600080fd5b50604051620011fd380380620011fd8339810160408190526200003491620001c9565b828260036200004483826200035d565b5060046200005382826200035d565b50506005805460ff191660ff9390931692909217909155506200042a915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620000b257620000b262000074565b6040525050565b6000620000c560405190565b809150620000d483826200008a565b50919050565b60006001600160401b03821115620000f657620000f662000074565b50601f01601f191660200190565b60005b838110156200012157818101518382015260200162000107565b50506000910152565b6000620001416200013b84620000da565b620000b9565b8091508381528484840111156200015b576200015b600080fd5b6200016b84602083018562000104565b509392505050565b600082601f830112620001895762000189600080fd5b6200019a838351602085016200012a565b9392505050565b60ff81168114620001b157600080fd5b50565b805180620001c281620001a1565b5092915050565b600080600060608486031215620001e357620001e3600080fd5b83516001600160401b03811115620001fe57620001fe600080fd5b6200020c8682870162000173565b602086015190945090506001600160401b038111156200022f576200022f600080fd5b6200023d8682870162000173565b9250506200024f8560408601620001b4565b90509250925092565b634e487b7160e01b600052602260045260246000fd5b600181811c9081908316806200028557607f821692505b6020831081036200029a576200029a62000258565b5050919050565b6000620002b2620002af8381565b90565b92915050565b620002e1620002cb620002af85620002a1565b8254600385901b91821b60001990921b19161790565b90555050565b620002f560008383620002b8565b5050565b81811015620002f5576200030f600082620002e7565b600101620002f9565b601f8211156200035857600081815260209020601f840160051c81016020851015620003415750805b62000355601f850160051c830182620002f9565b50505b505050565b81516001600160401b0381111562000379576200037962000074565b62000391816200038a84546200026e565b8462000318565b6020601f821160018114620003ca5760008315620003af5750848201515b600019600385901b1c198116600185901b1785555062000355565b600084815260208120601f198516915b82811015620003fc5787850151825560209485019460019092019101620003da565b50848210156200041b5783870151600019600387901b60f8161c191681555b50505050600190811b01905550565b610dc3806200043a6000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806340c10f1911610081578063a457c2d71161005b578063a457c2d7146101b4578063a9059cbb146101c7578063dd62ed3e146101da57600080fd5b806340c10f191461016157806370a082311461017657806395d89b41146101ac57600080fd5b806323b872dd116100b257806323b872dd14610128578063313ce5671461013b578063395093511461014e57600080fd5b806306fdde03146100d9578063095ea7b3146100f757806318160ddd14610117575b600080fd5b6100e1610220565b6040516100ee919061084f565b60405180910390f35b61010a6101053660046108c3565b6102b2565b6040516100ee9190610905565b6002545b6040516100ee9190610919565b61010a610136366004610927565b6102cc565b60055460ff166040516100ee9190610979565b61010a61015c3660046108c3565b6102f0565b61017461016f3660046108c3565b61033c565b005b61011b610184366004610987565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100e161034a565b61010a6101c23660046108c3565b610359565b61010a6101d53660046108c3565b6103dd565b61011b6101e83660046109a6565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461022f90610a04565b80601f016020809104026020016040519081016040528092919081815260200182805461025b90610a04565b80156102a85780601f1061027d576101008083540402835291602001916102a8565b820191906000526020600020905b81548152906001019060200180831161028b57829003601f168201915b5050505050905090565b6000336102c08185856103eb565b60019150505b92915050565b6000336102da8582856104fa565b6102e58585856105a1565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906102c09082908690610337908790610a62565b6103eb565b6103468282610713565b5050565b60606004805461022f90610a04565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156103d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610adc565b60405180910390fd5b6102e582868684036103eb565b6000336102c08185856105a1565b73ffffffffffffffffffffffffffffffffffffffff8316610438576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610b46565b73ffffffffffffffffffffffffffffffffffffffff8216610485576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610bb0565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104ed908590610919565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461059b578181101561058e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610bf9565b61059b84848484036103eb565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166105ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610c63565b73ffffffffffffffffffffffffffffffffffffffff821661063b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610ccd565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020548181101561069b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610d37565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610706908690610919565b60405180910390a361059b565b73ffffffffffffffffffffffffffffffffffffffff8216610760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610d7b565b80600260008282546107729190610a62565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107d1908590610919565b60405180910390a35050565b60005b838110156107f85781810151838201526020016107e0565b50506000910152565b600061080b825190565b808452602084016108208282602087016107dd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6020815260006108626020830184610801565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82166102c6565b61089081610869565b811461089b57600080fd5b50565b8035806108aa81610887565b5092915050565b80610890565b8035806108aa816108b1565b600080604083850312156108d9576108d9600080fd5b6108e3848461089e565b91506108f284602085016108b7565b90509250929050565b8015155b82525050565b602081016102c682846108fb565b806108ff565b602081016102c68284610913565b60008060006060848603121561093f5761093f600080fd5b610949858561089e565b9250610958856020860161089e565b915061096785604086016108b7565b90509250925092565b60ff81166108ff565b602081016102c68284610970565b60006020828403121561099c5761099c600080fd5b610862838361089e565b600080604083850312156109bc576109bc600080fd5b6109c6848461089e565b91506108f2846020850161089e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c908190831680610a1a57607f821692505b602083108103610a2c57610a2c6109d5565b5050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818101818180821115610a7757610a77610a33565b505092915050565b602581526000602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7781527f207a65726f00000000000000000000000000000000000000000000000000000060208201525b60400192915050565b6020815260006102c660208301610a7f565b602481526000602082017f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481527f72657373000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610aee565b602281526000602082017f45524332303a20617070726f766520746f20746865207a65726f20616464726581527f73730000000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610b58565b601d81526000602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000081525b60200192915050565b6020815260006102c660208301610bc2565b602581526000602082017f45524332303a207472616e736665722066726f6d20746865207a65726f20616481527f64726573730000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610c0b565b602381526000602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281527f65737300000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610c75565b602681526000602082017f45524332303a207472616e7366657220616d6f756e742065786365656473206281527f616c616e636500000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610cdf565b601f81526000602082017f45524332303a206d696e7420746f20746865207a65726f2061646472657373008152610bf0565b6020815260006102c660208301610d4956fea2646970667358221220cd44a198e923f8e5e46b9869f813e11aa59f8930b4361f0f306ac53e161271d264736f6c634300081600336966207468697320697320746865206c617374206c696e65206265666f7265206120726576657274207468656e206d616b65207375726520746f2072756e20666f7267652077697468202d2d7270632d75726ca2646970667358221220e63bb3ee50a1e4bca5b62995fdc7eb1756375381dbdc6a7ad839e857f345b06364736f6c63430008160033", "sourceMap": "199:261:67:-:0;;;612:87:63;;;-1:-1:-1;;;;;;612:87:63;;;644:42:50;612:87:63;;;;;705:58;;;;;765:42:50;705:58:63;;;1572:26:0;;;-1:-1:-1;;;;1572:26:0;-1:-1:-1;;;1572:26:0;;;3126:44:4;;;-1:-1:-1;;3126:44:4;;;;;;199:261:67;;;;;;;;;;;;;;;;", "linkReferences": { "src/Util.sol": { "Util": [ { "start": 7911, "length": 20 }, { "start": 8066, "length": 20 } ] } } }, "deployedBytecode": { "object": "0x60806040523480156200001157600080fd5b5060043610620001f55760003560e01c806385226c811162000119578063d21220a711620000af578063e1c7392a116200007a578063e1c7392a14620004b4578063e20c9f7114620004be578063e3baf41a14620004c8578063fa7626d414620004df57600080fd5b8063d21220a7146200041c578063d6f13002146200043d578063ddca3f431462000466578063df791e50146200049d57600080fd5b8063a54a72b711620000f0578063a54a72b714620003d0578063b5508aa914620003f1578063ba414fa614620003fb578063c578d91d146200040557600080fd5b806385226c811462000394578063916a17c614620003ad578063a035b1fe14620003b757600080fd5b80633f7286f4116200018f57806366d9a9a0116200016657806366d9a9a0146200031b57806367e368fc14620003345780636e008a0314620003695780637303e913146200037357600080fd5b80633f7286f414620002d45780634a09d3dd14620002de57806353486e2f146200030457600080fd5b80631bf6c21b11620001d05780631bf6c21b146200026f5780631ed7831c14620002905780632b3297f914620002a95780633e5e3c2314620002ca57600080fd5b80630a9254e414620001fa5780630dfe1681146200020657806316f0115b146200023f575b600080fd5b6200020462000506565b005b600554620002279073ffffffffffffffffffffffffffffffffffffffff1681565b60405162000236919062002203565b60405180910390f35b600254620002609073ffffffffffffffffffffffffffffffffffffffff1681565b60405162000236919062002277565b600454620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200029a62000512565b604051620002369190620022e4565b600154620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200029a62000583565b6200029a620005f2565b620002f5620002ef36600462002372565b62000661565b604051620002369190620023de565b620002046200031536600462002407565b6200080a565b620003256200086a565b60405162000236919062002575565b6006546200035a9074010000000000000000000000000000000000000000900460ff1681565b60405162000236919062002593565b620002046200097f565b600054620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200039e62000a5c565b60405162000236919062002684565b6200032562000b36565b620003c162000c42565b604051620002369190620026b6565b600354620002609073ffffffffffffffffffffffffffffffffffffffff1681565b6200039e62000ce5565b6200035a62000dbf565b6200020462000416366004620026c6565b62000f79565b600654620002279073ffffffffffffffffffffffffffffffffffffffff1681565b620004546200044e366004620026e9565b620011d3565b6040516200023694939291906200275c565b6002546200048e9074010000000000000000000000000000000000000000900462ffffff1681565b604051620002369190620027ae565b620002f5620004ae366004620027be565b620011f9565b6200020462001317565b6200029a620018c4565b62000204620004d936600462002806565b62001933565b6006546200035a907501000000000000000000000000000000000000000000900460ff1681565b6200051062001317565b565b606060138054806020026020016040519081016040528092919081815260200182805480156200057957602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575b5050505050905090565b60606015805480602002602001604051908101604052809291908181526020018280548015620005795760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575050505050905090565b60606014805480602002602001604051908101604052809291908181526020018280548015620005795760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575050505050905090565b6001546040517f095ea7b300000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff8088169263095ea7b392620006be921690879060040162002844565b6020604051808303816000875af1158015620006de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200070491906200287a565b50604080516101008101825273ffffffffffffffffffffffffffffffffffffffff8781168252868116602083015260025474010000000000000000000000000000000000000000900462ffffff168284015233606083015242608083015260a08201869052600060c083015284811660e083015260015492517f414bf3890000000000000000000000000000000000000000000000000000000081529192169063414bf38990620007ba9084906004016200293c565b6020604051808303816000875af1158015620007da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200080091906200295b565b9695505050505050565b600060026200082285670de0b6b3a7640000620029ad565b6200082e919062002a02565b9050600060026200084386620f4240620029ad565b6200084f919062002a02565b90506200085f82828686620011d3565b505050505050505050565b60606018805480602002602001604051908101604052809291908181526020016000905b828210156200097657600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156200095d57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620009095790505b505050505081525050815260200190600101906200088e565b50505050905090565b6003546040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906340c10f1990620009e1903090670de0b6b3a76400009060040162002a38565b600060405180830381600087803b158015620009fc57600080fd5b505af115801562000a11573d6000803e3d6000fd5b50506003546004546000935062000a4c925073ffffffffffffffffffffffffffffffffffffffff9182169116670de0b6b3a7640000620011f9565b905062000a598162001a07565b50565b60606017805480602002602001604051908101604052809291908181526020016000905b828210156200097657838290600052602060002001805462000aa29062002a86565b80601f016020809104026020016040519081016040528092919081815260200182805462000ad09062002a86565b801562000b215780601f1062000af55761010080835404028352916020019162000b21565b820191906000526020600020905b81548152906001019060200180831162000b0357829003601f168201915b50505050508152602001906001019062000a80565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156200097657600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018101805483518187028101870190945280845293949193858301939283018282801562000c2957602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000bd55790505b5050505050815250508152602001906001019062000b5a565b600254604080517f3850c7bd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691633850c7bd9160048083019260e09291908290030181865afa15801562000cb3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cd9919062002b06565b50949695505050505050565b60606016805480602002602001604051908101604052809291908181526020016000905b828210156200097657838290600052602060002001805462000d2b9062002a86565b80601f016020809104026020016040519081016040528092919081815260200182805462000d599062002a86565b801562000daa5780601f1062000d7e5761010080835404028352916020019162000daa565b820191906000526020600020905b81548152906001019060200180831162000d8c57829003601f168201915b50505050508152602001906001019062000d09565b600654600090760100000000000000000000000000000000000000000000900460ff161562000e0c5750600654760100000000000000000000000000000000000000000000900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1562000f7457604051600090737109709ecfa91a80626ff3989d68f67f5b1dd12d907f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc49062000e9a9083907f6661696c656400000000000000000000000000000000000000000000000000009060200162002844565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262000ed8929160200162002bca565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262000f129162002be7565b6000604051808303816000865af19150503d806000811462000f51576040519150601f19603f3d011682016040523d82523d6000602084013e62000f56565b606091505b509150508080602001905181019062000f7091906200287a565b9150505b919050565b62000fb96040518060400160405280600b81526020017f73776170546f507269636500000000000000000000000000000000000000000081525062001a9a565b62000fda8173ffffffffffffffffffffffffffffffffffffffff1662001a07565b600062000fe662000c42565b9050620010098173ffffffffffffffffffffffffffffffffffffffff1662001a07565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362001041575050565b60008273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1611620010965760065473ffffffffffffffffffffffffffffffffffffffff16620010b0565b60055473ffffffffffffffffffffffffffffffffffffffff165b905060008373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1610620011075760065473ffffffffffffffffffffffffffffffffffffffff1662001121565b60055473ffffffffffffffffffffffffffffffffffffffff165b6040517f40c10f190000000000000000000000000000000000000000000000000000000081529091506c100000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff8416906340c10f199062001189903090859060040162002844565b600060405180830381600087803b158015620011a457600080fd5b505af1158015620011b9573d6000803e3d6000fd5b50505050620011cb8383838862000661565b505050505050565b600080600080620011e78888888862001b2d565b929b919a509850909650945050505050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200126a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001290919062002c0e565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614620012ea57620012e4600173fffd8963efd1fc6a506488495d951d5263988d2662002c31565b620012fc565b620012fc6401000276a3600162002c62565b90506200130c8585858462000661565b9150505b9392505050565b60126040516200132790620021c4565b62001333919062002d14565b604051809103906000f08015801562001350573d6000803e3d6000fd5b50600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091178155604080518082019091529081527f4d454800000000000000000000000000000000000000000000000000000000006020820152620013d49062001a9a565b600354620013f89073ffffffffffffffffffffffffffffffffffffffff1662002110565b60066040516200140890620021c4565b62001414919062002db3565b604051809103906000f08015801562001431573d6000803e3d6000fd5b50600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091178155604080518082019091529081527f55535844000000000000000000000000000000000000000000000000000000006020820152620014b59062001a9a565b600454620014d99073ffffffffffffffffffffffffffffffffffffffff1662002110565b600280547fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff167501f40000000000000000000000000000000000000000179055600454600354600680547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff94851694909316939093118202929092179182905560ff910416620015ae5760035473ffffffffffffffffffffffffffffffffffffffff16620015c8565b60045473ffffffffffffffffffffffffffffffffffffffff165b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560065474010000000000000000000000000000000000000000900460ff166200164f5760045473ffffffffffffffffffffffffffffffffffffffff1662001669565b60035473ffffffffffffffffffffffffffffffffffffffff165b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179081905560009074010000000000000000000000000000000000000000900460ff16620016e4576910c6f7a0b5ed8d36b4c7620016f5565b6e0f42400000000000000000000000005b90506200171b604051806080016040528060538152602001620042e26053913962001a9a565b6000546005546006546002546040517f13ead56200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff948516946313ead56294620017a294908216939116917401000000000000000000000000000000000000000090910462ffffff1690879060040162002dda565b6020604051808303816000875af1158015620017c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017e8919062002c0e565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560408051808201909152600781527f763320706f6f6c0000000000000000000000000000000000000000000000000060208201526200186c9062001a9a565b600254620018909073ffffffffffffffffffffffffffffffffffffffff1662002110565b62000a59629896807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618620003158162002e17565b60606012805480602002602001604051908101604052809291908181526020018280548015620005795760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116200054d575050505050905090565b60008160020b136200194457600080fd5b600254604080517f3850c7bd000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff1691633850c7bd9160048083019260e09291908290030181865afa158015620019b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019db919062002b06565b505050505091505062001a02838383620019f6919062002e5f565b62000315858562002eb6565b505050565b62000a598160405160240162001a1e9190620023de565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff82c50f1000000000000000000000000000000000000000000000000000000001790526200219e565b62000a598160405160240162001ab1919062002f0c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526200219e565b6003546040517f40c10f1900000000000000000000000000000000000000000000000000000000815260009182918291829173ffffffffffffffffffffffffffffffffffffffff909116906340c10f199062001b909030908c9060040162002844565b600060405180830381600087803b15801562001bab57600080fd5b505af115801562001bc0573d6000803e3d6000fd5b50506003546000546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316945063095ea7b3935062001c2392909116908c9060040162002844565b6020604051808303816000875af115801562001c43573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c6991906200287a565b50600480546040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116916340c10f199162001cc39130918c910162002844565b600060405180830381600087803b15801562001cde57600080fd5b505af115801562001cf3573d6000803e3d6000fd5b5050600480546000546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316955063095ea7b3945062001d569391909216918c910162002844565b6020604051808303816000875af115801562001d76573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d9c91906200287a565b50600254604080517fd0c93a7c000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163d0c93a7c9160048083019260209291908290030181865afa15801562001e0e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001e34919062002f21565b6040517f97fd6da700000000000000000000000000000000000000000000000000000000815290915073__$74cfa661df799b6cc5f12f5b8f602e3b0f$__906397fd6da79062001e8b908a90859060040162002f4f565b602060405180830381865af415801562001ea9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ecf919062002f21565b6040517f97fd6da700000000000000000000000000000000000000000000000000000000815290975073__$74cfa661df799b6cc5f12f5b8f602e3b0f$__906397fd6da79062001f26908990859060040162002f4f565b602060405180830381865af415801562001f44573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001f6a919062002f21565b604080516101608101825260035473ffffffffffffffffffffffffffffffffffffffff908116825260048054821660208401526002805474010000000000000000000000000000000000000000900462ffffff16848601528c810b606085015285900b608084015260a083018e905260c083018d9052600060e08401819052610100840181905233610120850152426101408501525493517f88316456000000000000000000000000000000000000000000000000000000008152949a509193921691638831645691620020419185910162003052565b6080604051808303816000875af115801562002061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200208791906200308a565b60408051808201909152600681527f6d696e7465640000000000000000000000000000000000000000000000000000602082015293995091975095509350620020d09062001a9a565b620020ed856fffffffffffffffffffffffffffffffff1662001a07565b620020f88462001a07565b620021038362001a07565b5050945094509450949050565b62000a598160405160240162002127919062002203565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c2ecbc2000000000000000000000000000000000000000000000000000000001790525b62000a598180516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6111fd80620030e583390190565b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b620021fd81620021d2565b82525050565b60208101620021ec8284620021f2565b6000620021ec73ffffffffffffffffffffffffffffffffffffffff831662002239565b90565b73ffffffffffffffffffffffffffffffffffffffff1690565b6000620021ec8262002213565b6000620021ec8262002252565b620021fd816200225f565b60208101620021ec82846200226c565b620022938282620021f2565b5060200190565b6000620022a5825190565b808452602093840193830160005b82811015620022da57620022c986835162002287565b9550602082019150600101620022b3565b5093949350505050565b6020815260006200131060208301846200229a565b6000620021ec82620021d2565b6200231181620022f9565b811462000a5957600080fd5b8035806200232b8162002306565b5092915050565b8062002311565b8035806200232b8162002332565b73ffffffffffffffffffffffffffffffffffffffff811662002311565b8035806200232b8162002347565b600080600080608085870312156200238d576200238d600080fd5b6200239986866200231d565b9350620023aa86602087016200231d565b9250620023bb866040870162002339565b9150620023cc866060870162002364565b905092959194509250565b80620021fd565b60208101620021ec8284620023d7565b620023118160020b90565b8035806200232b81620023ee565b600080600060608486031215620024215762002421600080fd5b6200242d858562002339565b92506200243e8560208601620023f9565b91506200244f8560408601620023f9565b90509250925092565b7fffffffff000000000000000000000000000000000000000000000000000000008116620021fd565b62002293828262002458565b600062002498825190565b808452602093840193830160005b82811015620022da57620024bc86835162002481565b9550602082019150600101620024a6565b620024da828251620021f2565b6000602082015160406020850152620024f760408501826200248d565b949350505050565b6000620013108383620024cd565b600062002518825190565b808452602084018094508160051b8101620025338560200190565b60005b848110156200256957838303885262002551838351620024ff565b92506020820160209890980197915060010162002536565b50909695505050505050565b6020815260006200131060208301846200250d565b801515620021fd565b60208101620021ec82846200258a565b60005b83811015620025c0578181015183820152602001620025a6565b50506000910152565b6000620025d4825190565b80845260208401620025eb828260208701620025a3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6000620013108383620025c9565b600062002633825190565b808452602084018094508160051b81016200264e8560200190565b60005b84811015620025695783830388526200266c8383516200261a565b92506020820160209890980197915060010162002651565b60208152600062001310602083018462002628565b73ffffffffffffffffffffffffffffffffffffffff8116620021fd565b60208101620021ec828462002699565b600060208284031215620026dd57620026dd600080fd5b62001310838362002364565b60008060008060808587031215620027045762002704600080fd5b62002710868662002339565b935062002721866020870162002339565b9250620027328660408701620023f9565b9150620023cc8660608701620023f9565b6fffffffffffffffffffffffffffffffff8116620021fd565b608081016200276c8287620023d7565b6200277b602083018662002743565b6200278a6040830185620023d7565b620027996060830184620023d7565b95945050505050565b62ffffff8116620021fd565b60208101620021ec8284620027a2565b600080600060608486031215620027d857620027d8600080fd5b620027e485856200231d565b9250620027f585602086016200231d565b91506200244f856040860162002339565b600080604083850312156200281e576200281e600080fd5b6200282a848462002339565b91506200283b8460208501620023f9565b90509250929050565b60408101620028548285620021f2565b620013106020830184620023d7565b80151562002311565b8051806200232b8162002863565b600060208284031215620028915762002891600080fd5b6200131083836200286c565b620028aa828251620021f2565b6020810151620028be6020840182620021f2565b506040810151620028d36040840182620027a2565b506060810151620028e86060840182620021f2565b506080810151620028fd6080840182620023d7565b5060a08101516200291260a0840182620023d7565b5060c08101516200292760c0840182620023d7565b5060e081015162001a0260e084018262002699565b6101008101620021ec82846200289d565b8051806200232b8162002332565b600060208284031215620029725762002972600080fd5b6200131083836200294d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181028183828215838204831417620029ca57620029ca6200297e565b50505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081838062002a165762002a16620029d3565b90049392505050565b6000620021ec620022368381565b620021fd8162002a1f565b6040810162002a488285620021f2565b62001310602083018462002a2d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c90819083168062002a9d57607f821692505b60208310810362002ab25762002ab262002a57565b5050919050565b8051806200232b8162002347565b8051806200232b81620023ee565b61ffff811662002311565b8051806200232b8162002ad5565b60ff811662002311565b8051806200232b8162002aee565b600080600080600080600060e0888a03121562002b265762002b26600080fd5b62002b32898962002ab9565b965062002b438960208a0162002ac7565b955062002b548960408a0162002ae0565b945062002b658960608a0162002ae0565b935062002b768960808a0162002ae0565b925062002b878960a08a0162002af8565b915062002b988960c08a016200286c565b905092959891949750929550565b600062002bb1825190565b8362002bc2828260208701620025a3565b019392505050565b62002bd6818462002458565b6000620024f7600483018462002ba6565b600062001310828462002ba6565b6200231181620021d2565b8051806200232b8162002bf5565b60006020828403121562002c255762002c25600080fd5b62001310838362002c00565b73ffffffffffffffffffffffffffffffffffffffff828116828216039081908111156200232b576200232b6200297e565b73ffffffffffffffffffffffffffffffffffffffff828116828216019081908111156200232b576200232b6200297e565b601681526000602082017f4d6f636b20457468657265756d2048617264666f726b0000000000000000000081525b60200192915050565b600381526000602082017f4d45480000000000000000000000000000000000000000000000000000000000815262002cc1565b600060ff8216620021ec565b620021fd8162002cfd565b60608152600062002d286060830162002c93565b828103602084015262002d3b8162002cca565b915050620021ec604083018462002d09565b601081526000602082017f4a6f6b652043757272656e637920584400000000000000000000000000000000815262002cc1565b600481526000602082017f5553584400000000000000000000000000000000000000000000000000000000815262002cc1565b60608152600062002dc76060830162002d4d565b828103602084015262002d3b8162002d80565b6080810162002dea8287620021f2565b62002df96020830186620021f2565b62002e086040830185620027a2565b62002799606083018462002699565b600062002e248260020b90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000810362002e565762002e566200297e565b60000392915050565b600062002e6c8260020b90565b62002e778460020b90565b90039050807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008112627fffff821317156200232b576200232b6200297e565b600062002ec38260020b90565b62002ece8460020b90565b01905080627fffff81137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000821217156200232b576200232b6200297e565b602081526000620013106020830184620025c9565b60006020828403121562002f385762002f38600080fd5b62001310838362002ac7565b620021fd8160020b90565b6040810162002f5f828562002f44565b62001310602083018462002f44565b62002f7b828251620021f2565b602081015162002f8f6020840182620021f2565b50604081015162002fa46040840182620027a2565b50606081015162002fb9606084018262002f44565b50608081015162002fce608084018262002f44565b5060a081015162002fe360a0840182620023d7565b5060c081015162002ff860c0840182620023d7565b5060e08101516200300d60e0840182620023d7565b5061010081015162003024610100840182620023d7565b506101208101516200303b610120840182620021f2565b5061014081015162001a02610140840182620023d7565b6101608101620021ec828462002f6e565b6fffffffffffffffffffffffffffffffff811662002311565b8051806200232b8162003063565b60008060008060808587031215620030a557620030a5600080fd5b620030b186866200294d565b9350620030c286602087016200307c565b9250620030d386604087016200294d565b9150620023cc86606087016200294d56fe60806040523480156200001157600080fd5b50604051620011fd380380620011fd8339810160408190526200003491620001c9565b828260036200004483826200035d565b5060046200005382826200035d565b50506005805460ff191660ff9390931692909217909155506200042a915050565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b0381118282101715620000b257620000b262000074565b6040525050565b6000620000c560405190565b809150620000d483826200008a565b50919050565b60006001600160401b03821115620000f657620000f662000074565b50601f01601f191660200190565b60005b838110156200012157818101518382015260200162000107565b50506000910152565b6000620001416200013b84620000da565b620000b9565b8091508381528484840111156200015b576200015b600080fd5b6200016b84602083018562000104565b509392505050565b600082601f830112620001895762000189600080fd5b6200019a838351602085016200012a565b9392505050565b60ff81168114620001b157600080fd5b50565b805180620001c281620001a1565b5092915050565b600080600060608486031215620001e357620001e3600080fd5b83516001600160401b03811115620001fe57620001fe600080fd5b6200020c8682870162000173565b602086015190945090506001600160401b038111156200022f576200022f600080fd5b6200023d8682870162000173565b9250506200024f8560408601620001b4565b90509250925092565b634e487b7160e01b600052602260045260246000fd5b600181811c9081908316806200028557607f821692505b6020831081036200029a576200029a62000258565b5050919050565b6000620002b2620002af8381565b90565b92915050565b620002e1620002cb620002af85620002a1565b8254600385901b91821b60001990921b19161790565b90555050565b620002f560008383620002b8565b5050565b81811015620002f5576200030f600082620002e7565b600101620002f9565b601f8211156200035857600081815260209020601f840160051c81016020851015620003415750805b62000355601f850160051c830182620002f9565b50505b505050565b81516001600160401b0381111562000379576200037962000074565b62000391816200038a84546200026e565b8462000318565b6020601f821160018114620003ca5760008315620003af5750848201515b600019600385901b1c198116600185901b1785555062000355565b600084815260208120601f198516915b82811015620003fc5787850151825560209485019460019092019101620003da565b50848210156200041b5783870151600019600387901b60f8161c191681555b50505050600190811b01905550565b610dc3806200043a6000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c806340c10f1911610081578063a457c2d71161005b578063a457c2d7146101b4578063a9059cbb146101c7578063dd62ed3e146101da57600080fd5b806340c10f191461016157806370a082311461017657806395d89b41146101ac57600080fd5b806323b872dd116100b257806323b872dd14610128578063313ce5671461013b578063395093511461014e57600080fd5b806306fdde03146100d9578063095ea7b3146100f757806318160ddd14610117575b600080fd5b6100e1610220565b6040516100ee919061084f565b60405180910390f35b61010a6101053660046108c3565b6102b2565b6040516100ee9190610905565b6002545b6040516100ee9190610919565b61010a610136366004610927565b6102cc565b60055460ff166040516100ee9190610979565b61010a61015c3660046108c3565b6102f0565b61017461016f3660046108c3565b61033c565b005b61011b610184366004610987565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b6100e161034a565b61010a6101c23660046108c3565b610359565b61010a6101d53660046108c3565b6103dd565b61011b6101e83660046109a6565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60606003805461022f90610a04565b80601f016020809104026020016040519081016040528092919081815260200182805461025b90610a04565b80156102a85780601f1061027d576101008083540402835291602001916102a8565b820191906000526020600020905b81548152906001019060200180831161028b57829003601f168201915b5050505050905090565b6000336102c08185856103eb565b60019150505b92915050565b6000336102da8582856104fa565b6102e58585856105a1565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091906102c09082908690610337908790610a62565b6103eb565b6103468282610713565b5050565b60606004805461022f90610a04565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168452909152812054909190838110156103d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610adc565b60405180910390fd5b6102e582868684036103eb565b6000336102c08185856105a1565b73ffffffffffffffffffffffffffffffffffffffff8316610438576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610b46565b73ffffffffffffffffffffffffffffffffffffffff8216610485576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610bb0565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104ed908590610919565b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461059b578181101561058e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610bf9565b61059b84848484036103eb565b50505050565b73ffffffffffffffffffffffffffffffffffffffff83166105ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610c63565b73ffffffffffffffffffffffffffffffffffffffff821661063b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610ccd565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260409020548181101561069b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610d37565b73ffffffffffffffffffffffffffffffffffffffff80851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610706908690610919565b60405180910390a361059b565b73ffffffffffffffffffffffffffffffffffffffff8216610760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c790610d7b565b80600260008282546107729190610a62565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107d1908590610919565b60405180910390a35050565b60005b838110156107f85781810151838201526020016107e0565b50506000910152565b600061080b825190565b808452602084016108208282602087016107dd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6020815260006108626020830184610801565b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82166102c6565b61089081610869565b811461089b57600080fd5b50565b8035806108aa81610887565b5092915050565b80610890565b8035806108aa816108b1565b600080604083850312156108d9576108d9600080fd5b6108e3848461089e565b91506108f284602085016108b7565b90509250929050565b8015155b82525050565b602081016102c682846108fb565b806108ff565b602081016102c68284610913565b60008060006060848603121561093f5761093f600080fd5b610949858561089e565b9250610958856020860161089e565b915061096785604086016108b7565b90509250925092565b60ff81166108ff565b602081016102c68284610970565b60006020828403121561099c5761099c600080fd5b610862838361089e565b600080604083850312156109bc576109bc600080fd5b6109c6848461089e565b91506108f2846020850161089e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c908190831680610a1a57607f821692505b602083108103610a2c57610a2c6109d5565b5050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818101818180821115610a7757610a77610a33565b505092915050565b602581526000602082017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7781527f207a65726f00000000000000000000000000000000000000000000000000000060208201525b60400192915050565b6020815260006102c660208301610a7f565b602481526000602082017f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481527f72657373000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610aee565b602281526000602082017f45524332303a20617070726f766520746f20746865207a65726f20616464726581527f73730000000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610b58565b601d81526000602082017f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000081525b60200192915050565b6020815260006102c660208301610bc2565b602581526000602082017f45524332303a207472616e736665722066726f6d20746865207a65726f20616481527f64726573730000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610c0b565b602381526000602082017f45524332303a207472616e7366657220746f20746865207a65726f206164647281527f65737300000000000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610c75565b602681526000602082017f45524332303a207472616e7366657220616d6f756e742065786365656473206281527f616c616e636500000000000000000000000000000000000000000000000000006020820152610ad3565b6020815260006102c660208301610cdf565b601f81526000602082017f45524332303a206d696e7420746f20746865207a65726f2061646472657373008152610bf0565b6020815260006102c660208301610d4956fea2646970667358221220cd44a198e923f8e5e46b9869f813e11aa59f8930b4361f0f306ac53e161271d264736f6c634300081600336966207468697320697320746865206c617374206c696e65206265666f7265206120726576657274207468656e206d616b65207375726520746f2072756e20666f7267652077697468202d2d7270632d75726ca2646970667358221220e63bb3ee50a1e4bca5b62995fdc7eb1756375381dbdc6a7ad839e857f345b06364736f6c63430008160033", "sourceMap": "199:261:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;246:47;;;:::i;:::-;;877:21:63;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;769:26;;;;;;;;;;;;;;;;:::i;851:20::-;;;;;;;;;2170:134:7;;;:::i;:::-;;;;;;;:::i;705:58:63:-;;;;;;;;;2939:133:7;;;:::i;2640:141::-;;;:::i;5079:824:63:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2667:221::-;;;;;;:::i;:::-;;:::i;2456:178:7:-;;;:::i;:::-;;;;;;;:::i;988:20:63:-;;;;;;;;;;;;;;;;;;;:::i;300:158:67:-;;;:::i;612:87:63:-;;;;;;;;;2310:140:7;;;:::i;:::-;;;;;;;:::i;2787:146::-;;;:::i;5909:112:63:-;;;:::i;:::-;;;;;;;:::i;824:21::-;;;;;;;;;1875:141:7;;;:::i;1819:584:0:-;;;:::i;6027:683:63:-;;;;;;:::i;:::-;;:::i;961:21::-;;;;;;;;;2895:279;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;801:17::-;;;;;;;;;;;;;;;;;;;:::i;4784:289::-;;;;;;:::i;:::-;;:::i;1349:1125::-;;;:::i;2022:142:7:-;;;:::i;2481:179:63:-;;;;;;:::i;:::-;;:::i;1572:26:0:-;;;;;;;;;;;;246:47:67;280:6;:4;:6::i;:::-;246:47::o;2170:134:7:-;2217:33;2281:16;2262:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2170:134;:::o;2939:133::-;2985:33;3049:16;3030:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2939:133;:::o;2640:141::-;2688:35;2756:18;2735:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2640:141;:::o;5079:824:63:-;5246:7;;5222:43;;;;;5193:17;;5222:15;;;;;;;:43;;5246:7;;5256:8;;5222:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5688:159:63;;;;;;;;;;;;;;;;;;;;;5773:3;;;;;;;5688:159;;;;5778:10;5688:159;;;;5790:15;5688:159;;;;;;;;;;-1:-1:-1;5688:159:63;;;;;;;;;;;5864:7;;:32;;;;;5688:159;;5864:7;;:24;;:32;;5688:159;;5864:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5857:39;5079:824;-1:-1:-1;;;;;;5079:824:63:o;2667:221::-;2741:18;2780:1;2762:15;:6;2771;2762:15;:::i;:::-;:19;;;;:::i;:::-;2741:40;-1:-1:-1;2791:17:63;2828:1;2811:14;:6;2820:5;2811:14;:::i;:::-;:18;;;;:::i;:::-;2791:38;;2839:42;2845:10;2857:9;2868:5;2875;2839;:42::i;:::-;;;;;2731:157;;2667:221;;;:::o;2456:178:7:-;2512:48;2601:26;2572:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:178;:::o;300:158:67:-;337:4;;:36;;;;;:4;;;;;:9;;:36;;355:4;;362:10;;337:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;402:4:67;;408:3;;383:11;;-1:-1:-1;397:27:67;;-1:-1:-1;402:4:67;;;;;408:3;413:10;397:4;:27::i;:::-;383:41;;434:17;447:3;434:12;:17::i;:::-;327:131;300:158::o;2310:140:7:-;2358:34;2425:18;2404:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:146;2835:40;2908:18;2887:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5909:112:63;6002:4;;:12;;;;;;;;5947:20;;6002:4;;;:10;;:12;;;;;;;;;;;;;;:4;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5979:35:63;;5909:112;-1:-1:-1;;;;;;5909:112:63:o;1875:141:7:-;1924:34;1991:18;1970:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584:0;1873:7;;1853:4;;1873:7;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;2997:42;2985:55;3066:16;1980:374;;2196:43;;2023:20;;1671:64;;2135:34;;2196:43;;1671:64;;2221:17;;2196:43;;;:::i;:::-;;;;;;;;;;;;;;;2086:175;;;2196:43;2086:175;;:::i;:::-;;;;;;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;6027:683:63:-;6092:27;;;;;;;;;;;;;;;;;;:12;:27::i;:::-;6129:31;6142:17;6129:31;;:12;:31::i;:::-;6170:16;6189:7;:5;:7::i;:::-;6170:26;;6206:22;6219:8;6206:22;;:12;:22::i;:::-;6254:17;6242:29;;:8;:29;;;6238:55;;6286:7;6027:683;:::o;6238:55::-;6302:17;6333;6322:28;;:8;:28;;;:68;;6383:6;;;;6322:68;;;6363:6;;;;6322:68;6302:88;;6400:18;6432:17;6421:28;;:8;:28;;;:68;;6482:6;;;;6421:68;;;6462:6;;;;6421:68;6612:33;;;;;6400:89;;-1:-1:-1;6596:6:63;;6612:12;;;;;;:33;;6633:4;;6596:6;;6612:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6655:48;6660:7;6669:8;6679:4;6685:17;6655:4;:48::i;:::-;;6082:628;;;;6027:683;:::o;2895:279::-;3004:15;3029:17;3056:15;3081;3124:43;3131:10;3143:9;3154:5;3161;3124:6;:43::i;:::-;3117:50;;;;-1:-1:-1;3117:50:63;-1:-1:-1;3117:50:63;;-1:-1:-1;2895:279:63;-1:-1:-1;;;;;2895:279:63:o;4784:289::-;4871:17;4900:13;4936:4;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4916:33;;4924:7;4916:33;;;:93;;4982:27;5008:1;997:49:38;4982:27:63;:::i;:::-;4916:93;;;4952:27;817:10:38;4978:1:63;4952:27;:::i;:::-;4900:109;;5026:40;5031:7;5040:8;5050;5060:5;5026:4;:40::i;:::-;5019:47;;;4784:289;;;;;;:::o;1349:1125::-;1436:2;1389:50;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1382:4:63;:57;;;;;;;;;;;;;;;1449:19;;;;;;;;;;;;;;;;;;;:12;:19::i;:::-;1499:4;;1478:27;;1499:4;;1478:12;:27::i;:::-;1563:1;1521:44;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1515:3:63;:50;;;;;;;;;;;;;;;1575:20;;;;;;;;;;;;;;;;;;;:12;:20::i;:::-;1626:3;;1605:26;;1626:3;;1605:12;:26::i;:::-;1641:3;:9;;;;;;;;1695:3;;1679:4;;1660:8;:39;;;;1641:9;1695:3;;;;1679:4;;;;1671:28;;;;1660:39;;;;;;;;;;;1718:8;;;:39;;1752:4;;;;1718:39;;;1737:3;;;;1718:39;1709:6;:48;;;;;;;;;;;;;;;1776:8;;;;;;;:39;;1811:3;;;;1776:39;;;1795:4;;;;1776:39;1767:6;:48;;;;;;;;;;;;;;;;;-1:-1:-1;;1848:8:63;;;;;:90;;1914:23;1848:90;;;1867:35;1848:90;1825:113;;1957:99;;;;;;;;;;;;;;;;;;:12;:99::i;:::-;2188:4;;2228:6;;2236;;2244:3;;2188:74;;;;;:4;;;;;:39;;:74;;2228:6;;;;2236;;;2244:3;;;;;;;2249:12;;2188:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2166:4;:97;;;;;;;;;;;;;;;2273:23;;;;;;;;;;;;;;;;;;;:12;:23::i;:::-;2327:4;;2306:27;;2327:4;;2306:12;:27::i;:::-;2412:55;2418:10;477:7:38;637:9;477:7;637:9;:::i;2022:142:7:-;2071:35;2139:18;2118:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2022:142;:::o;2481:179:63:-;2556:1;2550:5;:7;;;2542:16;;;;;;2594:4;;:12;;;;;;;;2571:10;;2594:4;;;:10;;:12;;;;;;;;;;;;;;:4;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2568:38;;;;;;;;2616:37;2622:6;2635:5;2630:4;:10;;;;:::i;:::-;2642;2647:5;2642:4;:10;:::i;2616:37::-;2532:128;2481:179;;:::o;6356:116:16:-;6405:60;6461:2;6421:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6405:15;:60::i;6598:121::-;6653:59;6708:2;6669:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6653:15;:59::i;3180:1597:63:-;3516:4;;:36;;;;;3291:15;;;;;;;;3516:4;;;;;:9;;:36;;3534:4;;3541:10;;3516:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3562:4:63;;;3583;3562:39;;;;;:4;;;;;-1:-1:-1;3562:12:63;;-1:-1:-1;3562:39:63;;3583:4;;;;3590:10;;3562:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3650:3:63;;;:34;;;;;:3;;;;;:8;;:34;;3667:4;;3674:9;;3650:34;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3694:3:63;;;;3714:4;3694:37;;;;;:3;;;;;-1:-1:-1;3694:11:63;;-1:-1:-1;3694:37:63;;3714:4;;;;;3721:9;;3694:37;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4240:4:63;;:18;;;;;;;;4229:8;;4240:4;;;:16;;:18;;;;;;;;;;;;;;:4;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4276:25;;;;;4229:29;;-1:-1:-1;4276:4:63;;:14;;:25;;4291:5;;4229:29;;4276:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4319;;;;;4268:33;;-1:-1:-1;4319:4:63;;:14;;:25;;4334:5;;4341:2;;4319:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4409:166;;;;;;;;4469:4;;;;;;4409:166;;4484:3;;;;;4409:166;;;;4490:3;;;;;;;;4409:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4409:166:63;;;;;;4469:4;4409:166;;;;;4538:10;4409:166;;;;4550:15;4409:166;;;;4626:4;:17;;;;;4409:166;;-1:-1:-1;4409:166:63;;4626:4;;;:9;;:17;;4409:166;;4626:17;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4653:22;;;;;;;;;;;;;;;;;4585:58;;-1:-1:-1;4585:58:63;;-1:-1:-1;4585:58:63;-1:-1:-1;4585:58:63;-1:-1:-1;4653:22:63;;:12;:22::i;:::-;4685:23;4698:9;4685:23;;:12;:23::i;:::-;4718:21;4731:7;4718:12;:21::i;:::-;4749;4762:7;4749:12;:21::i;:::-;3394:1383;;3180:1597;;;;;;;;;:::o;6841:116:16:-;6890:60;6946:2;6906:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;868:133;939:55;986:7;1105:14;;591:42;1278:2;1265:16;;1081:21;;1105:14;1265:16;591:42;1314:5;1303:68;1294:77;;1231:150;;1007:380;:::o;-1:-1:-1:-;;;;;;;;:::o;147:96:69:-;182:7;93:42;82:54;;215:22;204:33;147:96;-1:-1:-1;;147:96:69:o;248:95::-;314:22;330:5;314:22;:::i;:::-;309:3;302:35;;;248:95::o;348:189::-;482:2;467:18;;494:37;471:9;513:6;494:37;:::i;599:138::-;645:9;682:49;93:42;82:54;;698:32;542:52;707:22;587:5;542:52;698:32;93:42;82:54;;14:128;742:122;788:9;825:33;852:5;825:33;:::i;869:138::-;931:9;968:33;995:5;968:33;:::i;1012:138::-;1094:49;1137:5;1094:49;:::i;1155:229::-;1313:2;1298:18;;1325:53;1302:9;1360:6;1325:53;:::i;2343:164::-;2422:42;2460:3;2452:6;2422:42;:::i;:::-;-1:-1:-1;2496:4:69;2487:14;;2343:164::o;2605:506::-;2658:3;2690:37;2721:5;1957:12;;1884:87;2690:37;2074:19;;;2126:4;2117:14;;;;2211;;2882:1;2892:194;2906:6;2903:1;2900:13;2892:194;;;2962:48;3006:3;2997:6;2991:13;2962:48;:::i;:::-;2955:55;-1:-1:-1;2220:4:69;2211:14;;3023:53;-1:-1:-1;2928:1:69;2921:9;2892:194;;;-1:-1:-1;3102:3:69;;2605:506;-1:-1:-1;;;;2605:506:69:o;3116:261::-;3295:2;3284:9;3277:21;3258:4;3315:56;3367:2;3356:9;3352:18;3344:6;3315:56;:::i;4001:107::-;4047:7;4080:22;4096:5;4080:22;:::i;4113:144::-;4199:33;4226:5;4199:33;:::i;:::-;4192:5;4189:44;4179:72;;4247:1;4244;4237:12;4262:194;4352:20;;;4406:44;4352:20;4406:44;:::i;:::-;;4262:194;;;;:::o;4533:122::-;4624:5;4608:22;542:52;4660:172;4739:20;;;4793:33;4739:20;4793:33;:::i;4837:122::-;93:42;82:54;;4912:22;14:128;4964:172;5043:20;;;5097:33;5043:20;5097:33;:::i;5141:600::-;5265:6;5273;5281;5289;5342:3;5330:9;5321:7;5317:23;5313:33;5310:148;;;5369:79;199:261:67;;;5369:79:69;5477:49;5518:7;5507:9;5477:49;:::i;:::-;5467:59;;5545:58;5595:7;5590:2;5579:9;5575:18;5545:58;:::i;:::-;5535:68;;5622:47;5661:7;5656:2;5645:9;5641:18;5622:47;:::i;:::-;5612:57;;5688:47;5727:7;5722:2;5711:9;5707:18;5688:47;:::i;:::-;5678:57;;5141:600;;;;;;;:::o;5746:106::-;5839:5;5823:22;542:52;5857:200;5991:2;5976:18;;6003:48;5980:9;6033:6;6003:48;:::i;6159:118::-;6232:20;6246:5;6139:1;6128:20;;6062:92;6282:168;6359:20;;;6413:31;6359:20;6413:31;:::i;6455:448::-;6528:6;6536;6544;6597:2;6585:9;6576:7;6572:23;6568:32;6565:147;;;6623:79;199:261:67;;;6623:79:69;6731:38;6761:7;6750:9;6731:38;:::i;:::-;6721:48;;6788:45;6825:7;6820:2;6809:9;6805:18;6788:45;:::i;:::-;6778:55;;6852:45;6889:7;6884:2;6873:9;6869:18;6852:45;:::i;:::-;6842:55;;6455:448;;;;;:::o;7793:93::-;7715:66;7704:78;;7858:21;7637:151;7891;7969:30;7995:3;7987:6;7969:30;:::i;8139:500::-;8191:3;8223:36;8253:5;1957:12;;1884:87;8223:36;2074:19;;;2126:4;2117:14;;;;2211;;8412:1;8422:192;8436:6;8433:1;8430:13;8422:192;;;8492:47;8535:3;8526:6;8520:13;8492:47;:::i;:::-;8485:54;-1:-1:-1;2220:4:69;2211:14;;8552:52;-1:-1:-1;8458:1:69;8451:9;8422:192;;8644:289;8717:48;8761:3;8753:5;8747:12;8717:48;:::i;:::-;8699:3;8811:4;8804:5;8800:16;8794:23;8849:4;8842;8837:3;8833:14;8826:28;8870:57;8921:4;8916:3;8912:14;8898:12;8870:57;:::i;:::-;8863:64;8644:289;-1:-1:-1;;;;8644:289:69:o;8938:154::-;9004:10;9043:43;9082:3;9074:6;9043:43;:::i;9202:731::-;9267:3;9299:49;9342:5;1957:12;;1884:87;9299:49;2074:19;;;2126:4;2117:14;;9457:5;9450:12;;9501:6;9498:1;9494:14;9487:5;9483:26;9532:51;9577:5;2220:4;2211:14;;2142:85;9532:51;9601:1;9611:296;9625:6;9622:1;9619:13;9611:296;;;9696:5;9690:4;9686:16;9681:3;9674:29;9724:61;9780:4;9771:6;9765:13;9724:61;:::i;:::-;9716:69;-1:-1:-1;2220:4:69;2211:14;;9892:4;9883:14;;;;;9798:65;-1:-1:-1;9647:1:69;9640:9;9611:296;;;-1:-1:-1;9923:4:69;;9202:731;-1:-1:-1;;;;;;9202:731:69:o;9938:333::-;10177:2;10166:9;10159:21;10140:4;10197:68;10261:2;10250:9;10246:18;10238:6;10197:68;:::i;10373:89::-;10348:13;;10341:21;10436:19;10276:92;10467:180;10595:2;10580:18;;10607:34;10584:9;10623:6;10607:34;:::i;11818:250::-;11903:1;11913:113;11927:6;11924:1;11921:13;11913:113;;;12003:11;;;11997:18;11984:11;;;11977:39;11949:2;11942:10;11913:113;;;-1:-1:-1;;12060:1:69;12042:16;;12035:27;11818:250::o;12240:317::-;12293:3;12325:26;12345:5;1957:12;;1884:87;12325:26;2074:19;;;2126:4;2117:14;;12430:67;12490:6;12483:5;12476:4;12469:5;12465:16;12430:67;:::i;:::-;12162:66;12157:2;12146:14;;12142:87;12513:38;;12240:317;-1:-1:-1;;;;12240:317:69:o;12562:139::-;12615:10;12654:41;12691:3;12683:6;12654:41;:::i;12798:653::-;12850:3;12882:36;12912:5;1957:12;;1884:87;12882:36;2074:19;;;2126:4;2117:14;;13014:5;13007:12;;13058:6;13055:1;13051:14;13044:5;13040:26;13089:38;13121:5;2220:4;2211:14;;2142:85;13089:38;13145:1;13155:270;13169:6;13166:1;13163:13;13155:270;;;13240:5;13234:4;13230:16;13225:3;13218:29;13268:48;13311:4;13302:6;13296:13;13268:48;:::i;:::-;13260:56;-1:-1:-1;2220:4:69;2211:14;;13410:4;13401:14;;;;;13329:52;-1:-1:-1;13191:1:69;13184:9;13155:270;;13456:280;13655:2;13644:9;13637:21;13618:4;13675:55;13726:2;13715:9;13711:18;13703:6;13675:55;:::i;13741:106::-;93:42;82:54;;13818:22;14:128;13852:200;13986:2;13971:18;;13998:48;13975:9;14028:6;13998:48;:::i;14057:290::-;14116:6;14169:2;14157:9;14148:7;14144:23;14140:32;14137:147;;;14195:79;199:261:67;;;14195:79:69;14303:38;14333:7;14322:9;14303:38;:::i;14352:532::-;14434:6;14442;14450;14458;14511:3;14499:9;14490:7;14486:23;14482:33;14479:148;;;14538:79;199:261:67;;;14538:79:69;14646:38;14676:7;14665:9;14646:38;:::i;:::-;14636:48;;14703:47;14742:7;14737:2;14726:9;14722:18;14703:47;:::i;:::-;14693:57;;14769:45;14806:7;14801:2;14790:9;14786:18;14769:45;:::i;:::-;14759:55;;14833:45;14870:7;14865:2;14854:9;14850:18;14833:45;:::i;15014:95::-;14968:34;14957:46;;15080:22;14889:120;15114:472;15332:3;15317:19;;15345:48;15321:9;15375:6;15345:48;:::i;:::-;15402:46;15444:2;15433:9;15429:18;15421:6;15402:46;:::i;:::-;15457:57;15510:2;15499:9;15495:18;15487:6;15457:57;:::i;:::-;15523;15576:2;15565:9;15561:18;15553:6;15523:57;:::i;:::-;15114:472;;;;;;;:::o;15689:93::-;15669:8;15658:20;;15754:21;15591:93;15787:186;15919:2;15904:18;;15931:36;15908:9;15949:6;15931:36;:::i;15978:516::-;16093:6;16101;16109;16162:2;16150:9;16141:7;16137:23;16133:32;16130:147;;;16188:79;199:261:67;;;16188:79:69;16296:49;16337:7;16326:9;16296:49;:::i;:::-;16286:59;;16364:58;16414:7;16409:2;16398:9;16394:18;16364:58;:::i;:::-;16354:68;;16441:47;16480:7;16475:2;16464:9;16460:18;16441:47;:::i;16499:369::-;16565:6;16573;16626:2;16614:9;16605:7;16601:23;16597:32;16594:147;;;16652:79;199:261:67;;;16652:79:69;16760:38;16790:7;16779:9;16760:38;:::i;:::-;16750:48;;16817:45;16854:7;16849:2;16838:9;16834:18;16817:45;:::i;:::-;16807:55;;16499:369;;;;;:::o;16873:283::-;17035:2;17020:18;;17047:37;17024:9;17066:6;17047:37;:::i;:::-;17093:57;17146:2;17135:9;17131:18;17123:6;17093:57;:::i;17161:116::-;10348:13;;10341:21;17233:19;10276:92;17282:170;17369:13;;;17416:30;17369:13;17416:30;:::i;17457:306::-;17524:6;17577:2;17565:9;17556:7;17552:23;17548:32;17545:147;;;17603:79;199:261:67;;;17603:79:69;17711:46;17749:7;17738:9;17711:46;:::i;18076:948::-;18152:48;18196:3;18188:5;18182:12;18152:48;:::i;:::-;18246:4;18239:5;18235:16;18229:23;18261:59;18314:4;18309:3;18305:14;18291:12;18261:59;:::i;:::-;;18368:4;18361:5;18357:16;18351:23;18383:59;18436:4;18431:3;18427:14;18411;18383:59;:::i;:::-;;18490:4;18483:5;18479:16;18473:23;18505:61;18560:4;18555:3;18551:14;18535;18505:61;:::i;:::-;;18614:4;18607:5;18603:16;18597:23;18629:50;18673:4;18668:3;18664:14;18648;18629:50;:::i;:::-;;18727:4;18720:5;18716:16;18710:23;18742:50;18786:4;18781:3;18777:14;18761;18742:50;:::i;:::-;;18840:4;18833:5;18829:16;18823:23;18855:50;18899:4;18894:3;18890:14;18874;18855:50;:::i;:::-;;18953:4;18946:5;18942:16;18936:23;18968:50;19012:4;19007:3;19003:14;18987;18968:50;:::i;19029:294::-;19245:3;19230:19;;19258:59;19234:9;19299:6;19258:59;:::i;19328:176::-;19418:13;;;19465:33;19418:13;19465:33;:::i;19509:312::-;19579:6;19632:2;19620:9;19611:7;19607:23;19603:32;19600:147;;;19658:79;199:261:67;;;19658:79:69;19766:49;19807:7;19796:9;19766:49;:::i;19826:184::-;19878:77;19875:1;19868:88;19975:4;19972:1;19965:15;19999:4;19996:1;19989:15;20015:308;20186:13;;;20104:1;20142;20186:13;20251:11;;20272:19;;;20264:28;;20248:45;20238:79;;20297:18;;:::i;:::-;20238:79;;;20015:308;;;;:::o;20328:184::-;20380:77;20377:1;20370:88;20477:4;20474:1;20467:15;20501:4;20498:1;20491:15;20517:202;20557:1;20600;20638;20659:3;20649:37;;20666:18;;:::i;:::-;20700:13;;;20517:202;-1:-1:-1;;;20517:202:69:o;20802:148::-;20852:9;20889:55;20905:38;20936:5;20905:38;542:52;20955:125;21036:37;21067:5;21036:37;:::i;21085:313::-;21273:2;21258:18;;21285:37;21262:9;21304:6;21285:37;:::i;:::-;21331:61;21388:2;21377:9;21373:18;21365:6;21331:61;:::i;21403:184::-;21455:77;21452:1;21445:88;21552:4;21549:1;21542:15;21576:4;21573:1;21566:15;21592:318;21677:1;21673:12;;;;;;21747;;;21768:63;;21824:4;21814:8;21810:19;21800:29;;21768:63;21877:2;21869:6;21866:14;21846:18;21843:38;21840:64;;21884:18;;:::i;:::-;21840:64;;21592:318;;;:::o;21915:176::-;22005:13;;;22052:33;22005:13;22052:33;:::i;22096:172::-;22184:13;;;22231:31;22184:13;22231:31;:::i;22357:120::-;22343:6;22332:18;;22431:21;22273:79;22482:174;22571:13;;;22618:32;22571:13;22618:32;:::i;22742:118::-;22730:4;22719:16;;22815:20;22661:76;22865:172;22953:13;;;23000:31;22953:13;23000:31;:::i;23042:860::-;23156:6;23164;23172;23180;23188;23196;23204;23257:3;23245:9;23236:7;23232:23;23228:33;23225:148;;;23284:79;199:261:67;;;23284:79:69;23392:49;23433:7;23422:9;23392:49;:::i;:::-;23382:59;;23460:56;23508:7;23503:2;23492:9;23488:18;23460:56;:::i;:::-;23450:66;;23535:57;23584:7;23579:2;23568:9;23564:18;23535:57;:::i;:::-;23525:67;;23611:57;23660:7;23655:2;23644:9;23640:18;23611:57;:::i;:::-;23601:67;;23687:58;23737:7;23731:3;23720:9;23716:19;23687:58;:::i;:::-;23677:68;;23764:57;23813:7;23807:3;23796:9;23792:19;23764:57;:::i;:::-;23754:67;;23840:56;23888:7;23882:3;23871:9;23867:19;23840:56;:::i;:::-;23830:66;;23042:860;;;;;;;;;;:::o;24774:301::-;24815:3;24847:25;24866:5;1957:12;;1884:87;24847:25;24947:3;24968:67;25028:6;25021:5;25014:4;25007:5;25003:16;24968:67;:::i;:::-;25051:18;;24774:301;-1:-1:-1;;;24774:301:69:o;25080:290::-;25253:58;25307:3;25299:6;25253:58;:::i;:::-;25235:3;25327:37;25361:1;25356:3;25352:11;25344:6;25327:37;:::i;25375:189::-;25504:3;25529:29;25554:3;25546:6;25529:29;:::i;25569:122::-;25644:22;25660:5;25644:22;:::i;25696:176::-;25786:13;;;25833:33;25786:13;25833:33;:::i;25877:312::-;25947:6;26000:2;25988:9;25979:7;25975:23;25971:32;25968:147;;;26026:79;199:261:67;;;26026:79:69;26134:49;26175:7;26164:9;26134:49;:::i;26194:257::-;93:42;82:54;;;;;;26305:28;;;;26368:54;;26365:80;;;26425:18;;:::i;26456:252::-;93:42;82:54;;;;;;26565:28;;;;26626:53;;26623:79;;;26682:18;;:::i;27049:272::-;27178:2;2074:19;;27096:3;2126:4;2117:14;;27013:24;26998:40;;27190:95;27312:2;27301:14;;27049:272;-1:-1:-1;;27049:272:69:o;27466:271::-;27595:1;2074:19;;27513:3;2126:4;2117:14;;27453:5;27438:21;;27606:95;27326:135;27818:146;27870:9;22730:4;22719:16;;27907:51;22661:76;27969:125;28048:39;28081:5;28048:39;:::i;28099:600::-;28437:2;28426:9;28419:21;28400:4;28463:49;28508:2;28497:9;28493:18;28463:49;:::i;:::-;28560:9;28552:6;28548:22;28543:2;28532:9;28528:18;28521:50;28588:37;28618:6;28588:37;:::i;:::-;28580:45;;;28634:59;28689:2;28678:9;28674:18;28666:6;28634:59;:::i;28869:272::-;28998:2;2074:19;;28916:3;2126:4;2117:14;;28839:18;28824:34;;29010:95;28704:160;29287:271;29416:1;2074:19;;29334:3;2126:4;2117:14;;29273:6;29258:22;;29427:95;29146:136;29907:590;30244:2;30233:9;30226:21;30207:4;30270:49;30315:2;30304:9;30300:18;30270:49;:::i;:::-;30367:9;30359:6;30355:22;30350:2;30339:9;30335:18;30328:50;30395:37;30425:6;30395:37;:::i;30502:447::-;30718:3;30703:19;;30731:37;30707:9;30750:6;30731:37;:::i;:::-;30777:46;30819:2;30808:9;30804:18;30796:6;30777:46;:::i;:::-;30832:45;30873:2;30862:9;30858:18;30850:6;30832:45;:::i;:::-;30886:57;30939:2;30928:9;30924:18;30916:6;30886:57;:::i;30954:238::-;30988:3;31021:20;31035:5;6139:1;6128:20;;6062:92;31021:20;31065:66;31056:7;31053:79;31050:105;;31135:18;;:::i;:::-;31175:1;31171:15;;30954:238;-1:-1:-1;;30954:238:69:o;31197:303::-;31235:4;31265:16;31279:1;6139;6128:20;;6062:92;31265:16;31313;31327:1;6139;6128:20;;6062:92;31313:16;31304:26;;;-1:-1:-1;31304:26:69;31380:66;31368:79;;31461:8;31449:21;;31365:106;31362:132;;;31474:18;;:::i;31505:297::-;31543:3;31572:16;31586:1;6139;6128:20;;6062:92;31572:16;31619;31633:1;6139;6128:20;;6062:92;31619:16;31610:26;;-1:-1:-1;31610:26:69;31683:8;31672:20;;31705:66;31694:78;;31669:104;31666:130;;;31776:18;;:::i;32128:220::-;32277:2;32266:9;32259:21;32240:4;32297:45;32338:2;32327:9;32323:18;32315:6;32297:45;:::i;32353:308::-;32421:6;32474:2;32462:9;32453:7;32449:23;32445:32;32442:147;;;32500:79;199:261:67;;;32500:79:69;32608:47;32647:7;32636:9;32608:47;:::i;32666:91::-;32730:20;32744:5;6139:1;6128:20;;6062:92;32762:268;32924:2;32909:18;;32936:35;32913:9;32953:6;32936:35;:::i;:::-;32980:44;33020:2;33009:9;33005:18;32997:6;32980:44;:::i;33140:1301::-;33204:48;33248:3;33240:5;33234:12;33204:48;:::i;:::-;33298:4;33291:5;33287:16;33281:23;33313:59;33366:4;33361:3;33357:14;33343:12;33313:59;:::i;:::-;;33420:4;33413:5;33409:16;33403:23;33435:59;33488:4;33483:3;33479:14;33463;33435:59;:::i;:::-;;33542:4;33535:5;33531:16;33525:23;33557:57;33608:4;33603:3;33599:14;33583;33557:57;:::i;:::-;;33662:4;33655:5;33651:16;33645:23;33677:57;33728:4;33723:3;33719:14;33703;33677:57;:::i;:::-;;33782:4;33775:5;33771:16;33765:23;33797:50;33841:4;33836:3;33832:14;33816;33797:50;:::i;:::-;;33895:4;33888:5;33884:16;33878:23;33910:50;33954:4;33949:3;33945:14;33929;33910:50;:::i;:::-;;34008:4;34001:5;33997:16;33991:23;34023:50;34067:4;34062:3;34058:14;34042;34023:50;:::i;:::-;;34121:6;34114:5;34110:18;34104:25;34138:52;34182:6;34177:3;34173:16;34157:14;34138:52;:::i;:::-;;34238:6;34231:5;34227:18;34221:25;34255:63;34310:6;34305:3;34301:16;34285:14;34255:63;:::i;:::-;;34366:6;34359:5;34355:18;34349:25;34383:52;34427:6;34422:3;34418:16;34402:14;34383:52;:::i;34446:258::-;34638:3;34623:19;;34651:47;34627:9;34680:6;34651:47;:::i;34709:122::-;14968:34;14957:46;;34784:22;14889:120;34836:176;34926:13;;;34973:33;34926:13;34973:33;:::i;35017:595::-;35114:6;35122;35130;35138;35191:3;35179:9;35170:7;35166:23;35162:33;35159:148;;;35218:79;199:261:67;;;35218:79:69;35326:49;35367:7;35356:9;35326:49;:::i;:::-;35316:59;;35394:58;35444:7;35439:2;35428:9;35424:18;35394:58;:::i;:::-;35384:68;;35471:58;35521:7;35516:2;35505:9;35501:18;35471:58;:::i;:::-;35461:68;;35548:58;35598:7;35593:2;35582:9;35578:18;35548:58;:::i", "linkReferences": { "src/Util.sol": { "Util": [ { "start": 7775, "length": 20 }, { "start": 7930, "length": 20 } ] } } }, "methodIdentifiers": { "COIN()": "a54a72b7", "IS_TEST()": "fa7626d4", "USD()": "1bf6c21b", "excludeArtifacts()": "b5508aa9", "excludeContracts()": "e20c9f71", "excludeSenders()": "1ed7831c", "failed()": "ba414fa6", "fee()": "ddca3f43", "init()": "e1c7392a", "inverted()": "67e368fc", "nfpm()": "7303e913", "pool()": "16f0115b", "price()": "a035b1fe", "setUp()": "0a9254e4", "stake(uint256,int24)": "e3baf41a", "stake(uint256,int24,int24)": "53486e2f", "stake(uint256,uint256,int24,int24)": "d6f13002", "swap(address,address,uint256)": "df791e50", "swap(address,address,uint256,uint160)": "4a09d3dd", "swapToPrice(uint160)": "c578d91d", "swapper()": "2b3297f9", "targetArtifactSelectors()": "66d9a9a0", "targetArtifacts()": "85226c81", "targetContracts()": "3f7286f4", "targetSelectors()": "916a17c6", "targetSenders()": "3e5e3c23", "testSwap()": "6e008a03", "token0()": "0dfe1681", "token1()": "d21220a7" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COIN\",\"outputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USD\",\"outputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inverted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nfpm\",\"outputs\":[{\"internalType\":\"contract INonfungiblePositionManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"lower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"upper\",\"type\":\"int24\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"coinAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"usdAmount\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"lower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"upper\",\"type\":\"int24\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"width\",\"type\":\"int24\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"inToken\",\"type\":\"address\"},{\"internalType\":\"contract MockERC20\",\"name\":\"outToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"inToken\",\"type\":\"address\"},{\"internalType\":\"contract MockERC20\",\"name\":\"outToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"name\":\"swapToPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapper\",\"outputs\":[{\"internalType\":\"contract ISwapRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSwap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/TestSinglePool.sol\":\"TestSinglePool\"},\"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/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d\",\"dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a\",\"dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xf5762db8ef95099bbe77578cd9349511ed77f4dd63ec98cc6b7cd711447830c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6b0360806a9804eac0f7e07492b5db9c4953c521dabb9a11b17dd610d5b804c\",\"dweb:/ipfs/QmUFozSt3W7drBRdm1cdRow61EABqSLJtkvYZXWmoHUPss\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26\",\"dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140\",\"dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xf3b62c75cea11a0e8ef8e6526e5e5c74ae47a892b9bcefc0e98d76066e1ffd24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a41faaf836453e02c71fc272c80b3c90a614b30c9ba636512db0d033c7b93beb\",\"dweb:/ipfs/QmeQAreYYaxztQtFLQdHCzCPEorj9T5foSu2hQmxk7xT5x\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c\",\"dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d\",\"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol\":{\"keccak256\":\"0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d\",\"dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol\":{\"keccak256\":\"0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844\",\"dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"src/Constants.sol\":{\"keccak256\":\"0x41bf66b69d0d8c9c32c43fd3af5396d1288ac512fd5c6c14e06dbb06a06adf3f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://283443c74eef1b4ff300c1465a46877957188c3f65ed71aea60bd11362938418\",\"dweb:/ipfs/QmQPn2nrbKVei7HUooGXy7msfoXNT8E2yVkT1kZAC9T3ds\"]},\"src/MockERC20.sol\":{\"keccak256\":\"0x0b7b50cebfa9265beaa40b0df4c94f25b6834fc6854addf5bba878eb65164089\",\"urls\":[\"bzz-raw://d67d08b0e0fd1ab66bd98341eb93a4850a9f2200bc5ab53d996508fb7c330db4\",\"dweb:/ipfs/QmbNCZyArZvRYTQeXcXJAFytnjuZse8dthoExDZSTwYpAK\"]},\"src/Util.sol\":{\"keccak256\":\"0xbf0a5fb064064aa53474e43777176662a9f09fdb61b823b87705bd0c6d1909ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6dbdd417018821ed9cc564f5d64e92b5efaf067cdc559e7f1dd7bff2afa07a80\",\"dweb:/ipfs/QmPQTGJbnrV4PSCCXNbBQKZ3enF5r7Wv115ivoHFCjVCJr\"]},\"test/MockEnv.sol\":{\"keccak256\":\"0x0f80e0ca443ca0421f29720c89ddfc2545a890d9b65b250ac388ae560780692b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2eb22831d8fe14a3b10e5eff82f9066ce931240e103460ef18297cdc37578368\",\"dweb:/ipfs/QmSiRsGE26WwtG8cJ3a3FodEPp68trUW3n4cNWbgZGFv3V\"]},\"test/TestSinglePool.sol\":{\"keccak256\":\"0xb0d65a3f8eff4b86bfd9951afa86c71e1183702fd0faa34e45ff372fc2466388\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://62f74e787e077710558649ce87444c8a2d3ee7459aa14af31046ed3ca27d89f5\",\"dweb:/ipfs/QmPCerhkT98jauXF55HhoMiS9TVKbD1kpcqwC2sMz2XNrt\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.22+commit.4fc1097e" }, "language": "Solidity", "output": { "abi": [ { "inputs": [ { "internalType": "string", "name": "", "type": "string", "indexed": false } ], "type": "event", "name": "log", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "", "type": "address", "indexed": false } ], "type": "event", "name": "log_address", "anonymous": false }, { "inputs": [ { "internalType": "uint256[]", "name": "val", "type": "uint256[]", "indexed": false } ], "type": "event", "name": "log_array", "anonymous": false }, { "inputs": [ { "internalType": "int256[]", "name": "val", "type": "int256[]", "indexed": false } ], "type": "event", "name": "log_array", "anonymous": false }, { "inputs": [ { "internalType": "address[]", "name": "val", "type": "address[]", "indexed": false } ], "type": "event", "name": "log_array", "anonymous": false }, { "inputs": [ { "internalType": "bytes", "name": "", "type": "bytes", "indexed": false } ], "type": "event", "name": "log_bytes", "anonymous": false }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32", "indexed": false } ], "type": "event", "name": "log_bytes32", "anonymous": false }, { "inputs": [ { "internalType": "int256", "name": "", "type": "int256", "indexed": false } ], "type": "event", "name": "log_int", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "address", "name": "val", "type": "address", "indexed": false } ], "type": "event", "name": "log_named_address", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "uint256[]", "name": "val", "type": "uint256[]", "indexed": false } ], "type": "event", "name": "log_named_array", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "int256[]", "name": "val", "type": "int256[]", "indexed": false } ], "type": "event", "name": "log_named_array", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "address[]", "name": "val", "type": "address[]", "indexed": false } ], "type": "event", "name": "log_named_array", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "bytes", "name": "val", "type": "bytes", "indexed": false } ], "type": "event", "name": "log_named_bytes", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "bytes32", "name": "val", "type": "bytes32", "indexed": false } ], "type": "event", "name": "log_named_bytes32", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "int256", "name": "val", "type": "int256", "indexed": false }, { "internalType": "uint256", "name": "decimals", "type": "uint256", "indexed": false } ], "type": "event", "name": "log_named_decimal_int", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "uint256", "name": "val", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "decimals", "type": "uint256", "indexed": false } ], "type": "event", "name": "log_named_decimal_uint", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "int256", "name": "val", "type": "int256", "indexed": false } ], "type": "event", "name": "log_named_int", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "string", "name": "val", "type": "string", "indexed": false } ], "type": "event", "name": "log_named_string", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "key", "type": "string", "indexed": false }, { "internalType": "uint256", "name": "val", "type": "uint256", "indexed": false } ], "type": "event", "name": "log_named_uint", "anonymous": false }, { "inputs": [ { "internalType": "string", "name": "", "type": "string", "indexed": false } ], "type": "event", "name": "log_string", "anonymous": false }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256", "indexed": false } ], "type": "event", "name": "log_uint", "anonymous": false }, { "inputs": [ { "internalType": "bytes", "name": "", "type": "bytes", "indexed": false } ], "type": "event", "name": "logs", "anonymous": false }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "COIN", "outputs": [ { "internalType": "contract MockERC20", "name": "", "type": "address" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "IS_TEST", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "USD", "outputs": [ { "internalType": "contract MockERC20", "name": "", "type": "address" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "excludeArtifacts", "outputs": [ { "internalType": "string[]", "name": "excludedArtifacts_", "type": "string[]" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "excludeContracts", "outputs": [ { "internalType": "address[]", "name": "excludedContracts_", "type": "address[]" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "excludeSenders", "outputs": [ { "internalType": "address[]", "name": "excludedSenders_", "type": "address[]" } ] }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "failed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "fee", "outputs": [ { "internalType": "uint24", "name": "", "type": "uint24" } ] }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "init" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "inverted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "nfpm", "outputs": [ { "internalType": "contract INonfungiblePositionManager", "name": "", "type": "address" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "pool", "outputs": [ { "internalType": "contract IUniswapV3Pool", "name": "", "type": "address" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "price", "outputs": [ { "internalType": "uint160", "name": "sqrtPriceX96", "type": "uint160" } ] }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "setUp" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "int24", "name": "lower", "type": "int24" }, { "internalType": "int24", "name": "upper", "type": "int24" } ], "stateMutability": "nonpayable", "type": "function", "name": "stake" }, { "inputs": [ { "internalType": "uint256", "name": "coinAmount", "type": "uint256" }, { "internalType": "uint256", "name": "usdAmount", "type": "uint256" }, { "internalType": "int24", "name": "lower", "type": "int24" }, { "internalType": "int24", "name": "upper", "type": "int24" } ], "stateMutability": "nonpayable", "type": "function", "name": "stake", "outputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint128", "name": "liquidity", "type": "uint128" }, { "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "internalType": "uint256", "name": "amount1", "type": "uint256" } ] }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "int24", "name": "width", "type": "int24" } ], "stateMutability": "nonpayable", "type": "function", "name": "stake" }, { "inputs": [ { "internalType": "contract MockERC20", "name": "inToken", "type": "address" }, { "internalType": "contract MockERC20", "name": "outToken", "type": "address" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "uint160", "name": "sqrtPriceLimitX96", "type": "uint160" } ], "stateMutability": "nonpayable", "type": "function", "name": "swap", "outputs": [ { "internalType": "uint256", "name": "amountOut", "type": "uint256" } ] }, { "inputs": [ { "internalType": "contract MockERC20", "name": "inToken", "type": "address" }, { "internalType": "contract MockERC20", "name": "outToken", "type": "address" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function", "name": "swap", "outputs": [ { "internalType": "uint256", "name": "amountOut", "type": "uint256" } ] }, { "inputs": [ { "internalType": "uint160", "name": "sqrtPriceLimitX96", "type": "uint160" } ], "stateMutability": "nonpayable", "type": "function", "name": "swapToPrice" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "swapper", "outputs": [ { "internalType": "contract ISwapRouter", "name": "", "type": "address" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "targetArtifactSelectors", "outputs": [ { "internalType": "struct StdInvariant.FuzzSelector[]", "name": "targetedArtifactSelectors_", "type": "tuple[]", "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes4[]", "name": "selectors", "type": "bytes4[]" } ] } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "targetArtifacts", "outputs": [ { "internalType": "string[]", "name": "targetedArtifacts_", "type": "string[]" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "targetContracts", "outputs": [ { "internalType": "address[]", "name": "targetedContracts_", "type": "address[]" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "targetSelectors", "outputs": [ { "internalType": "struct StdInvariant.FuzzSelector[]", "name": "targetedSelectors_", "type": "tuple[]", "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes4[]", "name": "selectors", "type": "bytes4[]" } ] } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "targetSenders", "outputs": [ { "internalType": "address[]", "name": "targetedSenders_", "type": "address[]" } ] }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "testSwap" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "token0", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "token1", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] } ], "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": { "test/TestSinglePool.sol": "TestSinglePool" }, "libraries": {} }, "sources": { "lib/forge-std/lib/ds-test/src/test.sol": { "keccak256": "0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b", "urls": [ "bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240", "dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k" ], "license": "GPL-3.0-or-later" }, "lib/forge-std/src/Base.sol": { "keccak256": "0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c", "urls": [ "bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224", "dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK" ], "license": "MIT" }, "lib/forge-std/src/StdAssertions.sol": { "keccak256": "0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60", "urls": [ "bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b", "dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL" ], "license": "MIT" }, "lib/forge-std/src/StdChains.sol": { "keccak256": "0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6", "urls": [ "bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d", "dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx" ], "license": "MIT" }, "lib/forge-std/src/StdCheats.sol": { "keccak256": "0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5", "urls": [ "bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a", "dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe" ], "license": "MIT" }, "lib/forge-std/src/StdError.sol": { "keccak256": "0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77", "urls": [ "bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6", "dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj" ], "license": "MIT" }, "lib/forge-std/src/StdInvariant.sol": { "keccak256": "0xf5762db8ef95099bbe77578cd9349511ed77f4dd63ec98cc6b7cd711447830c1", "urls": [ "bzz-raw://a6b0360806a9804eac0f7e07492b5db9c4953c521dabb9a11b17dd610d5b804c", "dweb:/ipfs/QmUFozSt3W7drBRdm1cdRow61EABqSLJtkvYZXWmoHUPss" ], "license": "MIT" }, "lib/forge-std/src/StdJson.sol": { "keccak256": "0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b", "urls": [ "bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c", "dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV" ], "license": "MIT" }, "lib/forge-std/src/StdMath.sol": { "keccak256": "0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2", "urls": [ "bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92", "dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC" ], "license": "MIT" }, "lib/forge-std/src/StdStorage.sol": { "keccak256": "0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d", "urls": [ "bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26", "dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9" ], "license": "MIT" }, "lib/forge-std/src/StdStyle.sol": { "keccak256": "0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d", "urls": [ "bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8", "dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK" ], "license": "MIT" }, "lib/forge-std/src/StdUtils.sol": { "keccak256": "0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1", "urls": [ "bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140", "dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi" ], "license": "MIT" }, "lib/forge-std/src/Test.sol": { "keccak256": "0xf3b62c75cea11a0e8ef8e6526e5e5c74ae47a892b9bcefc0e98d76066e1ffd24", "urls": [ "bzz-raw://a41faaf836453e02c71fc272c80b3c90a614b30c9ba636512db0d033c7b93beb", "dweb:/ipfs/QmeQAreYYaxztQtFLQdHCzCPEorj9T5foSu2hQmxk7xT5x" ], "license": "MIT" }, "lib/forge-std/src/Vm.sol": { "keccak256": "0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5", "urls": [ "bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c", "dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw" ], "license": "MIT" }, "lib/forge-std/src/console.sol": { "keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba", "urls": [ "bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70", "dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec" ], "license": "MIT" }, "lib/forge-std/src/console2.sol": { "keccak256": "0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea", "urls": [ "bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973", "dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF" ], "license": "MIT" }, "lib/forge-std/src/interfaces/IMulticall3.sol": { "keccak256": "0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a", "urls": [ "bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0", "dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2" ], "license": "MIT" }, "lib/forge-std/src/safeconsole.sol": { "keccak256": "0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381", "urls": [ "bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae", "dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol": { "keccak256": "0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d", "urls": [ "bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d", "dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { "keccak256": "0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b", "urls": [ "bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34", "dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol": { "keccak256": "0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca", "urls": [ "bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd", "dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol": { "keccak256": "0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68", "urls": [ "bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56", "dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol": { "keccak256": "0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf", "urls": [ "bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34", "dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol": { "keccak256": "0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9", "urls": [ "bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146", "dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/Context.sol": { "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", "urls": [ "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": { "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1", "urls": [ "bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f", "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy" ], "license": "MIT" }, "lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol": { "keccak256": "0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489", "urls": [ "bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2", "dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol": { "keccak256": "0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1", "urls": [ "bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5", "dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol": { "keccak256": "0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69", "urls": [ "bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652", "dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol": { "keccak256": "0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634", "urls": [ "bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5", "dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol": { "keccak256": "0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5", "urls": [ "bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7", "dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol": { "keccak256": "0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd", "urls": [ "bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03", "dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol": { "keccak256": "0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7", "urls": [ "bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047", "dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol": { "keccak256": "0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235", "urls": [ "bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735", "dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol": { "keccak256": "0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f", "urls": [ "bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f", "dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol": { "keccak256": "0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032", "urls": [ "bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d", "dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-core/contracts/libraries/FullMath.sol": { "keccak256": "0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be", "urls": [ "bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d", "dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2" ], "license": "MIT" }, "lib_uniswap/v3-core/contracts/libraries/TickMath.sol": { "keccak256": "0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d", "urls": [ "bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3", "dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol": { "keccak256": "0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4", "urls": [ "bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471", "dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol": { "keccak256": "0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984", "urls": [ "bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56", "dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol": { "keccak256": "0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d", "urls": [ "bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f", "dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol": { "keccak256": "0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274", "urls": [ "bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407", "dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol": { "keccak256": "0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862", "urls": [ "bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f", "dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol": { "keccak256": "0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975", "urls": [ "bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53", "dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol": { "keccak256": "0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24", "urls": [ "bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844", "dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol": { "keccak256": "0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4", "urls": [ "bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48", "dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr" ], "license": "GPL-2.0-or-later" }, "src/Constants.sol": { "keccak256": "0x41bf66b69d0d8c9c32c43fd3af5396d1288ac512fd5c6c14e06dbb06a06adf3f", "urls": [ "bzz-raw://283443c74eef1b4ff300c1465a46877957188c3f65ed71aea60bd11362938418", "dweb:/ipfs/QmQPn2nrbKVei7HUooGXy7msfoXNT8E2yVkT1kZAC9T3ds" ], "license": "UNLICENSED" }, "src/MockERC20.sol": { "keccak256": "0x0b7b50cebfa9265beaa40b0df4c94f25b6834fc6854addf5bba878eb65164089", "urls": [ "bzz-raw://d67d08b0e0fd1ab66bd98341eb93a4850a9f2200bc5ab53d996508fb7c330db4", "dweb:/ipfs/QmbNCZyArZvRYTQeXcXJAFytnjuZse8dthoExDZSTwYpAK" ], "license": null }, "src/Util.sol": { "keccak256": "0xbf0a5fb064064aa53474e43777176662a9f09fdb61b823b87705bd0c6d1909ad", "urls": [ "bzz-raw://6dbdd417018821ed9cc564f5d64e92b5efaf067cdc559e7f1dd7bff2afa07a80", "dweb:/ipfs/QmPQTGJbnrV4PSCCXNbBQKZ3enF5r7Wv115ivoHFCjVCJr" ], "license": "UNLICENSED" }, "test/MockEnv.sol": { "keccak256": "0x0f80e0ca443ca0421f29720c89ddfc2545a890d9b65b250ac388ae560780692b", "urls": [ "bzz-raw://2eb22831d8fe14a3b10e5eff82f9066ce931240e103460ef18297cdc37578368", "dweb:/ipfs/QmSiRsGE26WwtG8cJ3a3FodEPp68trUW3n4cNWbgZGFv3V" ], "license": "UNLICENSED" }, "test/TestSinglePool.sol": { "keccak256": "0xb0d65a3f8eff4b86bfd9951afa86c71e1183702fd0faa34e45ff372fc2466388", "urls": [ "bzz-raw://62f74e787e077710558649ce87444c8a2d3ee7459aa14af31046ed3ca27d89f5", "dweb:/ipfs/QmPCerhkT98jauXF55HhoMiS9TVKbD1kpcqwC2sMz2XNrt" ], "license": "UNLICENSED" } }, "version": 1 }, "ast": { "absolutePath": "test/TestSinglePool.sol", "id": 51760, "exportedSymbols": { "Constants": [ 46264 ], "Context": [ 43777 ], "DSTest": [ 2291 ], "ERC20": [ 43478 ], "FixedPoint96": [ 44338 ], "FullMath": [ 44519 ], "IERC165": [ 43789 ], "IERC20": [ 43556 ], "IERC20Metadata": [ 43581 ], "IERC721": [ 43697 ], "IERC721Enumerable": [ 43728 ], "IERC721Metadata": [ 43755 ], "IERC721Permit": [ 45094 ], "INonfungiblePositionManager": [ 45293 ], "IPeripheryImmutableState": [ 45309 ], "IPeripheryPayments": [ 45335 ], "IPoolInitializer": [ 45354 ], "ISwapRouter": [ 45454 ], "IUniswapV3Factory": [ 43872 ], "IUniswapV3Pool": [ 43894 ], "IUniswapV3PoolActions": [ 44004 ], "IUniswapV3PoolDerivedState": [ 44035 ], "IUniswapV3PoolEvents": [ 44154 ], "IUniswapV3PoolImmutables": [ 44194 ], "IUniswapV3PoolOwnerActions": [ 44220 ], "IUniswapV3PoolState": [ 44328 ], "IUniswapV3SwapCallback": [ 43908 ], "LiquidityAmounts": [ 45794 ], "MockERC20": [ 46478 ], "MockEnv": [ 50069 ], "PoolAddress": [ 45892 ], "StdAssertions": [ 3823 ], "StdChains": [ 4516 ], "StdCheats": [ 7334 ], "StdInvariant": [ 7624 ], "StdStorage": [ 8374 ], "StdStyle": [ 11038 ], "StdUtils": [ 11886 ], "Test": [ 11937 ], "TestBase": [ 2357 ], "TestSinglePool": [ 51759 ], "TickMath": [ 45059 ], "Util": [ 48904 ], "Vm": [ 13464 ], "console": [ 21528 ], "console2": [ 29653 ], "safeconsole": [ 42891 ], "stdError": [ 7400 ], "stdJson": [ 8200 ], "stdMath": [ 8342 ], "stdStorage": [ 9827 ] }, "nodeType": "SourceUnit", "src": "65:396:67", "nodes": [ { "id": 51707, "nodeType": "PragmaDirective", "src": "65:24:67", "nodes": [], "literals": [ "solidity", ">=", "0.8", ".0" ] }, { "id": 51708, "nodeType": "PragmaDirective", "src": "90:19:67", "nodes": [], "literals": [ "abicoder", "v2" ] }, { "id": 51709, "nodeType": "ImportDirective", "src": "111:32:67", "nodes": [], "absolutePath": "lib/forge-std/src/console2.sol", "file": "forge-std/console2.sol", "nameLocation": "-1:-1:-1", "scope": 51760, "sourceUnit": 29654, "symbolAliases": [], "unitAlias": "" }, { "id": 51710, "nodeType": "ImportDirective", "src": "144:28:67", "nodes": [], "absolutePath": "lib/forge-std/src/Test.sol", "file": "forge-std/Test.sol", "nameLocation": "-1:-1:-1", "scope": 51760, "sourceUnit": 11938, "symbolAliases": [], "unitAlias": "" }, { "id": 51711, "nodeType": "ImportDirective", "src": "173:23:67", "nodes": [], "absolutePath": "test/MockEnv.sol", "file": "./MockEnv.sol", "nameLocation": "-1:-1:-1", "scope": 51760, "sourceUnit": 50070, "symbolAliases": [], "unitAlias": "" }, { "id": 51759, "nodeType": "ContractDefinition", "src": "199:261:67", "nodes": [ { "id": 51722, "nodeType": "FunctionDefinition", "src": "246:47:67", "nodes": [], "body": { "id": 51721, "nodeType": "Block", "src": "270:23:67", "nodes": [], "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 51718, "name": "init", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 49634, "src": "280:4:67", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 51719, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "280:6:67", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 51720, "nodeType": "ExpressionStatement", "src": "280:6:67" } ] }, "functionSelector": "0a9254e4", "implemented": true, "kind": "function", "modifiers": [], "name": "setUp", "nameLocation": "255:5:67", "parameters": { "id": 51716, "nodeType": "ParameterList", "parameters": [], "src": "260:2:67" }, "returnParameters": { "id": 51717, "nodeType": "ParameterList", "parameters": [], "src": "270:0:67" }, "scope": 51759, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "id": 51758, "nodeType": "FunctionDefinition", "src": "300:158:67", "nodes": [], "body": { "id": 51757, "nodeType": "Block", "src": "327:131:67", "nodes": [], "statements": [ { "expression": { "arguments": [ { "arguments": [ { "id": 51730, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "355:4:67", "typeDescriptions": { "typeIdentifier": "t_contract$_TestSinglePool_$51759", "typeString": "contract TestSinglePool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_TestSinglePool_$51759", "typeString": "contract TestSinglePool" } ], "id": 51729, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "347:7:67", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 51728, "name": "address", "nodeType": "ElementaryTypeName", "src": "347:7:67", "typeDescriptions": {} } }, "id": 51731, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "347:13:67", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "commonType": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" }, "id": 51736, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "31", "id": 51732, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "362:1:67", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "commonType": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" }, "id": 51735, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", "id": 51733, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "366:2:67", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "hexValue": "3138", "id": 51734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "370:2:67", "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, "src": "366:6:67", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" } }, "src": "362:10:67", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" } ], "expression": { "id": 51725, "name": "COIN", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 49475, "src": "337:4:67", "typeDescriptions": { "typeIdentifier": "t_contract$_MockERC20_$46478", "typeString": "contract MockERC20" } }, "id": 51727, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "342:4:67", "memberName": "mint", "nodeType": "MemberAccess", "referencedDeclaration": 46477, "src": "337:9:67", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256) external" } }, "id": 51737, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "337:36:67", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 51738, "nodeType": "ExpressionStatement", "src": "337:36:67" }, { "assignments": [ 51740 ], "declarations": [ { "constant": false, "id": 51740, "mutability": "mutable", "name": "usd", "nameLocation": "391:3:67", "nodeType": "VariableDeclaration", "scope": 51757, "src": "383:11:67", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 51739, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "383:7:67", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 51750, "initialValue": { "arguments": [ { "id": 51742, "name": "COIN", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 49475, "src": "402:4:67", "typeDescriptions": { "typeIdentifier": "t_contract$_MockERC20_$46478", "typeString": "contract MockERC20" } }, { "id": 51743, "name": "USD", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 49478, "src": "408:3:67", "typeDescriptions": { "typeIdentifier": "t_contract$_MockERC20_$46478", "typeString": "contract MockERC20" } }, { "commonType": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" }, "id": 51748, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "31", "id": 51744, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "413:1:67", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "commonType": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" }, "id": 51747, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", "id": 51745, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "417:2:67", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "hexValue": "3138", "id": 51746, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "421:2:67", "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", "typeString": "int_const 18" }, "value": "18" }, "src": "417:6:67", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" } }, "src": "413:10:67", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_MockERC20_$46478", "typeString": "contract MockERC20" }, { "typeIdentifier": "t_contract$_MockERC20_$46478", "typeString": "contract MockERC20" }, { "typeIdentifier": "t_rational_1000000000000000000_by_1", "typeString": "int_const 1000000000000000000" } ], "id": 51741, "name": "swap", "nodeType": "Identifier", "overloadedDeclarations": [ 49914, 49970 ], "referencedDeclaration": 49914, "src": "397:4:67", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_MockERC20_$46478_$_t_contract$_MockERC20_$46478_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (contract MockERC20,contract MockERC20,uint256) returns (uint256)" } }, "id": 51749, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "397:27:67", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "383:41:67" }, { "expression": { "arguments": [ { "id": 51754, "name": "usd", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 51740, "src": "447:3:67", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 51751, "name": "console2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29653, "src": "434:8:67", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_console2_$29653_$", "typeString": "type(library console2)" } }, "id": 51753, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "443:3:67", "memberName": "log", "nodeType": "MemberAccess", "referencedDeclaration": 22139, "src": "434:12:67", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", "typeString": "function (uint256) pure" } }, "id": 51755, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "434:17:67", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 51756, "nodeType": "ExpressionStatement", "src": "434:17:67" } ] }, "functionSelector": "6e008a03", "implemented": true, "kind": "function", "modifiers": [], "name": "testSwap", "nameLocation": "309:8:67", "parameters": { "id": 51723, "nodeType": "ParameterList", "parameters": [], "src": "317:2:67" }, "returnParameters": { "id": 51724, "nodeType": "ParameterList", "parameters": [], "src": "327:0:67" }, "scope": 51759, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "abstract": false, "baseContracts": [ { "baseName": { "id": 51712, "name": "MockEnv", "nameLocations": [ "226:7:67" ], "nodeType": "IdentifierPath", "referencedDeclaration": 50069, "src": "226:7:67" }, "id": 51713, "nodeType": "InheritanceSpecifier", "src": "226:7:67" }, { "baseName": { "id": 51714, "name": "Test", "nameLocations": [ "235:4:67" ], "nodeType": "IdentifierPath", "referencedDeclaration": 11937, "src": "235:4:67" }, "id": 51715, "nodeType": "InheritanceSpecifier", "src": "235:4:67" } ], "canonicalName": "TestSinglePool", "contractDependencies": [ 46478 ], "contractKind": "contract", "fullyImplemented": true, "internalFunctionIDs": { "21582": 1 }, "linearizedBaseContracts": [ 51759, 11937, 2357, 2354, 11886, 7624, 7334, 6570, 4516, 3823, 2291, 50069 ], "name": "TestSinglePool", "nameLocation": "208:14:67", "scope": 51760, "usedErrors": [], "usedEvents": [ 5, 9, 13, 17, 21, 25, 29, 33, 39, 45, 53, 61, 67, 73, 79, 85, 2418, 2423, 2428, 2435, 2442, 2449 ] } ], "license": "UNLICENSED" }, "id": 67 }