ETH Price: $2,699.31 (+2.27%)

Token

Cell (CELL)
 

Overview

Max Total Supply

56,264.876795535495773486 CELL

Holders

111

Transfers

-
-

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
UI Multiplier changes (based on UIMultiplierUpdated event). Displayed token amounts are scaled by the active multiplier.
Transaction Hash Block
Age
Multiplier Status
# Exchange Pair Price  24H Volume % Volume
Source Code Verified Exact Match

Contract Name

CellHook

Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled
Yes with 200 runs
Other Settings
cancun EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[{"internalType":"contract IPoolManager","name":"_pm","type":"address"},{"internalType":"address","name":"mintTo","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInit","type":"error"},{"inputs":[],"name":"CellBound","type":"error"},{"inputs":[],"name":"Dead","type":"error"},{"inputs":[],"name":"HookNotImplemented","type":"error"},{"inputs":[],"name":"Linked_","type":"error"},{"inputs":[],"name":"MaxWallet","type":"error"},{"inputs":[],"name":"NotDeployer","type":"error"},{"inputs":[],"name":"NotInitialized","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"NotPoolManager","type":"error"},{"inputs":[],"name":"NotWarm","type":"error"},{"inputs":[],"name":"NothingToClaim","type":"error"},{"inputs":[],"name":"OnlyMirror","type":"error"},{"inputs":[],"name":"OnlyPoolManager","type":"error"},{"inputs":[],"name":"PriceOutOfRange","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"ZeroAmount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"predator","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"prey","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"inherited","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"spore","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"prize","type":"uint256"}],"name":"BloodEaten","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"streamed","type":"bool"}],"name":"BloodIn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"fees","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint128","name":"lost","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"newMass","type":"uint128"}],"name":"Decayed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"predator","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"prey","type":"uint256"},{"indexed":false,"internalType":"uint128","name":"preyMass","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"burned","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"spore","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"predatorMass","type":"uint128"}],"name":"Eaten","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EthClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EthEscrowClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EthEscrowed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EthPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"cellFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toLp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toApex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toBurn","type":"uint256"}],"name":"FeeSplit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint128","name":"mass","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"fees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"eth","type":"uint256"}],"name":"Husked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint128","name":"mass","type":"uint128"}],"name":"Spawned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CAP_WINDOW","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CARN20_INTERFACE_ID","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COMMIT_LAG","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EAT_UNIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_APEX_BPS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_BPS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_BURN_BPS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_LP_BPS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_DRAIN","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_WALLET_BPS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SAFE_FLOOR","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STANDARD","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"accEthPerMass","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"accFeePerMass","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"}],"name":"addExclusions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"","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 ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterAddLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"","type":"tuple"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterDonate","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"internalType":"uint160","name":"","type":"uint160"},{"internalType":"int24","name":"tick","type":"int24"}],"name":"afterInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"","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 ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"BalanceDelta","name":"","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"","type":"tuple"},{"components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct SwapParams","name":"params","type":"tuple"},{"internalType":"BalanceDelta","name":"delta","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"int128","name":"","type":"int128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"","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 ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"beforeAddLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"","type":"tuple"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"beforeDonate","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"","type":"tuple"},{"internalType":"uint160","name":"","type":"uint160"}],"name":"beforeInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"","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 ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"beforeRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"","type":"tuple"},{"components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct SwapParams","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"beforeSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BeforeSwapDelta","name":"","type":"int256"},{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bloodClaimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bloodClaimableTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bloodReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bountyPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"b","type":"uint16"},{"internalType":"uint256","name":"i","type":"uint256"}],"name":"bucketAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"b","type":"uint16"}],"name":"bucketLen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"cellBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"cellEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cellEthTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"cellOf","outputs":[{"internalType":"uint128","name":"mass","type":"uint128"},{"internalType":"uint64","name":"bornAt","type":"uint64"},{"internalType":"uint32","name":"kills","type":"uint32"},{"internalType":"bool","name":"onBoard","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"cellOwnerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"fromBucket","type":"uint16"},{"internalType":"uint256","name":"cursor","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"cellPage","outputs":[{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint128[]","name":"masses","type":"uint128[]"},{"internalType":"uint32[]","name":"killsArr","type":"uint32[]"},{"internalType":"uint256[]","name":"pendingEthWei","type":"uint256[]"},{"internalType":"uint16","name":"nextBucket","type":"uint16"},{"internalType":"uint256","name":"nextCursor","type":"uint256"},{"internalType":"bool","name":"done","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"cellTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"cells","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint128","name":"mass","type":"uint128"},{"internalType":"uint64","name":"bornAt","type":"uint64"},{"internalType":"uint32","name":"kills","type":"uint32"},{"internalType":"uint16","name":"bucket","type":"uint16"},{"internalType":"uint32","name":"bucketPos","type":"uint32"},{"internalType":"uint64","name":"lastTouch","type":"uint64"},{"internalType":"bool","name":"alive","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[{"internalType":"uint256","name":"fees","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimEscrow","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimEth","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimSpore","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"claimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cumulativeVolume","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currency0","outputs":[{"internalType":"Currency","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currency1","outputs":[{"internalType":"Currency","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dishBitmap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dishNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eatCommitBlock","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eatsOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ethDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ethEscrow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ethEscrowTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ethIn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ethOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ethSolvent","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"feeDebt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSolvent","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"firstBornAt","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getHookPermissions","outputs":[{"components":[{"internalType":"bool","name":"beforeInitialize","type":"bool"},{"internalType":"bool","name":"afterInitialize","type":"bool"},{"internalType":"bool","name":"beforeAddLiquidity","type":"bool"},{"internalType":"bool","name":"afterAddLiquidity","type":"bool"},{"internalType":"bool","name":"beforeRemoveLiquidity","type":"bool"},{"internalType":"bool","name":"afterRemoveLiquidity","type":"bool"},{"internalType":"bool","name":"beforeSwap","type":"bool"},{"internalType":"bool","name":"afterSwap","type":"bool"},{"internalType":"bool","name":"beforeDonate","type":"bool"},{"internalType":"bool","name":"afterDonate","type":"bool"},{"internalType":"bool","name":"beforeSwapReturnDelta","type":"bool"},{"internalType":"bool","name":"afterSwapReturnDelta","type":"bool"},{"internalType":"bool","name":"afterAddLiquidityReturnDelta","type":"bool"},{"internalType":"bool","name":"afterRemoveLiquidityReturnDelta","type":"bool"}],"internalType":"struct Hooks.Permissions","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"isOnBoard","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"join","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract CellNFT","name":"_nft","type":"address"},{"internalType":"contract CellRenderer","name":"_renderer","type":"address"}],"name":"link","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"linked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liveCells","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liveMass","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpFeesHeld","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"mirrorTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextEatAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nft","outputs":[{"internalType":"contract CellNFT","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"peak","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingEats","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"pendingEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"pendingFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"polCellCommitted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"polEthCommitted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolId","outputs":[{"internalType":"PoolId","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolKey","outputs":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renderer","outputs":[{"internalType":"contract CellRenderer","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"cellAmount","type":"uint256"}],"name":"seed","outputs":[{"internalType":"uint128","name":"polAdded","type":"uint128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"spotSqrtPriceX96","outputs":[{"internalType":"uint160","name":"sp","type":"uint160"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stats","outputs":[{"internalType":"uint256","name":"liveCells_","type":"uint256"},{"internalType":"uint256","name":"liveMass_","type":"uint256"},{"internalType":"uint256","name":"totalSupply_","type":"uint256"},{"internalType":"uint256","name":"totalBurned_","type":"uint256"},{"internalType":"uint256","name":"totalEats_","type":"uint256"},{"internalType":"uint256","name":"ethIn_","type":"uint256"},{"internalType":"uint256","name":"ethOut_","type":"uint256"},{"internalType":"uint256","name":"bloodReserve_","type":"uint256"},{"internalType":"uint256","name":"bountyPool_","type":"uint256"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"id","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tickLower","outputs":[{"internalType":"int24","name":"","type":"int24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tickUpper","outputs":[{"internalType":"int24","name":"","type":"int24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEats","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeesIn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeesOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSpored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"unlockCallback","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
61012080604052346105ec57604081616ebc803803809161002082856105f0565b8339810103126105ec578051906001600160a01b038216908183036105ec57602001516001600160a01b038116929091908383036105ec576040516100666040826105f0565b600481526310d95b1b60e21b6020820152604051906100866040836105f0565b600482526310d1531360e21b60208301528051906001600160401b0382116105105781906100b45f54610613565b601f8111610592575b50602090601f831160011461052f575f92610524575b50508160011b915f199060031b1c1916175f555b8051906001600160401b038211610510578190610105600154610613565b601f81116104a2575b50602090601f831160011461043c575f92610431575b50508160011b915f199060031b1c1916176001555b60126080524660a0526040515f905f54918161015484610613565b9182825260208201946001811690815f1461041557506001146103cb575b61017e925003826105f0565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526101f260c0826105f0565b51902060c05260e052670429d069189e000060215560016031819055610100839052305f908152600b6020526040808220805460ff19908116851790915593825280822080548516841790557f44433eeeda1d04bdae79f62169cdb2ab0a6af287fa15706d3fafdbac5fac341580548516841790557fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7680548516841790557fab2d08c2bb34bef82d75e4e7bf47673e83138014c44a3a79aa26f7f60d06ba7780548516841790558582529020805490921617905560025469152d02c7e14af68000008101929083106103b75761033b92600255805f52600360205260405f2069152d02c7e14af680000081540190555f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060405169152d02c7e14af68000008152a36106c7565b604051615b179081611365823960805181612863015260a05181612fee015260c05181613014015260e05181818161081f0152818161095a01528181611278015281816117f6015281816118fc01528181611fa001526134d8015261010051818181610622015281816109c2015281816110300152611fe70152f35b634e487b7160e01b5f52601160045260245ffd5b505f80805290915f80516020616e7c8339815191525b8183106103f957505090602061017e92820101610172565b60209193508060019154838588010152019101909183926103e1565b60ff191686525061017e92151560051b82016020019050610172565b015190505f80610124565b60015f9081528281209350601f198516905b81811061048a5750908460019594939210610472575b505050811b01600155610139565b01515f1960f88460031b161c191690555f8080610464565b9293602060018192878601518155019501930161044e565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c81019160208510610506575b90601f859493920160051c01905b8181106104f8575061010e565b5f81558493506001016104eb565b90915081906104dd565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d3565b5f8080528281209350601f198516905b81811061057a5750908460019594939210610562575b505050811b015f556100e7565b01515f1960f88460031b161c191690555f8080610555565b9293602060018192878601518155019501930161053f565b5f80529091505f80516020616e7c833981519152601f840160051c810191602085106105e2575b90601f859493920160051c01905b8181106105d457506100bd565b5f81558493506001016105c7565b90915081906105b9565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761051057604052565b90600182811c92168015610641575b602083101461062d57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610622565b919082018092116103b757565b8115610662570490565b634e487b7160e01b5f52601260045260245ffd5b90611b58820291808304611b5814901517156103b757565b818102929181159184041417156103b757565b919082039182116103b757565b6001600160801b0391821690821603919082116103b757565b6001600160a01b03165f81158015610e45575b610ac9575f82815260066020908152604080832060038352818420546008909352922054909391906001600160801b03808216919086169082821115610deb57505f84815260086020526040902080546001600160801b0319166001600160801b03831617905590505b6001600160801b03906127109061075c908316610676565b0416674563918244f400008110610ddc575b6001600160801b031680851115610dd4576001600160801b039061079290866106a1565b16935b6002820190674563918244f4000060ff835460601c1691118115808091610dcc575b610da2578280610dc5575b80610dac575b610da25780610d9b575b610b625781610b59575b506109535750600101546001600160801b03169182916107fb81610f44565b61080481610fdf565b8082526006602052604080832060010180546001600160801b03881694919060e01c61ffff90811690811490866108e35750156108c2575b80546001600160801b03191690555b6108576011548561068e565b83825260126020528282205561086f6016548561068e565b92815260176020522055106108a25761089d916001600160801b0391610894916106ae565b16600c5461064b565b600c55565b61089d916001600160801b03916108b991906106ae565b16600c546106a1565b6108cb84611096565b805461ffff60e01b191661ffff60e01b17815561083c565b906108ed8a611222565b901561091357505080546001600160801b0319168517905561090e83610e84565b61084b565b61ffff161461093e5761092584611096565b80546001600160801b0319168517905561090e83610e84565b80546001600160801b0319168517905561084b565b8293945060607f3e7edb0cb1ecdb4c259dc991a8562f41d671645e0a8cc7bb3f1250df79c4f52f91849361098685610f44565b8488526013602052604088205485895260136020528860408120556109aa86610fdf565b858952601860205260408920549160018315159182610b37575b0180546001600160801b03811695919061fffe1960e09190911c61ffff1601610b29575b805461ffff60e01b191661ffff60e01b178155600c54610a099087906106a1565b600c5580546001600160801b0319908116909155815460ff60601b1916909155878b52600860209081526040808d208054909316909255888c5260128152818c208c9055888c52601790528a208a905581610b1b575b610af1575b60405192835260208301526040820152a3602b546001600160a01b03169081610a8c57505050565b813b15610aed5782916064839260405194859384926323de665160e01b845280600485015282602485015260448401525af18015610ae257610acd575b5050565b610ad88280926105f0565b610adf5750565b80fd5b6040513d84823e3d90fd5b8280fd5b600c5415610b0757610b02826111cd565b610a64565b610b1382601a5461064b565b601a55610a64565b610b2482611170565b610a5f565b610b3289611096565b6109e8565b888c5260186020528b6040812055610b51856019546106a1565b6019556109c4565b9050155f6107dc565b505081546001600160a01b03191683178255600190910180546001600160c01b0319166001600160801b038616174260801b600160801b600160c01b03161790555f828152600760205260409020549193849350916001600160401b031615610d70575b8054600160201b600160681b0319164260201b6bffffffffffffffff0000000016176c010000000000000000000000001790556011546001600160801b039190911690610c13908261068e565b825f52601260205260405f2055610c2c6016548261068e565b825f52601760205260405f2055610c4282610e84565b600c54610c518282159261064b565b9081600c5580610d65575b610ce7575b505f80516020616e9c83398151915260208392604051908152a3602b546001600160a01b03169081610c91575050565b813b156105ec575f916064839260405194859384926323de665160e01b845282600485015280602485015260448401525af18015610cdc57610cd05750565b5f610cda916105f0565b565b6040513d5f823e3d90fd5b601a549250610d03612710610cfb85610676565b0480946106a1565b601a556c0c9f2c9cd04674edea400000008302928084046c0c9f2c9cd04674edea4000000014901517156103b7576020849392610d5a610d525f80516020616e9c833981519152948796610658565b60165461064b565b601655925050610c61565b50601a541515610c5c565b5f83815260076020526040902080546001600160401b031916426001600160401b0316179055610bc6565b50806107d2565b5050505050505050565b5060018501546001600160801b038981169116146107c8565b50816107c2565b5081156107b7565b505f93610795565b50674563918244f4000061076e565b8215159081610e2f575b50610e01575b50610744565b5f84815260086020526040812080546001600160801b0319166001600160801b038416179055909150610dfb565b60011c60016001607f1b0316871090505f610df5565b50815f52600b60205260ff60405f2054166106da565b8054821015610e70575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b805f52600660205260405f20906001820190610ea860018060801b03835416611222565b9261ffff841692835f52600960205260405f209481549061ffff60e01b9060e01b169061ffff60e01b191617905563ffffffff6002818654169201911663ffffffff198254161790558254906801000000000000000082101561051057610f198260019586610f3195018155610e5b565b90919082549060031b91821b915f19901b1916179055565b1b600a5417600a556001600f5401600f55565b5f818152600660205260409020600101546011546c0c9f2c9cd04674edea4000000091610f9091610f7d916001600160801b031661068e565b835f52601260205260405f2054906106a1565b04815f526013602052610fa860405f2091825461064b565b90555f81815260066020526040902060010154601154610fd0916001600160801b031661068e565b905f52601260205260405f2055565b5f818152600660205260409020600101546016546c0c9f2c9cd04674edea400000009161102b91611018916001600160801b031661068e565b835f52601760205260405f2054906106a1565b0480611068575b505f81815260066020526040902060010154601654611059916001600160801b031661068e565b905f52601760205260405f2055565b61108d90825f52601860205260405f2061108382825461064b565b905560195461064b565b6019555f611032565b5f52600660205260405f2061ffff600182015460e01c1690815f52600960205263ffffffff600260405f209201541681545f1981019081116103b7576110dc9083610e5b565b90549060031b1c6110f181610f198486610e5b565b5f52600660205263ffffffff600260405f2001911663ffffffff198254161790558054801561115c575f190181611129828094610e5b565b8154905f199060031b1b19169055551561114a575b505f19600f5401600f55565b6001901b19600a5416600a555f61113e565b634e487b7160e01b5f52603160045260245ffd5b80158080156111c3575b610ac9576c0c9f2c9cd04674edea4000000082029182046c0c9f2c9cd04674edea400000001417156103b7576111b66111be91600c5490610658565b60115461064b565b601155565b50600c541561117a565b8015808015611218575b610ac9576c0c9f2c9cd04674edea4000000082029182046c0c9f2c9cd04674edea400000001417156103b757610d5261121391600c5490610658565b601655565b50600c54156111d7565b5f91906001600160801b0316600160801b811015611359575b6801000000000000000081101561133f575b640100000000811015611325575b6201000081101561130b575b6101008110156112f1575b60108110156112d7575b80600460029210156112bc575b10156112a4575b607e61ffff83161161129e57565b607e9150565b9061ffff600191160161ffff81116103b75790611290565b61ffff90821c93160161ffff81116103b75760029092611289565b61ffff600491821c93160161ffff81116103b7579161127c565b61ffff600891821c93160161ffff81116103b75791611272565b61ffff601091821c93160161ffff81116103b75791611267565b61ffff602091821c93160161ffff81116103b7579161125b565b61ffff604091821c93160161ffff81116103b7579161124d565b50608091505f61123b56fe608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c90816301ffc9a714612cbc5750806303fd2a4514612ca057806306fdde0314612bfe57806308637d2014612be1578063095ea7b314612b6857806310d737b814612b40578063158ef93e14611e1757806318160ddd14612b23578063182148ef14612ac95780631941fd1414612a225780631be9383f14612a065780631f4c134c146129eb57806321d0ee70146128f9578063231d3c34146129ce57806323b872dd146128fe578063259982e5146128f95780632949dcf4146128c65780632a4641fe146128a457806330f30b0b14612887578063313ce5671461284a5780633269b0831461282d57806335f27dba1461280b5780633644e515146127f157806339f3d9c9146127b95780633e0dc34e1461279c5780633e5a2760146127725780634128b5421461159057806345eefaff1461275557806347ccca021461272d578063497369d2146127125780634aec00b2146125e05780634b342dd7146125c35780634dd23b761461259a5780634e71d92d146125745780635028928a1461249d5780635065a5de1461245a57806352aa78311461243d57806355b812a81461241a5780635734e4e1146123fd578063575e24b414612399578063580a38c71461237757806359c4f905146123545780635d906b3b1461232a5780635f7df800146123085780636a61f9db146122c45780636afdd8501461229b5780636c2bbe7e146116025780636fe7e6eb14611f6057806370a0823114611f2857806374bf109614611ee6578063789ff0e114611ec5578063790ca41314611e9c578063797d112b14611e6457806379f1232b14611e3c5780637af216ac14611e175780637ecebe0014611ddf57806381afbc1614611db35780638ada6b0f14611d8b57806391dd7346146118ca578063955648371461177957806395d89b411461169b57806399ef2dab146116715780639cf3ac48146116075780639f063efc146116025780639f4402d1146115e0578063a1dc17c1146115c3578063a2b9347814611595578063a34d80c014611590578063a9059cbb1461155f578063b18da39914611542578063b47b2fb11461121e578063b688a36314611205578063b6a8b0fa146106e3578063b6efaa75146111ea578063b72de6b5146111cd578063b7cdddcb14611166578063b945a48d14611149578063bbb4ab9614611116578063bcaedade146110cd578063bf333f2c146110b1578063c38dc8bc14610fde578063c4e833ce14610e77578063c50497ae14610e53578063c5d5ec9b14610e37578063c628a8bc14610d34578063c872df9514610d17578063c8a4398214610cfa578063cba0e99614610cbd578063ccc7397314610c89578063cd03c90c14610c6c578063d1d58b2514610c42578063d1ffa1c114610c20578063d4fa3fb814610bfb578063d505accf146109f1578063d5f39488146109ad578063d5fd108e14610987578063d80528ae146108c7578063d84c40571461086b578063d89135cd1461084e578063dc4c90d31461080a578063dc98354e146107cc578063dd62ed3e1461077c578063dee252d114610705578063df242396146106e8578063e1b4af69146106e3578063e64ead79146106c6578063eab2e66c146106a9578063f21c89ee146105e5578063f2c65a5514610590578063f4dd415614610574578063f5431dd014610541578063fdc92144146105245763fdf52c3f14610503575f61000f565b34610520575f366003190112610520576020602e54604051908152f35b5f80fd5b34610520575f366003190112610520576020602154604051908152f35b346105205760203660031901126105205761ffff61055d612ec6565b165f526009602052602060405f2054604051908152f35b34610520575f3660031901126105205760208054604051908152f35b34610520576020366003190112610520576001600160a01b036105b1612da8565b165f52600660205260ff600260405f20015460601c165f146105dd57602060015b60ff60405191168152f35b60205f6105d2565b34610520576040366003190112610520576004356001600160a01b03811690819003610520576024356001600160a01b03811690819003610520577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361069a57602c549160ff8360a01c1661068b57602b80546001600160a01b0319169190911790556001600160a81b031990911617600160a01b17602c55005b638b9c07b360e01b5f5260045ffd5b638b906c9760e01b5f5260045ffd5b34610520575f366003190112610520576020602254604051908152f35b34610520575f366003190112610520576020601c54604051908152f35b612f7e565b34610520575f366003190112610520576020600d54604051908152f35b34610520576020366003190112610520576001600160a01b03610726612da8565b165f526006602052608060405f2060ff6002600183015492015460601c1663ffffffff604051926001600160801b03811684526001600160401b0381861c16602085015260c01c16604083015215156060820152f35b3461052057604036600319011261052057610795612da8565b61079d612dbe565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b346105205760e0366003190112610520576107e5612da8565b5060a0366023190112610520576107fa612f68565b50630a85dc2960e01b5f5260045ffd5b34610520575f366003190112610520576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610520575f366003190112610520576020600e54604051908152f35b3461052057602036600319011261052057600435805f52600660205260ff600260405f20015460601c16156108b8575f526006602052602060018060a01b0360405f205416604051908152f35b6382c4767b60e01b5f5260045ffd5b34610520575f366003190112610520576101405f600f5490600c54600254600e54601054601e5490601f54926108fb613610565b94601a549660ff602a5460a01c16610950575b604080519a8b5260208b01919091528901526060880152608087015260a086015260c085015260e08401526101008301526001600160a01b0316610120820152f35b975061097e6028547f000000000000000000000000000000000000000000000000000000000000000061389f565b5050509761090e565b34610520575f3660031901126105205760206001600160401b0360235416604051908152f35b34610520575f366003190112610520576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346105205760e036600319011261052057610a0a612da8565b610a12612dbe565b6044356064359260843560ff811680910361052057428510610bb65760805f91602093610a3d612feb565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c08152610aba60e082612d63565b519020604051908682019261190160f01b84526022830152604282015260428152610ae6606282612d63565b519020906040519182528482015260a435604082015260c435606082015282805260015afa15610bab575f516001600160a01b031680151580610ba2575b15610b6c577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b50828114610b24565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b34610520575f36600319011261052057602060ff602c5460a01c166040519015158152f35b34610520575f366003190112610520576020610c3a613610565b604051908152f35b34610520576020366003190112610520576004355f526013602052602060405f2054604051908152f35b34610520575f366003190112610520576020603054604051908152f35b34610520576020366003190112610520576020610c3a600435805f5260188352610cb760405f2054916136f2565b90613209565b34610520576020366003190112610520576001600160a01b03610cde612da8565b165f52600b602052602060ff60405f2054166040519015158152f35b34610520575f366003190112610520576020601f54604051908152f35b34610520575f366003190112610520576020601454604051908152f35b3461052057602036600319011261052057600435805f52600660205260ff600260405f20015460601c16156108b857602c545f82815260066020526040808220600101549051635f2ec82d60e01b815260048101949094526001600160801b038116602485015260c01c63ffffffff16604484015290829060649082906001600160a01b03165afa8015610bab575f90610de5575b610de190604051918291602083526020830190612d84565b0390f35b503d805f833e610df58183612d63565b810190602081830312610520578051906001600160401b038211610520570181601f8201121561052057610de191816020610e3293519101613506565b610dc9565b34610520575f3660031901126105205760206040516127108152f35b34610520575f36600319011261052057602060405169152d02c7e14af68000008152f35b34610520575f366003190112610520575f6101a0604051610e9781612d47565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201526101c06020604051610efa81612d47565b5f81528181019060018252604081015f8152606082015f8152608083015f815260a084015f815260c085015f815260e0860190600182526101008701925f84526101208801945f86526101408901965f88526101608a019860018a526101a06101808c019b5f8d52019b5f8d526040519d8e915f835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b34610520576020366003190112610520576004356001600160401b0381116105205736602382011215610520578060040135906001600160401b038211610520573660248360051b83010111610520577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361069a5760ff602c5460a01c1661068b575f5b8281101561001a57600581901b820160240135906001600160a01b03821680830361052057600192505f52600b60205260405f208260ff198254161790550161106d565b34610520575f3660031901126105205760206040516102bc8152f35b34610520575f36600319011261052057610de16040516110ee604082612d63565b600781526604341524e2d32360cc1b6020820152604051918291602083526020830190612d84565b34610520576020366003190112610520576004355f52600760205260206001600160401b0360405f205416604051908152f35b34610520575f366003190112610520576020600f54604051908152f35b34610520575f366003190112610520576002603154146111be57600260315561118f3333614409565b80156111af57806111a260209233613958565b6001603155604051908152f35b6312d37ee560e31b5f5260045ffd5b63558a1e0360e11b5f5260045ffd5b34610520575f366003190112610520576020601654604051908152f35b34610520575f36600319011261052057602060405160968152f35b34610520575f3660031901126105205761001a33613c7e565b346105205761016036600319011261052057611238612da8565b5060a03660231901126105205760603660c31901126105205761012435610144356001600160401b03811161052057611275903690600401612dd4565b507f00000000000000000000000000000000000000000000000000000000000000009190506001600160a01b0382163303611533578060801d905f82600f0b125f1461152d576112c4826135a3565b600f0b9060c435801515809103610520575f60e43512149283156115265750600f0b5b5f81600f0b125f14611521576112fc906135a3565b600f0b6102bc8102908082046102bc14901517156113f957612710900492831592831591905f856114fd5750156114bd57602a546113479186913091906001600160a01b0316613af3565b61134f61473d565b61142a575b6113619150602054613209565b602055600c54611394575b6001600160801b036040915b16600f0b5b81519063b47b2fb160e01b8252600f0b6020820152f35b67ffffffffffffffff60401b4360401b16905b6020546021548091101580611415575b1561140d57670429d069189e000081018091116113f957602155816023546001600160401b0360018183160116906001600160801b03191617176023556113a7565b634e487b7160e01b5f52601160045260245ffd5b50905061136c565b5060046001600160401b0360235416106113b7565b6127108302838104612710148317156113f957612710600191049217156113f957611455828461342d565b60807f6de73609726ef2eed5f1c7d2933cf6ad038c7788f9d9fba204687c08e09d51459184611361956114af575b61148f82602454613209565b6024556040519187835260208301525f60408301526060820152a1611354565b6114b8816147fe565b611483565b6029546040956001600160801b039550936114f89350916114ea91859130916001600160a01b0316613af3565b6114f383613b57565b613a54565b611378565b94505050506040925080611512575b5061137d565b61151b90613a54565b8261150c565b6112fc565b90506112e7565b816112c4565b63f655705d60e01b5f5260045ffd5b34610520575f366003190112610520576020602454604051908152f35b3461052057604036600319011261052057602061158661157d612da8565b6024359061353c565b6040519015158152f35b612eac565b34610520576020366003190112610520576020610c3a600435805f5260138352610cb760405f205491613a0b565b34610520575f366003190112610520576020600a54604051908152f35b34610520575f366003190112610520576020604051674563918244f400008152f35b612f0a565b34610520575f366003190112610520576002603154146111be576002603155335f52601b60205260405f205480156111af57602090335f52601b82525f604081205561165581601c5461342d565b601c5561166481601f54613209565b601f556111a28133613958565b34610520576020366003190112610520576004355f526017602052602060405f2054604051908152f35b34610520575f366003190112610520576040515f6001546116bb81612d0f565b808452906001811690811561175557506001146116f7575b610de1836116e381850382612d63565b604051918291602083526020830190612d84565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b80821061173b575090915081016020016116e36116d3565b919260018160209254838588010152019101909291611723565b60ff191660208086019190915291151560051b840190910191506116e390506116d3565b346105205760203660031901126105205760043560ff602a5460a01c16156118bb5780156118ac575f816117b06117f1933061353c565b50604051906020820152336040820152604081526117cf606082612d63565b604051809381926348c8949160e01b8352602060048401526024830190612d84565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610bab575f9161185c575b5060208180518101031261052057602001516001600160801b03811680910361052057602090604051908152f35b90503d805f833e61186d8183612d63565b810190602081830312610520578051906001600160401b03821161052057019080601f830112156105205781516118a692602001613506565b8161182e565b631f2a200560e01b5f5260045ffd5b6321c4e35760e21b5f5260045ffd5b34610520576020366003190112610520576004356001600160401b038111610520576118fa903690600401612dd4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381169133839003611d7c57836040918101031261052057602083359301359160018060a01b0383168093036105205761195e6028548361389f565b5050506001600160801b03602c548060a81c60020b9261197d84614ad1565b9160c01c60020b9761198e89614ad1565b9182846001600160a01b0380831690821611611d70575b50506001600160a01b038181169085168111611d22575050506119c7916155a6565b169485611ac3575b505050506119ee6119e56014546015549061342d565b60245490613209565b305f52600360205260405f2054908082115f14611abb57611a0e9161342d565b80611aab575b50611a1d613610565b479080821115611aa257611a309161342d565b905b81611a54575b610de183604051906020820152602081526116e3604082612d63565b5f80809381935af1611a6461343a565b5015611a71578180611a38565b60405162461bcd60e51b815260206004820152600960248201526806574682073776565760bc1b6044820152606490fd5b50505f90611a32565b611ab59082613842565b82611a14565b50505f611a0e565b60405160808101908082106001600160401b03831117611d0e576040936101649285528152602081019283525f848201958987526060830182815286519788968795632d35e7ed60e11b875260018060a01b0360255416600488015260265460018060a01b038116602489015262ffffff8160a01c16604489015260b81c60020b606488015260018060a01b036027541660848801525160020b60a48701525160020b60c48601525160e485015251610104840152610140610124840152816101448401525af1908115610bab575f91611cdc575b508060801d81600f0b9281600f0b925f84129182611cac575b5f8087129586611c7c575b13611c53575b5f8613611c2b575b5050611c05575b50611bdf575b8080806119cf565b6001600160801b03611bf3611bfc926135a3565b16602e54613209565b602e5582611bd7565b6001600160801b03611c19611c22926135a3565b16602d54613209565b602d5584611bd1565b602a54611c4c926001600160801b03169130916001600160a01b0316613af3565b8680611bca565b602954611c77906001600160801b03861690309084906001600160a01b0316613af3565b611bc2565b602a54611ca7906001600160a01b03166001600160801b03611c9d8b6135a3565b1690853091615619565b611bbc565b602954611cd7906001600160a01b03166001600160801b03611ccd876135a3565b1690833091615619565b611bb1565b90506040813d604011611d06575b81611cf760409383612d63565b81010312610520575184611b98565b3d9150611cea565b634e487b7160e01b5f52604160045260245ffd5b919290916001600160a01b0382161115611d655790611d45611d4b9392826155a6565b9361556c565b8083168284161015611d5e57505b6119c7565b90506119c7565b9050611d599261556c565b90945092508a806119a5565b63570c108560e11b5f5260045ffd5b34610520575f36600319011261052057602c546040516001600160a01b039091168152602090f35b34610520575f366003190112610520576020611dcd6134c2565b6040516001600160a01b039091168152f35b34610520576020366003190112610520576001600160a01b03611e00612da8565b165f526005602052602060405f2054604051908152f35b34610520575f36600319011261052057602060ff602a5460a01c166040519015158152f35b34610520575f366003190112610520576029546040516001600160a01b039091168152602090f35b34610520576020366003190112610520576001600160a01b03611e85612da8565b165f52602f602052602060405f2054604051908152f35b34610520575f3660031901126105205760206001600160401b03602a5460a81c16604051908152f35b34610520575f366003190112610520576020610c3a6014546015549061342d565b3461052057611ef436612e72565b5050602b546001600160a01b031633039050611f1957631c23832760e21b5f5260045ffd5b631a3e2ebd60e11b5f5260045ffd5b34610520576020366003190112610520576001600160a01b03611f49612da8565b165f526003602052602060405f2054604051908152f35b346105205761010036600319011261052057611f7a612da8565b60a036602319011261052057611f8e612f68565b5060e435908160020b809203610520577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361153357602a549060ff8260a01c1661228c576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691160361069a5768ffffffffffffffffff60a01b19164260a81b67ffffffffffffffff60a81b1617600160a01b17602a556001600160a01b03612049613469565b166001600160601b0360a01b602554161760255560018060a01b0361206c61347f565b166001600160601b0360a01b602654161760265560643562ffffff811681036105205760265461209a613495565b60b81b62ffffff60b81b1662ffffff60a01b60a084901b1665ffffffffffff60a01b1992909216919091171760265560a435906001600160a01b038216808303610520576001600160601b0360a01b60275416176027556040519060a082018281106001600160401b03821117611d0e57604052612116612dbe565b82526044356001600160a01b03811681036105205760208301526040820152608435918260020b83036105205760a092606083015260808201522060285560018060a01b03612163613469565b166001600160601b0360a01b602954161760295560018060a01b0361218661347f565b166001600160601b0360a01b602a541617602a556121a2613495565b908160020b801561227857627fffff1982145f198214166113f9578080830560020b02918260020b9283036113f957839083818113612264575b508360020b14612253575b50602c549160c01b62ffffff60c01b169262ffffff60a81b91620d89e719050260a81b169065ffffffffffff60a81b1916171780602c558060a81c60020b9060c01c60020b131561224457604051636fe7e6eb60e01b8152602090f35b630df22a0f60e21b5f5260045ffd5b61225d91926134a5565b90826121e7565b61227191945082906134a5565b92856121dc565b634e487b7160e01b5f52601260045260245ffd5b633bcd329760e21b5f5260045ffd5b34610520575f3660031901126105205760206040516e22d473030f116dfc393ebe6f5c32b28152f35b346105205760403660031901126105205761ffff6122e0612ec6565b165f52600960205260206122f960243560405f206131ae565b90549060031b1c604051908152f35b34610520575f366003190112610520576020601f54601e541015604051908152f35b34610520576020366003190112610520576004355f526018602052602060405f2054604051908152f35b34610520575f366003190112610520576020602c5460a81c60020b604051908152f35b34610520575f36600319011261052057604051634bdb3f8f60e01b8152602090f35b3461052057610140366003190112610520576123b3612da8565b5060a03660231901126105205760603660c319011261052057610124356001600160401b038111610520576123ec903690600401612dd4565b5050630a85dc2960e01b5f5260045ffd5b34610520575f366003190112610520576020601954604051908152f35b34610520575f366003190112610520576020602c5460c01c60020b604051908152f35b34610520575f366003190112610520576020601154604051908152f35b34610520576020366003190112610520576001600160a01b0361247b612da8565b165f526006602052602060ff600260405f20015460601c166040519015158152f35b34610520575f366003190112610520576002603154146111be576002603155335f52602f60205260405f205480156111af57335f52602f6020525f60408120556124e98160305461342d565b6030555f80808084335af16124fc61343a565b501561253d576020906040518181527f8b2dcc27428e35ab88db8017f204275779127ad5e04adc1d01e3d8f356ef1463833392a26001603155604051908152f35b60405162461bcd60e51b815260206004820152600f60248201526e195d1a08195cd8dc9bddc81c1d5b1b608a1b6044820152606490fd5b34610520575f366003190112610520576020612590333361373f565b610c3a8133613842565b34610520575f3660031901126105205760206001600160401b0360235460401c16604051908152f35b34610520575f366003190112610520576020601054604051908152f35b34610520576060366003190112610520576126096125fc612ec6565b6044359060243590613216565b9396956126286040969294939651976101008952610100890190612ed7565b8781036020890152602080835192838152019201905f5b8181106126f3575050508681036040880152602080835192838152019201905f5b8181106126d4575050508581036060870152602080885192838152019701905f5b8181106126b8575050506126a18661ffff92878099036080890152612ed7565b931660a085015260c0840152151560e08301520390f35b825163ffffffff16895260209889019890920191600101612681565b82516001600160801b0316845260209384019390920191600101612660565b82516001600160a01b031684526020938401939092019160010161263f565b34610520575f36600319011261052057602060405160048152f35b34610520575f36600319011261052057602b546040516001600160a01b039091168152602090f35b34610520575f366003190112610520576020602d54604051908152f35b34610520576020366003190112610520576004355f526012602052602060405f2054604051908152f35b34610520575f366003190112610520576020602854604051908152f35b34610520576020366003190112610520576001600160a01b036127da612da8565b165f52601b602052602060405f2054604051908152f35b34610520575f366003190112610520576020610c3a612feb565b34610520575f3660031901126105205760206015546014541015604051908152f35b34610520575f366003190112610520576020600c54604051908152f35b34610520575f36600319011261052057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610520575f366003190112610520576020601554604051908152f35b34610520575f366003190112610520576020604051670429d069189e00008152f35b34610520576020366003190112610520576004355f52600860205260206001600160801b0360405f205416604051908152f35b612e01565b346105205761299a61290f36612e72565b61291b8183949361362e565b6001600160a01b0382165f81815260046020908152604080832033845290915290205482600182016129a5575b5050805f52600360205260405f2061296183825461342d565b90555f80516020615ac2833981519152602060018060a01b03861693845f526003825260405f20818154019055604051908152a36136c8565b602060405160018152f35b6129ae9161342d565b5f8281526004602090815260408083203384529091529020558582612948565b34610520575f366003190112610520576020601e54604051908152f35b34610520575f36600319011261052057602060405160018152f35b34610520575f3660031901126105205760206040516102588152f35b34610520576020366003190112610520576004355f52600660205261010060405f2060ff60018060a01b038254169161ffff60026001830154920154916040519485526001600160801b03811660208601526001600160401b038160801c16604086015263ffffffff8160c01c16606086015260e01c16608084015263ffffffff811660a08401526001600160401b038160201c1660c084015260601c16151560e0820152f35b34610520575f36600319011261052057602554602654602754604080516001600160a01b039485168152838516602082015260a084811c62ffffff169282019290925260b89390931c60020b606084015292166080820152f35b34610520575f366003190112610520576020600254604051908152f35b34610520575f36600319011261052057602a546040516001600160a01b039091168152602090f35b3461052057604036600319011261052057612b81612da8565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610520575f366003190112610520576020601a54604051908152f35b34610520575f366003190112610520576040515f8054612c1d81612d0f565b80845290600181169081156117555750600114612c4457610de1836116e381850382612d63565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b808210612c86575090915081016020016116e36116d3565b919260018160209254838588010152019101909291612c6e565b34610520575f36600319011261052057602060405161dead8152f35b34610520576020366003190112610520576004359063ffffffff60e01b8216809203610520576020916301ffc9a760e01b8114908115612cfe575b5015158152f35b634bdb3f8f60e01b14905083612cf7565b90600182811c92168015612d3d575b6020831014612d2957565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612d1e565b6101c081019081106001600160401b03821117611d0e57604052565b90601f801991011681019081106001600160401b03821117611d0e57604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361052057565b602435906001600160a01b038216820361052057565b9181601f84011215610520578235916001600160401b038311610520576020838186019501011161052057565b3461052057610160366003190112610520576004356001600160a01b0381168103610520575060a03660231901126105205760803660c319011261052057610144356001600160401b03811161052057612e5f903690600401612dd4565b5050630a85dc2960e01b5f908152600490fd5b6060906003190112610520576004356001600160a01b038116810361052057906024356001600160a01b0381168103610520579060443590565b34610520575f3660031901126105205760206040515f8152f35b6004359061ffff8216820361052057565b90602080835192838152019201905f5b818110612ef45750505090565b8251845260209384019390920191600101612ee7565b34610520576101a0366003190112610520576004356001600160a01b0381168103610520575060a03660231901126105205760803660c319011261052057610184356001600160401b03811161052057612e5f903690600401612dd4565b60c435906001600160a01b038216820361052057565b3461052057610120366003190112610520576004356001600160a01b0381168103610520575060a036602319011261052057610104356001600160401b03811161052057612e5f903690600401612dd4565b6001600160401b038111611d0e57601f01601f191660200190565b467f000000000000000000000000000000000000000000000000000000000000000003613036577f000000000000000000000000000000000000000000000000000000000000000090565b6040515f905f54918161304884612d0f565b9182825260208201946001811690815f1461314957506001146130ec575b61307292500382612d63565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526130e660c082612d63565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061312d57505090602061307292820101613066565b6020919350806001915483858801015201910190918392613115565b60ff191686525061307292151560051b82016020019050613066565b6001600160401b038111611d0e5760051b60200190565b9061318682613165565b6131936040519182612d63565b82815280926131a4601f1991613165565b0190602036910137565b80548210156131c3575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b80518210156131c35760209160051b010190565b90610e1082018092116113f957565b9061012c82018092116113f957565b919082018092116113f957565b90915f935f92607e61ffff821611613425575b82156133a75761323a83959361317c565b956132448661317c565b9461324e8761317c565b946132588861317c565b946132628961317c565b945f906001935b61ffff821690815f5260096020528d60405f208054915b8284106132d1575b5050505084156132c057156132a4575f190161ffff165f613269565b50909192939495969798505b808a528089528088528087528552565b5050909192939495969798506132b0565b8f959f87929497969395961461338e57818f8f8f948f9261337890600197613361848f61337e978c8f9c61330b63ffffffff94839f6131ae565b90549060031b1c97885f5260066020528861332a8760405f20946131d7565b5261333e86848060a01b03845416926131d7565b52015490613356846001600160801b038416926131d7565b5260c01c16926131d7565b52805f526018602052610cb760405f2054916136f2565b926131d7565b5201950192909d9392918f613280565b509498509c9650505092508394935f935f80808f613288565b9250929350506020604051916133bd8284612d63565b5f83525f368137604051946133d28387612d63565b5f86525f368137604051946133e78487612d63565b5f86525f368137604051946133fc8587612d63565b5f86525f368137604051946134118187612d63565b5f8652505f36813796959493929190600190565b50607e613229565b919082039182116113f957565b3d15613464573d9061344b82612fd0565b916134596040519384612d63565b82523d5f602084013e565b606090565b6024356001600160a01b03811681036105205790565b6044356001600160a01b03811681036105205790565b6084358060020b81036105205790565b600291820b910b0390627fffff198212627fffff8313176113f957565b60ff602a5460a01c1615613502576134fc6028547f000000000000000000000000000000000000000000000000000000000000000061389f565b50505090565b5f90565b92919261351282612fd0565b916135206040519384612d63565b829481845281830111610520578281602093845f96015e010152565b61359e9161354a818361362e565b335f52600360205260405f2061356182825461342d565b905560018060a01b03821690815f52600360205260405f208181540190556040519081525f80516020615ac283398151915260203392a3336136c8565b600190565b600f0b6f7fffffffffffffffffffffffffffffff1981146113f9575f0390565b90611b58820291808304611b5814901517156113f957565b906103e88202918083046103e814901517156113f957565b818102929181159184041417156113f957565b8115612278570490565b61362b613622601e54601f549061342d565b60305490613209565b90565b6001600160401b03602a5460a81c16801580156136a7575b6136a25761025881018091116113f95742101561369e576001600160a01b03165f90815260036020526040902054685150ae84a8cdf000009161368891613209565b1161368f57565b630949534d60e31b5f5260045ffd5b5050565b505050565b506001600160a01b0382165f908152600b602052604090205460ff16613646565b6136d181613c7e565b6001600160a01b03908116908216036136e75750565b6136f090613c7e565b565b61373b68327cb2734119d3b7a9601e1b91805f5260066020526137286001600160801b03600160405f20015416601654906135f3565b905f52601760205260405f20549061342d565b0490565b919091805f52600660205260405f2092600284019060ff825460601c16156108b85784546001600160a01b0390811691160361383357815f5260076020526137936001600160401b0360405f2054166131eb565b42106138245760ff906137a583614500565b5460601c161561381e576137b881614675565b6137c1816146cb565b5f81815260136020526040812080549190556015549093906137e4908590613209565b60155560018060a01b03905416907f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0266020604051868152a3565b505f9150565b63949682a560e01b5f5260045ffd5b6330cd747160e01b5f5260045ffd5b811561369e576136f091305f52600360205260405f2061386382825461342d565b905560018060a01b03821690815f52600360205260405f208181540190556040519081525f80516020615ac283398151915260203092a3613c7e565b919060209060405182810191825260066040820152604081526138c3606082612d63565b519020604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa918215610bab575f92613924575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d602011613950575b8161394060209383612d63565b810103126105205751905f6138fc565b3d9150613933565b811561369e575f8080808585617530f161397061343a565b50156139ae576040519182526001600160a01b0316907fc4e5d7ce17280dbdf87dfb6bb06569619aa9d89aaa6b6ab0d552104f149c9efb90602090a2565b60207f2dada958100cb621203a92187e503274d4e4e793340a6ec4ee332d6be650c9489160018060a01b031692835f52602f825260405f206139f1828254613209565b90556139ff81603054613209565b603055604051908152a2565b61373b68327cb2734119d3b7a9601e1b91805f526006602052613a416001600160801b03600160405f20015416601154906135f3565b905f52601260205260405f20549061342d565b613a6890613a6061473d565b602054613209565b602055600c54613a7457565b67ffffffffffffffff60401b4360401b16905b6020546021548091101580613ade575b15613ad957670429d069189e000081018091116113f957602155816023546001600160401b0360018183160116906001600160801b0319161717602355613a87565b509050565b5060046001600160401b036023541610613a97565b91906001600160a01b0316803b1561052057604051630b0d9c0960e01b81526001600160a01b03938416600482015291909216602482015260448101929092525f908290606490829084905af18015610bab57613b4d5750565b5f6136f091612d63565b8015613c5b57613b6981601e54613209565b601e55600c54908115613c1857613ba4613b8f612710613b88846135c3565b048361342d565b613b9b81601a54613209565b601a558261342d565b9068327cb2734119d3b7a9601e1b82029180830468327cb2734119d3b7a9601e1b14901517156113f957613c06613bfe7f383ec0c204ff8c36a11c6afc73304cd3c68e4a9bf71684d0950d3c9df5fa900294604094613606565b601654613209565b601655815190815260016020820152a1565b7f383ec0c204ff8c36a11c6afc73304cd3c68e4a9bf71684d0950d3c9df5fa9002915080613c4a604092601a54613209565b601a5581519081525f6020820152a1565b50565b906001600160801b03809116911603906001600160801b0382116113f957565b5f906001600160a01b0316801580156143f3575b61369e57805f52600660205260405f2090805f52600360205260405f205491815f5260086020526001600160801b03612710613d008260405f205481811690828916908282115f146143a757505f888152600860205260409020805484191684831617905590505b166135c3565b0416674563918244f400008110614398575b6001600160801b03168084111561439057613d356001600160801b03918561342d565b16925b6002820190674563918244f4000060ff835460601c1691118115808091614388575b614358578280614381575b80614362575b6143585780614351575b6140fd57816140f4575b50613ef55750600101546001600160801b0316928391613d9e81614675565b613da7816146cb565b808252600660205260406001818420019261ffff845460e01c169361ffff85146001600160801b0388169586155f14613e85575015613e64575b80546001600160801b03191690555b613dfc601154856135f3565b838252601260205282822055613e14601654856135f3565b9281526017602052205510613e4657613e38613e41926001600160801b0392613c5e565b16600c54613209565b600c55565b613e5b6001600160801b0391613e4193613c5e565b16600c5461342d565b613e6d846148fe565b805461ffff60e01b191661ffff60e01b178155613de1565b90613e8f89615437565b9015613eb557505080546001600160801b03191685179055613eb083614842565b613df0565b61ffff1614613ee057613ec7846148fe565b80546001600160801b03191685179055613eb083614842565b80546001600160801b03191685179055613df0565b82935060607f3e7edb0cb1ecdb4c259dc991a8562f41d671645e0a8cc7bb3f1250df79c4f52f918493613f2785614675565b848852601360205260408820548589526013602052886040812055613f4b866146cb565b8589526018602052604089205491600183151591826140d2575b019384549461ffff806001600160801b0388169760e01c16036140c4575b805461ffff60e01b191661ffff60e01b178155600c54613fa490879061342d565b600c556001600160801b0319815416905560ff861b198154169055868a52600860205260408a206001600160801b03198154169055868a526012602052896040812055868a526017602052896040812055816140b6575b61408c575b60405192835260208301526040820152a3602b546001600160a01b0316908161402857505050565b813b156140885782916064839260405194859384926323de665160e01b845280600485015282602485015260448401525af1801561407d57614068575050565b614073828092612d63565b61407a5750565b80fd5b6040513d84823e3d90fd5b8280fd5b600c54156140a25761409d82614a33565b614000565b6140ae82601a54613209565b601a55614000565b6140bf826149d8565b613ffb565b6140cd896148fe565b613f83565b888c5260186020528b60408120556140ec8560195461342d565b601955613f65565b9050155f613d7f565b50508294506141a460018495936001600160801b03956001600160601b0360a01b8254161781550184841685198254161781556001600160401b0342169080546001600160401b0360801b4260801b16906001600160401b0360801b1916179055855f5260076020526001600160401b0360405f20541615614327575b82546bffffffffffffffff00000000191660209190911b6bffffffffffffffff0000000016178255565b805460ff60601b1916600160601b1790556011549116906141c590826135f3565b825f52601260205260405f20556141de601654826135f3565b825f52601760205260405f20556141f482614842565b600c5461420382821592613209565b9081600c558061431c575b614295575b507f4656a88c583aaef74d563e02514fe3b09177727999cc57b9919daaf53d54ab1360208392604051908152a3602b546001600160a01b03169081614256575050565b813b15610520575f916064839260405194859384926323de665160e01b845282600485015280602485015260448401525af18015610bab57613b4d5750565b601a5492506142b16127106142a9856135c3565b04809461342d565b601a5568327cb2734119d3b7a9601e1b83029280840468327cb2734119d3b7a9601e1b14901517156113f9576020849392614311613bfe7f4656a88c583aaef74d563e02514fe3b09177727999cc57b9919daaf53d54ab13948796613606565b601655925050614213565b50601a54151561420e565b855f52600760205260405f206001600160401b0382166001600160401b031982541617905561417a565b5080613d75565b5050505050505050565b506001600160801b036001860154166001600160801b03881614613d6b565b5081613d65565b508115613d5a565b505f92613d38565b50674563918244f40000613d12565b82151590816143dd575b506143bd575b50613cfa565b5f88815260086020526040812080548519168584161790559091506143b7565b60016001607f1b03915060011c1689105f6143b1565b50805f52600b60205260ff60405f205416613c92565b919091805f52600660205260405f2092600284019060ff825460601c16156108b85784546001600160a01b0390811691160361383357815f52600760205261445d6001600160401b0360405f2054166131eb565b42106138245760ff9061446f83614500565b5460601c161561381e57614482816146cb565b805f52601860205260405f205490816144cf575b7fa36fc4ad282359d6ef9ef76f382c81149ff9d0247db534e73ba26f8a31c101976020839560018060a01b0390541693604051908152a3565b805f5260186020525f60408120556144e98260195461342d565b6019556144f882601f54613209565b601f55614496565b805f52600660205260405f2060028101805460ff8160601c16156146655781546bffffffffffffffff00000000191642602081811b6bffffffffffffffff0000000016929092179093551c6001600160401b0390811691168115801561466b575b6146655703906001600160401b0382116113f9576001810154916001600160801b038316906064820291808304606414901517156113f95763337f9800916001600160401b036145b29216906135f3565b048092811561465e5760016001607f1b039060011c16809111614656575b5081156136a257547fb66b78779920c0fe4276b3233d2a379a9561911f63b1e939bc3d66290b48286191604091614628906001600160a01b03166146148382614a86565b61462083600e54613209565b600e55613c7e565b835f5260066020526001600160801b036001835f200154166001600160801b038351921682526020820152a2565b91505f6145d0565b5050505050565b50505050565b5081811115614561565b61467e81613a0b565b815f52601360205261469560405f20918254613209565b9055805f5260066020526146bc6001600160801b03600160405f20015416601154906135f3565b905f52601260205260405f2055565b6146d4816136f2565b8061470f575b50805f5260066020526147006001600160801b03600160405f20015416601654906135f3565b905f52601760205260405f2055565b61473490825f52601860205260405f2061472a828254613209565b9055601954613209565b6019555f6146da565b6023546001600160401b03811690811580156147de575b61369e5767ffffffffffffffff198116602355600c541561369e5760401c6001600160401b031661010081018082116113f957431161369e57405f5b82811061479c57505050565b6001906147d882602254018060225560405160208101918683524460408301526060820152606081526147d0608082612d63565b519020614e1c565b01614790565b506001600160401b038160401c16600181018091116113f9574310614754565b8015613c5b575f9030825260036020526040822061481d82825461342d565b905580600254036002556040519081525f80516020615ac283398151915260203092a3565b805f52600660205260405f209060018201906148676001600160801b03835416615437565b9261ffff841692835f52600960205260405f209481549061ffff60e01b9060e01b169061ffff60e01b191617905563ffffffff6002818654169201911663ffffffff19825416179055825490600160401b821015611d0e576148d382600195866148eb950181556131ae565b90919082549060031b91821b915f19901b1916179055565b1b600a5417600a556001600f5401600f55565b5f52600660205260405f2061ffff600182015460e01c1690815f52600960205263ffffffff600260405f209201541681545f1981019081116113f95761494490836131ae565b90549060031b1c614959816148d384866131ae565b5f52600660205263ffffffff600260405f2001911663ffffffff19825416179055805480156149c4575f1901816149918280946131ae565b8154905f199060031b1b1916905555156149b2575b505f19600f5401600f55565b6001901b19600a5416600a555f6149a6565b634e487b7160e01b5f52603160045260245ffd5b8015808015614a29575b61369e5768327cb2734119d3b7a9601e1b820291820468327cb2734119d3b7a9601e1b1417156113f957614a1c614a2491600c5490613606565b601154613209565b601155565b50600c54156149e2565b8015808015614a7c575b61369e5768327cb2734119d3b7a9601e1b820291820468327cb2734119d3b7a9601e1b1417156113f957613bfe614a7791600c5490613606565b601655565b50600c5415614a3d565b90801561369e575f80516020615ac283398151915260205f9360018060a01b0316928385526003825260408520614abe82825461342d565b90558060025403600255604051908152a3565b60020b908160ff1d82810118620d89e88111614deb5763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b189160028116614dcf575b60048116614db3575b60088116614d97575b60108116614d7b575b60208116614d5f575b60408116614d43575b60808116614d27575b6101008116614d0b575b6102008116614cef575b6104008116614cd3575b6108008116614cb7575b6110008116614c9b575b6120008116614c7f575b6140008116614c63575b6180008116614c47575b620100008116614c2b575b620200008116614c10575b620400008116614bf5575b6208000016614bdc575b5f12614bd4575b0160201c90565b5f1904614bcd565b6b048a170391f7dc42444e8fa290910260801c90614bc6565b6d2216e584f5fa1ea926041bedfe9890920260801c91614bbc565b916e5d6af8dedb81196699c329225ee6040260801c91614bb1565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c91614ba6565b916f31be135f97d08fd981231505542fcfa60260801c91614b9b565b916f70d869a156d2a1b890bb3df62baf32f70260801c91614b91565b916fa9f746462d870fdf8a65dc1f90e061e50260801c91614b87565b916fd097f3bdfd2022b8845ad8f792aa58250260801c91614b7d565b916fe7159475a2c29b7443b29c7fa6e889d90260801c91614b73565b916ff3392b0822b70005940c7a398e4b70f30260801c91614b69565b916ff987a7253ac413176f2b074cf7815e540260801c91614b5f565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c91614b55565b916ffe5dee046a99a2a811c461f1969c30530260801c91614b4b565b916fff2ea16466c96a3843ec78b326b528610260801c91614b42565b916fff973b41fa98c081472e6896dfb254c00260801c91614b39565b916fffcb9843d60f6159c9db58835c9266440260801c91614b30565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c91614b27565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91614b1e565b916ffff97272373d413259a46990580e213a0260801c91614b15565b826345c3193d60e11b5f5260045260245ffd5b61ffff60019116019061ffff82116113f957565b8115612278570690565b600a548060011c16801561369e5781614e3491615815565b9061ffff82165f52600960205261ffff614e5160405f2093614dfe565b165f52600960205260405f209180548015801561542e575b61466557614ea1614f1092614e9b614e8a614e848588614e12565b836131ae565b90549060031b1c938660081c614e12565b906131ae565b90549060031b1c815f5260066020526001600160801b03600160405f20015416815f5260066020526001600160801b03600160405f2001541610155f146154265750925b614e9b8154614f00614efa828760101c614e12565b846131ae565b90549060031b1c9460181c614e12565b90549060031b1c815f5260066020526001600160801b03600160405f20015416815f5260066020526001600160801b03600160405f2001541611155f1461541e5750905b80821461369e57805f526006602052655af3107a40006001600160801b03600160405f200154161061369e57805f526007602052614f9e6001600160401b0360405f2054166131fa565b421061369e57815f526007602052614fc26001600160401b0360405f2054166131fa565b421061369e57614fd182614500565b815f52600660205260ff600260405f20015460601c161561369e57805f5260066020526001600160801b03600160405f20015416825f5260066020526001600160801b03600160405f20015416916064830292808404606414901517156113f957607d8202821593838204607d148517156113f95710614665576001600160801b0361271061505f846135db565b041692611f40830290838204611f401417156113f9576127106001600160801b0391041693615097856150928686613c5e565b613c5e565b5f83815260066020526040808220548483529120546001600160a01b0391821697911694916150c585614675565b5f8581526013602052604081208054919055966150e1866146cb565b855f52601860205260405f2054806153fc575b5f91865f52601d6020526001600160401b0360405f2054161580156153d2575b615365575b61517e6001600160801b03615156958d612710615135876135c3565b0497866151516127106151488c9a6135db565b0498899261342d565b61342d565b90615161888a613209565b80615341575b5086615314575b50806152ff575b50168a8d6158a5565b846152f0575b61519081600d54613209565b600d5561519f85600e54613209565b600e556151b38a1515998a6152dc57613c7e565b6151bc8b613c7e565b865f526006602052600160405f20018054600163ffffffff8260c01c160163ffffffff81116113f95763ffffffff60c01b1990911660c09190911b63ffffffff60c01b161790556010805460010190557fab03510af80f13614a74c13aec91979e6fd1bb3d58f4fb683d7445cd9515615095606095899289927f82c92ef84bd9e1abb026085f62720a19083da300c18c228a60da1d77b60eda179260809261526386615902565b865f52600660205260ff600260405f2001548c1c166152ce575b855f5260066020526001600160801b03600160405f20015416916040519384526020840152604083015289820152a360405192835260208301526040820152a36152c5575050565b6136f091613842565b6152d787615902565b61527d565b6152e88c601554613209565b601555613c7e565b6152fa858c614a86565b615184565b61530b90601a54613209565b601a555f615175565b5f52601b60205260405f2061532a878254613209565b905561533886601c54613209565b601c558e61516e565b61535c908d5f52601860205260405f2061472a828254613209565b6019555f615167565b9150601a54916107d08302938385046107d014841517156113f9576001600160801b0361517e9161539e6127106151569804809761342d565b601a555f8a8152601d60205260409020805467ffffffffffffffff1916436001600160401b03161790559550615119915050565b50865f52601d6020526001600160401b0360405f205416601e81018091116113f957431015615114565b865f5260186020525f60408120556154168160195461342d565b6019556150f4565b905090614f54565b905092614ee5565b50835415614e69565b5f91906001600160801b0316600160801b811015615561575b600160401b811015615547575b64010000000081101561552d575b62010000811015615513575b6101008110156154f9575b60108110156154df575b80600460029210156154c4575b10156154b4575b607e61ffff8316116154ae57565b607e9150565b906154be90614dfe565b906154a0565b61ffff90821c93160161ffff81116113f95760029092615499565b61ffff600491821c93160161ffff81116113f9579161548c565b61ffff600891821c93160161ffff81116113f95791615482565b61ffff601091821c93160161ffff81116113f95791615477565b61ffff602091821c93160161ffff81116113f9579161546b565b61ffff604091821c93160161ffff81116113f9579161545d565b50608091505f615450565b61362b9261559b9290916001600160a01b03808316908216116155a0575b90036001600160a01b03169061594b565b615a9e565b9061558a565b61362b9161559b91906001600160a01b03808216908316116155ec575b6155d96001600160a01b038281169084166159d5565b9190036001600160a01b0316905f615a1e565b906155c3565b90816020910312610520575180151581036105205790565b90816020910312610520575190565b6001600160a01b031691826156825750604051630476982d60e21b81529260209250839160049183916001600160a01b03165af18015610bab5761565a5750565b613c5b9060203d60201161567b575b6156738183612d63565b81019061560a565b503d615669565b6001600160a01b0390911691823b1561052057604051632961046560e21b815260048101829052935a945f816024818389819bf18015610bab576157ea575b50849260209290916001600160a01b0383163014615792576040516323b872dd60e01b81526001600160a01b039384166004808301919091529387168582019094019390935260448301529092839160649183915af180156157875791602091849361575a575b505b600460405180958193630476982d60e21b83525af190811561574e575061565a5750565b604051903d90823e3d90fd5b61577990833d8511615780575b6157718183612d63565b8101906155f2565b505f615728565b503d615767565b6040513d85823e3d90fd5b6044919250604051948593849263a9059cbb60e01b845288600485015260248401525af18015615787579160209184936157cd575b5061572a565b6157e390833d8511615780576157718183612d63565b505f6157c7565b60209295505f6157fc91949294612d63565b5f94919290926156c1565b5f1981146113f95760010190565b905f8291825b615885576158299250614e12565b915f925f5b61ffff8116608081101561587b5760018581921c1614615855575b60010161ffff1661582e565b9381811461587457600161586b61ffff92615807565b95915050615849565b5090915050565b5050509150505f90565b9061588f90615807565b915f198101908082116113f9571691908261581b565b82156136a25760205f80516020615ac28339815191529160018060a01b031692835f526003825260405f206158db86825461342d565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3565b602b546001600160a01b03169081615918575050565b813b15610520575f916024839260405194859384926318c85cf560e11b845260048401525af18015610bab57613b4d5750565b90606082901b905f19600160601b84099282808510940393808503948584111561052057146159ce578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b81810291905f1982820991838084109303928084039384600160601b11156105205714615a1557600160601b910990828211900360a01b910360601c1790565b50505060601c90565b91818302915f19818509938380861095039480860395868511156105205714615a96579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b906001600160801b038216809203615ab257565b6393dafdf160e01b5f5260045ffdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c9d1f6845c997b52661eff22bd99f1b3d80e77aa75f88e66022319d50530daa064736f6c634300081a0033290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5634656a88c583aaef74d563e02514fe3b09177727999cc57b9919daaf53d54ab13000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90000000000000000000000000b56e1521c9d1690430da5e79d9b6109f633a83b2
Deployed Bytecode
0x608080604052600436101561001c575b50361561001a575f80fd5b005b5f3560e01c90816301ffc9a714612cbc5750806303fd2a4514612ca057806306fdde0314612bfe57806308637d2014612be1578063095ea7b314612b6857806310d737b814612b40578063158ef93e14611e1757806318160ddd14612b23578063182148ef14612ac95780631941fd1414612a225780631be9383f14612a065780631f4c134c146129eb57806321d0ee70146128f9578063231d3c34146129ce57806323b872dd146128fe578063259982e5146128f95780632949dcf4146128c65780632a4641fe146128a457806330f30b0b14612887578063313ce5671461284a5780633269b0831461282d57806335f27dba1461280b5780633644e515146127f157806339f3d9c9146127b95780633e0dc34e1461279c5780633e5a2760146127725780634128b5421461159057806345eefaff1461275557806347ccca021461272d578063497369d2146127125780634aec00b2146125e05780634b342dd7146125c35780634dd23b761461259a5780634e71d92d146125745780635028928a1461249d5780635065a5de1461245a57806352aa78311461243d57806355b812a81461241a5780635734e4e1146123fd578063575e24b414612399578063580a38c71461237757806359c4f905146123545780635d906b3b1461232a5780635f7df800146123085780636a61f9db146122c45780636afdd8501461229b5780636c2bbe7e146116025780636fe7e6eb14611f6057806370a0823114611f2857806374bf109614611ee6578063789ff0e114611ec5578063790ca41314611e9c578063797d112b14611e6457806379f1232b14611e3c5780637af216ac14611e175780637ecebe0014611ddf57806381afbc1614611db35780638ada6b0f14611d8b57806391dd7346146118ca578063955648371461177957806395d89b411461169b57806399ef2dab146116715780639cf3ac48146116075780639f063efc146116025780639f4402d1146115e0578063a1dc17c1146115c3578063a2b9347814611595578063a34d80c014611590578063a9059cbb1461155f578063b18da39914611542578063b47b2fb11461121e578063b688a36314611205578063b6a8b0fa146106e3578063b6efaa75146111ea578063b72de6b5146111cd578063b7cdddcb14611166578063b945a48d14611149578063bbb4ab9614611116578063bcaedade146110cd578063bf333f2c146110b1578063c38dc8bc14610fde578063c4e833ce14610e77578063c50497ae14610e53578063c5d5ec9b14610e37578063c628a8bc14610d34578063c872df9514610d17578063c8a4398214610cfa578063cba0e99614610cbd578063ccc7397314610c89578063cd03c90c14610c6c578063d1d58b2514610c42578063d1ffa1c114610c20578063d4fa3fb814610bfb578063d505accf146109f1578063d5f39488146109ad578063d5fd108e14610987578063d80528ae146108c7578063d84c40571461086b578063d89135cd1461084e578063dc4c90d31461080a578063dc98354e146107cc578063dd62ed3e1461077c578063dee252d114610705578063df242396146106e8578063e1b4af69146106e3578063e64ead79146106c6578063eab2e66c146106a9578063f21c89ee146105e5578063f2c65a5514610590578063f4dd415614610574578063f5431dd014610541578063fdc92144146105245763fdf52c3f14610503575f61000f565b34610520575f366003190112610520576020602e54604051908152f35b5f80fd5b34610520575f366003190112610520576020602154604051908152f35b346105205760203660031901126105205761ffff61055d612ec6565b165f526009602052602060405f2054604051908152f35b34610520575f3660031901126105205760208054604051908152f35b34610520576020366003190112610520576001600160a01b036105b1612da8565b165f52600660205260ff600260405f20015460601c165f146105dd57602060015b60ff60405191168152f35b60205f6105d2565b34610520576040366003190112610520576004356001600160a01b03811690819003610520576024356001600160a01b03811690819003610520577f000000000000000000000000b56e1521c9d1690430da5e79d9b6109f633a83b26001600160a01b0316330361069a57602c549160ff8360a01c1661068b57602b80546001600160a01b0319169190911790556001600160a81b031990911617600160a01b17602c55005b638b9c07b360e01b5f5260045ffd5b638b906c9760e01b5f5260045ffd5b34610520575f366003190112610520576020602254604051908152f35b34610520575f366003190112610520576020601c54604051908152f35b612f7e565b34610520575f366003190112610520576020600d54604051908152f35b34610520576020366003190112610520576001600160a01b03610726612da8565b165f526006602052608060405f2060ff6002600183015492015460601c1663ffffffff604051926001600160801b03811684526001600160401b0381861c16602085015260c01c16604083015215156060820152f35b3461052057604036600319011261052057610795612da8565b61079d612dbe565b6001600160a01b039182165f908152600460209081526040808320949093168252928352819020549051908152f35b346105205760e0366003190112610520576107e5612da8565b5060a0366023190112610520576107fa612f68565b50630a85dc2960e01b5f5260045ffd5b34610520575f366003190112610520576040517f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a906001600160a01b03168152602090f35b34610520575f366003190112610520576020600e54604051908152f35b3461052057602036600319011261052057600435805f52600660205260ff600260405f20015460601c16156108b8575f526006602052602060018060a01b0360405f205416604051908152f35b6382c4767b60e01b5f5260045ffd5b34610520575f366003190112610520576101405f600f5490600c54600254600e54601054601e5490601f54926108fb613610565b94601a549660ff602a5460a01c16610950575b604080519a8b5260208b01919091528901526060880152608087015260a086015260c085015260e08401526101008301526001600160a01b0316610120820152f35b975061097e6028547f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a9061389f565b5050509761090e565b34610520575f3660031901126105205760206001600160401b0360235416604051908152f35b34610520575f366003190112610520576040517f000000000000000000000000b56e1521c9d1690430da5e79d9b6109f633a83b26001600160a01b03168152602090f35b346105205760e036600319011261052057610a0a612da8565b610a12612dbe565b6044356064359260843560ff811680910361052057428510610bb65760805f91602093610a3d612feb565b9060018060a01b03169687855260058652604085209889549960018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c08152610aba60e082612d63565b519020604051908682019261190160f01b84526022830152604282015260428152610ae6606282612d63565b519020906040519182528482015260a435604082015260c435606082015282805260015afa15610bab575f516001600160a01b031680151580610ba2575b15610b6c577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526004825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b50828114610b24565b6040513d5f823e3d90fd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b34610520575f36600319011261052057602060ff602c5460a01c166040519015158152f35b34610520575f366003190112610520576020610c3a613610565b604051908152f35b34610520576020366003190112610520576004355f526013602052602060405f2054604051908152f35b34610520575f366003190112610520576020603054604051908152f35b34610520576020366003190112610520576020610c3a600435805f5260188352610cb760405f2054916136f2565b90613209565b34610520576020366003190112610520576001600160a01b03610cde612da8565b165f52600b602052602060ff60405f2054166040519015158152f35b34610520575f366003190112610520576020601f54604051908152f35b34610520575f366003190112610520576020601454604051908152f35b3461052057602036600319011261052057600435805f52600660205260ff600260405f20015460601c16156108b857602c545f82815260066020526040808220600101549051635f2ec82d60e01b815260048101949094526001600160801b038116602485015260c01c63ffffffff16604484015290829060649082906001600160a01b03165afa8015610bab575f90610de5575b610de190604051918291602083526020830190612d84565b0390f35b503d805f833e610df58183612d63565b810190602081830312610520578051906001600160401b038211610520570181601f8201121561052057610de191816020610e3293519101613506565b610dc9565b34610520575f3660031901126105205760206040516127108152f35b34610520575f36600319011261052057602060405169152d02c7e14af68000008152f35b34610520575f366003190112610520575f6101a0604051610e9781612d47565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201526101c06020604051610efa81612d47565b5f81528181019060018252604081015f8152606082015f8152608083015f815260a084015f815260c085015f815260e0860190600182526101008701925f84526101208801945f86526101408901965f88526101608a019860018a526101a06101808c019b5f8d52019b5f8d526040519d8e915f835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b34610520576020366003190112610520576004356001600160401b0381116105205736602382011215610520578060040135906001600160401b038211610520573660248360051b83010111610520577f000000000000000000000000b56e1521c9d1690430da5e79d9b6109f633a83b26001600160a01b0316330361069a5760ff602c5460a01c1661068b575f5b8281101561001a57600581901b820160240135906001600160a01b03821680830361052057600192505f52600b60205260405f208260ff198254161790550161106d565b34610520575f3660031901126105205760206040516102bc8152f35b34610520575f36600319011261052057610de16040516110ee604082612d63565b600781526604341524e2d32360cc1b6020820152604051918291602083526020830190612d84565b34610520576020366003190112610520576004355f52600760205260206001600160401b0360405f205416604051908152f35b34610520575f366003190112610520576020600f54604051908152f35b34610520575f366003190112610520576002603154146111be57600260315561118f3333614409565b80156111af57806111a260209233613958565b6001603155604051908152f35b6312d37ee560e31b5f5260045ffd5b63558a1e0360e11b5f5260045ffd5b34610520575f366003190112610520576020601654604051908152f35b34610520575f36600319011261052057602060405160968152f35b34610520575f3660031901126105205761001a33613c7e565b346105205761016036600319011261052057611238612da8565b5060a03660231901126105205760603660c31901126105205761012435610144356001600160401b03811161052057611275903690600401612dd4565b507f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a909190506001600160a01b0382163303611533578060801d905f82600f0b125f1461152d576112c4826135a3565b600f0b9060c435801515809103610520575f60e43512149283156115265750600f0b5b5f81600f0b125f14611521576112fc906135a3565b600f0b6102bc8102908082046102bc14901517156113f957612710900492831592831591905f856114fd5750156114bd57602a546113479186913091906001600160a01b0316613af3565b61134f61473d565b61142a575b6113619150602054613209565b602055600c54611394575b6001600160801b036040915b16600f0b5b81519063b47b2fb160e01b8252600f0b6020820152f35b67ffffffffffffffff60401b4360401b16905b6020546021548091101580611415575b1561140d57670429d069189e000081018091116113f957602155816023546001600160401b0360018183160116906001600160801b03191617176023556113a7565b634e487b7160e01b5f52601160045260245ffd5b50905061136c565b5060046001600160401b0360235416106113b7565b6127108302838104612710148317156113f957612710600191049217156113f957611455828461342d565b60807f6de73609726ef2eed5f1c7d2933cf6ad038c7788f9d9fba204687c08e09d51459184611361956114af575b61148f82602454613209565b6024556040519187835260208301525f60408301526060820152a1611354565b6114b8816147fe565b611483565b6029546040956001600160801b039550936114f89350916114ea91859130916001600160a01b0316613af3565b6114f383613b57565b613a54565b611378565b94505050506040925080611512575b5061137d565b61151b90613a54565b8261150c565b6112fc565b90506112e7565b816112c4565b63f655705d60e01b5f5260045ffd5b34610520575f366003190112610520576020602454604051908152f35b3461052057604036600319011261052057602061158661157d612da8565b6024359061353c565b6040519015158152f35b612eac565b34610520576020366003190112610520576020610c3a600435805f5260138352610cb760405f205491613a0b565b34610520575f366003190112610520576020600a54604051908152f35b34610520575f366003190112610520576020604051674563918244f400008152f35b612f0a565b34610520575f366003190112610520576002603154146111be576002603155335f52601b60205260405f205480156111af57602090335f52601b82525f604081205561165581601c5461342d565b601c5561166481601f54613209565b601f556111a28133613958565b34610520576020366003190112610520576004355f526017602052602060405f2054604051908152f35b34610520575f366003190112610520576040515f6001546116bb81612d0f565b808452906001811690811561175557506001146116f7575b610de1836116e381850382612d63565b604051918291602083526020830190612d84565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b80821061173b575090915081016020016116e36116d3565b919260018160209254838588010152019101909291611723565b60ff191660208086019190915291151560051b840190910191506116e390506116d3565b346105205760203660031901126105205760043560ff602a5460a01c16156118bb5780156118ac575f816117b06117f1933061353c565b50604051906020820152336040820152604081526117cf606082612d63565b604051809381926348c8949160e01b8352602060048401526024830190612d84565b0381837f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a906001600160a01b03165af1908115610bab575f9161185c575b5060208180518101031261052057602001516001600160801b03811680910361052057602090604051908152f35b90503d805f833e61186d8183612d63565b810190602081830312610520578051906001600160401b03821161052057019080601f830112156105205781516118a692602001613506565b8161182e565b631f2a200560e01b5f5260045ffd5b6321c4e35760e21b5f5260045ffd5b34610520576020366003190112610520576004356001600160401b038111610520576118fa903690600401612dd4565b7f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a906001600160a01b0381169133839003611d7c57836040918101031261052057602083359301359160018060a01b0383168093036105205761195e6028548361389f565b5050506001600160801b03602c548060a81c60020b9261197d84614ad1565b9160c01c60020b9761198e89614ad1565b9182846001600160a01b0380831690821611611d70575b50506001600160a01b038181169085168111611d22575050506119c7916155a6565b169485611ac3575b505050506119ee6119e56014546015549061342d565b60245490613209565b305f52600360205260405f2054908082115f14611abb57611a0e9161342d565b80611aab575b50611a1d613610565b479080821115611aa257611a309161342d565b905b81611a54575b610de183604051906020820152602081526116e3604082612d63565b5f80809381935af1611a6461343a565b5015611a71578180611a38565b60405162461bcd60e51b815260206004820152600960248201526806574682073776565760bc1b6044820152606490fd5b50505f90611a32565b611ab59082613842565b82611a14565b50505f611a0e565b60405160808101908082106001600160401b03831117611d0e576040936101649285528152602081019283525f848201958987526060830182815286519788968795632d35e7ed60e11b875260018060a01b0360255416600488015260265460018060a01b038116602489015262ffffff8160a01c16604489015260b81c60020b606488015260018060a01b036027541660848801525160020b60a48701525160020b60c48601525160e485015251610104840152610140610124840152816101448401525af1908115610bab575f91611cdc575b508060801d81600f0b9281600f0b925f84129182611cac575b5f8087129586611c7c575b13611c53575b5f8613611c2b575b5050611c05575b50611bdf575b8080806119cf565b6001600160801b03611bf3611bfc926135a3565b16602e54613209565b602e5582611bd7565b6001600160801b03611c19611c22926135a3565b16602d54613209565b602d5584611bd1565b602a54611c4c926001600160801b03169130916001600160a01b0316613af3565b8680611bca565b602954611c77906001600160801b03861690309084906001600160a01b0316613af3565b611bc2565b602a54611ca7906001600160a01b03166001600160801b03611c9d8b6135a3565b1690853091615619565b611bbc565b602954611cd7906001600160a01b03166001600160801b03611ccd876135a3565b1690833091615619565b611bb1565b90506040813d604011611d06575b81611cf760409383612d63565b81010312610520575184611b98565b3d9150611cea565b634e487b7160e01b5f52604160045260245ffd5b919290916001600160a01b0382161115611d655790611d45611d4b9392826155a6565b9361556c565b8083168284161015611d5e57505b6119c7565b90506119c7565b9050611d599261556c565b90945092508a806119a5565b63570c108560e11b5f5260045ffd5b34610520575f36600319011261052057602c546040516001600160a01b039091168152602090f35b34610520575f366003190112610520576020611dcd6134c2565b6040516001600160a01b039091168152f35b34610520576020366003190112610520576001600160a01b03611e00612da8565b165f526005602052602060405f2054604051908152f35b34610520575f36600319011261052057602060ff602a5460a01c166040519015158152f35b34610520575f366003190112610520576029546040516001600160a01b039091168152602090f35b34610520576020366003190112610520576001600160a01b03611e85612da8565b165f52602f602052602060405f2054604051908152f35b34610520575f3660031901126105205760206001600160401b03602a5460a81c16604051908152f35b34610520575f366003190112610520576020610c3a6014546015549061342d565b3461052057611ef436612e72565b5050602b546001600160a01b031633039050611f1957631c23832760e21b5f5260045ffd5b631a3e2ebd60e11b5f5260045ffd5b34610520576020366003190112610520576001600160a01b03611f49612da8565b165f526003602052602060405f2054604051908152f35b346105205761010036600319011261052057611f7a612da8565b60a036602319011261052057611f8e612f68565b5060e435908160020b809203610520577f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a906001600160a01b0316330361153357602a549060ff8260a01c1661228c576001600160a01b037f000000000000000000000000b56e1521c9d1690430da5e79d9b6109f633a83b2811691160361069a5768ffffffffffffffffff60a01b19164260a81b67ffffffffffffffff60a81b1617600160a01b17602a556001600160a01b03612049613469565b166001600160601b0360a01b602554161760255560018060a01b0361206c61347f565b166001600160601b0360a01b602654161760265560643562ffffff811681036105205760265461209a613495565b60b81b62ffffff60b81b1662ffffff60a01b60a084901b1665ffffffffffff60a01b1992909216919091171760265560a435906001600160a01b038216808303610520576001600160601b0360a01b60275416176027556040519060a082018281106001600160401b03821117611d0e57604052612116612dbe565b82526044356001600160a01b03811681036105205760208301526040820152608435918260020b83036105205760a092606083015260808201522060285560018060a01b03612163613469565b166001600160601b0360a01b602954161760295560018060a01b0361218661347f565b166001600160601b0360a01b602a541617602a556121a2613495565b908160020b801561227857627fffff1982145f198214166113f9578080830560020b02918260020b9283036113f957839083818113612264575b508360020b14612253575b50602c549160c01b62ffffff60c01b169262ffffff60a81b91620d89e719050260a81b169065ffffffffffff60a81b1916171780602c558060a81c60020b9060c01c60020b131561224457604051636fe7e6eb60e01b8152602090f35b630df22a0f60e21b5f5260045ffd5b61225d91926134a5565b90826121e7565b61227191945082906134a5565b92856121dc565b634e487b7160e01b5f52601260045260245ffd5b633bcd329760e21b5f5260045ffd5b34610520575f3660031901126105205760206040516e22d473030f116dfc393ebe6f5c32b28152f35b346105205760403660031901126105205761ffff6122e0612ec6565b165f52600960205260206122f960243560405f206131ae565b90549060031b1c604051908152f35b34610520575f366003190112610520576020601f54601e541015604051908152f35b34610520576020366003190112610520576004355f526018602052602060405f2054604051908152f35b34610520575f366003190112610520576020602c5460a81c60020b604051908152f35b34610520575f36600319011261052057604051634bdb3f8f60e01b8152602090f35b3461052057610140366003190112610520576123b3612da8565b5060a03660231901126105205760603660c319011261052057610124356001600160401b038111610520576123ec903690600401612dd4565b5050630a85dc2960e01b5f5260045ffd5b34610520575f366003190112610520576020601954604051908152f35b34610520575f366003190112610520576020602c5460c01c60020b604051908152f35b34610520575f366003190112610520576020601154604051908152f35b34610520576020366003190112610520576001600160a01b0361247b612da8565b165f526006602052602060ff600260405f20015460601c166040519015158152f35b34610520575f366003190112610520576002603154146111be576002603155335f52602f60205260405f205480156111af57335f52602f6020525f60408120556124e98160305461342d565b6030555f80808084335af16124fc61343a565b501561253d576020906040518181527f8b2dcc27428e35ab88db8017f204275779127ad5e04adc1d01e3d8f356ef1463833392a26001603155604051908152f35b60405162461bcd60e51b815260206004820152600f60248201526e195d1a08195cd8dc9bddc81c1d5b1b608a1b6044820152606490fd5b34610520575f366003190112610520576020612590333361373f565b610c3a8133613842565b34610520575f3660031901126105205760206001600160401b0360235460401c16604051908152f35b34610520575f366003190112610520576020601054604051908152f35b34610520576060366003190112610520576126096125fc612ec6565b6044359060243590613216565b9396956126286040969294939651976101008952610100890190612ed7565b8781036020890152602080835192838152019201905f5b8181106126f3575050508681036040880152602080835192838152019201905f5b8181106126d4575050508581036060870152602080885192838152019701905f5b8181106126b8575050506126a18661ffff92878099036080890152612ed7565b931660a085015260c0840152151560e08301520390f35b825163ffffffff16895260209889019890920191600101612681565b82516001600160801b0316845260209384019390920191600101612660565b82516001600160a01b031684526020938401939092019160010161263f565b34610520575f36600319011261052057602060405160048152f35b34610520575f36600319011261052057602b546040516001600160a01b039091168152602090f35b34610520575f366003190112610520576020602d54604051908152f35b34610520576020366003190112610520576004355f526012602052602060405f2054604051908152f35b34610520575f366003190112610520576020602854604051908152f35b34610520576020366003190112610520576001600160a01b036127da612da8565b165f52601b602052602060405f2054604051908152f35b34610520575f366003190112610520576020610c3a612feb565b34610520575f3660031901126105205760206015546014541015604051908152f35b34610520575f366003190112610520576020600c54604051908152f35b34610520575f36600319011261052057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000012168152f35b34610520575f366003190112610520576020601554604051908152f35b34610520575f366003190112610520576020604051670429d069189e00008152f35b34610520576020366003190112610520576004355f52600860205260206001600160801b0360405f205416604051908152f35b612e01565b346105205761299a61290f36612e72565b61291b8183949361362e565b6001600160a01b0382165f81815260046020908152604080832033845290915290205482600182016129a5575b5050805f52600360205260405f2061296183825461342d565b90555f80516020615ac2833981519152602060018060a01b03861693845f526003825260405f20818154019055604051908152a36136c8565b602060405160018152f35b6129ae9161342d565b5f8281526004602090815260408083203384529091529020558582612948565b34610520575f366003190112610520576020601e54604051908152f35b34610520575f36600319011261052057602060405160018152f35b34610520575f3660031901126105205760206040516102588152f35b34610520576020366003190112610520576004355f52600660205261010060405f2060ff60018060a01b038254169161ffff60026001830154920154916040519485526001600160801b03811660208601526001600160401b038160801c16604086015263ffffffff8160c01c16606086015260e01c16608084015263ffffffff811660a08401526001600160401b038160201c1660c084015260601c16151560e0820152f35b34610520575f36600319011261052057602554602654602754604080516001600160a01b039485168152838516602082015260a084811c62ffffff169282019290925260b89390931c60020b606084015292166080820152f35b34610520575f366003190112610520576020600254604051908152f35b34610520575f36600319011261052057602a546040516001600160a01b039091168152602090f35b3461052057604036600319011261052057612b81612da8565b335f8181526004602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b34610520575f366003190112610520576020601a54604051908152f35b34610520575f366003190112610520576040515f8054612c1d81612d0f565b80845290600181169081156117555750600114612c4457610de1836116e381850382612d63565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b808210612c86575090915081016020016116e36116d3565b919260018160209254838588010152019101909291612c6e565b34610520575f36600319011261052057602060405161dead8152f35b34610520576020366003190112610520576004359063ffffffff60e01b8216809203610520576020916301ffc9a760e01b8114908115612cfe575b5015158152f35b634bdb3f8f60e01b14905083612cf7565b90600182811c92168015612d3d575b6020831014612d2957565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612d1e565b6101c081019081106001600160401b03821117611d0e57604052565b90601f801991011681019081106001600160401b03821117611d0e57604052565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361052057565b602435906001600160a01b038216820361052057565b9181601f84011215610520578235916001600160401b038311610520576020838186019501011161052057565b3461052057610160366003190112610520576004356001600160a01b0381168103610520575060a03660231901126105205760803660c319011261052057610144356001600160401b03811161052057612e5f903690600401612dd4565b5050630a85dc2960e01b5f908152600490fd5b6060906003190112610520576004356001600160a01b038116810361052057906024356001600160a01b0381168103610520579060443590565b34610520575f3660031901126105205760206040515f8152f35b6004359061ffff8216820361052057565b90602080835192838152019201905f5b818110612ef45750505090565b8251845260209384019390920191600101612ee7565b34610520576101a0366003190112610520576004356001600160a01b0381168103610520575060a03660231901126105205760803660c319011261052057610184356001600160401b03811161052057612e5f903690600401612dd4565b60c435906001600160a01b038216820361052057565b3461052057610120366003190112610520576004356001600160a01b0381168103610520575060a036602319011261052057610104356001600160401b03811161052057612e5f903690600401612dd4565b6001600160401b038111611d0e57601f01601f191660200190565b467f000000000000000000000000000000000000000000000000000000000000000103613036577f6cfb7ac953d099f1cb4356b9e6d862006b93e161a617cdee6fd96da36832716390565b6040515f905f54918161304884612d0f565b9182825260208201946001811690815f1461314957506001146130ec575b61307292500382612d63565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526130e660c082612d63565b51902090565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061312d57505090602061307292820101613066565b6020919350806001915483858801015201910190918392613115565b60ff191686525061307292151560051b82016020019050613066565b6001600160401b038111611d0e5760051b60200190565b9061318682613165565b6131936040519182612d63565b82815280926131a4601f1991613165565b0190602036910137565b80548210156131c3575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b80518210156131c35760209160051b010190565b90610e1082018092116113f957565b9061012c82018092116113f957565b919082018092116113f957565b90915f935f92607e61ffff821611613425575b82156133a75761323a83959361317c565b956132448661317c565b9461324e8761317c565b946132588861317c565b946132628961317c565b945f906001935b61ffff821690815f5260096020528d60405f208054915b8284106132d1575b5050505084156132c057156132a4575f190161ffff165f613269565b50909192939495969798505b808a528089528088528087528552565b5050909192939495969798506132b0565b8f959f87929497969395961461338e57818f8f8f948f9261337890600197613361848f61337e978c8f9c61330b63ffffffff94839f6131ae565b90549060031b1c97885f5260066020528861332a8760405f20946131d7565b5261333e86848060a01b03845416926131d7565b52015490613356846001600160801b038416926131d7565b5260c01c16926131d7565b52805f526018602052610cb760405f2054916136f2565b926131d7565b5201950192909d9392918f613280565b509498509c9650505092508394935f935f80808f613288565b9250929350506020604051916133bd8284612d63565b5f83525f368137604051946133d28387612d63565b5f86525f368137604051946133e78487612d63565b5f86525f368137604051946133fc8587612d63565b5f86525f368137604051946134118187612d63565b5f8652505f36813796959493929190600190565b50607e613229565b919082039182116113f957565b3d15613464573d9061344b82612fd0565b916134596040519384612d63565b82523d5f602084013e565b606090565b6024356001600160a01b03811681036105205790565b6044356001600160a01b03811681036105205790565b6084358060020b81036105205790565b600291820b910b0390627fffff198212627fffff8313176113f957565b60ff602a5460a01c1615613502576134fc6028547f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a9061389f565b50505090565b5f90565b92919261351282612fd0565b916135206040519384612d63565b829481845281830111610520578281602093845f96015e010152565b61359e9161354a818361362e565b335f52600360205260405f2061356182825461342d565b905560018060a01b03821690815f52600360205260405f208181540190556040519081525f80516020615ac283398151915260203392a3336136c8565b600190565b600f0b6f7fffffffffffffffffffffffffffffff1981146113f9575f0390565b90611b58820291808304611b5814901517156113f957565b906103e88202918083046103e814901517156113f957565b818102929181159184041417156113f957565b8115612278570490565b61362b613622601e54601f549061342d565b60305490613209565b90565b6001600160401b03602a5460a81c16801580156136a7575b6136a25761025881018091116113f95742101561369e576001600160a01b03165f90815260036020526040902054685150ae84a8cdf000009161368891613209565b1161368f57565b630949534d60e31b5f5260045ffd5b5050565b505050565b506001600160a01b0382165f908152600b602052604090205460ff16613646565b6136d181613c7e565b6001600160a01b03908116908216036136e75750565b6136f090613c7e565b565b61373b68327cb2734119d3b7a9601e1b91805f5260066020526137286001600160801b03600160405f20015416601654906135f3565b905f52601760205260405f20549061342d565b0490565b919091805f52600660205260405f2092600284019060ff825460601c16156108b85784546001600160a01b0390811691160361383357815f5260076020526137936001600160401b0360405f2054166131eb565b42106138245760ff906137a583614500565b5460601c161561381e576137b881614675565b6137c1816146cb565b5f81815260136020526040812080549190556015549093906137e4908590613209565b60155560018060a01b03905416907f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0266020604051868152a3565b505f9150565b63949682a560e01b5f5260045ffd5b6330cd747160e01b5f5260045ffd5b811561369e576136f091305f52600360205260405f2061386382825461342d565b905560018060a01b03821690815f52600360205260405f208181540190556040519081525f80516020615ac283398151915260203092a3613c7e565b919060209060405182810191825260066040820152604081526138c3606082612d63565b519020604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa918215610bab575f92613924575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d602011613950575b8161394060209383612d63565b810103126105205751905f6138fc565b3d9150613933565b811561369e575f8080808585617530f161397061343a565b50156139ae576040519182526001600160a01b0316907fc4e5d7ce17280dbdf87dfb6bb06569619aa9d89aaa6b6ab0d552104f149c9efb90602090a2565b60207f2dada958100cb621203a92187e503274d4e4e793340a6ec4ee332d6be650c9489160018060a01b031692835f52602f825260405f206139f1828254613209565b90556139ff81603054613209565b603055604051908152a2565b61373b68327cb2734119d3b7a9601e1b91805f526006602052613a416001600160801b03600160405f20015416601154906135f3565b905f52601260205260405f20549061342d565b613a6890613a6061473d565b602054613209565b602055600c54613a7457565b67ffffffffffffffff60401b4360401b16905b6020546021548091101580613ade575b15613ad957670429d069189e000081018091116113f957602155816023546001600160401b0360018183160116906001600160801b0319161717602355613a87565b509050565b5060046001600160401b036023541610613a97565b91906001600160a01b0316803b1561052057604051630b0d9c0960e01b81526001600160a01b03938416600482015291909216602482015260448101929092525f908290606490829084905af18015610bab57613b4d5750565b5f6136f091612d63565b8015613c5b57613b6981601e54613209565b601e55600c54908115613c1857613ba4613b8f612710613b88846135c3565b048361342d565b613b9b81601a54613209565b601a558261342d565b9068327cb2734119d3b7a9601e1b82029180830468327cb2734119d3b7a9601e1b14901517156113f957613c06613bfe7f383ec0c204ff8c36a11c6afc73304cd3c68e4a9bf71684d0950d3c9df5fa900294604094613606565b601654613209565b601655815190815260016020820152a1565b7f383ec0c204ff8c36a11c6afc73304cd3c68e4a9bf71684d0950d3c9df5fa9002915080613c4a604092601a54613209565b601a5581519081525f6020820152a1565b50565b906001600160801b03809116911603906001600160801b0382116113f957565b5f906001600160a01b0316801580156143f3575b61369e57805f52600660205260405f2090805f52600360205260405f205491815f5260086020526001600160801b03612710613d008260405f205481811690828916908282115f146143a757505f888152600860205260409020805484191684831617905590505b166135c3565b0416674563918244f400008110614398575b6001600160801b03168084111561439057613d356001600160801b03918561342d565b16925b6002820190674563918244f4000060ff835460601c1691118115808091614388575b614358578280614381575b80614362575b6143585780614351575b6140fd57816140f4575b50613ef55750600101546001600160801b0316928391613d9e81614675565b613da7816146cb565b808252600660205260406001818420019261ffff845460e01c169361ffff85146001600160801b0388169586155f14613e85575015613e64575b80546001600160801b03191690555b613dfc601154856135f3565b838252601260205282822055613e14601654856135f3565b9281526017602052205510613e4657613e38613e41926001600160801b0392613c5e565b16600c54613209565b600c55565b613e5b6001600160801b0391613e4193613c5e565b16600c5461342d565b613e6d846148fe565b805461ffff60e01b191661ffff60e01b178155613de1565b90613e8f89615437565b9015613eb557505080546001600160801b03191685179055613eb083614842565b613df0565b61ffff1614613ee057613ec7846148fe565b80546001600160801b03191685179055613eb083614842565b80546001600160801b03191685179055613df0565b82935060607f3e7edb0cb1ecdb4c259dc991a8562f41d671645e0a8cc7bb3f1250df79c4f52f918493613f2785614675565b848852601360205260408820548589526013602052886040812055613f4b866146cb565b8589526018602052604089205491600183151591826140d2575b019384549461ffff806001600160801b0388169760e01c16036140c4575b805461ffff60e01b191661ffff60e01b178155600c54613fa490879061342d565b600c556001600160801b0319815416905560ff861b198154169055868a52600860205260408a206001600160801b03198154169055868a526012602052896040812055868a526017602052896040812055816140b6575b61408c575b60405192835260208301526040820152a3602b546001600160a01b0316908161402857505050565b813b156140885782916064839260405194859384926323de665160e01b845280600485015282602485015260448401525af1801561407d57614068575050565b614073828092612d63565b61407a5750565b80fd5b6040513d84823e3d90fd5b8280fd5b600c54156140a25761409d82614a33565b614000565b6140ae82601a54613209565b601a55614000565b6140bf826149d8565b613ffb565b6140cd896148fe565b613f83565b888c5260186020528b60408120556140ec8560195461342d565b601955613f65565b9050155f613d7f565b50508294506141a460018495936001600160801b03956001600160601b0360a01b8254161781550184841685198254161781556001600160401b0342169080546001600160401b0360801b4260801b16906001600160401b0360801b1916179055855f5260076020526001600160401b0360405f20541615614327575b82546bffffffffffffffff00000000191660209190911b6bffffffffffffffff0000000016178255565b805460ff60601b1916600160601b1790556011549116906141c590826135f3565b825f52601260205260405f20556141de601654826135f3565b825f52601760205260405f20556141f482614842565b600c5461420382821592613209565b9081600c558061431c575b614295575b507f4656a88c583aaef74d563e02514fe3b09177727999cc57b9919daaf53d54ab1360208392604051908152a3602b546001600160a01b03169081614256575050565b813b15610520575f916064839260405194859384926323de665160e01b845282600485015280602485015260448401525af18015610bab57613b4d5750565b601a5492506142b16127106142a9856135c3565b04809461342d565b601a5568327cb2734119d3b7a9601e1b83029280840468327cb2734119d3b7a9601e1b14901517156113f9576020849392614311613bfe7f4656a88c583aaef74d563e02514fe3b09177727999cc57b9919daaf53d54ab13948796613606565b601655925050614213565b50601a54151561420e565b855f52600760205260405f206001600160401b0382166001600160401b031982541617905561417a565b5080613d75565b5050505050505050565b506001600160801b036001860154166001600160801b03881614613d6b565b5081613d65565b508115613d5a565b505f92613d38565b50674563918244f40000613d12565b82151590816143dd575b506143bd575b50613cfa565b5f88815260086020526040812080548519168584161790559091506143b7565b60016001607f1b03915060011c1689105f6143b1565b50805f52600b60205260ff60405f205416613c92565b919091805f52600660205260405f2092600284019060ff825460601c16156108b85784546001600160a01b0390811691160361383357815f52600760205261445d6001600160401b0360405f2054166131eb565b42106138245760ff9061446f83614500565b5460601c161561381e57614482816146cb565b805f52601860205260405f205490816144cf575b7fa36fc4ad282359d6ef9ef76f382c81149ff9d0247db534e73ba26f8a31c101976020839560018060a01b0390541693604051908152a3565b805f5260186020525f60408120556144e98260195461342d565b6019556144f882601f54613209565b601f55614496565b805f52600660205260405f2060028101805460ff8160601c16156146655781546bffffffffffffffff00000000191642602081811b6bffffffffffffffff0000000016929092179093551c6001600160401b0390811691168115801561466b575b6146655703906001600160401b0382116113f9576001810154916001600160801b038316906064820291808304606414901517156113f95763337f9800916001600160401b036145b29216906135f3565b048092811561465e5760016001607f1b039060011c16809111614656575b5081156136a257547fb66b78779920c0fe4276b3233d2a379a9561911f63b1e939bc3d66290b48286191604091614628906001600160a01b03166146148382614a86565b61462083600e54613209565b600e55613c7e565b835f5260066020526001600160801b036001835f200154166001600160801b038351921682526020820152a2565b91505f6145d0565b5050505050565b50505050565b5081811115614561565b61467e81613a0b565b815f52601360205261469560405f20918254613209565b9055805f5260066020526146bc6001600160801b03600160405f20015416601154906135f3565b905f52601260205260405f2055565b6146d4816136f2565b8061470f575b50805f5260066020526147006001600160801b03600160405f20015416601654906135f3565b905f52601760205260405f2055565b61473490825f52601860205260405f2061472a828254613209565b9055601954613209565b6019555f6146da565b6023546001600160401b03811690811580156147de575b61369e5767ffffffffffffffff198116602355600c541561369e5760401c6001600160401b031661010081018082116113f957431161369e57405f5b82811061479c57505050565b6001906147d882602254018060225560405160208101918683524460408301526060820152606081526147d0608082612d63565b519020614e1c565b01614790565b506001600160401b038160401c16600181018091116113f9574310614754565b8015613c5b575f9030825260036020526040822061481d82825461342d565b905580600254036002556040519081525f80516020615ac283398151915260203092a3565b805f52600660205260405f209060018201906148676001600160801b03835416615437565b9261ffff841692835f52600960205260405f209481549061ffff60e01b9060e01b169061ffff60e01b191617905563ffffffff6002818654169201911663ffffffff19825416179055825490600160401b821015611d0e576148d382600195866148eb950181556131ae565b90919082549060031b91821b915f19901b1916179055565b1b600a5417600a556001600f5401600f55565b5f52600660205260405f2061ffff600182015460e01c1690815f52600960205263ffffffff600260405f209201541681545f1981019081116113f95761494490836131ae565b90549060031b1c614959816148d384866131ae565b5f52600660205263ffffffff600260405f2001911663ffffffff19825416179055805480156149c4575f1901816149918280946131ae565b8154905f199060031b1b1916905555156149b2575b505f19600f5401600f55565b6001901b19600a5416600a555f6149a6565b634e487b7160e01b5f52603160045260245ffd5b8015808015614a29575b61369e5768327cb2734119d3b7a9601e1b820291820468327cb2734119d3b7a9601e1b1417156113f957614a1c614a2491600c5490613606565b601154613209565b601155565b50600c54156149e2565b8015808015614a7c575b61369e5768327cb2734119d3b7a9601e1b820291820468327cb2734119d3b7a9601e1b1417156113f957613bfe614a7791600c5490613606565b601655565b50600c5415614a3d565b90801561369e575f80516020615ac283398151915260205f9360018060a01b0316928385526003825260408520614abe82825461342d565b90558060025403600255604051908152a3565b60020b908160ff1d82810118620d89e88111614deb5763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b189160028116614dcf575b60048116614db3575b60088116614d97575b60108116614d7b575b60208116614d5f575b60408116614d43575b60808116614d27575b6101008116614d0b575b6102008116614cef575b6104008116614cd3575b6108008116614cb7575b6110008116614c9b575b6120008116614c7f575b6140008116614c63575b6180008116614c47575b620100008116614c2b575b620200008116614c10575b620400008116614bf5575b6208000016614bdc575b5f12614bd4575b0160201c90565b5f1904614bcd565b6b048a170391f7dc42444e8fa290910260801c90614bc6565b6d2216e584f5fa1ea926041bedfe9890920260801c91614bbc565b916e5d6af8dedb81196699c329225ee6040260801c91614bb1565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c91614ba6565b916f31be135f97d08fd981231505542fcfa60260801c91614b9b565b916f70d869a156d2a1b890bb3df62baf32f70260801c91614b91565b916fa9f746462d870fdf8a65dc1f90e061e50260801c91614b87565b916fd097f3bdfd2022b8845ad8f792aa58250260801c91614b7d565b916fe7159475a2c29b7443b29c7fa6e889d90260801c91614b73565b916ff3392b0822b70005940c7a398e4b70f30260801c91614b69565b916ff987a7253ac413176f2b074cf7815e540260801c91614b5f565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c91614b55565b916ffe5dee046a99a2a811c461f1969c30530260801c91614b4b565b916fff2ea16466c96a3843ec78b326b528610260801c91614b42565b916fff973b41fa98c081472e6896dfb254c00260801c91614b39565b916fffcb9843d60f6159c9db58835c9266440260801c91614b30565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c91614b27565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91614b1e565b916ffff97272373d413259a46990580e213a0260801c91614b15565b826345c3193d60e11b5f5260045260245ffd5b61ffff60019116019061ffff82116113f957565b8115612278570690565b600a548060011c16801561369e5781614e3491615815565b9061ffff82165f52600960205261ffff614e5160405f2093614dfe565b165f52600960205260405f209180548015801561542e575b61466557614ea1614f1092614e9b614e8a614e848588614e12565b836131ae565b90549060031b1c938660081c614e12565b906131ae565b90549060031b1c815f5260066020526001600160801b03600160405f20015416815f5260066020526001600160801b03600160405f2001541610155f146154265750925b614e9b8154614f00614efa828760101c614e12565b846131ae565b90549060031b1c9460181c614e12565b90549060031b1c815f5260066020526001600160801b03600160405f20015416815f5260066020526001600160801b03600160405f2001541611155f1461541e5750905b80821461369e57805f526006602052655af3107a40006001600160801b03600160405f200154161061369e57805f526007602052614f9e6001600160401b0360405f2054166131fa565b421061369e57815f526007602052614fc26001600160401b0360405f2054166131fa565b421061369e57614fd182614500565b815f52600660205260ff600260405f20015460601c161561369e57805f5260066020526001600160801b03600160405f20015416825f5260066020526001600160801b03600160405f20015416916064830292808404606414901517156113f957607d8202821593838204607d148517156113f95710614665576001600160801b0361271061505f846135db565b041692611f40830290838204611f401417156113f9576127106001600160801b0391041693615097856150928686613c5e565b613c5e565b5f83815260066020526040808220548483529120546001600160a01b0391821697911694916150c585614675565b5f8581526013602052604081208054919055966150e1866146cb565b855f52601860205260405f2054806153fc575b5f91865f52601d6020526001600160401b0360405f2054161580156153d2575b615365575b61517e6001600160801b03615156958d612710615135876135c3565b0497866151516127106151488c9a6135db565b0498899261342d565b61342d565b90615161888a613209565b80615341575b5086615314575b50806152ff575b50168a8d6158a5565b846152f0575b61519081600d54613209565b600d5561519f85600e54613209565b600e556151b38a1515998a6152dc57613c7e565b6151bc8b613c7e565b865f526006602052600160405f20018054600163ffffffff8260c01c160163ffffffff81116113f95763ffffffff60c01b1990911660c09190911b63ffffffff60c01b161790556010805460010190557fab03510af80f13614a74c13aec91979e6fd1bb3d58f4fb683d7445cd9515615095606095899289927f82c92ef84bd9e1abb026085f62720a19083da300c18c228a60da1d77b60eda179260809261526386615902565b865f52600660205260ff600260405f2001548c1c166152ce575b855f5260066020526001600160801b03600160405f20015416916040519384526020840152604083015289820152a360405192835260208301526040820152a36152c5575050565b6136f091613842565b6152d787615902565b61527d565b6152e88c601554613209565b601555613c7e565b6152fa858c614a86565b615184565b61530b90601a54613209565b601a555f615175565b5f52601b60205260405f2061532a878254613209565b905561533886601c54613209565b601c558e61516e565b61535c908d5f52601860205260405f2061472a828254613209565b6019555f615167565b9150601a54916107d08302938385046107d014841517156113f9576001600160801b0361517e9161539e6127106151569804809761342d565b601a555f8a8152601d60205260409020805467ffffffffffffffff1916436001600160401b03161790559550615119915050565b50865f52601d6020526001600160401b0360405f205416601e81018091116113f957431015615114565b865f5260186020525f60408120556154168160195461342d565b6019556150f4565b905090614f54565b905092614ee5565b50835415614e69565b5f91906001600160801b0316600160801b811015615561575b600160401b811015615547575b64010000000081101561552d575b62010000811015615513575b6101008110156154f9575b60108110156154df575b80600460029210156154c4575b10156154b4575b607e61ffff8316116154ae57565b607e9150565b906154be90614dfe565b906154a0565b61ffff90821c93160161ffff81116113f95760029092615499565b61ffff600491821c93160161ffff81116113f9579161548c565b61ffff600891821c93160161ffff81116113f95791615482565b61ffff601091821c93160161ffff81116113f95791615477565b61ffff602091821c93160161ffff81116113f9579161546b565b61ffff604091821c93160161ffff81116113f9579161545d565b50608091505f615450565b61362b9261559b9290916001600160a01b03808316908216116155a0575b90036001600160a01b03169061594b565b615a9e565b9061558a565b61362b9161559b91906001600160a01b03808216908316116155ec575b6155d96001600160a01b038281169084166159d5565b9190036001600160a01b0316905f615a1e565b906155c3565b90816020910312610520575180151581036105205790565b90816020910312610520575190565b6001600160a01b031691826156825750604051630476982d60e21b81529260209250839160049183916001600160a01b03165af18015610bab5761565a5750565b613c5b9060203d60201161567b575b6156738183612d63565b81019061560a565b503d615669565b6001600160a01b0390911691823b1561052057604051632961046560e21b815260048101829052935a945f816024818389819bf18015610bab576157ea575b50849260209290916001600160a01b0383163014615792576040516323b872dd60e01b81526001600160a01b039384166004808301919091529387168582019094019390935260448301529092839160649183915af180156157875791602091849361575a575b505b600460405180958193630476982d60e21b83525af190811561574e575061565a5750565b604051903d90823e3d90fd5b61577990833d8511615780575b6157718183612d63565b8101906155f2565b505f615728565b503d615767565b6040513d85823e3d90fd5b6044919250604051948593849263a9059cbb60e01b845288600485015260248401525af18015615787579160209184936157cd575b5061572a565b6157e390833d8511615780576157718183612d63565b505f6157c7565b60209295505f6157fc91949294612d63565b5f94919290926156c1565b5f1981146113f95760010190565b905f8291825b615885576158299250614e12565b915f925f5b61ffff8116608081101561587b5760018581921c1614615855575b60010161ffff1661582e565b9381811461587457600161586b61ffff92615807565b95915050615849565b5090915050565b5050509150505f90565b9061588f90615807565b915f198101908082116113f9571691908261581b565b82156136a25760205f80516020615ac28339815191529160018060a01b031692835f526003825260405f206158db86825461342d565b90556001600160a01b03165f818152600383526040908190208054870190555194855293a3565b602b546001600160a01b03169081615918575050565b813b15610520575f916024839260405194859384926318c85cf560e11b845260048401525af18015610bab57613b4d5750565b90606082901b905f19600160601b84099282808510940393808503948584111561052057146159ce578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b81810291905f1982820991838084109303928084039384600160601b11156105205714615a1557600160601b910990828211900360a01b910360601c1790565b50505060601c90565b91818302915f19818509938380861095039480860395868511156105205714615a96579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b906001600160801b038216809203615ab257565b6393dafdf160e01b5f5260045ffdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c9d1f6845c997b52661eff22bd99f1b3d80e77aa75f88e66022319d50530daa064736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90000000000000000000000000b56e1521c9d1690430da5e79d9b6109f633a83b2

-----Decoded View---------------
Arg [0] : _pm (address): 0x000000000004444c5dc75cB358380D2e3dE08A90
Arg [1] : mintTo (address): 0xb56E1521C9d1690430DA5e79D9b6109F633a83b2

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
Arg [1] : 000000000000000000000000b56e1521c9d1690430da5e79d9b6109f633a83b2

🤖 Code Reader

Generate instant answers for your smart contract questions using AI Models. Read more.

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.

Etherscan Logo Etherscan Logo
Etherscan AI Beta
Holders Overview


Etherscan AI can make mistakes, please DYOR. Not financial advice