Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
UniV3PositionReader
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2025-03-06 */ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.8.1; interface ArbSys { /** * @notice Get Arbitrum block number (distinct from L1 block number; Arbitrum genesis block has block number 0) * @return block number as int */ function arbBlockNumber() external view returns (uint256); } interface Nfpm { function positions( uint256 tokenId ) external view returns ( uint96 nonce, address operator, address token0, address token1, uint24 fee, int24 tickLower, int24 tickUpper, uint128 liquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128, uint128 tokensOwed0, uint128 tokensOwed1 ); function factory() external view returns (address); function ownerOf(uint256 tokenId) external view returns (address owner); } interface AlgebraNfpm { function positions( uint256 tokenId ) external view returns ( uint96 nonce, address operator, address token0, address token1, int24 tickLower, int24 tickUpper, uint128 liquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128, uint128 tokensOwed0, uint128 tokensOwed1 ); function factory() external view returns (address); function ownerOf(uint256 tokenId) external view returns (address owner); } interface RamsesNfpm { function positions( uint256 tokenId ) external view returns ( address token0, address token1, int24 tickSpacing, int24 tickLower, int24 tickUpper, uint128 liquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128, uint128 tokensOwed0, uint128 tokensOwed1 ); function ownerOf(uint256 tokenId) external view returns (address owner); } interface ShadowNfpm { function positions( uint256 tokenId ) external view returns ( address token0, address token1, int24 tickSpacing, int24 tickLower, int24 tickUpper, uint128 liquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128, uint128 tokensOwed0, uint128 tokensOwed1 ); function ownerOf(uint256 tokenId) external view returns (address owner); } interface AlgebraPool { function globalState() external view returns ( uint160 price, int24 tick, uint256 fee, uint256 timepointIndex, uint256 communityFeeToken0, uint256 communityFeeToken1, bool unlocked ); } interface AlgebraPool2 { function globalState() external view returns ( uint160 price, int24 tick, uint256 feeZto, uint256 feeOtz, uint256 timepointIndex, uint256 communityFeeToken0, uint256 communityFeeToken1, bool unlocked ); } interface Factory { function getPool( address token0, address token1, uint24 fee ) external view returns (address); function poolByPair( address tokenA, address tokenB ) external view returns (address pool); } interface ThrusterFactory { function factory() external view returns (address); } contract UniV3PositionReader { struct UniV3Position { address token0; address token1; uint24 fee; int24 tickSpacing; int24 tickLower; int24 tickUpper; uint128 liquidity; uint256 feeGrowthInside0LastX128; uint256 feeGrowthInside1LastX128; uint128 tokensOwed0; uint128 tokensOwed1; address factory; address pool; bool burned; bool success; address owner; } function getPositions( address[] calldata nfpms, uint256[] calldata tokenIds ) public view returns (UniV3Position[] memory positions, uint256 blockNumber) { if (block.chainid == 42161) { blockNumber = ArbSys(address(100)).arbBlockNumber(); } else { blockNumber = block.number; } positions = new UniV3Position[](nfpms.length); for (uint256 i = 0; i < nfpms.length; i++) { positions[i] = getPosition(nfpms[i], tokenIds[i]); } } function _getPositionAlgebraInternal( AlgebraNfpm nfpm, uint256 tokenId ) external view returns (UniV3Position memory position) { try nfpm.positions(tokenId) returns ( uint96, address, address token0, address token1, int24 tickLower, int24 tickUpper, uint128 liquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128, uint128 tokensOwed0, uint128 tokensOwed1 ) { position.token0 = token0; position.token1 = token1; position.tickLower = tickLower; position.tickUpper = tickUpper; position.liquidity = liquidity; position.feeGrowthInside0LastX128 = feeGrowthInside0LastX128; position.feeGrowthInside1LastX128 = feeGrowthInside1LastX128; position.tokensOwed0 = tokensOwed0; position.tokensOwed1 = tokensOwed1; } catch { position.burned = true; position.success = true; return position; } position.factory = nfpm.factory(); position.owner = nfpm.ownerOf(tokenId); position.pool = Factory(position.factory).poolByPair( position.token0, position.token1 ); try this._getPoolFeeAlgebra(position.pool) returns (uint24 fee) { position.fee = uint24(fee); position.success = true; } catch {} try this._getPoolFeeAlgebra2(position.pool) returns (uint24 fee) { position.fee = uint24(fee); position.success = true; } catch {} } function _getPoolFeeAlgebra(address pool) external view returns (uint24) { (, , uint256 fee, , , , ) = AlgebraPool(pool).globalState(); return uint24(fee); } function _getPoolFeeAlgebra2(address pool) external view returns (uint24) { (, , uint256 fee, , , , , ) = AlgebraPool2(pool).globalState(); return uint24(fee); } function _getPositionInternal( Nfpm nfpm, uint256 tokenId ) external view returns (UniV3Position memory position) { try nfpm.positions(tokenId) returns ( uint96, address, address token0, address token1, uint24 fee, int24 tickLower, int24 tickUpper, uint128 liquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128, uint128 tokensOwed0, uint128 tokensOwed1 ) { position.token0 = token0; position.token1 = token1; position.fee = fee; position.tickLower = tickLower; position.tickUpper = tickUpper; position.liquidity = liquidity; position.feeGrowthInside0LastX128 = feeGrowthInside0LastX128; position.feeGrowthInside1LastX128 = feeGrowthInside1LastX128; position.tokensOwed0 = tokensOwed0; position.tokensOwed1 = tokensOwed1; } catch { position.burned = true; position.success = true; return position; } position.factory = nfpm.factory(); position.owner = nfpm.ownerOf(tokenId); try this._getPoolUniV3( position.factory, position.token0, position.token1, position.fee ) returns (address pool) { position.pool = pool; position.success = true; } catch {} try this._getPoolThruster( position.factory, position.token0, position.token1, position.fee ) returns (address pool) { position.pool = pool; position.success = true; } catch {} } function _getPoolUniV3( address factory, address token0, address token1, uint24 fee ) external view returns (address) { return Factory(factory).getPool(token0, token1, fee); } function _getPoolThruster( address thrusterF, address token0, address token1, uint24 fee ) external view returns (address) { address factory = ThrusterFactory(thrusterF).factory(); return Factory(factory).getPool(token0, token1, fee); } function _getPositionShadowInternal( ShadowNfpm nfpm, uint256 tokenId ) external view returns (UniV3Position memory position) { try nfpm.positions(tokenId) returns ( address token0, address token1, int24 tickSpacing, int24 tickLower, int24 tickUpper, uint128 liquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128, uint128 tokensOwed0, uint128 tokensOwed1 ) { position.token0 = token0; position.token1 = token1; position.tickSpacing = tickSpacing; position.tickLower = tickLower; position.tickUpper = tickUpper; position.liquidity = liquidity; position.feeGrowthInside0LastX128 = feeGrowthInside0LastX128; position.feeGrowthInside1LastX128 = feeGrowthInside1LastX128; position.tokensOwed0 = tokensOwed0; position.tokensOwed1 = tokensOwed1; } catch { position.burned = true; position.success = true; return position; } position.owner = nfpm.ownerOf(tokenId); } function _getPositionRamsesInternal( RamsesNfpm nfpm, uint256 tokenId ) external view returns (UniV3Position memory position) { try nfpm.positions(tokenId) returns ( address token0, address token1, int24 tickSpacing, int24 tickLower, int24 tickUpper, uint128 liquidity, uint256 feeGrowthInside0LastX128, uint256 feeGrowthInside1LastX128, uint128 tokensOwed0, uint128 tokensOwed1 ) { position.token0 = token0; position.token1 = token1; position.tickSpacing = tickSpacing; position.tickLower = tickLower; position.tickUpper = tickUpper; position.liquidity = liquidity; position.feeGrowthInside0LastX128 = feeGrowthInside0LastX128; position.feeGrowthInside1LastX128 = feeGrowthInside1LastX128; position.tokensOwed0 = tokensOwed0; position.tokensOwed1 = tokensOwed1; } catch { position.burned = true; position.success = true; return position; } position.owner = nfpm.ownerOf(tokenId); } function getPosition( address nfpm, uint256 tokenId ) public view returns (UniV3Position memory position) { try this._getPositionInternal(Nfpm(nfpm), tokenId) returns ( UniV3Position memory pos ) { position = pos; } catch {} try this._getPositionAlgebraInternal(AlgebraNfpm(nfpm), tokenId) returns (UniV3Position memory pos) { position = pos; } catch {} try this._getPositionRamsesInternal(RamsesNfpm(nfpm), tokenId) returns ( UniV3Position memory pos ) { position = pos; } catch {} } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"name":"_getPoolFeeAlgebra","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"}],"name":"_getPoolFeeAlgebra2","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"thrusterF","type":"address"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"}],"name":"_getPoolThruster","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"factory","type":"address"},{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"}],"name":"_getPoolUniV3","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract AlgebraNfpm","name":"nfpm","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"_getPositionAlgebraInternal","outputs":[{"components":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"},{"internalType":"uint128","name":"tokensOwed0","type":"uint128"},{"internalType":"uint128","name":"tokensOwed1","type":"uint128"},{"internalType":"address","name":"factory","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"bool","name":"burned","type":"bool"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"address","name":"owner","type":"address"}],"internalType":"struct UniV3PositionReader.UniV3Position","name":"position","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract Nfpm","name":"nfpm","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"_getPositionInternal","outputs":[{"components":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"},{"internalType":"uint128","name":"tokensOwed0","type":"uint128"},{"internalType":"uint128","name":"tokensOwed1","type":"uint128"},{"internalType":"address","name":"factory","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"bool","name":"burned","type":"bool"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"address","name":"owner","type":"address"}],"internalType":"struct UniV3PositionReader.UniV3Position","name":"position","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract RamsesNfpm","name":"nfpm","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"_getPositionRamsesInternal","outputs":[{"components":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"},{"internalType":"uint128","name":"tokensOwed0","type":"uint128"},{"internalType":"uint128","name":"tokensOwed1","type":"uint128"},{"internalType":"address","name":"factory","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"bool","name":"burned","type":"bool"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"address","name":"owner","type":"address"}],"internalType":"struct UniV3PositionReader.UniV3Position","name":"position","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ShadowNfpm","name":"nfpm","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"_getPositionShadowInternal","outputs":[{"components":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"},{"internalType":"uint128","name":"tokensOwed0","type":"uint128"},{"internalType":"uint128","name":"tokensOwed1","type":"uint128"},{"internalType":"address","name":"factory","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"bool","name":"burned","type":"bool"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"address","name":"owner","type":"address"}],"internalType":"struct UniV3PositionReader.UniV3Position","name":"position","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"nfpm","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getPosition","outputs":[{"components":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"},{"internalType":"uint128","name":"tokensOwed0","type":"uint128"},{"internalType":"uint128","name":"tokensOwed1","type":"uint128"},{"internalType":"address","name":"factory","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"bool","name":"burned","type":"bool"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"address","name":"owner","type":"address"}],"internalType":"struct UniV3PositionReader.UniV3Position","name":"position","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"nfpms","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"getPositions","outputs":[{"components":[{"internalType":"address","name":"token0","type":"address"},{"internalType":"address","name":"token1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"},{"internalType":"uint128","name":"tokensOwed0","type":"uint128"},{"internalType":"uint128","name":"tokensOwed1","type":"uint128"},{"internalType":"address","name":"factory","type":"address"},{"internalType":"address","name":"pool","type":"address"},{"internalType":"bool","name":"burned","type":"bool"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"address","name":"owner","type":"address"}],"internalType":"struct UniV3PositionReader.UniV3Position[]","name":"positions","type":"tuple[]"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052348015600e575f5ffd5b506117ae8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061009b575f3560e01c80638f92c0de116100635780638f92c0de1461013a578063b0d442f414610127578063bd820d2e14610161578063be4f8d7714610174578063d04ba8aa14610187575f5ffd5b80633adbb5af1461009f57806350ce27b5146100c8578063629a33e7146100e95780637029b3e7146100fc5780638681e45714610127575b5f5ffd5b6100b26100ad366004610edf565b61019a565b6040516100bf9190611079565b60405180910390f35b6100db6100d63660046110d0565b6102f9565b6040516100bf92919061113c565b6100b26100f7366004610edf565b610446565b61010f61010a3660046111a4565b610764565b6040516001600160a01b0390911681526020016100bf565b6100b2610135366004610edf565b61084f565b61014d6101483660046111fd565b6109a4565b60405162ffffff90911681526020016100bf565b6100b261016f366004610edf565b610a16565b61014d6101823660046111fd565b610d4e565b61010f6101953660046111a4565b610dbe565b6101a2610e45565b60405163629a33e760e01b81526001600160a01b038416600482015260248101839052309063629a33e79060440161020060405180830381865afa92505050801561020a575060408051601f3d908101601f19168201909252610207918101906112b3565b60015b156102125790505b604051635ec1069760e11b81526001600160a01b038416600482015260248101839052309063bd820d2e9060440161020060405180830381865afa92505050801561027a575060408051601f3d908101601f19168201909252610277918101906112b3565b60015b156102825790505b604051638681e45760e01b81526001600160a01b0384166004820152602481018390523090638681e4579060440161020060405180830381865afa9250505080156102ea575060408051601f3d908101601f191682019092526102e7918101906112b3565b60015b156102f3575b90505b92915050565b60605f4661a4b10361036d5760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610342573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036691906113e0565b9050610370565b50435b8467ffffffffffffffff81111561038957610389611218565b6040519080825280602002602001820160405280156103c257816020015b6103af610e45565b8152602001906001900390816103a75790505b5091505f5b8581101561043c576104178787838181106103e4576103e46113f7565b90506020020160208101906103f991906111fd565b86868481811061040b5761040b6113f7565b9050602002013561019a565b838281518110610429576104296113f7565b60209081029190910101526001016103c7565b5094509492505050565b61044e610e45565b60405163133f757160e31b8152600481018390526001600160a01b038416906399fbab889060240161018060405180830381865afa9250505080156104b0575060408051601f3d908101601f191682019092526104ad91810190611426565b60015b6104c95760016101a082018190526101c08201526102f3565b6001600160a01b03998a168d529790981660208c015262ffffff90951660408b0152600293840b60808b01529190920b60a08901526001600160801b0391821660c089015260e0880152610100870191909152918216610120860152166101408401525050826001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561056a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058e91906114f9565b6001600160a01b039081166101608301526040516331a9108f60e11b81526004810184905290841690636352211e90602401602060405180830381865afa1580156105db573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ff91906114f9565b6001600160a01b039081166101e0830152610160820151825160208401516040808601519051636825d45560e11b815293851660048501529184166024840152909216604482015262ffffff9091166064820152309063d04ba8aa90608401602060405180830381865afa925050508015610697575060408051601f3d908101601f19168201909252610694918101906114f9565b60015b156106b4576001600160a01b031661018082015260016101c08201525b610160810151815160208301516040808501519051637029b3e760e01b81526001600160a01b03948516600482015292841660248401529216604482015262ffffff90911660648201523090637029b3e790608401602060405180830381865afa925050508015610742575060408051601f3d908101601f1916820190925261073f918101906114f9565b60015b156102f3576001600160a01b031661018082015260016101c082015292915050565b5f5f856001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c691906114f9565b604051630b4c774160e11b81526001600160a01b038781166004830152868116602483015262ffffff8616604483015291925090821690631698ee8290606401602060405180830381865afa158015610821573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061084591906114f9565b9695505050505050565b610857610e45565b60405163133f757160e31b8152600481018390526001600160a01b038416906399fbab889060240161014060405180830381865afa9250505080156108b9575060408051601f3d908101601f191682019092526108b691810190611514565b60015b6108d25760016101a082018190526101c08201526102f3565b6001600160a01b03998a168b5297891660208b0152600296870b60608b015294860b60808a01529290940b60a08801526001600160801b0390811660c088015260e08701939093526101008601528116610120850152166101408301526040516331a9108f60e11b81526004810184905290841690636352211e90602401602060405180830381865afa15801561096b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098f91906114f9565b6001600160a01b03166101e082015292915050565b5f5f826001600160a01b031663e76c01e46040518163ffffffff1660e01b815260040161010060405180830381865afa1580156109e3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0791906115c0565b50939998505050505050505050565b610a1e610e45565b60405163133f757160e31b8152600481018390526001600160a01b038416906399fbab889060240161016060405180830381865afa925050508015610a80575060408051601f3d908101601f19168201909252610a7d91810190611634565b60015b610a995760016101a082018190526101c08201526102f3565b6001600160a01b039889168c529690971660208b0152600294850b60808b01529290930b60a08901526001600160801b0390811660c089015260e0880192909252610100870152918216610120860152166101408401525050826001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5291906114f9565b6001600160a01b039081166101608301526040516331a9108f60e11b81526004810184905290841690636352211e90602401602060405180830381865afa158015610b9f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc391906114f9565b6001600160a01b039081166101e08301526101608201518251602084015160405163d9a641e160e01b815291841660048301528316602482015291169063d9a641e190604401602060405180830381865afa158015610c24573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4891906114f9565b6001600160a01b0316610180820181905260405163be4f8d7760e01b81526004810191909152309063be4f8d7790602401602060405180830381865afa925050508015610cb2575060408051601f3d908101601f19168201909252610caf918101906116f4565b60015b15610cca5762ffffff16604082015260016101c08201525b6101808101516040516347c9606f60e11b81526001600160a01b0390911660048201523090638f92c0de90602401602060405180830381865afa925050508015610d31575060408051601f3d908101601f19168201909252610d2e918101906116f4565b60015b156102f35762ffffff16604082015260016101c082015292915050565b5f5f826001600160a01b031663e76c01e46040518163ffffffff1660e01b815260040160e060405180830381865afa158015610d8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db0919061170f565b509298975050505050505050565b604051630b4c774160e11b81526001600160a01b038481166004830152838116602483015262ffffff831660448301525f9190861690631698ee8290606401602060405180830381865afa158015610e18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3c91906114f9565b95945050505050565b60408051610200810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081019190915290565b6001600160a01b0381168114610edc575f5ffd5b50565b5f5f60408385031215610ef0575f5ffd5b8235610efb81610ec8565b946020939093013593505050565b80516001600160a01b031682526020810151610f3060208401826001600160a01b03169052565b506040810151610f47604084018262ffffff169052565b506060810151610f5c606084018260020b9052565b506080810151610f71608084018260020b9052565b5060a0810151610f8660a084018260020b9052565b5060c0810151610fa160c08401826001600160801b03169052565b5060e081015160e0830152610100810151610100830152610120810151610fd46101208401826001600160801b03169052565b50610140810151610ff16101408401826001600160801b03169052565b5061016081015161100e6101608401826001600160a01b03169052565b5061018081015161102b6101808401826001600160a01b03169052565b506101a08101516110416101a084018215159052565b506101c08101516110576101c084018215159052565b506101e08101516110746101e08401826001600160a01b03169052565b505050565b61020081016102f38284610f09565b5f5f83601f840112611098575f5ffd5b50813567ffffffffffffffff8111156110af575f5ffd5b6020830191508360208260051b85010111156110c9575f5ffd5b9250929050565b5f5f5f5f604085870312156110e3575f5ffd5b843567ffffffffffffffff8111156110f9575f5ffd5b61110587828801611088565b909550935050602085013567ffffffffffffffff811115611124575f5ffd5b61113087828801611088565b95989497509550505050565b604080825283519082018190525f9060208501906060840190835b818110156111815761116a838551610f09565b602093909301926102009290920191600101611157565b5050602093909301939093525092915050565b62ffffff81168114610edc575f5ffd5b5f5f5f5f608085870312156111b7575f5ffd5b84356111c281610ec8565b935060208501356111d281610ec8565b925060408501356111e281610ec8565b915060608501356111f281611194565b939692955090935050565b5f6020828403121561120d575f5ffd5b81356102f081610ec8565b634e487b7160e01b5f52604160045260245ffd5b604051610200810167ffffffffffffffff8111828210171561125c57634e487b7160e01b5f52604160045260245ffd5b60405290565b805161126d81610ec8565b919050565b805161126d81611194565b8051600281900b811461126d575f5ffd5b80516001600160801b038116811461126d575f5ffd5b8051801515811461126d575f5ffd5b5f6102008284031280156112c5575f5ffd5b506112ce61122c565b6112d783611262565b81526112e560208401611262565b60208201526112f660408401611272565b60408201526113076060840161127d565b60608201526113186080840161127d565b608082015261132960a0840161127d565b60a082015261133a60c0840161128e565b60c082015260e083810151908201526101008084015190820152611361610120840161128e565b610120820152611374610140840161128e565b6101408201526113876101608401611262565b61016082015261139a6101808401611262565b6101808201526113ad6101a084016112a4565b6101a08201526113c06101c084016112a4565b6101c08201526113d36101e08401611262565b6101e08201529392505050565b5f602082840312156113f0575f5ffd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b80516bffffffffffffffffffffffff8116811461126d575f5ffd5b5f5f5f5f5f5f5f5f5f5f5f5f6101808d8f031215611442575f5ffd5b61144b8d61140b565b9b5060208d015161145b81610ec8565b60408e0151909b5061146c81610ec8565b60608e0151909a5061147d81610ec8565b60808e015190995061148e81611194565b975061149c60a08e0161127d565b96506114aa60c08e0161127d565b95506114b860e08e0161128e565b6101008e01516101208f0151919650945092506114d86101408e0161128e565b91506114e76101608e0161128e565b90509295989b509295989b509295989b565b5f60208284031215611509575f5ffd5b81516102f081610ec8565b5f5f5f5f5f5f5f5f5f5f6101408b8d03121561152e575f5ffd5b8a5161153981610ec8565b60208c0151909a5061154a81610ec8565b985061155860408c0161127d565b975061156660608c0161127d565b965061157460808c0161127d565b955061158260a08c0161128e565b60c08c015160e08d0151919650945092506115a06101008c0161128e565b91506115af6101208c0161128e565b90509295989b9194979a5092959850565b5f5f5f5f5f5f5f5f610100898b0312156115d8575f5ffd5b88516115e381610ec8565b97506115f160208a0161127d565b60408a015160608b015160808c015160a08d015160c08e0151949b5092995090975095509350915061162560e08a016112a4565b90509295985092959890939650565b5f5f5f5f5f5f5f5f5f5f5f6101608c8e03121561164f575f5ffd5b6116588c61140b565b9a5060208c015161166881610ec8565b60408d0151909a5061167981610ec8565b60608d015190995061168a81610ec8565b975061169860808d0161127d565b96506116a660a08d0161127d565b95506116b460c08d0161128e565b60e08d01516101008e0151919650945092506116d36101208d0161128e565b91506116e26101408d0161128e565b90509295989b509295989b9093969950565b5f60208284031215611704575f5ffd5b81516102f081611194565b5f5f5f5f5f5f5f60e0888a031215611725575f5ffd5b875161173081610ec8565b965061173e6020890161127d565b604089015160608a015160808b015160a08c015193995091975095509350915061176a60c089016112a4565b90509295989194975092955056fea2646970667358221220f711eba0835ed229d48796307928be657c397e405a5c692d0ac5376c5ffa898864736f6c634300081c0033
Deployed Bytecode
0x608060405234801561000f575f5ffd5b506004361061009b575f3560e01c80638f92c0de116100635780638f92c0de1461013a578063b0d442f414610127578063bd820d2e14610161578063be4f8d7714610174578063d04ba8aa14610187575f5ffd5b80633adbb5af1461009f57806350ce27b5146100c8578063629a33e7146100e95780637029b3e7146100fc5780638681e45714610127575b5f5ffd5b6100b26100ad366004610edf565b61019a565b6040516100bf9190611079565b60405180910390f35b6100db6100d63660046110d0565b6102f9565b6040516100bf92919061113c565b6100b26100f7366004610edf565b610446565b61010f61010a3660046111a4565b610764565b6040516001600160a01b0390911681526020016100bf565b6100b2610135366004610edf565b61084f565b61014d6101483660046111fd565b6109a4565b60405162ffffff90911681526020016100bf565b6100b261016f366004610edf565b610a16565b61014d6101823660046111fd565b610d4e565b61010f6101953660046111a4565b610dbe565b6101a2610e45565b60405163629a33e760e01b81526001600160a01b038416600482015260248101839052309063629a33e79060440161020060405180830381865afa92505050801561020a575060408051601f3d908101601f19168201909252610207918101906112b3565b60015b156102125790505b604051635ec1069760e11b81526001600160a01b038416600482015260248101839052309063bd820d2e9060440161020060405180830381865afa92505050801561027a575060408051601f3d908101601f19168201909252610277918101906112b3565b60015b156102825790505b604051638681e45760e01b81526001600160a01b0384166004820152602481018390523090638681e4579060440161020060405180830381865afa9250505080156102ea575060408051601f3d908101601f191682019092526102e7918101906112b3565b60015b156102f3575b90505b92915050565b60605f4661a4b10361036d5760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610342573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061036691906113e0565b9050610370565b50435b8467ffffffffffffffff81111561038957610389611218565b6040519080825280602002602001820160405280156103c257816020015b6103af610e45565b8152602001906001900390816103a75790505b5091505f5b8581101561043c576104178787838181106103e4576103e46113f7565b90506020020160208101906103f991906111fd565b86868481811061040b5761040b6113f7565b9050602002013561019a565b838281518110610429576104296113f7565b60209081029190910101526001016103c7565b5094509492505050565b61044e610e45565b60405163133f757160e31b8152600481018390526001600160a01b038416906399fbab889060240161018060405180830381865afa9250505080156104b0575060408051601f3d908101601f191682019092526104ad91810190611426565b60015b6104c95760016101a082018190526101c08201526102f3565b6001600160a01b03998a168d529790981660208c015262ffffff90951660408b0152600293840b60808b01529190920b60a08901526001600160801b0391821660c089015260e0880152610100870191909152918216610120860152166101408401525050826001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561056a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058e91906114f9565b6001600160a01b039081166101608301526040516331a9108f60e11b81526004810184905290841690636352211e90602401602060405180830381865afa1580156105db573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ff91906114f9565b6001600160a01b039081166101e0830152610160820151825160208401516040808601519051636825d45560e11b815293851660048501529184166024840152909216604482015262ffffff9091166064820152309063d04ba8aa90608401602060405180830381865afa925050508015610697575060408051601f3d908101601f19168201909252610694918101906114f9565b60015b156106b4576001600160a01b031661018082015260016101c08201525b610160810151815160208301516040808501519051637029b3e760e01b81526001600160a01b03948516600482015292841660248401529216604482015262ffffff90911660648201523090637029b3e790608401602060405180830381865afa925050508015610742575060408051601f3d908101601f1916820190925261073f918101906114f9565b60015b156102f3576001600160a01b031661018082015260016101c082015292915050565b5f5f856001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c691906114f9565b604051630b4c774160e11b81526001600160a01b038781166004830152868116602483015262ffffff8616604483015291925090821690631698ee8290606401602060405180830381865afa158015610821573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061084591906114f9565b9695505050505050565b610857610e45565b60405163133f757160e31b8152600481018390526001600160a01b038416906399fbab889060240161014060405180830381865afa9250505080156108b9575060408051601f3d908101601f191682019092526108b691810190611514565b60015b6108d25760016101a082018190526101c08201526102f3565b6001600160a01b03998a168b5297891660208b0152600296870b60608b015294860b60808a01529290940b60a08801526001600160801b0390811660c088015260e08701939093526101008601528116610120850152166101408301526040516331a9108f60e11b81526004810184905290841690636352211e90602401602060405180830381865afa15801561096b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098f91906114f9565b6001600160a01b03166101e082015292915050565b5f5f826001600160a01b031663e76c01e46040518163ffffffff1660e01b815260040161010060405180830381865afa1580156109e3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0791906115c0565b50939998505050505050505050565b610a1e610e45565b60405163133f757160e31b8152600481018390526001600160a01b038416906399fbab889060240161016060405180830381865afa925050508015610a80575060408051601f3d908101601f19168201909252610a7d91810190611634565b60015b610a995760016101a082018190526101c08201526102f3565b6001600160a01b039889168c529690971660208b0152600294850b60808b01529290930b60a08901526001600160801b0390811660c089015260e0880192909252610100870152918216610120860152166101408401525050826001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b5291906114f9565b6001600160a01b039081166101608301526040516331a9108f60e11b81526004810184905290841690636352211e90602401602060405180830381865afa158015610b9f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bc391906114f9565b6001600160a01b039081166101e08301526101608201518251602084015160405163d9a641e160e01b815291841660048301528316602482015291169063d9a641e190604401602060405180830381865afa158015610c24573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4891906114f9565b6001600160a01b0316610180820181905260405163be4f8d7760e01b81526004810191909152309063be4f8d7790602401602060405180830381865afa925050508015610cb2575060408051601f3d908101601f19168201909252610caf918101906116f4565b60015b15610cca5762ffffff16604082015260016101c08201525b6101808101516040516347c9606f60e11b81526001600160a01b0390911660048201523090638f92c0de90602401602060405180830381865afa925050508015610d31575060408051601f3d908101601f19168201909252610d2e918101906116f4565b60015b156102f35762ffffff16604082015260016101c082015292915050565b5f5f826001600160a01b031663e76c01e46040518163ffffffff1660e01b815260040160e060405180830381865afa158015610d8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db0919061170f565b509298975050505050505050565b604051630b4c774160e11b81526001600160a01b038481166004830152838116602483015262ffffff831660448301525f9190861690631698ee8290606401602060405180830381865afa158015610e18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3c91906114f9565b95945050505050565b60408051610200810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081019190915290565b6001600160a01b0381168114610edc575f5ffd5b50565b5f5f60408385031215610ef0575f5ffd5b8235610efb81610ec8565b946020939093013593505050565b80516001600160a01b031682526020810151610f3060208401826001600160a01b03169052565b506040810151610f47604084018262ffffff169052565b506060810151610f5c606084018260020b9052565b506080810151610f71608084018260020b9052565b5060a0810151610f8660a084018260020b9052565b5060c0810151610fa160c08401826001600160801b03169052565b5060e081015160e0830152610100810151610100830152610120810151610fd46101208401826001600160801b03169052565b50610140810151610ff16101408401826001600160801b03169052565b5061016081015161100e6101608401826001600160a01b03169052565b5061018081015161102b6101808401826001600160a01b03169052565b506101a08101516110416101a084018215159052565b506101c08101516110576101c084018215159052565b506101e08101516110746101e08401826001600160a01b03169052565b505050565b61020081016102f38284610f09565b5f5f83601f840112611098575f5ffd5b50813567ffffffffffffffff8111156110af575f5ffd5b6020830191508360208260051b85010111156110c9575f5ffd5b9250929050565b5f5f5f5f604085870312156110e3575f5ffd5b843567ffffffffffffffff8111156110f9575f5ffd5b61110587828801611088565b909550935050602085013567ffffffffffffffff811115611124575f5ffd5b61113087828801611088565b95989497509550505050565b604080825283519082018190525f9060208501906060840190835b818110156111815761116a838551610f09565b602093909301926102009290920191600101611157565b5050602093909301939093525092915050565b62ffffff81168114610edc575f5ffd5b5f5f5f5f608085870312156111b7575f5ffd5b84356111c281610ec8565b935060208501356111d281610ec8565b925060408501356111e281610ec8565b915060608501356111f281611194565b939692955090935050565b5f6020828403121561120d575f5ffd5b81356102f081610ec8565b634e487b7160e01b5f52604160045260245ffd5b604051610200810167ffffffffffffffff8111828210171561125c57634e487b7160e01b5f52604160045260245ffd5b60405290565b805161126d81610ec8565b919050565b805161126d81611194565b8051600281900b811461126d575f5ffd5b80516001600160801b038116811461126d575f5ffd5b8051801515811461126d575f5ffd5b5f6102008284031280156112c5575f5ffd5b506112ce61122c565b6112d783611262565b81526112e560208401611262565b60208201526112f660408401611272565b60408201526113076060840161127d565b60608201526113186080840161127d565b608082015261132960a0840161127d565b60a082015261133a60c0840161128e565b60c082015260e083810151908201526101008084015190820152611361610120840161128e565b610120820152611374610140840161128e565b6101408201526113876101608401611262565b61016082015261139a6101808401611262565b6101808201526113ad6101a084016112a4565b6101a08201526113c06101c084016112a4565b6101c08201526113d36101e08401611262565b6101e08201529392505050565b5f602082840312156113f0575f5ffd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b80516bffffffffffffffffffffffff8116811461126d575f5ffd5b5f5f5f5f5f5f5f5f5f5f5f5f6101808d8f031215611442575f5ffd5b61144b8d61140b565b9b5060208d015161145b81610ec8565b60408e0151909b5061146c81610ec8565b60608e0151909a5061147d81610ec8565b60808e015190995061148e81611194565b975061149c60a08e0161127d565b96506114aa60c08e0161127d565b95506114b860e08e0161128e565b6101008e01516101208f0151919650945092506114d86101408e0161128e565b91506114e76101608e0161128e565b90509295989b509295989b509295989b565b5f60208284031215611509575f5ffd5b81516102f081610ec8565b5f5f5f5f5f5f5f5f5f5f6101408b8d03121561152e575f5ffd5b8a5161153981610ec8565b60208c0151909a5061154a81610ec8565b985061155860408c0161127d565b975061156660608c0161127d565b965061157460808c0161127d565b955061158260a08c0161128e565b60c08c015160e08d0151919650945092506115a06101008c0161128e565b91506115af6101208c0161128e565b90509295989b9194979a5092959850565b5f5f5f5f5f5f5f5f610100898b0312156115d8575f5ffd5b88516115e381610ec8565b97506115f160208a0161127d565b60408a015160608b015160808c015160a08d015160c08e0151949b5092995090975095509350915061162560e08a016112a4565b90509295985092959890939650565b5f5f5f5f5f5f5f5f5f5f5f6101608c8e03121561164f575f5ffd5b6116588c61140b565b9a5060208c015161166881610ec8565b60408d0151909a5061167981610ec8565b60608d015190995061168a81610ec8565b975061169860808d0161127d565b96506116a660a08d0161127d565b95506116b460c08d0161128e565b60e08d01516101008e0151919650945092506116d36101208d0161128e565b91506116e26101408d0161128e565b90509295989b509295989b9093969950565b5f60208284031215611704575f5ffd5b81516102f081611194565b5f5f5f5f5f5f5f60e0888a031215611725575f5ffd5b875161173081610ec8565b965061173e6020890161127d565b604089015160608a015160808b015160a08c015193995091975095509350915061176a60c089016112a4565b90509295989194975092955056fea2646970667358221220f711eba0835ed229d48796307928be657c397e405a5c692d0ac5376c5ffa898864736f6c634300081c0033
Deployed Bytecode Sourcemap
3900:8938:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12164:671;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4416:578;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;7135:1951::-;;;;;;:::i;:::-;;:::i;9332:300::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;6301:32:1;;;6283:51;;6271:2;6256:18;9332:300:0;6137:203:1;10902:1254:0;;;;;;:::i;:::-;;:::i;6943:184::-;;;;;;:::i;:::-;;:::i;:::-;;;7161:8:1;7149:21;;;7131:40;;7119:2;7104:18;6943:184:0;6987:190:1;5002:1745:0;;;;;;:::i;:::-;;:::i;6755:180::-;;;;;;:::i;:::-;;:::i;9094:230::-;;;;;;:::i;:::-;;:::i;12164:671::-;12262:29;;:::i;:::-;12308:46;;-1:-1:-1;;;12308:46:0;;-1:-1:-1;;;;;8165:32:1;;12308:46:0;;;8147:51:1;8214:18;;;8207:34;;;12308:4:0;;:25;;8120:18:1;;12308:46:0;;;;;;;;;;;;;;;;;;-1:-1:-1;12308:46:0;;;;;;;;-1:-1:-1;;12308:46:0;;;;;;;;;;;;:::i;:::-;;;12304:160;;;12440:3;-1:-1:-1;12304:160:0;12491:60;;-1:-1:-1;;;12491:60:0;;-1:-1:-1;;;;;8165:32:1;;12491:60:0;;;8147:51:1;8214:18;;;8207:34;;;12491:4:0;;:32;;8120:18:1;;12491:60:0;;;;;;;;;;;;;;;;;;-1:-1:-1;12491:60:0;;;;;;;;-1:-1:-1;;12491:60:0;;;;;;;;;;;;:::i;:::-;;;12474:172;;;12622:3;-1:-1:-1;12474:172:0;12660:58;;-1:-1:-1;;;12660:58:0;;-1:-1:-1;;;;;8165:32:1;;12660:58:0;;;8147:51:1;8214:18;;;8207:34;;;12660:4:0;;:31;;8120:18:1;;12660:58:0;;;;;;;;;;;;;;;;;;-1:-1:-1;12660:58:0;;;;;;;;-1:-1:-1;;12660:58:0;;;;;;;;;;;;:::i;:::-;;;12656:172;;;;12804:3;-1:-1:-1;12656:172:0;12164:671;;;;:::o;4416:578::-;4566:32;4600:19;4641:13;4658:5;4641:22;4637:165;;4709:3;-1:-1:-1;;;;;4694:35:0;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4680:51;;4637:165;;;-1:-1:-1;4778:12:0;4637:165;4844:5;4824:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;4812:45:0;-1:-1:-1;4873:9:0;4868:119;4888:16;;;4868:119;;;4941:34;4953:5;;4959:1;4953:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;4963;;4972:1;4963:11;;;;;;;:::i;:::-;;;;;;;4941;:34::i;:::-;4926:9;4936:1;4926:12;;;;;;;;:::i;:::-;;;;;;;;;;:49;4906:3;;4868:119;;;;4416:578;;;;;;;:::o;7135:1951::-;7241:29;;:::i;:::-;7287:23;;-1:-1:-1;;;7287:23:0;;;;;12305:25:1;;;-1:-1:-1;;;;;7287:14:0;;;;;12278:18:1;;7287:23:0;;;;;;;;;;;;;;;;;;-1:-1:-1;7287:23:0;;;;;;;;-1:-1:-1;;7287:23:0;;;;;;;;;;;;:::i;:::-;;;7283:1058;;8257:4;8239:15;;;:22;;;8276:16;;;:23;8314:15;;7283:1058;-1:-1:-1;;;;;7726:24:0;;;;;7765;;;;:15;;;:24;7804:18;;;;:12;;;:18;7837:30;;;;:18;;;:30;7882;;;;:18;;;:30;-1:-1:-1;;;;;7927:30:0;;;:18;;;:30;7972:33;;;:60;8047:33;;;:60;;;;8122:34;;;:20;;;:34;8171;:20;;;:34;-1:-1:-1;;8370:4:0;-1:-1:-1;;;;;8370:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8351:33:0;;;:16;;;:33;8412:21;;-1:-1:-1;;;8412:21:0;;;;;12305:25:1;;;8412:12:0;;;;;;12278:18:1;;8412:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8395:38:0;;;:14;;;:38;8498:16;;;;8533:15;;8567;;;;8601:12;;;;;8461:167;;-1:-1:-1;;;8461:167:0;;14448:32:1;;;8461:167:0;;;14430:51:1;14517:32;;;14497:18;;;14490:60;14586:32;;;14566:18;;;14559:60;14667:8;14655:21;;;14635:18;;;14628:49;8461:4:0;;:18;;14402:19:1;;8461:167:0;;;;;;;;;;;;;;;;;;-1:-1:-1;8461:167:0;;;;;;;;-1:-1:-1;;8461:167:0;;;;;;;;;;;;:::i;:::-;;;8444:311;;;-1:-1:-1;;;;;8676:20:0;:13;;;:20;8730:4;8711:16;;;:23;8444:311;8822:16;;;;8857:15;;8891;;;;8925:12;;;;;8782:170;;-1:-1:-1;;;8782:170:0;;-1:-1:-1;;;;;14448:32:1;;;8782:170:0;;;14430:51:1;14517:32;;;14497:18;;;14490:60;14586:32;;14566:18;;;14559:60;14667:8;14655:21;;;14635:18;;;14628:49;8782:4:0;;:21;;14402:19:1;;8782:170:0;;;;;;;;;;;;;;;;;;-1:-1:-1;8782:170:0;;;;;;;;-1:-1:-1;;8782:170:0;;;;;;;;;;;;:::i;:::-;;;8765:314;;;-1:-1:-1;;;;;9000:20:0;:13;;;:20;9054:4;9035:16;;;:23;7135:1951;;;;:::o;9332:300::-;9487:7;9507:15;9541:9;-1:-1:-1;;;;;9525:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9579:45;;-1:-1:-1;;;9579:45:0;;-1:-1:-1;;;;;14906:32:1;;;9579:45:0;;;14888:51:1;14975:32;;;14955:18;;;14948:60;15056:8;15044:21;;15024:18;;;15017:49;9507:54:0;;-1:-1:-1;9579:24:0;;;;;;14861:18:1;;9579:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9572:52;9332:300;-1:-1:-1;;;;;;9332:300:0:o;10902:1254::-;11020:29;;:::i;:::-;11066:23;;-1:-1:-1;;;11066:23:0;;;;;12305:25:1;;;-1:-1:-1;;;;;11066:14:0;;;;;12278:18:1;;11066:23:0;;;;;;;;;;;;;;;;;;-1:-1:-1;11066:23:0;;;;;;;;-1:-1:-1;;11066:23:0;;;;;;;;;;;;:::i;:::-;;;11062:1038;;12016:4;11998:15;;;:22;;;12035:16;;;:23;12073:15;;11062:1038;-1:-1:-1;;;;;11469:24:0;;;;;11508;;;:15;;;:24;11547:34;;;;:20;;;:34;11596:30;;;:18;;;:30;11641;;;;:18;;;:30;-1:-1:-1;;;;;11686:30:0;;;:18;;;:30;11731:33;;;:60;;;;11806:33;;;:60;11881:34;;:20;;;:34;11930;:20;;;:34;12127:21;;-1:-1:-1;;;12127:21:0;;;;;12305:25:1;;;12127:12:0;;;;;;12278:18:1;;12127:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12110:38:0;:14;;;:38;10902:1254;;;;:::o;6943:184::-;7009:6;7033:11;7071:4;-1:-1:-1;;;;;7058:30:0;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;7028:62:0;;6943:184;-1:-1:-1;;;;;;;;;6943:184:0:o;5002:1745::-;5122:29;;:::i;:::-;5168:23;;-1:-1:-1;;;5168:23:0;;;;;12305:25:1;;;-1:-1:-1;;;;;5168:14:0;;;;;12278:18:1;;5168:23:0;;;;;;;;;;;;;;;;;;-1:-1:-1;5168:23:0;;;;;;;;-1:-1:-1;;5168:23:0;;;;;;;;;;;;:::i;:::-;;;5164:1000;;6080:4;6062:15;;;:22;;;6099:16;;;:23;6137:15;;5164:1000;-1:-1:-1;;;;;5582:24:0;;;;;5621;;;;:15;;;:24;5660:30;;;;:18;;;:30;5705;;;;:18;;;:30;-1:-1:-1;;;;;5750:30:0;;;:18;;;:30;5795:33;;;:60;;;;5870:33;;;:60;5945:34;;;:20;;;:34;5994;:20;;;:34;-1:-1:-1;;6193:4:0;-1:-1:-1;;;;;6193:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6174:33:0;;;:16;;;:33;6235:21;;-1:-1:-1;;;6235:21:0;;;;;12305:25:1;;;6235:12:0;;;;;;12278:18:1;;6235:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6218:38:0;;;:14;;;:38;6291:16;;;;6334:15;;6364;;;;6283:107;;-1:-1:-1;;;6283:107:0;;18636:32:1;;;6283:107:0;;;18618:51:1;18705:32;;18685:18;;;18678:60;6283:36:0;;;;;18591:18:1;;6283:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6267:123:0;:13;;;:123;;;6405:38;;-1:-1:-1;;;6405:38:0;;;;;6283:51:1;;;;6405:4:0;;:23;;6256:18:1;;6405:38:0;;;;;;;;;;;;;;;;;;-1:-1:-1;6405:38:0;;;;;;;;-1:-1:-1;;6405:38:0;;;;;;;;;;;;:::i;:::-;;;6401:164;;;6480:26;;:12;;;:26;6540:4;6521:16;;;:23;6401:164;6604:13;;;;6579:39;;-1:-1:-1;;;6579:39:0;;-1:-1:-1;;;;;6301:32:1;;;6579:39:0;;;6283:51:1;6579:4:0;;:24;;6256:18:1;;6579:39:0;;;;;;;;;;;;;;;;;;-1:-1:-1;6579:39:0;;;;;;;;-1:-1:-1;;6579:39:0;;;;;;;;;;;;:::i;:::-;;;6575:165;;;6655:26;;:12;;;:26;6715:4;6696:16;;;:23;5002:1745;;;;:::o;6755:180::-;6820:6;6844:11;6879:4;-1:-1:-1;;;;;6867:29:0;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;6839:59:0;;6755:180;-1:-1:-1;;;;;;;;6755:180:0:o;9094:230::-;9271:45;;-1:-1:-1;;;9271:45:0;;-1:-1:-1;;;;;14906:32:1;;;9271:45:0;;;14888:51:1;14975:32;;;14955:18;;;14948:60;15056:8;15044:21;;15024:18;;;15017:49;9244:7:0;;9271:24;;;;;;14861:18:1;;9271:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9264:52;9094:230;-1:-1:-1;;;;;9094:230:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:367::-;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;481:2;466:18;;;;453:32;;-1:-1:-1;;;150:367:1:o;1044:1712::-;1130:12;;-1:-1:-1;;;;;588:31:1;576:44;;1194:4;1187:5;1183:16;1177:23;1209:48;1251:4;1246:3;1242:14;1228:12;-1:-1:-1;;;;;588:31:1;576:44;;522:104;1209:48;;1305:4;1298:5;1294:16;1288:23;1320:49;1363:4;1358:3;1354:14;1338;707:8;696:20;684:33;;631:92;1320:49;;1417:4;1410:5;1406:16;1400:23;1432:48;1474:4;1469:3;1465:14;1449;803:1;792:20;780:33;;728:91;1432:48;;1528:4;1521:5;1517:16;1511:23;1543:48;1585:4;1580:3;1576:14;1560;803:1;792:20;780:33;;728:91;1543:48;;1639:4;1632:5;1628:16;1622:23;1654:48;1696:4;1691:3;1687:14;1671;803:1;792:20;780:33;;728:91;1654:48;;1750:4;1743:5;1739:16;1733:23;1765:50;1809:4;1804:3;1800:14;1784;-1:-1:-1;;;;;890:46:1;878:59;;824:119;1765:50;;1864:4;1857:5;1853:16;1847:23;1840:4;1835:3;1831:14;1824:47;1922:6;1915:5;1911:18;1905:25;1896:6;1891:3;1887:16;1880:51;1979:6;1972:5;1968:18;1962:25;1996:52;2040:6;2035:3;2031:16;2015:14;-1:-1:-1;;;;;890:46:1;878:59;;824:119;1996:52;;2096:6;2089:5;2085:18;2079:25;2113:52;2157:6;2152:3;2148:16;2132:14;-1:-1:-1;;;;;890:46:1;878:59;;824:119;2113:52;;2213:6;2206:5;2202:18;2196:25;2230:52;2274:6;2269:3;2265:16;2249:14;-1:-1:-1;;;;;588:31:1;576:44;;522:104;2230:52;;2330:6;2323:5;2319:18;2313:25;2347:52;2391:6;2386:3;2382:16;2366:14;-1:-1:-1;;;;;588:31:1;576:44;;522:104;2347:52;;2448:6;2441:5;2437:18;2431:25;2465:50;2507:6;2502:3;2498:16;2481:15;1018:13;1011:21;999:34;;948:91;2465:50;;2564:6;2557:5;2553:18;2547:25;2581:50;2623:6;2618:3;2614:16;2597:15;1018:13;1011:21;999:34;;948:91;2581:50;;2680:6;2673:5;2669:18;2663:25;2697:53;2742:6;2737:3;2733:16;2716:15;-1:-1:-1;;;;;588:31:1;576:44;;522:104;2697:53;;1044:1712;;:::o;2761:263::-;2955:3;2940:19;;2968:50;2944:9;3000:6;2968:50;:::i;3029:367::-;3092:8;3102:6;3156:3;3149:4;3141:6;3137:17;3133:27;3123:55;;3174:1;3171;3164:12;3123:55;-1:-1:-1;3197:20:1;;3240:18;3229:30;;3226:50;;;3272:1;3269;3262:12;3226:50;3309:4;3301:6;3297:17;3285:29;;3369:3;3362:4;3352:6;3349:1;3345:14;3337:6;3333:27;3329:38;3326:47;3323:67;;;3386:1;3383;3376:12;3323:67;3029:367;;;;;:::o;3401:768::-;3523:6;3531;3539;3547;3600:2;3588:9;3579:7;3575:23;3571:32;3568:52;;;3616:1;3613;3606:12;3568:52;3656:9;3643:23;3689:18;3681:6;3678:30;3675:50;;;3721:1;3718;3711:12;3675:50;3760:70;3822:7;3813:6;3802:9;3798:22;3760:70;:::i;:::-;3849:8;;-1:-1:-1;3734:96:1;-1:-1:-1;;3937:2:1;3922:18;;3909:32;3966:18;3953:32;;3950:52;;;3998:1;3995;3988:12;3950:52;4037:72;4101:7;4090:8;4079:9;4075:24;4037:72;:::i;:::-;3401:768;;;;-1:-1:-1;4128:8:1;-1:-1:-1;;;;3401:768:1:o;4174:777::-;4452:2;4464:21;;;4534:13;;4437:18;;;4556:22;;;4404:4;;4647;4635:17;;;4609:2;4594:18;;;4404:4;4680:200;4694:6;4691:1;4688:13;4680:200;;;4743:51;4790:3;4781:6;4775:13;4743:51;:::i;:::-;4865:4;4853:17;;;;;4823:6;4814:16;;;;;4716:1;4709:9;4680:200;;;-1:-1:-1;;4931:4:1;4916:20;;;;4909:36;;;;-1:-1:-1;4897:3:1;4174:777;-1:-1:-1;;4174:777:1:o;5339:119::-;5424:8;5417:5;5413:20;5406:5;5403:31;5393:59;;5448:1;5445;5438:12;5463:669;5548:6;5556;5564;5572;5625:3;5613:9;5604:7;5600:23;5596:33;5593:53;;;5642:1;5639;5632:12;5593:53;5681:9;5668:23;5700:31;5725:5;5700:31;:::i;:::-;5750:5;-1:-1:-1;5807:2:1;5792:18;;5779:32;5820:33;5779:32;5820:33;:::i;:::-;5872:7;-1:-1:-1;5931:2:1;5916:18;;5903:32;5944:33;5903:32;5944:33;:::i;:::-;5996:7;-1:-1:-1;6055:2:1;6040:18;;6027:32;6068;6027;6068;:::i;:::-;5463:669;;;;-1:-1:-1;5463:669:1;;-1:-1:-1;;5463:669:1:o;6735:247::-;6794:6;6847:2;6835:9;6826:7;6822:23;6818:32;6815:52;;;6863:1;6860;6853:12;6815:52;6902:9;6889:23;6921:31;6946:5;6921:31;:::i;8252:127::-;8313:10;8308:3;8304:20;8301:1;8294:31;8344:4;8341:1;8334:15;8368:4;8365:1;8358:15;8384:344;8451:2;8445:9;8493:3;8481:16;;8527:18;8512:34;;8548:22;;;8509:62;8506:185;;;8613:10;8608:3;8604:20;8601:1;8594:31;8648:4;8645:1;8638:15;8676:4;8673:1;8666:15;8506:185;8707:2;8700:22;8384:344;:::o;8733:138::-;8812:13;;8834:31;8812:13;8834:31;:::i;:::-;8733:138;;;:::o;8876:136::-;8954:13;;8976:30;8954:13;8976:30;:::i;9017:164::-;9094:13;;9147:1;9136:20;;;9126:31;;9116:59;;9171:1;9168;9161:12;9186:192;9265:13;;-1:-1:-1;;;;;9307:46:1;;9297:57;;9287:85;;9368:1;9365;9358:12;9383:164;9459:13;;9508;;9501:21;9491:32;;9481:60;;9537:1;9534;9527:12;9552:1641;9652:6;9712:3;9700:9;9691:7;9687:23;9683:33;9728:2;9725:22;;;9743:1;9740;9733:12;9725:22;-1:-1:-1;9785:17:1;;:::i;:::-;9825:40;9855:9;9825:40;:::i;:::-;9818:5;9811:55;9898:49;9943:2;9932:9;9928:18;9898:49;:::i;:::-;9893:2;9886:5;9882:14;9875:73;9980:48;10024:2;10013:9;10009:18;9980:48;:::i;:::-;9975:2;9968:5;9964:14;9957:72;10061:47;10104:2;10093:9;10089:18;10061:47;:::i;:::-;10056:2;10049:5;10045:14;10038:71;10142:48;10185:3;10174:9;10170:19;10142:48;:::i;:::-;10136:3;10129:5;10125:15;10118:73;10224:48;10267:3;10256:9;10252:19;10224:48;:::i;:::-;10218:3;10211:5;10207:15;10200:73;10306:50;10351:3;10340:9;10336:19;10306:50;:::i;:::-;10300:3;10289:15;;10282:75;10423:3;10408:19;;;10402:26;10444:15;;;10437:32;10535:3;10520:19;;;10514:26;10556:15;;;10549:32;10614:50;10659:3;10644:19;;10614:50;:::i;:::-;10608:3;10601:5;10597:15;10590:75;10698:50;10743:3;10732:9;10728:19;10698:50;:::i;:::-;10692:3;10685:5;10681:15;10674:75;10782:50;10827:3;10816:9;10812:19;10782:50;:::i;:::-;10776:3;10769:5;10765:15;10758:75;10866:50;10911:3;10900:9;10896:19;10866:50;:::i;:::-;10860:3;10853:5;10849:15;10842:75;10950:47;10992:3;10981:9;10977:19;10950:47;:::i;:::-;10944:3;10937:5;10933:15;10926:72;11031:47;11073:3;11062:9;11058:19;11031:47;:::i;:::-;11025:3;11018:5;11014:15;11007:72;11112:50;11157:3;11146:9;11142:19;11112:50;:::i;:::-;11106:3;11095:15;;11088:75;11099:5;9552:1641;-1:-1:-1;;;9552:1641:1:o;11792:230::-;11862:6;11915:2;11903:9;11894:7;11890:23;11886:32;11883:52;;;11931:1;11928;11921:12;11883:52;-1:-1:-1;11976:16:1;;11792:230;-1:-1:-1;11792:230:1:o;12027:127::-;12088:10;12083:3;12079:20;12076:1;12069:31;12119:4;12116:1;12109:15;12143:4;12140:1;12133:15;12341:183;12419:13;;12472:26;12461:38;;12451:49;;12441:77;;12514:1;12511;12504:12;12529:1411;12692:6;12700;12708;12716;12724;12732;12740;12748;12756;12764;12772:7;12781;12835:3;12823:9;12814:7;12810:23;12806:33;12803:53;;;12852:1;12849;12842:12;12803:53;12875:39;12904:9;12875:39;:::i;:::-;12865:49;;12957:2;12946:9;12942:18;12936:25;12970:31;12995:5;12970:31;:::i;:::-;13070:2;13055:18;;13049:25;13020:5;;-1:-1:-1;13083:33:1;13049:25;13083:33;:::i;:::-;13187:2;13172:18;;13166:25;13135:7;;-1:-1:-1;13200:33:1;13166:25;13200:33;:::i;:::-;13325:3;13310:19;;13304:26;13252:7;;-1:-1:-1;13339:32:1;13304:26;13339:32;:::i;:::-;13390:7;-1:-1:-1;13416:48:1;13459:3;13444:19;;13416:48;:::i;:::-;13406:58;;13483:48;13526:3;13515:9;13511:19;13483:48;:::i;:::-;13473:58;;13550:50;13595:3;13584:9;13580:19;13550:50;:::i;:::-;13666:3;13651:19;;13645:26;13763:3;13748:19;;13742:26;13540:60;;-1:-1:-1;13645:26:1;-1:-1:-1;13742:26:1;-1:-1:-1;13814:50:1;13859:3;13844:19;;13814:50;:::i;:::-;13803:61;;13884:50;13929:3;13918:9;13914:19;13884:50;:::i;:::-;13873:61;;12529:1411;;;;;;;;;;;;;;:::o;13945:251::-;14015:6;14068:2;14056:9;14047:7;14043:23;14039:32;14036:52;;;14084:1;14081;14074:12;14036:52;14116:9;14110:16;14135:31;14160:5;14135:31;:::i;15077:1116::-;15222:6;15230;15238;15246;15254;15262;15270;15278;15286;15294;15347:3;15335:9;15326:7;15322:23;15318:33;15315:53;;;15364:1;15361;15354:12;15315:53;15396:9;15390:16;15415:31;15440:5;15415:31;:::i;:::-;15515:2;15500:18;;15494:25;15465:5;;-1:-1:-1;15528:33:1;15494:25;15528:33;:::i;:::-;15580:7;-1:-1:-1;15606:47:1;15649:2;15634:18;;15606:47;:::i;:::-;15596:57;;15672:47;15715:2;15704:9;15700:18;15672:47;:::i;:::-;15662:57;;15738:48;15781:3;15770:9;15766:19;15738:48;:::i;:::-;15728:58;;15805:50;15850:3;15839:9;15835:19;15805:50;:::i;:::-;15921:3;15906:19;;15900:26;16018:3;16003:19;;15997:26;15795:60;;-1:-1:-1;15900:26:1;-1:-1:-1;15997:26:1;-1:-1:-1;16068:50:1;16113:3;16098:19;;16068:50;:::i;:::-;16058:60;;16137:50;16182:3;16171:9;16167:19;16137:50;:::i;:::-;16127:60;;15077:1116;;;;;;;;;;;;;:::o;16198:981::-;16326:6;16334;16342;16350;16358;16366;16374;16382;16435:3;16423:9;16414:7;16410:23;16406:33;16403:53;;;16452:1;16449;16442:12;16403:53;16484:9;16478:16;16503:31;16528:5;16503:31;:::i;:::-;16553:5;-1:-1:-1;16577:47:1;16620:2;16605:18;;16577:47;:::i;:::-;16690:2;16675:18;;16669:25;16786:2;16771:18;;16765:25;16882:3;16867:19;;16861:26;16979:3;16964:19;;16958:26;17076:3;17061:19;;17055:26;16567:57;;-1:-1:-1;16669:25:1;;-1:-1:-1;16765:25:1;;-1:-1:-1;16861:26:1;-1:-1:-1;16958:26:1;-1:-1:-1;17055:26:1;-1:-1:-1;17126:47:1;17168:3;17153:19;;17126:47;:::i;:::-;17116:57;;16198:981;;;;;;;;;;;:::o;17184:1255::-;17339:6;17347;17355;17363;17371;17379;17387;17395;17403;17411;17419:7;17473:3;17461:9;17452:7;17448:23;17444:33;17441:53;;;17490:1;17487;17480:12;17441:53;17513:39;17542:9;17513:39;:::i;:::-;17503:49;;17595:2;17584:9;17580:18;17574:25;17608:31;17633:5;17608:31;:::i;:::-;17708:2;17693:18;;17687:25;17658:5;;-1:-1:-1;17721:33:1;17687:25;17721:33;:::i;:::-;17825:2;17810:18;;17804:25;17773:7;;-1:-1:-1;17838:33:1;17804:25;17838:33;:::i;:::-;17890:7;-1:-1:-1;17916:48:1;17959:3;17944:19;;17916:48;:::i;:::-;17906:58;;17983:48;18026:3;18015:9;18011:19;17983:48;:::i;:::-;17973:58;;18050:50;18095:3;18084:9;18080:19;18050:50;:::i;:::-;18166:3;18151:19;;18145:26;18263:3;18248:19;;18242:26;18040:60;;-1:-1:-1;18145:26:1;-1:-1:-1;18242:26:1;-1:-1:-1;18313:50:1;18358:3;18343:19;;18313:50;:::i;:::-;18303:60;;18383:50;18428:3;18417:9;18413:19;18383:50;:::i;:::-;18372:61;;17184:1255;;;;;;;;;;;;;;:::o;18749:249::-;18818:6;18871:2;18859:9;18850:7;18846:23;18842:32;18839:52;;;18887:1;18884;18877:12;18839:52;18919:9;18913:16;18938:30;18962:5;18938:30;:::i;19003:867::-;19122:6;19130;19138;19146;19154;19162;19170;19223:3;19211:9;19202:7;19198:23;19194:33;19191:53;;;19240:1;19237;19230:12;19191:53;19272:9;19266:16;19291:31;19316:5;19291:31;:::i;:::-;19341:5;-1:-1:-1;19365:47:1;19408:2;19393:18;;19365:47;:::i;:::-;19478:2;19463:18;;19457:25;19574:2;19559:18;;19553:25;19670:3;19655:19;;19649:26;19767:3;19752:19;;19746:26;19355:57;;-1:-1:-1;19457:25:1;;-1:-1:-1;19553:25:1;-1:-1:-1;19649:26:1;-1:-1:-1;19746:26:1;-1:-1:-1;19817:47:1;19859:3;19844:19;;19817:47;:::i;:::-;19807:57;;19003:867;;;;;;;;;;:::o
Swarm Source
ipfs://f711eba0835ed229d48796307928be657c397e405a5c692d0ac5376c5ffa8988
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.