Source Code
Latest 14 from a total of 14 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Initialize | 45280706 | 18 days ago | IN | 0 ETH | 0.00000019 | ||||
| Initialize | 44294933 | 40 days ago | IN | 0 ETH | 0.00000107 | ||||
| Initialize | 44294818 | 40 days ago | IN | 0 ETH | 0.00000107 | ||||
| Initialize | 44293059 | 40 days ago | IN | 0 ETH | 0.00000108 | ||||
| Initialize | 44292878 | 40 days ago | IN | 0 ETH | 0.00000108 | ||||
| Initialize | 44292595 | 41 days ago | IN | 0 ETH | 0.00000108 | ||||
| Initialize | 44281862 | 41 days ago | IN | 0 ETH | 0.00000108 | ||||
| Initialize | 41727207 | 100 days ago | IN | 0 ETH | 0.00001305 | ||||
| Initialize | 41724164 | 100 days ago | IN | 0 ETH | 0.00000192 | ||||
| Initialize | 33749744 | 285 days ago | IN | 0 ETH | 0.00000004 | ||||
| Initialize | 33749357 | 285 days ago | IN | 0 ETH | 0.00000004 | ||||
| Initialize | 32978378 | 302 days ago | IN | 0 ETH | 0.00000475 | ||||
| Transfer Ownersh... | 30544384 | 359 days ago | IN | 0 ETH | 0.00000012 | ||||
| Set Protocol Fee... | 30544217 | 359 days ago | IN | 0 ETH | 0.00000006 |
Latest 1 internal transaction
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 30544106 | 359 days ago | Contract Creation | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"contract IVault","name":"_vault","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CannotUpdateEmptyPosition","type":"error"},{"inputs":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"}],"name":"CurrenciesInitializedOutOfOrder","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"HookConfigValidationError","type":"error"},{"inputs":[],"name":"HookDeltaExceedsSwapAmount","type":"error"},{"inputs":[],"name":"HookPermissionsValidationError","type":"error"},{"inputs":[],"name":"InvalidCaller","type":"error"},{"inputs":[],"name":"InvalidFeeForExactOut","type":"error"},{"inputs":[],"name":"InvalidHookResponse","type":"error"},{"inputs":[{"internalType":"uint160","name":"sqrtPriceCurrentX96","type":"uint160"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"name":"InvalidSqrtPriceLimit","type":"error"},{"inputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"name":"InvalidSqrtRatio","type":"error"},{"inputs":[{"internalType":"int24","name":"tick","type":"int24"}],"name":"InvalidTick","type":"error"},{"inputs":[{"internalType":"uint24","name":"fee","type":"uint24"}],"name":"LPFeeTooLarge","type":"error"},{"inputs":[],"name":"NoLiquidityToReceiveFees","type":"error"},{"inputs":[],"name":"PoolAlreadyInitialized","type":"error"},{"inputs":[],"name":"PoolManagerMismatch","type":"error"},{"inputs":[],"name":"PoolNotInitialized","type":"error"},{"inputs":[],"name":"PoolPaused","type":"error"},{"inputs":[],"name":"ProtocolFeeCannotBeFetched","type":"error"},{"inputs":[{"internalType":"uint24","name":"fee","type":"uint24"}],"name":"ProtocolFeeTooLarge","type":"error"},{"inputs":[],"name":"SwapAmountCannotBeZero","type":"error"},{"inputs":[{"internalType":"int24","name":"tick","type":"int24"}],"name":"TickLiquidityOverflow","type":"error"},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"}],"name":"TickLowerOutOfBounds","type":"error"},{"inputs":[{"internalType":"int24","name":"tickSpacing","type":"int24"}],"name":"TickSpacingTooLarge","type":"error"},{"inputs":[{"internalType":"int24","name":"tickSpacing","type":"int24"}],"name":"TickSpacingTooSmall","type":"error"},{"inputs":[{"internalType":"int24","name":"tickUpper","type":"int24"}],"name":"TickUpperOutOfBounds","type":"error"},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"}],"name":"TicksMisordered","type":"error"},{"inputs":[],"name":"UnauthorizedDynamicLPFeeUpdate","type":"error"},{"inputs":[],"name":"UnusedBitsNonZero","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":false,"internalType":"int24","name":"tick","type":"int24"}],"name":"Donate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":false,"internalType":"uint24","name":"dynamicLPFee","type":"uint24"}],"name":"DynamicLPFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"Currency","name":"currency0","type":"address"},{"indexed":true,"internalType":"Currency","name":"currency1","type":"address"},{"indexed":false,"internalType":"contract IHooks","name":"hooks","type":"address"},{"indexed":false,"internalType":"uint24","name":"fee","type":"uint24"},{"indexed":false,"internalType":"bytes32","name":"parameters","type":"bytes32"},{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"indexed":false,"internalType":"int24","name":"tick","type":"int24"}],"name":"Initialize","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":false,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"int256","name":"liquidityDelta","type":"int256"},{"indexed":false,"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"ModifyLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"protocolFeeController","type":"address"}],"name":"ProtocolFeeControllerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":false,"internalType":"uint24","name":"protocolFee","type":"uint24"}],"name":"ProtocolFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"int128","name":"amount0","type":"int128"},{"indexed":false,"internalType":"int128","name":"amount1","type":"int128"},{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"},{"indexed":false,"internalType":"int24","name":"tick","type":"int24"},{"indexed":false,"internalType":"uint24","name":"fee","type":"uint24"},{"indexed":false,"internalType":"uint16","name":"protocolFee","type":"uint16"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"Currency","name":"currency","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collectProtocolFees","outputs":[{"internalType":"uint256","name":"amountCollected","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"contract IHooks","name":"hooks","type":"address"},{"internalType":"contract IPoolManager","name":"poolManager","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"bytes32","name":"parameters","type":"bytes32"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"donate","outputs":[{"internalType":"BalanceDelta","name":"delta","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"extsload","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"slots","type":"bytes32[]"}],"name":"extsload","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"}],"name":"getFeeGrowthGlobals","outputs":[{"internalType":"uint256","name":"feeGrowthGlobal0x128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthGlobal1x128","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"getLiquidity","outputs":[{"internalType":"uint128","name":"liquidity","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"}],"name":"getLiquidity","outputs":[{"internalType":"uint128","name":"liquidity","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"int16","name":"word","type":"int16"}],"name":"getPoolBitmapInfo","outputs":[{"internalType":"uint256","name":"tickBitmap","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"int24","name":"tick","type":"int24"}],"name":"getPoolTickInfo","outputs":[{"components":[{"internalType":"uint128","name":"liquidityGross","type":"uint128"},{"internalType":"int128","name":"liquidityNet","type":"int128"},{"internalType":"uint256","name":"feeGrowthOutside0X128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthOutside1X128","type":"uint256"}],"internalType":"struct Tick.Info","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"getPosition","outputs":[{"components":[{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"}],"internalType":"struct CLPosition.Info","name":"position","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"}],"name":"getSlot0","outputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"uint24","name":"protocolFee","type":"uint24"},{"internalType":"uint24","name":"lpFee","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"contract IHooks","name":"hooks","type":"address"},{"internalType":"contract IPoolManager","name":"poolManager","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"bytes32","name":"parameters","type":"bytes32"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"name":"initialize","outputs":[{"internalType":"int24","name":"tick","type":"int24"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"contract IHooks","name":"hooks","type":"address"},{"internalType":"contract IPoolManager","name":"poolManager","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"bytes32","name":"parameters","type":"bytes32"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct ICLPoolManager.ModifyLiquidityParams","name":"params","type":"tuple"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"modifyLiquidity","outputs":[{"internalType":"BalanceDelta","name":"delta","type":"int256"},{"internalType":"BalanceDelta","name":"feeDelta","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"res","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"}],"name":"poolIdToPoolKey","outputs":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"contract IHooks","name":"hooks","type":"address"},{"internalType":"contract IPoolManager","name":"poolManager","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"bytes32","name":"parameters","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeController","outputs":[{"internalType":"contract IProtocolFeeController","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Currency","name":"currency","type":"address"}],"name":"protocolFeesAccrued","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"contract IHooks","name":"hooks","type":"address"},{"internalType":"contract IPoolManager","name":"poolManager","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"bytes32","name":"parameters","type":"bytes32"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"internalType":"uint24","name":"newProtocolFee","type":"uint24"}],"name":"setProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IProtocolFeeController","name":"controller","type":"address"}],"name":"setProtocolFeeController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"contract IHooks","name":"hooks","type":"address"},{"internalType":"contract IPoolManager","name":"poolManager","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"bytes32","name":"parameters","type":"bytes32"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct ICLPoolManager.SwapParams","name":"params","type":"tuple"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"swap","outputs":[{"internalType":"BalanceDelta","name":"delta","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"contract IHooks","name":"hooks","type":"address"},{"internalType":"contract IPoolManager","name":"poolManager","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"bytes32","name":"parameters","type":"bytes32"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"internalType":"uint24","name":"newDynamicLPFee","type":"uint24"}],"name":"updateDynamicLPFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"contract IVault","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60a03460c757601f61527538819003918201601f19168301916001600160401b0383118484101760cb5780849260209460405283398101031260c757516001600160a01b038116810360c7575f8054336001600160a01b0319821681178355604051939290916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805261519590816100e0823960805181818161016201528181610375015281816109020152818161124c01526125440152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe610120806040526004361015610013575f80fd5b5f610100525f3560e01c9081630e2d484a146129a8575080631e2eaeaf1461298c5780632d7713891461290f5780633f4ba83a146128c757806350b6157b146128405780635aa208a41461278a5780635c975abb1461276b5780637388426b146126965780637c352ef61461264f5780638161b874146124c957806381a250a1146123785780638456cb59146123205780638b0c1b2214611a455780638da5cb5b14611a1a5780639371d11514610d9957806397e8cd4e14610d5b5780639ec538c814610d1f578063ad4cc2d314610bf3578063c815641c14610b92578063cd0cc1ce146106a7578063dbd035ff1461060d578063f02de3b2146105e4578063f15b275f14610264578063f2fde38b146101d2578063fa6793d51461018d5763fbfa77cf14610140575f80fd5b3461018657610100516003193601126101865760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b6101005180fd5b34610186576020600319360112610186576004356101005152600460205260206fffffffffffffffffffffffffffffffff600360406101005120015416604051908152f35b34610186576020600319360112610186576001600160a01b036101f3612a2d565b6101fb612ca4565b168015610186576101005180547fffffffffffffffffffffffff00000000000000000000000000000000000000008116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36101005180f35b34610186576101206003193601126101865761027f36612b7a565b60e4359060c4356101043567ffffffffffffffff8111610186576102a7903690600401612c0f565b91906102b16131fd565b60c0842090816101005152600460205260406101005120946102d286612ea2565b60408101966001600160a01b038851169360a08301948260018751610100515060081c16806105da575b61058e575b50506fffffffffffffffffffffffffffffffff6003890154169788156105605761033261032d88614b34565b6141f9565b61033e61032d85614b34565b6fffffffffffffffffffffffffffffffff169060801b17988761054c575b83610537575b505460a01c60020b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166001600160a01b038551166001600160a01b0360208701511690823b15610186576040517f9073e5ca00000000000000000000000000000000000000000000000000000000815261010080516001600160a01b039384166004840152939092166024820152604481018d90523360648201529051909283916084918391905af180156105295761050e575b506020996001926001600160a01b0392604051918a8352868e84015260408301527fbe708911656ae186ac3fc26a794e5f1319609ce340a14c63524f985fee4bc84160603393a351955195169460091c1680610504575b610486575b8787604051908152f35b6104f8956104f3936104c7926040519788957f5304d44e000000000000000000000000000000000000000000000000000000008d8801523360248801614161565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101845283612b27565b614228565b5082808080808061047c565b5033841415610477565b6101005161051b91612b27565b61010051610186578a610420565b6040513d61010051823e3d90fd5b60028201908460801b0481540190558a610362565b60018201818960801b04815401905561035c565b7fa74f97ab000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b6105d2916104f3896104c78c8a6040519687947f4b6a682d0000000000000000000000000000000000000000000000000000000060208701528c3360248801614161565b508982610301565b50338214156102fc565b3461018657610100516003193601126101865760206001600160a01b0360035416604051908152f35b346101865760206003193601126101865760043567ffffffffffffffff811161018657366023820112156101865780600401359067ffffffffffffffff8211610186578160051b9036602483830101116101865760408051809460208252602082015201918301916020806024604086019401925b833554815201910190848382101561069e575060208091610682565b60408186030190f35b3461018657610140600319360112610186576106c236612b7a565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c36011261018657604051906106f982612ad2565b60c435801515810361018657825260e435602083019081526101043592906001600160a01b038416840361018657604082019384526101243567ffffffffffffffff81116101865761074f903690600401612c0f565b90926107596131fd565b825115610b645760c08520918261010051526004602052604061010051209161078183612ea2565b61078d8287838a613249565b9094610797612c61565b5062ffffff60a08b015160101c1660020b926001600160a01b03855115159c5116926040519360a085019285841067ffffffffffffffff851117610b315760209e6107ff9762ffffff9560405287528f870152604086015260608501521660808301526134cb565b909460e082015180610aed575b506001600160a01b03604083015116916fffffffffffffffffffffffffffffffff6101008201511690606081015160020b61ffff60a062ffffff6080850151169301511692604051958a60801d600f0b87528a600f0b8f88015260408701526060860152608085015260a084015260c08301527f04206ad2b7c0f463bff3dd4f33c5735b0f2957a351e4f79763a4fa9e775dd23760e03393a38395876001600160a01b03604082015116918560801d95600f0b94600160a0840151610100515060071c1680610ae3575b61099d575b50506101005196915050600f83900b15801590610991575b61092e575b888761092688828c7f00000000000000000000000000000000000000000000000000000000000000006130a8565b604051908152f35b6101005190519151610926975094955061096a941515911203610974576fffffffffffffffffffffffffffffffff169060801b175b8092614b72565b91858080806108f8565b906fffffffffffffffffffffffffffffffff169060801b17610963565b5083600f0b15156108f3565b92610a4d610abd610ad394610a91610ace95610ad9999a98604051956020947f6f6657cb000000000000000000000000000000000000000000000000000000008896870152336024870152604486019060a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b8b51151561010485015260208c015161012485015260408c01516001600160a01b03166101448501528d6101648501526101806101848501526101a4840191612ec0565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282612b27565b600160a08d0151600b1c1691614b52565b612fc0565b9061411a565b90888781806108db565b50338414156108d6565b835115610b1e576001600160a01b03808b51165b16610100515260028b52604061010051209081540190558a61080c565b6001600160a01b03808c8c015116610b01565b7f4e487b710000000000000000000000000000000000000000000000000000000061010051526041600452602461010051fd5b7fbe8b8507000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b3461018657602060031936011261018657600435610100515260046020526080604061010051205460405190806001600160a01b031682528060a01c60020b60208301528060b81c62ffffff16604083015260d01c62ffffff166060820152f35b346101865760e060031936011261018657610c0d36612b7a565b610c15612b68565b906280000062ffffff60808301511614801590610d08575b610cda57602060c07f14b2b80e0d62303dc85494859f35a84579160aafbd650180ddf526b1ab547bd692610c6085612dfb565b20928361010051526004825260406101005120610c7c81612ea2565b80547cffffff00000000000000000000000000000000000000000000000000008360d01b16907fffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffff1617905562ffffff60405191168152a26101005180f35b7f30d21641000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b506001600160a01b03604082015116331415610c2d565b34610186576020600319360112610186576004356101005152600460205260408061010051206002600182015491015482519182526020820152f35b34610186576020600319360112610186576001600160a01b03610d7c612a2d565b166101005152600260205260206040610100512054604051908152f35b346101865761016060031936011261018657610db436612b7a565b60807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c36011261018657604051610dea81612a89565b60c435600281900b810361018657815260e435600281900b810361018657602082015261010435908160408201526101243560608201526101443567ffffffffffffffff811161018657610e42903690600401612c0f565b9060c05291610100511280611a11575b6119e35760c0832060e05260e051610100515260046020526040610100512090610e7b82612ea2565b6001600160a01b03604085015116610100516040830151138080916119c7575b1561194d5750610ee690604051907ffe70c9c90000000000000000000000000000000000000000000000000000000060208301526104f3826104c78860c051888c3360248701612efe565b505b805160020b93602082015160020b94610f046040840151612fc0565b9062ffffff60a084015160101c1660020b60608501519060405193610f2885612aee565b33855260208501849052604085018a9052600f0b6060850152608084015260a0830152610100519487821215611917577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761882126118e557620d89e888136118b357805460a01c60020b90610f9a613440565b98600182015460028301546060870151600f0b6115d9575b6020878101516040808a0151600292830b5f81815260048a019095528285209190930b808552919093209492938f92606092908a126115c55760026001870154960154905b8a12156115b15760026001880154970154915b0303910152030360408b01526110766001600160a01b03865116602087015160020b604088015160020b9060a089015192906001600160a01b0376ffffff000000000000000000000000000000000000000092169060b81b179160a01b16175f52602052603a60062090565b61010051526006820160205260406101005120936060860151600f0b9460408c015160a05260608c01516080526fffffffffffffffffffffffffffffffff815416610100515086155f1461159c57801561156e5760409c606092825b6110f66110e785600185015460a05103614da5565b94600284015460805103614da5565b9961152f575b5060a05160018201556002608051910155608081019160a08201988952825261010051838a0151600f0b126114b8575b50519551960151600f0b9283611397575b505050505061114e61115491614b34565b91614b34565b6fffffffffffffffffffffffffffffffff169060801b1792825160020b602084015160020b878501516060860151918951938452602084015288830152606082015233907ff208f4912782fd25c7f114ca3723a2d5dd6f3bcc3ac8db5af63baa85f711d5ec608060e05192a36111e36111d48560801d8360801d01612fc0565b9185600f0b90600f0b01612fc0565b6fffffffffffffffffffffffffffffffff169060801b17916101005150610100515061010051926001600160a01b0387840151169181966101005189830151135f146112f55760a085015160031c600116806112eb575b61127c575b505050509083611270925b7f00000000000000000000000000000000000000000000000000000000000000006130a8565b82519182526020820152f35b6112709550916112cf6112e09492610a9161096395888b8e9d9a9d519687957fec37068200000000000000000000000000000000000000000000000000000000602088015260c051933360248901612fdb565b600160a0890151600c1c1691614b52565b93909186808061123f565b503384141561123a565b60a085015192939260051c6001168061138d575b61131d575b5050505090836112709261124a565b8497506112709550926113716109639392610a916113829684988b8e519687957f36d3cdc600000000000000000000000000000000000000000000000000000000602088015260c051933360248901612fdb565b600160a0890151600d1c1691614b52565b93909186808061130e565b5033831415611309565b805461010051969a506111549661114e969095949392916001600160a01b031690869084811215611409575050505091610ace916113e06113da6113e6956146f7565b916146f7565b90614abf565b905b6fffffffffffffffffffffffffffffffff169060801b17959189808061113d565b859396959192949750125f146114955750600361145c610ace856fffffffffffffffffffffffffffffffff95611457611451610ace8461144b6114689a6146f7565b85614abf565b9a6146f7565b614a69565b94019282845416614b10565b167fffffffffffffffffffffffffffffffff000000000000000000000000000000008254161790556113e8565b946114b39450610ace9392506113da6114ad916146f7565b90614a69565b6113e8565b80602091516114ff575b01516114cf575b8d61112c565b6114fa8d89015160020b600487019060020b5f526020525f6002604082208281558260018201550155565b6114c9565b61152a828b015160020b600489019060020b5f526020525f6002604082208281558260018201550155565b6114c2565b6fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000008254161781558f6110fc565b7faefeb924000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b60409c6060926115ac8984614b10565b6110d2565b60026001880154860397015482039161100a565b600260018701548603960154820390610ff7565b60c08c6fffffffffffffffffffffffffffffffff600160808b015160020b61010051817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276180712817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618050390620d89e80503018104169182910152602088015160020b906060890151600f0b90610100515061010051508260020b5f526004870160205260405f209182546fffffffffffffffffffffffffffffffff6116a083828416614b10565b169283116118625790818a6fffffffffffffffffffffffffffffffff6116d894161596878615141597611894575b505060801c61411a565b60801b1790558c52604087015160020b8c6fffffffffffffffffffffffffffffffff60c060608b0151600f0b9201511661010051508260020b5f526004870160205260405f209182546fffffffffffffffffffffffffffffffff61173e83828416614b10565b1692831161186257896fffffffffffffffffffffffffffffffff82161595868515141596611843575b50507fffffffffffffffffffffffffffffffff80000000000000000000000000000000608082901d8390039081126f7fffffffffffffffffffffffffffffff909113176118105760801d0360801b17905560208d019081528c516117ee575b5115610fb2576117e9604088015160020b608089015160020b9060058701614bb9565b610fb2565b61180b602089015160020b60808a015160020b9060058801614bb9565b6117c6565b7f4e487b710000000000000000000000000000000000000000000000000000000061010051526011600452602461010051fd5b1315611851575b895f611767565b86600185015585600285015561184a565b847fb8e3c385000000000000000000000000000000000000000000000000000000006101005152600452602461010051fd5b13156118a2575b8a5f6116ce565b87600186015586600286015561189b565b877f1ad777f8000000000000000000000000000000000000000000000000000000006101005152600452602461010051fd5b507fd5e2f7ab000000000000000000000000000000000000000000000000000000006101005152600452602461010051fd5b87827fc4433ed5000000000000000000000000000000000000000000000000000000006101005152600452602452604461010051fd5b15806119ab575b61195f575b50610ee8565b6119a490604051907fe8246c7f0000000000000000000000000000000000000000000000000000000060208301526104f3826104c78860c051888c3360248701612efe565b5084611959565b5060a085015160041c6001168015611954575033811415611954565b5060a086015160021c6001168015610e9b575033821415610e9b565b7f51bd770c000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b50600154610e52565b3461018657610100516003193601126101865760206001600160a01b03610100515416604051908152f35b346101865760e060031936011261018657611a5f36612b7a565b60c435906001600160a01b0382168083036101865760608201916001600160a01b0383511630036122f25760a081019362ffffff855160101c1660020b617fff81136122c1576001811261229057506001600160a01b038251169360208301946001600160a01b03865116908181101561225c575050855160281c61222e57611ae783612cb7565b8551600181600a1c16908161221f575b506121c4578551600181600b1c169081612210575b506121c4578551600181600c1c169081612201575b506121c4578551600181600d1c1690816121f2575b506121c4576080830194611b4f62ffffff875116612de4565b92611b5984612dfb565b60408501936001600160a01b0385511660018a51610100515016806121ba575b6120ff575b5060c08620610100516003549193916001600160a01b031680611efe575b508361010051526004602052604061010051209182546001600160a01b0316611ed057611bc8906143a4565b9260d01b7cffffff00000000000000000000000000000000000000000000000000001690898460a01b76ffffff000000000000000000000000000000000000000016179060b81b79ffffff000000000000000000000000000000000000000000000016171790558161010051526005602052610100516040902086516001600160a01b0316936001600160a01b03851682547fffffffffffffffffffffffff000000000000000000000000000000000000000016178255516001600160a01b031694600182016001600160a01b03871681547fffffffffffffffffffffffff00000000000000000000000000000000000000001617905586516001600160a01b031699600283016001600160a01b038c1681547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790556003830191516001600160a01b03166001600160a01b031682547fffffffffffffffffffffffff000000000000000000000000000000000000000016178255519080548260a01b76ffffff000000000000000000000000000000000000000016907fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff161790558a51600481930155604051998a5262ffffff1660208a0152604089015286606089015260020b9687608082015260a07f426cc62fe6a33a40ba2788c2c87a9c34ee4582b95bc9fa5a7bb7ae70b750b99c91a45193516020946001600160a01b031690600190811c1680611ec6575b611e04575b505050604051908152f35b611ebd92611e9f604051937f3b488f3d0000000000000000000000000000000000000000000000000000000088860152336024860152604485019060a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b6101048301528361012483015261012482526104f361014483612b27565b50828080611df9565b5033811415611df4565b7f7983c051000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b90506040519060208083017f463561cc000000000000000000000000000000000000000000000000000000008152611f94602485018c60a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b60c48452611fa360e485612b27565b6101005190845190845afa9161010051519260203d14161561202757505062ffffff81168091148061200c575b15611fdb578b611b9c565b7fa7abe2f7000000000000000000000000000000000000000000000000000000006101005152600452602461010051fd5b50610fa1610fff82161062fa100062fff00083161016611fd0565b61203090612e38565b7fffffffff000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d011691604051937f90bfb8650000000000000000000000000000000000000000000000000000000085526004850152166024830152608060448301528060a00160648301523d60848301523d6101005160a484013e7f1ee497020000000000000000000000000000000000000000000000000000000060c4828401600460a4820152015260e40190fd5b6121b390604051907ffecd215900000000000000000000000000000000000000000000000000000000602083015233602483015261219b604483018a60a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b8961010483015261010482526104f361012483612b27565b5089611b7e565b5033811415611b79565b7f1dd09583000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b6001915060051c161587611b36565b6001915060031c161587611b21565b6001915060071c161587611b0c565b6001915060061c161587611af7565b7fbd2c84eb000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b7fcaf75f49000000000000000000000000000000000000000000000000000000006101005152600452602452604461010051fd5b7fe9e90588000000000000000000000000000000000000000000000000000000006101005152600452602461010051fd5b7fb70024f8000000000000000000000000000000000000000000000000000000006101005152600452602461010051fd5b7f8379e322000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b3461018657610100516003193601126101865761233b612ca4565b6123436131fd565b600180557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a16101005180f35b346101865760e06003193601126101865761239236612b7a565b61239a612b68565b906001600160a01b0360035416330361249b57610fa1610fff83161062fa100062fff000841610161561246457602060c07fe9c42593e71f84403b84352cd168d693e2c9fcd1fdbcc3feb21d92b43e6696f9922092836101005152600482526040610100512061240981612ea2565b805479ffffff00000000000000000000000000000000000000000000008360b81b16907fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff1617905562ffffff60405191168152a26101005180f35b62ffffff827fa7abe2f700000000000000000000000000000000000000000000000000000000610100515216600452602461010051fd5b7f48f5c3ed000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b346125f05760606003193601126125f0576124e2612a2d565b6024356001600160a01b0381168091036125f0576044356001600160a01b0360035416330361262757806126215750805f52600260205260405f2054905b805f52600260205260405f208054908382039182116125f457556001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692833b156125f05760645f92836001600160a01b039660405197889586947feb78b43500000000000000000000000000000000000000000000000000000000865260048601528860248601521660448401525af19182156125e5576020926125d0575b50604051908152f35b5f6125da91612b27565b5f61010052826125c7565b6040513d5f823e3d90fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90612520565b7f48f5c3ed000000000000000000000000000000000000000000000000000000005f5260045ffd5b346125f05760406003193601126125f0576024358060010b81036125f0576004355f526004602052600560405f20019060010b5f52602052602060405f2054604051908152f35b346125f057600661270f6126a936612a43565b9294935f604080949394516126bd81612ad2565b82815282602082015201525f52600460205260405f2094906001600160a01b0376ffffff000000000000000000000000000000000000000092169060b81b179160a01b16175f52602052603a60062090565b5f5201602052606060405f2060405161272781612ad2565b6fffffffffffffffffffffffffffffffff82541691828252604060026001830154926020850193845201549201918252604051928352516020830152516040820152f35b346125f0575f6003193601126125f05760206001546040519015158152f35b346125f05760406003193601126125f0576024358060020b81036125f0576004906127b3612c3d565b5081355f528160205260405f20906127c9612c3d565b5060020b5f5201602052608060405f206040516127e581612a89565b8154916fffffffffffffffffffffffffffffffff8316928383526020830190851d600f0b815260606002600184015493604086019485520154930192835260405193845251600f0b6020840152516040830152516060820152f35b346125f05760066128a061285336612a43565b9294935f92919252600460205260405f2094906001600160a01b0376ffffff000000000000000000000000000000000000000092169060b81b179160a01b16175f52602052603a60062090565b5f520160205260206fffffffffffffffffffffffffffffffff60405f205416604051908152f35b346125f0575f6003193601126125f0576128df612ca4565b5f6001557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b346125f05760206003193601126125f0576004356001600160a01b0381168091036125f05761293c612ca4565b807fffffffffffffffffffffffff000000000000000000000000000000000000000060035416176003557fb4bd8ef53df690b9943d3318996006dbb82a25f54719d8c8035b516a2a5b8acc5f80a2005b346125f05760206003193601126125f057600435545f5260205ff35b346125f05760206003193601126125f05760c0906004355f52600560205260405f2062ffffff6001600160a01b03825416916001600160a01b036001820154166001600160a01b036002830154169060046003840154930154948652602086015260408501526001600160a01b038116606085015260a01c16608083015260a0820152f35b600435906001600160a01b03821682036125f057565b60031960a09101126125f057600435906024356001600160a01b03811681036125f057906044358060020b81036125f057906064358060020b81036125f0579060843590565b6080810190811067ffffffffffffffff821117612aa557604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6060810190811067ffffffffffffffff821117612aa557604052565b60c0810190811067ffffffffffffffff821117612aa557604052565b610120810190811067ffffffffffffffff821117612aa557604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117612aa557604052565b60c4359062ffffff821682036125f057565b60031960c09101126125f05760405190612b9382612aee565b816004356001600160a01b03811681036125f05781526024356001600160a01b03811681036125f05760208201526044356001600160a01b03811681036125f05760408201526064356001600160a01b03811681036125f057606082015260843562ffffff811681036125f057608082015260a060a435910152565b9181601f840112156125f05782359167ffffffffffffffff83116125f057602083818601950101116125f057565b60405190612c4a82612a89565b5f6060838281528260208201528260408201520152565b60405190612c6e82612b0a565b5f610100838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b6001600160a01b035f541633036125f057565b61ffff60a0820151169060408101906001600160a01b0382511615612d93575060206001600160a01b036004925116604051928380927ff961d1f40000000000000000000000000000000000000000000000000000000082525afa80156125e5575f90612d54575b61ffff91501603612d2c57565b7f7f7506dc000000000000000000000000000000000000000000000000000000005f5260045ffd5b506020813d602011612d8b575b81612d6e60209383612b27565b810103126125f0575161ffff811681036125f05761ffff90612d1f565b3d9150612d61565b919050159081612dcd575b50612dcb577f7f7506dc000000000000000000000000000000000000000000000000000000005f5260045ffd5b565b6080015162ffffff1662800000141590505f612d9e565b6280000062ffffff821614612df65790565b505f90565b62ffffff16620f42408111612e0d5750565b7f14002113000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b90602082519201517fffffffff0000000000000000000000000000000000000000000000000000000081169260048110612e70575050565b7fffffffff00000000000000000000000000000000000000000000000000000000929350829060040360031b1b161690565b546001600160a01b031615612eb357565b63486aa3075f526004601cfd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b90612fbd9593612f7f610180946001600160a01b03612faf94168552602085019060a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b8051600290810b60e08501526020820151900b610100840152604081015161012084015260600151610140830152565b816101608201520191612ec0565b90565b9081600f0b918203612fce57565b6393dafdf15f526004601cfd5b9261308e9061305e612fbd9997946001600160a01b036101c09895168752602087019060a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b8051600290810b60e08701526020820151900b610100860152604081015161012086015260600151610140850152565b610160830152610180820152816101a08201520191612ec0565b5f939192918061315d57506001600160a01b0316906001600160a01b0360208185511694015116823b15613159576040517f9073e5ca0000000000000000000000000000000000000000000000000000000081526001600160a01b03948516600482015293166024840152604483015233606483015282908290608490829084905af1801561314e57613139575050565b613144828092612b27565b61314b5750565b80fd5b6040513d84823e3d90fd5b8480fd5b929193506001600160a01b0316916001600160a01b038251166001600160a01b036040816020860151169401511691843b156125f0575f9460c493869260405198899788967f5d685a3c000000000000000000000000000000000000000000000000000000008852600488015260248701526044860152336064860152608485015260a48401525af180156125e5576131f35750565b5f612dcb91612b27565b60015461320657565b7fd93c0665000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190915f83820193841291129080158216911516176125f457565b939091935f935f936001600160a01b036040840151169060208101519760a08501936001855160061c1680613436575b1561342857613352926104c761336695936104f3936040519687947fe592dc93000000000000000000000000000000000000000000000000000000006020870152336024870152613328604487018d60a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b805115156101048701526020810151610124870152604001516001600160a01b0316610144860152565b610160610164850152610184840191612ec0565b916060835103613400576080015162ffffff1662800000146133f4575b51600a1c6001166133915750565b604001519250608083901d600f0b806133a75750565b6133b4905f86129561322e565b93156133ec575f84135b6133c457565b7ffa0b71d6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f84126133be565b60608201519350613383565b7f1e048e1d000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f97508796505050505050565b5033841415613279565b6040519060e0820182811067ffffffffffffffff821117612aa5576040525f60c0838281528260208201528260408201528260608201528260808201528260a08201520152565b919082018092116125f457565b811561349e570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b90916134d5612c61565b5081549060208401511515906001600160a01b0360608601511690825f146140ea57836001600160a01b031682108015906140db575b6140a2576fffffffffffffffffffffffffffffffff600386015416955f60408201511291845f1461409457610fff8660b81c16975b6080830151624000008116156140855762bfffff1661355e81612dfb565b60408401519061ffff8b169a8b155f1461406a57505b871561405b5762ffffff60018b0154915b6040519361359285612b0a565b84525f60208501528a6001600160a01b031660408501528a60a01c60020b6060850152169a8b608084015260a083015260c08201525f60e082015281610100820152620f4240819a101561402e575b60408401511561401f57506135f4613440565b965b8951151580614008575b15613e6f576001600160a01b0360408b015116885260608a015160020b845160020b90815f8183071291050390885f14613d5a5760ff8216918060020b60081d60010b5f5260058c0160205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8460ff031c905416801593841594855f14613d46576125f057817f07060605060205040602030205040301060502050303040105050304000000006f8421084210842108cc6318c6db6d54be60ff946fffffffffffffffffffffffffffffffff1060071b83811c67ffffffffffffffff1060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c861060031b1792831c1c601f161a1790031660020b900360020b0260020b5b905b151560408a015260020b8060208a01527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761881125f14613d2e57507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761860208901525b6001600160a01b0361379b60208a015160020b6146f7565b168060608a01526001600160a01b0360408c015116908760018a16818310189118028718906fffffffffffffffffffffffffffffffff6101008d0151168c8b6080825192019462ffffff865116936001600160a01b038216861015915f85125f14613bc45785620f4240039061381382875f03614e27565b8415613bb357613824848a84614d05565b965b878210613b03575050916001600160a01b03979160c093978891620f424082145f14613af4575050865b945b15613ae6579161386192614c05565b925b015260a08d015260808c01521660408c01528515613a975761388e60808a015160c08b015101614baf565b8b51018b526138a060a08a0151614baf565b6138af60208d0191825161322e565b90525b61ffff60a08c0151169081613a50575b50506fffffffffffffffffffffffffffffffff6101008b01511680613a37575b506001600160a01b0360408b0151166001600160a01b0360608a01511681145f14613a0857506040880151613960575b8615613953577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602089015160020b0160020b5b60020b60608b01526135f6565b602088015160020b613946565b6fffffffffffffffffffffffffffffffff6139d6888c8c60208d015160020b835f146139fb57600460c0840151925b85156139f0576002810154925b60020b5f520160205260405f2091600183019081549003905560028201908154900390555460801d916139e2575b61010001518316614b10565b166101008b0152613912565b5f91909103600f0b906139ca565b60c08501519261399c565b600460018301549261398f565b6001600160a01b038951168103613a20575b506135f6565b613a29906143a4565b60020b60608b01525f613a1a565b60c089015160801b0460c08b019081510190525f6138e2565b5162ffffff168103613a80575060c08801515b8060c08a01510360c08a015260e08b019081510190525f806138c2565b620f42409060808a015160c08b0151010204613a63565b613aa460a08a0151614baf565b8b51038b52613ac4613abf60808b015160c08c015190613487565b614baf565b60208c0180515f83820393128184128116918413901516176125f457526138b2565b613aef92614c86565b613861565b613afe9189614d7c565b613850565b965096505050915083928215861517613ba6576001600160a01b03958f9360c0928415613b4157613b358883856150ed565b978891015f0394613852565b888811613b7f57613b7a613b75613b6d6fffffffffffffffffffffffffffffffff85168b60601b613494565b8b8616613487565b615174565b613b35565b613b7a613b75613ba16fffffffffffffffffffffffffffffffff85168b614f2c565b613b6d565b634f2461b85f526004601cfd5b613bbe84838b614c38565b96613826565b91949392918515613d1d57613bda828883614c05565b935b848110613c2857506001600160a01b039660c092613c149280985b15613c1a5791613c0692614d05565b809580620f42400391614d7c565b91613863565b613c2392614c38565b613c06565b9350509050818115861517613ba6578e8515613cfd57506001600160a01b038111613caa5760601b6fffffffffffffffffffffffffffffffff821680820615159104015b6001600160a01b0386169080821115613c9d578f92966001600160a01b039788613c149360c09503165b8098613bf7565b634323a5555f526004601cfd5b6fffffffffffffffffffffffffffffffff8216613cd5816c0100000000000000000000000084614fe5565b91811561349e576c01000000000000000000000000900915613c6c5760010180613c6c575f80fd5b918681613d1860c094613c14946001600160a01b039b615084565b613c96565b613d28828289614c86565b93613bdc565b620d89e8121561378357620d89e86020890152613783565b50905060020b900360020b0260020b613720565b90600101908160020b8260ff16928160081d60010b5f5260058d016020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160ff60405f2093161b0119905416801593841594855f14613e57576125f05781600160ff931901167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17031660020b0160020b0260020b5b90613722565b5060ff809250031660020b0160020b0260020b613e51565b9198979395945091955060608701519060a01c60020b8160020b14155f14613fcc578254907fffffffffffffffffff00000000000000000000000000000000000000000000006001600160a01b0360408a0151169160a01b76ffffff0000000000000000000000000000000000000000169216171782555b6fffffffffffffffffffffffffffffffff61010087015116809103613f87575b508115613f7857600160c08601519101555b03613f5557604001518151613f2e9103612fc0565b613f3b6020830151612fc0565b6fffffffffffffffffffffffffffffffff169060801b1791565b613f736040613f676020850151612fc0565b92015183519003612fc0565b613f3b565b600260c0860151910155613f19565b6fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000006003830154161760038201555f613f07565b5081546001600160a01b03604088015116907fffffffffffffffffffffffff000000000000000000000000000000000000000016178255613ee7565b50856001600160a01b0360408c0151161415613600565b985050955050505050505f9190565b846135e1577f96206246000000000000000000000000000000000000000000000000000000005f5260045ffd5b62ffffff60028b015491613585565b610fff62ffffff91169116620f424081830204910103613574565b508660d01c62ffffff1661355e565b610fff8660c41c1697613540565b50827fb5c41efe000000000000000000000000000000000000000000000000000000005f526001600160a01b031660045260245260445ffd5b506401000276a382111561350b565b6001600160a01b0384168211158061350b575073fffd8963efd1fc6a506488495d951d5263988d2682101561350b565b90600f0b90600f0b01907fffffffffffffffffffffffffffffffff8000000000000000000000000000000082126f7fffffffffffffffffffffffffffffff8313176125f457565b91926141e0610140946001600160a01b03612fbd999794168552602085019060a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b60e0830152610100820152816101208201520191612ec0565b600f0b7fffffffffffffffffffffffffffffffff8000000000000000000000000000000081146125f4575f0390565b9190918251925f8060208301958682865af1156142c6575050604051917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f3d011683016040523d83523d9060208401915f833e6020845110918215614292575b505061340057565b5190517fffffffff000000000000000000000000000000000000000000000000000000009182169116141590505f8061428a565b6142cf90612e38565b7fffffffff000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d0116916001600160a01b03604051947f90bfb865000000000000000000000000000000000000000000000000000000008652166004850152166024830152608060448301528060a00160648301523d60848301523d5f60a484013e7fa9e35b2f0000000000000000000000000000000000000000000000000000000060c4828401600460a4820152015260e40190fd5b73fffd8963efd1fc6a506488495d951d51639616826001600160a01b037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffd895d830116116146c25777ffffffffffffffffffffffffffffffffffffffff000000008160201b16806fffffffffffffffffffffffffffffffff811160071b90811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c9060ff821160031b91821c92600f841160021b93841c94600160038711811b96871c1196171717171717179060808210155f146146b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8182011c5b800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c6680000000000000169860c71c670100000000000000169760c61c670200000000000000169660c51c670400000000000000169560c41c670800000000000000169460c31c671000000000000000169360c21c672000000000000000169260c11c674000000000000000169160c01c67800000000000000016907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800160401b1717171717171717171717171717693627a301d71055774c85027ffffffffffffffffffffffffffffffffffd709b7e5480fba5a50fed5e62ffc556810160801d60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918282145f1461468f5750905090565b6001600160a01b03166001600160a01b036146a9846146f7565b16116146b3575090565b905090565b81607f031b6144a7565b6001600160a01b03907f1599f82c000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60020b908160ff1d82810118620d89e88111614a3d5763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102700100000000000000000000000000000000189160028116614a21575b60048116614a05575b600881166149e9575b601081166149cd575b602081166149b1575b60408116614995575b60808116614979575b610100811661495d575b6102008116614941575b6104008116614925575b6108008116614909575b61100081166148ed575b61200081166148d1575b61400081166148b5575b6180008116614899575b62010000811661487d575b620200008116614862575b620400008116614847575b620800001661482e575b5f12614807575b0160201c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04614800565b6b048a170391f7dc42444e8fa290910260801c906147f9565b6d2216e584f5fa1ea926041bedfe9890920260801c916147ef565b916e5d6af8dedb81196699c329225ee6040260801c916147e4565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c916147d9565b916f31be135f97d08fd981231505542fcfa60260801c916147ce565b916f70d869a156d2a1b890bb3df62baf32f70260801c916147c4565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916147ba565b916fd097f3bdfd2022b8845ad8f792aa58250260801c916147b0565b916fe7159475a2c29b7443b29c7fa6e889d90260801c916147a6565b916ff3392b0822b70005940c7a398e4b70f30260801c9161479c565b916ff987a7253ac413176f2b074cf7815e540260801c91614792565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c91614788565b916ffe5dee046a99a2a811c461f1969c30530260801c9161477e565b916fff2ea16466c96a3843ec78b326b528610260801c91614775565b916fff973b41fa98c081472e6896dfb254c00260801c9161476c565b916fffcb9843d60f6159c9db58835c9266440260801c91614763565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c9161475a565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91614751565b916ffff97272373d413259a46990580e213a0260801c91614748565b827f8b86327a000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b915f81600f0b125f14614a995791613abf91612fbd935f036fffffffffffffffffffffffffffffffff1691614c05565b91613abf91614aba936fffffffffffffffffffffffffffffffff1691614c38565b5f0390565b915f81600f0b125f14614aef5791613abf91612fbd935f036fffffffffffffffffffffffffffffffff1691614c86565b91613abf91614aba936fffffffffffffffffffffffffffffffff1691614d05565b906fffffffffffffffffffffffffffffffff90600f0b911601908160801c612fce57565b6f80000000000000000000000000000000811015612fce57600f0b90565b90614b5c91614228565b9015612df6576040815103613400576040015190565b614b9590614b878360801d8260801d03612fc0565b92600f0b90600f0b03612fc0565b6fffffffffffffffffffffffffffffffff169060801b1790565b905f8212612fce57565b919060020b9060020b90818107614be75705908160081d5f52602052600160ff60405f2092161b8154189055565b601c906044926040519163d4d8f3e683526020830152604082015201fd5b6fffffffffffffffffffffffffffffffff906001600160a01b0380612fbd9594169116038060ff1d908101189116614eb2565b6fffffffffffffffffffffffffffffffff6c01000000000000000000000000916001600160a01b0380600195169116038060ff1d90810118931692614c7d8185614eb2565b93091515160190565b6001600160a01b0382166001600160a01b03821611614cff575b6001600160a01b038116918215614cf357612fbd937bffffffffffffffffffffffffffffffff0000000000000000000000006001600160a01b03614cee948185169403169160601b16614fe5565b613494565b62bfc9215f526004601cfd5b90614ca0565b906001600160a01b0381166001600160a01b03831611614d76575b6001600160a01b038216928315614cf3577bffffffffffffffffffffffffffffffff0000000000000000000000006001600160a01b03614d6a948185169403169160601b16614d7c565b90808206151591040190565b90614d20565b929190614d8a828286614fe5565b93821561349e5709614d9857565b906001019081156125f057565b90808202917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8282099183808410930392808403938470010000000000000000000000000000000011156125f05714614e1e57700100000000000000000000000000000000910990828211900360801b910360801c1790565b50505060801c90565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83820990828083109203918083039283620f424011156125f05714614ea6577fde8f6cefed634549b62c77574f722e1ac57e23f24d8fd5cb790fb65668c2613993620f4240910990828211900360fa1b910360061c170290565b5050620f424091500490565b90808202917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff828209918380841093039280840393846c0100000000000000000000000011156125f05714614f23576c01000000000000000000000000910990828211900360a01b910360601c1790565b50505060601c90565b908160601b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008409928280851094039380850394858411156125f05714614fde576c0100000000000000000000000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395868511156125f0571461507c579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b919081156150e8577bffffffffffffffffffffffffffffffff0000000000000000000000006001600160a01b039160601b1692169182820291838383119184041416156150db57612fbd92613b7592820391614d7c565b63f5c787f15f526004601cfd5b505090565b9091801561516e576001600160a01b037bffffffffffffffffffffffffffffffff000000000000000000000000819460601b169216808202816151308483613494565b14615156575b509061514561514a9284613494565b613487565b80820615159104011690565b830183811061513657915061516a92614d7c565b1690565b50905090565b906001600160a01b038216918203612fce5756fea164736f6c634300081a000a000000000000000000000000238a358808379702088667322f80ac48bad5e6c4
Deployed Bytecode
0x610120806040526004361015610013575f80fd5b5f610100525f3560e01c9081630e2d484a146129a8575080631e2eaeaf1461298c5780632d7713891461290f5780633f4ba83a146128c757806350b6157b146128405780635aa208a41461278a5780635c975abb1461276b5780637388426b146126965780637c352ef61461264f5780638161b874146124c957806381a250a1146123785780638456cb59146123205780638b0c1b2214611a455780638da5cb5b14611a1a5780639371d11514610d9957806397e8cd4e14610d5b5780639ec538c814610d1f578063ad4cc2d314610bf3578063c815641c14610b92578063cd0cc1ce146106a7578063dbd035ff1461060d578063f02de3b2146105e4578063f15b275f14610264578063f2fde38b146101d2578063fa6793d51461018d5763fbfa77cf14610140575f80fd5b3461018657610100516003193601126101865760206040516001600160a01b037f000000000000000000000000238a358808379702088667322f80ac48bad5e6c4168152f35b6101005180fd5b34610186576020600319360112610186576004356101005152600460205260206fffffffffffffffffffffffffffffffff600360406101005120015416604051908152f35b34610186576020600319360112610186576001600160a01b036101f3612a2d565b6101fb612ca4565b168015610186576101005180547fffffffffffffffffffffffff00000000000000000000000000000000000000008116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36101005180f35b34610186576101206003193601126101865761027f36612b7a565b60e4359060c4356101043567ffffffffffffffff8111610186576102a7903690600401612c0f565b91906102b16131fd565b60c0842090816101005152600460205260406101005120946102d286612ea2565b60408101966001600160a01b038851169360a08301948260018751610100515060081c16806105da575b61058e575b50506fffffffffffffffffffffffffffffffff6003890154169788156105605761033261032d88614b34565b6141f9565b61033e61032d85614b34565b6fffffffffffffffffffffffffffffffff169060801b17988761054c575b83610537575b505460a01c60020b906001600160a01b037f000000000000000000000000238a358808379702088667322f80ac48bad5e6c4166001600160a01b038551166001600160a01b0360208701511690823b15610186576040517f9073e5ca00000000000000000000000000000000000000000000000000000000815261010080516001600160a01b039384166004840152939092166024820152604481018d90523360648201529051909283916084918391905af180156105295761050e575b506020996001926001600160a01b0392604051918a8352868e84015260408301527fbe708911656ae186ac3fc26a794e5f1319609ce340a14c63524f985fee4bc84160603393a351955195169460091c1680610504575b610486575b8787604051908152f35b6104f8956104f3936104c7926040519788957f5304d44e000000000000000000000000000000000000000000000000000000008d8801523360248801614161565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101845283612b27565b614228565b5082808080808061047c565b5033841415610477565b6101005161051b91612b27565b61010051610186578a610420565b6040513d61010051823e3d90fd5b60028201908460801b0481540190558a610362565b60018201818960801b04815401905561035c565b7fa74f97ab000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b6105d2916104f3896104c78c8a6040519687947f4b6a682d0000000000000000000000000000000000000000000000000000000060208701528c3360248801614161565b508982610301565b50338214156102fc565b3461018657610100516003193601126101865760206001600160a01b0360035416604051908152f35b346101865760206003193601126101865760043567ffffffffffffffff811161018657366023820112156101865780600401359067ffffffffffffffff8211610186578160051b9036602483830101116101865760408051809460208252602082015201918301916020806024604086019401925b833554815201910190848382101561069e575060208091610682565b60408186030190f35b3461018657610140600319360112610186576106c236612b7a565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c36011261018657604051906106f982612ad2565b60c435801515810361018657825260e435602083019081526101043592906001600160a01b038416840361018657604082019384526101243567ffffffffffffffff81116101865761074f903690600401612c0f565b90926107596131fd565b825115610b645760c08520918261010051526004602052604061010051209161078183612ea2565b61078d8287838a613249565b9094610797612c61565b5062ffffff60a08b015160101c1660020b926001600160a01b03855115159c5116926040519360a085019285841067ffffffffffffffff851117610b315760209e6107ff9762ffffff9560405287528f870152604086015260608501521660808301526134cb565b909460e082015180610aed575b506001600160a01b03604083015116916fffffffffffffffffffffffffffffffff6101008201511690606081015160020b61ffff60a062ffffff6080850151169301511692604051958a60801d600f0b87528a600f0b8f88015260408701526060860152608085015260a084015260c08301527f04206ad2b7c0f463bff3dd4f33c5735b0f2957a351e4f79763a4fa9e775dd23760e03393a38395876001600160a01b03604082015116918560801d95600f0b94600160a0840151610100515060071c1680610ae3575b61099d575b50506101005196915050600f83900b15801590610991575b61092e575b888761092688828c7f000000000000000000000000238a358808379702088667322f80ac48bad5e6c46130a8565b604051908152f35b6101005190519151610926975094955061096a941515911203610974576fffffffffffffffffffffffffffffffff169060801b175b8092614b72565b91858080806108f8565b906fffffffffffffffffffffffffffffffff169060801b17610963565b5083600f0b15156108f3565b92610a4d610abd610ad394610a91610ace95610ad9999a98604051956020947f6f6657cb000000000000000000000000000000000000000000000000000000008896870152336024870152604486019060a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b8b51151561010485015260208c015161012485015260408c01516001600160a01b03166101448501528d6101648501526101806101848501526101a4840191612ec0565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282612b27565b600160a08d0151600b1c1691614b52565b612fc0565b9061411a565b90888781806108db565b50338414156108d6565b835115610b1e576001600160a01b03808b51165b16610100515260028b52604061010051209081540190558a61080c565b6001600160a01b03808c8c015116610b01565b7f4e487b710000000000000000000000000000000000000000000000000000000061010051526041600452602461010051fd5b7fbe8b8507000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b3461018657602060031936011261018657600435610100515260046020526080604061010051205460405190806001600160a01b031682528060a01c60020b60208301528060b81c62ffffff16604083015260d01c62ffffff166060820152f35b346101865760e060031936011261018657610c0d36612b7a565b610c15612b68565b906280000062ffffff60808301511614801590610d08575b610cda57602060c07f14b2b80e0d62303dc85494859f35a84579160aafbd650180ddf526b1ab547bd692610c6085612dfb565b20928361010051526004825260406101005120610c7c81612ea2565b80547cffffff00000000000000000000000000000000000000000000000000008360d01b16907fffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffff1617905562ffffff60405191168152a26101005180f35b7f30d21641000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b506001600160a01b03604082015116331415610c2d565b34610186576020600319360112610186576004356101005152600460205260408061010051206002600182015491015482519182526020820152f35b34610186576020600319360112610186576001600160a01b03610d7c612a2d565b166101005152600260205260206040610100512054604051908152f35b346101865761016060031936011261018657610db436612b7a565b60807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c36011261018657604051610dea81612a89565b60c435600281900b810361018657815260e435600281900b810361018657602082015261010435908160408201526101243560608201526101443567ffffffffffffffff811161018657610e42903690600401612c0f565b9060c05291610100511280611a11575b6119e35760c0832060e05260e051610100515260046020526040610100512090610e7b82612ea2565b6001600160a01b03604085015116610100516040830151138080916119c7575b1561194d5750610ee690604051907ffe70c9c90000000000000000000000000000000000000000000000000000000060208301526104f3826104c78860c051888c3360248701612efe565b505b805160020b93602082015160020b94610f046040840151612fc0565b9062ffffff60a084015160101c1660020b60608501519060405193610f2885612aee565b33855260208501849052604085018a9052600f0b6060850152608084015260a0830152610100519487821215611917577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761882126118e557620d89e888136118b357805460a01c60020b90610f9a613440565b98600182015460028301546060870151600f0b6115d9575b6020878101516040808a0151600292830b5f81815260048a019095528285209190930b808552919093209492938f92606092908a126115c55760026001870154960154905b8a12156115b15760026001880154970154915b0303910152030360408b01526110766001600160a01b03865116602087015160020b604088015160020b9060a089015192906001600160a01b0376ffffff000000000000000000000000000000000000000092169060b81b179160a01b16175f52602052603a60062090565b61010051526006820160205260406101005120936060860151600f0b9460408c015160a05260608c01516080526fffffffffffffffffffffffffffffffff815416610100515086155f1461159c57801561156e5760409c606092825b6110f66110e785600185015460a05103614da5565b94600284015460805103614da5565b9961152f575b5060a05160018201556002608051910155608081019160a08201988952825261010051838a0151600f0b126114b8575b50519551960151600f0b9283611397575b505050505061114e61115491614b34565b91614b34565b6fffffffffffffffffffffffffffffffff169060801b1792825160020b602084015160020b878501516060860151918951938452602084015288830152606082015233907ff208f4912782fd25c7f114ca3723a2d5dd6f3bcc3ac8db5af63baa85f711d5ec608060e05192a36111e36111d48560801d8360801d01612fc0565b9185600f0b90600f0b01612fc0565b6fffffffffffffffffffffffffffffffff169060801b17916101005150610100515061010051926001600160a01b0387840151169181966101005189830151135f146112f55760a085015160031c600116806112eb575b61127c575b505050509083611270925b7f000000000000000000000000238a358808379702088667322f80ac48bad5e6c46130a8565b82519182526020820152f35b6112709550916112cf6112e09492610a9161096395888b8e9d9a9d519687957fec37068200000000000000000000000000000000000000000000000000000000602088015260c051933360248901612fdb565b600160a0890151600c1c1691614b52565b93909186808061123f565b503384141561123a565b60a085015192939260051c6001168061138d575b61131d575b5050505090836112709261124a565b8497506112709550926113716109639392610a916113829684988b8e519687957f36d3cdc600000000000000000000000000000000000000000000000000000000602088015260c051933360248901612fdb565b600160a0890151600d1c1691614b52565b93909186808061130e565b5033831415611309565b805461010051969a506111549661114e969095949392916001600160a01b031690869084811215611409575050505091610ace916113e06113da6113e6956146f7565b916146f7565b90614abf565b905b6fffffffffffffffffffffffffffffffff169060801b17959189808061113d565b859396959192949750125f146114955750600361145c610ace856fffffffffffffffffffffffffffffffff95611457611451610ace8461144b6114689a6146f7565b85614abf565b9a6146f7565b614a69565b94019282845416614b10565b167fffffffffffffffffffffffffffffffff000000000000000000000000000000008254161790556113e8565b946114b39450610ace9392506113da6114ad916146f7565b90614a69565b6113e8565b80602091516114ff575b01516114cf575b8d61112c565b6114fa8d89015160020b600487019060020b5f526020525f6002604082208281558260018201550155565b6114c9565b61152a828b015160020b600489019060020b5f526020525f6002604082208281558260018201550155565b6114c2565b6fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000008254161781558f6110fc565b7faefeb924000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b60409c6060926115ac8984614b10565b6110d2565b60026001880154860397015482039161100a565b600260018701548603960154820390610ff7565b60c08c6fffffffffffffffffffffffffffffffff600160808b015160020b61010051817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276180712817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618050390620d89e80503018104169182910152602088015160020b906060890151600f0b90610100515061010051508260020b5f526004870160205260405f209182546fffffffffffffffffffffffffffffffff6116a083828416614b10565b169283116118625790818a6fffffffffffffffffffffffffffffffff6116d894161596878615141597611894575b505060801c61411a565b60801b1790558c52604087015160020b8c6fffffffffffffffffffffffffffffffff60c060608b0151600f0b9201511661010051508260020b5f526004870160205260405f209182546fffffffffffffffffffffffffffffffff61173e83828416614b10565b1692831161186257896fffffffffffffffffffffffffffffffff82161595868515141596611843575b50507fffffffffffffffffffffffffffffffff80000000000000000000000000000000608082901d8390039081126f7fffffffffffffffffffffffffffffff909113176118105760801d0360801b17905560208d019081528c516117ee575b5115610fb2576117e9604088015160020b608089015160020b9060058701614bb9565b610fb2565b61180b602089015160020b60808a015160020b9060058801614bb9565b6117c6565b7f4e487b710000000000000000000000000000000000000000000000000000000061010051526011600452602461010051fd5b1315611851575b895f611767565b86600185015585600285015561184a565b847fb8e3c385000000000000000000000000000000000000000000000000000000006101005152600452602461010051fd5b13156118a2575b8a5f6116ce565b87600186015586600286015561189b565b877f1ad777f8000000000000000000000000000000000000000000000000000000006101005152600452602461010051fd5b507fd5e2f7ab000000000000000000000000000000000000000000000000000000006101005152600452602461010051fd5b87827fc4433ed5000000000000000000000000000000000000000000000000000000006101005152600452602452604461010051fd5b15806119ab575b61195f575b50610ee8565b6119a490604051907fe8246c7f0000000000000000000000000000000000000000000000000000000060208301526104f3826104c78860c051888c3360248701612efe565b5084611959565b5060a085015160041c6001168015611954575033811415611954565b5060a086015160021c6001168015610e9b575033821415610e9b565b7f51bd770c000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b50600154610e52565b3461018657610100516003193601126101865760206001600160a01b03610100515416604051908152f35b346101865760e060031936011261018657611a5f36612b7a565b60c435906001600160a01b0382168083036101865760608201916001600160a01b0383511630036122f25760a081019362ffffff855160101c1660020b617fff81136122c1576001811261229057506001600160a01b038251169360208301946001600160a01b03865116908181101561225c575050855160281c61222e57611ae783612cb7565b8551600181600a1c16908161221f575b506121c4578551600181600b1c169081612210575b506121c4578551600181600c1c169081612201575b506121c4578551600181600d1c1690816121f2575b506121c4576080830194611b4f62ffffff875116612de4565b92611b5984612dfb565b60408501936001600160a01b0385511660018a51610100515016806121ba575b6120ff575b5060c08620610100516003549193916001600160a01b031680611efe575b508361010051526004602052604061010051209182546001600160a01b0316611ed057611bc8906143a4565b9260d01b7cffffff00000000000000000000000000000000000000000000000000001690898460a01b76ffffff000000000000000000000000000000000000000016179060b81b79ffffff000000000000000000000000000000000000000000000016171790558161010051526005602052610100516040902086516001600160a01b0316936001600160a01b03851682547fffffffffffffffffffffffff000000000000000000000000000000000000000016178255516001600160a01b031694600182016001600160a01b03871681547fffffffffffffffffffffffff00000000000000000000000000000000000000001617905586516001600160a01b031699600283016001600160a01b038c1681547fffffffffffffffffffffffff0000000000000000000000000000000000000000161790556003830191516001600160a01b03166001600160a01b031682547fffffffffffffffffffffffff000000000000000000000000000000000000000016178255519080548260a01b76ffffff000000000000000000000000000000000000000016907fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff161790558a51600481930155604051998a5262ffffff1660208a0152604089015286606089015260020b9687608082015260a07f426cc62fe6a33a40ba2788c2c87a9c34ee4582b95bc9fa5a7bb7ae70b750b99c91a45193516020946001600160a01b031690600190811c1680611ec6575b611e04575b505050604051908152f35b611ebd92611e9f604051937f3b488f3d0000000000000000000000000000000000000000000000000000000088860152336024860152604485019060a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b6101048301528361012483015261012482526104f361014483612b27565b50828080611df9565b5033811415611df4565b7f7983c051000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b90506040519060208083017f463561cc000000000000000000000000000000000000000000000000000000008152611f94602485018c60a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b60c48452611fa360e485612b27565b6101005190845190845afa9161010051519260203d14161561202757505062ffffff81168091148061200c575b15611fdb578b611b9c565b7fa7abe2f7000000000000000000000000000000000000000000000000000000006101005152600452602461010051fd5b50610fa1610fff82161062fa100062fff00083161016611fd0565b61203090612e38565b7fffffffff000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d011691604051937f90bfb8650000000000000000000000000000000000000000000000000000000085526004850152166024830152608060448301528060a00160648301523d60848301523d6101005160a484013e7f1ee497020000000000000000000000000000000000000000000000000000000060c4828401600460a4820152015260e40190fd5b6121b390604051907ffecd215900000000000000000000000000000000000000000000000000000000602083015233602483015261219b604483018a60a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b8961010483015261010482526104f361012483612b27565b5089611b7e565b5033811415611b79565b7f1dd09583000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b6001915060051c161587611b36565b6001915060031c161587611b21565b6001915060071c161587611b0c565b6001915060061c161587611af7565b7fbd2c84eb000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b7fcaf75f49000000000000000000000000000000000000000000000000000000006101005152600452602452604461010051fd5b7fe9e90588000000000000000000000000000000000000000000000000000000006101005152600452602461010051fd5b7fb70024f8000000000000000000000000000000000000000000000000000000006101005152600452602461010051fd5b7f8379e322000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b3461018657610100516003193601126101865761233b612ca4565b6123436131fd565b600180557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a16101005180f35b346101865760e06003193601126101865761239236612b7a565b61239a612b68565b906001600160a01b0360035416330361249b57610fa1610fff83161062fa100062fff000841610161561246457602060c07fe9c42593e71f84403b84352cd168d693e2c9fcd1fdbcc3feb21d92b43e6696f9922092836101005152600482526040610100512061240981612ea2565b805479ffffff00000000000000000000000000000000000000000000008360b81b16907fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff1617905562ffffff60405191168152a26101005180f35b62ffffff827fa7abe2f700000000000000000000000000000000000000000000000000000000610100515216600452602461010051fd5b7f48f5c3ed000000000000000000000000000000000000000000000000000000006101005152600461010051fd5b346125f05760606003193601126125f0576124e2612a2d565b6024356001600160a01b0381168091036125f0576044356001600160a01b0360035416330361262757806126215750805f52600260205260405f2054905b805f52600260205260405f208054908382039182116125f457556001600160a01b037f000000000000000000000000238a358808379702088667322f80ac48bad5e6c41692833b156125f05760645f92836001600160a01b039660405197889586947feb78b43500000000000000000000000000000000000000000000000000000000865260048601528860248601521660448401525af19182156125e5576020926125d0575b50604051908152f35b5f6125da91612b27565b5f61010052826125c7565b6040513d5f823e3d90fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90612520565b7f48f5c3ed000000000000000000000000000000000000000000000000000000005f5260045ffd5b346125f05760406003193601126125f0576024358060010b81036125f0576004355f526004602052600560405f20019060010b5f52602052602060405f2054604051908152f35b346125f057600661270f6126a936612a43565b9294935f604080949394516126bd81612ad2565b82815282602082015201525f52600460205260405f2094906001600160a01b0376ffffff000000000000000000000000000000000000000092169060b81b179160a01b16175f52602052603a60062090565b5f5201602052606060405f2060405161272781612ad2565b6fffffffffffffffffffffffffffffffff82541691828252604060026001830154926020850193845201549201918252604051928352516020830152516040820152f35b346125f0575f6003193601126125f05760206001546040519015158152f35b346125f05760406003193601126125f0576024358060020b81036125f0576004906127b3612c3d565b5081355f528160205260405f20906127c9612c3d565b5060020b5f5201602052608060405f206040516127e581612a89565b8154916fffffffffffffffffffffffffffffffff8316928383526020830190851d600f0b815260606002600184015493604086019485520154930192835260405193845251600f0b6020840152516040830152516060820152f35b346125f05760066128a061285336612a43565b9294935f92919252600460205260405f2094906001600160a01b0376ffffff000000000000000000000000000000000000000092169060b81b179160a01b16175f52602052603a60062090565b5f520160205260206fffffffffffffffffffffffffffffffff60405f205416604051908152f35b346125f0575f6003193601126125f0576128df612ca4565b5f6001557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b346125f05760206003193601126125f0576004356001600160a01b0381168091036125f05761293c612ca4565b807fffffffffffffffffffffffff000000000000000000000000000000000000000060035416176003557fb4bd8ef53df690b9943d3318996006dbb82a25f54719d8c8035b516a2a5b8acc5f80a2005b346125f05760206003193601126125f057600435545f5260205ff35b346125f05760206003193601126125f05760c0906004355f52600560205260405f2062ffffff6001600160a01b03825416916001600160a01b036001820154166001600160a01b036002830154169060046003840154930154948652602086015260408501526001600160a01b038116606085015260a01c16608083015260a0820152f35b600435906001600160a01b03821682036125f057565b60031960a09101126125f057600435906024356001600160a01b03811681036125f057906044358060020b81036125f057906064358060020b81036125f0579060843590565b6080810190811067ffffffffffffffff821117612aa557604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6060810190811067ffffffffffffffff821117612aa557604052565b60c0810190811067ffffffffffffffff821117612aa557604052565b610120810190811067ffffffffffffffff821117612aa557604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117612aa557604052565b60c4359062ffffff821682036125f057565b60031960c09101126125f05760405190612b9382612aee565b816004356001600160a01b03811681036125f05781526024356001600160a01b03811681036125f05760208201526044356001600160a01b03811681036125f05760408201526064356001600160a01b03811681036125f057606082015260843562ffffff811681036125f057608082015260a060a435910152565b9181601f840112156125f05782359167ffffffffffffffff83116125f057602083818601950101116125f057565b60405190612c4a82612a89565b5f6060838281528260208201528260408201520152565b60405190612c6e82612b0a565b5f610100838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b6001600160a01b035f541633036125f057565b61ffff60a0820151169060408101906001600160a01b0382511615612d93575060206001600160a01b036004925116604051928380927ff961d1f40000000000000000000000000000000000000000000000000000000082525afa80156125e5575f90612d54575b61ffff91501603612d2c57565b7f7f7506dc000000000000000000000000000000000000000000000000000000005f5260045ffd5b506020813d602011612d8b575b81612d6e60209383612b27565b810103126125f0575161ffff811681036125f05761ffff90612d1f565b3d9150612d61565b919050159081612dcd575b50612dcb577f7f7506dc000000000000000000000000000000000000000000000000000000005f5260045ffd5b565b6080015162ffffff1662800000141590505f612d9e565b6280000062ffffff821614612df65790565b505f90565b62ffffff16620f42408111612e0d5750565b7f14002113000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b90602082519201517fffffffff0000000000000000000000000000000000000000000000000000000081169260048110612e70575050565b7fffffffff00000000000000000000000000000000000000000000000000000000929350829060040360031b1b161690565b546001600160a01b031615612eb357565b63486aa3075f526004601cfd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b90612fbd9593612f7f610180946001600160a01b03612faf94168552602085019060a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b8051600290810b60e08501526020820151900b610100840152604081015161012084015260600151610140830152565b816101608201520191612ec0565b90565b9081600f0b918203612fce57565b6393dafdf15f526004601cfd5b9261308e9061305e612fbd9997946001600160a01b036101c09895168752602087019060a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b8051600290810b60e08701526020820151900b610100860152604081015161012086015260600151610140850152565b610160830152610180820152816101a08201520191612ec0565b5f939192918061315d57506001600160a01b0316906001600160a01b0360208185511694015116823b15613159576040517f9073e5ca0000000000000000000000000000000000000000000000000000000081526001600160a01b03948516600482015293166024840152604483015233606483015282908290608490829084905af1801561314e57613139575050565b613144828092612b27565b61314b5750565b80fd5b6040513d84823e3d90fd5b8480fd5b929193506001600160a01b0316916001600160a01b038251166001600160a01b036040816020860151169401511691843b156125f0575f9460c493869260405198899788967f5d685a3c000000000000000000000000000000000000000000000000000000008852600488015260248701526044860152336064860152608485015260a48401525af180156125e5576131f35750565b5f612dcb91612b27565b60015461320657565b7fd93c0665000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190915f83820193841291129080158216911516176125f457565b939091935f935f936001600160a01b036040840151169060208101519760a08501936001855160061c1680613436575b1561342857613352926104c761336695936104f3936040519687947fe592dc93000000000000000000000000000000000000000000000000000000006020870152336024870152613328604487018d60a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b805115156101048701526020810151610124870152604001516001600160a01b0316610144860152565b610160610164850152610184840191612ec0565b916060835103613400576080015162ffffff1662800000146133f4575b51600a1c6001166133915750565b604001519250608083901d600f0b806133a75750565b6133b4905f86129561322e565b93156133ec575f84135b6133c457565b7ffa0b71d6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f84126133be565b60608201519350613383565b7f1e048e1d000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f97508796505050505050565b5033841415613279565b6040519060e0820182811067ffffffffffffffff821117612aa5576040525f60c0838281528260208201528260408201528260608201528260808201528260a08201520152565b919082018092116125f457565b811561349e570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b90916134d5612c61565b5081549060208401511515906001600160a01b0360608601511690825f146140ea57836001600160a01b031682108015906140db575b6140a2576fffffffffffffffffffffffffffffffff600386015416955f60408201511291845f1461409457610fff8660b81c16975b6080830151624000008116156140855762bfffff1661355e81612dfb565b60408401519061ffff8b169a8b155f1461406a57505b871561405b5762ffffff60018b0154915b6040519361359285612b0a565b84525f60208501528a6001600160a01b031660408501528a60a01c60020b6060850152169a8b608084015260a083015260c08201525f60e082015281610100820152620f4240819a101561402e575b60408401511561401f57506135f4613440565b965b8951151580614008575b15613e6f576001600160a01b0360408b015116885260608a015160020b845160020b90815f8183071291050390885f14613d5a5760ff8216918060020b60081d60010b5f5260058c0160205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8460ff031c905416801593841594855f14613d46576125f057817f07060605060205040602030205040301060502050303040105050304000000006f8421084210842108cc6318c6db6d54be60ff946fffffffffffffffffffffffffffffffff1060071b83811c67ffffffffffffffff1060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c861060031b1792831c1c601f161a1790031660020b900360020b0260020b5b905b151560408a015260020b8060208a01527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761881125f14613d2e57507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761860208901525b6001600160a01b0361379b60208a015160020b6146f7565b168060608a01526001600160a01b0360408c015116908760018a16818310189118028718906fffffffffffffffffffffffffffffffff6101008d0151168c8b6080825192019462ffffff865116936001600160a01b038216861015915f85125f14613bc45785620f4240039061381382875f03614e27565b8415613bb357613824848a84614d05565b965b878210613b03575050916001600160a01b03979160c093978891620f424082145f14613af4575050865b945b15613ae6579161386192614c05565b925b015260a08d015260808c01521660408c01528515613a975761388e60808a015160c08b015101614baf565b8b51018b526138a060a08a0151614baf565b6138af60208d0191825161322e565b90525b61ffff60a08c0151169081613a50575b50506fffffffffffffffffffffffffffffffff6101008b01511680613a37575b506001600160a01b0360408b0151166001600160a01b0360608a01511681145f14613a0857506040880151613960575b8615613953577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602089015160020b0160020b5b60020b60608b01526135f6565b602088015160020b613946565b6fffffffffffffffffffffffffffffffff6139d6888c8c60208d015160020b835f146139fb57600460c0840151925b85156139f0576002810154925b60020b5f520160205260405f2091600183019081549003905560028201908154900390555460801d916139e2575b61010001518316614b10565b166101008b0152613912565b5f91909103600f0b906139ca565b60c08501519261399c565b600460018301549261398f565b6001600160a01b038951168103613a20575b506135f6565b613a29906143a4565b60020b60608b01525f613a1a565b60c089015160801b0460c08b019081510190525f6138e2565b5162ffffff168103613a80575060c08801515b8060c08a01510360c08a015260e08b019081510190525f806138c2565b620f42409060808a015160c08b0151010204613a63565b613aa460a08a0151614baf565b8b51038b52613ac4613abf60808b015160c08c015190613487565b614baf565b60208c0180515f83820393128184128116918413901516176125f457526138b2565b613aef92614c86565b613861565b613afe9189614d7c565b613850565b965096505050915083928215861517613ba6576001600160a01b03958f9360c0928415613b4157613b358883856150ed565b978891015f0394613852565b888811613b7f57613b7a613b75613b6d6fffffffffffffffffffffffffffffffff85168b60601b613494565b8b8616613487565b615174565b613b35565b613b7a613b75613ba16fffffffffffffffffffffffffffffffff85168b614f2c565b613b6d565b634f2461b85f526004601cfd5b613bbe84838b614c38565b96613826565b91949392918515613d1d57613bda828883614c05565b935b848110613c2857506001600160a01b039660c092613c149280985b15613c1a5791613c0692614d05565b809580620f42400391614d7c565b91613863565b613c2392614c38565b613c06565b9350509050818115861517613ba6578e8515613cfd57506001600160a01b038111613caa5760601b6fffffffffffffffffffffffffffffffff821680820615159104015b6001600160a01b0386169080821115613c9d578f92966001600160a01b039788613c149360c09503165b8098613bf7565b634323a5555f526004601cfd5b6fffffffffffffffffffffffffffffffff8216613cd5816c0100000000000000000000000084614fe5565b91811561349e576c01000000000000000000000000900915613c6c5760010180613c6c575f80fd5b918681613d1860c094613c14946001600160a01b039b615084565b613c96565b613d28828289614c86565b93613bdc565b620d89e8121561378357620d89e86020890152613783565b50905060020b900360020b0260020b613720565b90600101908160020b8260ff16928160081d60010b5f5260058d016020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160ff60405f2093161b0119905416801593841594855f14613e57576125f05781600160ff931901167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17031660020b0160020b0260020b5b90613722565b5060ff809250031660020b0160020b0260020b613e51565b9198979395945091955060608701519060a01c60020b8160020b14155f14613fcc578254907fffffffffffffffffff00000000000000000000000000000000000000000000006001600160a01b0360408a0151169160a01b76ffffff0000000000000000000000000000000000000000169216171782555b6fffffffffffffffffffffffffffffffff61010087015116809103613f87575b508115613f7857600160c08601519101555b03613f5557604001518151613f2e9103612fc0565b613f3b6020830151612fc0565b6fffffffffffffffffffffffffffffffff169060801b1791565b613f736040613f676020850151612fc0565b92015183519003612fc0565b613f3b565b600260c0860151910155613f19565b6fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000006003830154161760038201555f613f07565b5081546001600160a01b03604088015116907fffffffffffffffffffffffff000000000000000000000000000000000000000016178255613ee7565b50856001600160a01b0360408c0151161415613600565b985050955050505050505f9190565b846135e1577f96206246000000000000000000000000000000000000000000000000000000005f5260045ffd5b62ffffff60028b015491613585565b610fff62ffffff91169116620f424081830204910103613574565b508660d01c62ffffff1661355e565b610fff8660c41c1697613540565b50827fb5c41efe000000000000000000000000000000000000000000000000000000005f526001600160a01b031660045260245260445ffd5b506401000276a382111561350b565b6001600160a01b0384168211158061350b575073fffd8963efd1fc6a506488495d951d5263988d2682101561350b565b90600f0b90600f0b01907fffffffffffffffffffffffffffffffff8000000000000000000000000000000082126f7fffffffffffffffffffffffffffffff8313176125f457565b91926141e0610140946001600160a01b03612fbd999794168552602085019060a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b60e0830152610100820152816101208201520191612ec0565b600f0b7fffffffffffffffffffffffffffffffff8000000000000000000000000000000081146125f4575f0390565b9190918251925f8060208301958682865af1156142c6575050604051917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f3d011683016040523d83523d9060208401915f833e6020845110918215614292575b505061340057565b5190517fffffffff000000000000000000000000000000000000000000000000000000009182169116141590505f8061428a565b6142cf90612e38565b7fffffffff000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d0116916001600160a01b03604051947f90bfb865000000000000000000000000000000000000000000000000000000008652166004850152166024830152608060448301528060a00160648301523d60848301523d5f60a484013e7fa9e35b2f0000000000000000000000000000000000000000000000000000000060c4828401600460a4820152015260e40190fd5b73fffd8963efd1fc6a506488495d951d51639616826001600160a01b037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffd895d830116116146c25777ffffffffffffffffffffffffffffffffffffffff000000008160201b16806fffffffffffffffffffffffffffffffff811160071b90811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c9060ff821160031b91821c92600f841160021b93841c94600160038711811b96871c1196171717171717179060808210155f146146b8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8182011c5b800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c6680000000000000169860c71c670100000000000000169760c61c670200000000000000169660c51c670400000000000000169560c41c670800000000000000169460c31c671000000000000000169360c21c672000000000000000169260c11c674000000000000000169160c01c67800000000000000016907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800160401b1717171717171717171717171717693627a301d71055774c85027ffffffffffffffffffffffffffffffffffd709b7e5480fba5a50fed5e62ffc556810160801d60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918282145f1461468f5750905090565b6001600160a01b03166001600160a01b036146a9846146f7565b16116146b3575090565b905090565b81607f031b6144a7565b6001600160a01b03907f1599f82c000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60020b908160ff1d82810118620d89e88111614a3d5763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102700100000000000000000000000000000000189160028116614a21575b60048116614a05575b600881166149e9575b601081166149cd575b602081166149b1575b60408116614995575b60808116614979575b610100811661495d575b6102008116614941575b6104008116614925575b6108008116614909575b61100081166148ed575b61200081166148d1575b61400081166148b5575b6180008116614899575b62010000811661487d575b620200008116614862575b620400008116614847575b620800001661482e575b5f12614807575b0160201c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04614800565b6b048a170391f7dc42444e8fa290910260801c906147f9565b6d2216e584f5fa1ea926041bedfe9890920260801c916147ef565b916e5d6af8dedb81196699c329225ee6040260801c916147e4565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c916147d9565b916f31be135f97d08fd981231505542fcfa60260801c916147ce565b916f70d869a156d2a1b890bb3df62baf32f70260801c916147c4565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916147ba565b916fd097f3bdfd2022b8845ad8f792aa58250260801c916147b0565b916fe7159475a2c29b7443b29c7fa6e889d90260801c916147a6565b916ff3392b0822b70005940c7a398e4b70f30260801c9161479c565b916ff987a7253ac413176f2b074cf7815e540260801c91614792565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c91614788565b916ffe5dee046a99a2a811c461f1969c30530260801c9161477e565b916fff2ea16466c96a3843ec78b326b528610260801c91614775565b916fff973b41fa98c081472e6896dfb254c00260801c9161476c565b916fffcb9843d60f6159c9db58835c9266440260801c91614763565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c9161475a565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91614751565b916ffff97272373d413259a46990580e213a0260801c91614748565b827f8b86327a000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b915f81600f0b125f14614a995791613abf91612fbd935f036fffffffffffffffffffffffffffffffff1691614c05565b91613abf91614aba936fffffffffffffffffffffffffffffffff1691614c38565b5f0390565b915f81600f0b125f14614aef5791613abf91612fbd935f036fffffffffffffffffffffffffffffffff1691614c86565b91613abf91614aba936fffffffffffffffffffffffffffffffff1691614d05565b906fffffffffffffffffffffffffffffffff90600f0b911601908160801c612fce57565b6f80000000000000000000000000000000811015612fce57600f0b90565b90614b5c91614228565b9015612df6576040815103613400576040015190565b614b9590614b878360801d8260801d03612fc0565b92600f0b90600f0b03612fc0565b6fffffffffffffffffffffffffffffffff169060801b1790565b905f8212612fce57565b919060020b9060020b90818107614be75705908160081d5f52602052600160ff60405f2092161b8154189055565b601c906044926040519163d4d8f3e683526020830152604082015201fd5b6fffffffffffffffffffffffffffffffff906001600160a01b0380612fbd9594169116038060ff1d908101189116614eb2565b6fffffffffffffffffffffffffffffffff6c01000000000000000000000000916001600160a01b0380600195169116038060ff1d90810118931692614c7d8185614eb2565b93091515160190565b6001600160a01b0382166001600160a01b03821611614cff575b6001600160a01b038116918215614cf357612fbd937bffffffffffffffffffffffffffffffff0000000000000000000000006001600160a01b03614cee948185169403169160601b16614fe5565b613494565b62bfc9215f526004601cfd5b90614ca0565b906001600160a01b0381166001600160a01b03831611614d76575b6001600160a01b038216928315614cf3577bffffffffffffffffffffffffffffffff0000000000000000000000006001600160a01b03614d6a948185169403169160601b16614d7c565b90808206151591040190565b90614d20565b929190614d8a828286614fe5565b93821561349e5709614d9857565b906001019081156125f057565b90808202917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8282099183808410930392808403938470010000000000000000000000000000000011156125f05714614e1e57700100000000000000000000000000000000910990828211900360801b910360801c1790565b50505060801c90565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83820990828083109203918083039283620f424011156125f05714614ea6577fde8f6cefed634549b62c77574f722e1ac57e23f24d8fd5cb790fb65668c2613993620f4240910990828211900360fa1b910360061c170290565b5050620f424091500490565b90808202917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff828209918380841093039280840393846c0100000000000000000000000011156125f05714614f23576c01000000000000000000000000910990828211900360a01b910360601c1790565b50505060601c90565b908160601b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008409928280851094039380850394858411156125f05714614fde576c0100000000000000000000000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395868511156125f0571461507c579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b919081156150e8577bffffffffffffffffffffffffffffffff0000000000000000000000006001600160a01b039160601b1692169182820291838383119184041416156150db57612fbd92613b7592820391614d7c565b63f5c787f15f526004601cfd5b505090565b9091801561516e576001600160a01b037bffffffffffffffffffffffffffffffff000000000000000000000000819460601b169216808202816151308483613494565b14615156575b509061514561514a9284613494565b613487565b80820615159104011690565b830183811061513657915061516a92614d7c565b1690565b50905090565b906001600160a01b038216918203612fce5756fea164736f6c634300081a000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000238a358808379702088667322f80ac48bad5e6c4
-----Decoded View---------------
Arg [0] : _vault (address): 0x238a358808379702088667322f80aC48bAd5e6c4
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000238a358808379702088667322f80ac48bad5e6c4
🤖 Code Reader Beta
Generate instant answers for your smart contract questions using Al Models. Read more.
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.

