ETH Price: $1,842.83 (+0.68%)
 

More Info

Private Name Tags

Multichain Info

1 address found via
Transaction Hash
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

Cross-Chain Transactions
Loading...
Loading
Source Code Verified Exact Match

Contract Name

TeaVaultV3Pair

Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled
Yes with 15 runs
Other Settings
default 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":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CallerIsNotManager","type":"error"},{"inputs":[{"internalType":"uint256","name":"minAmount","type":"uint256"},{"internalType":"uint256","name":"convertedAmount","type":"uint256"}],"name":"InsufficientSwapResult","type":"error"},{"inputs":[],"name":"InvalidCallbackCaller","type":"error"},{"inputs":[],"name":"InvalidCallbackStatus","type":"error"},{"inputs":[],"name":"InvalidFeeCap","type":"error"},{"inputs":[],"name":"InvalidFeePercentage","type":"error"},{"inputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"InvalidPriceSlippage","type":"error"},{"inputs":[],"name":"InvalidShareAmount","type":"error"},{"inputs":[],"name":"InvalidSwapReceiver","type":"error"},{"inputs":[],"name":"InvalidSwapToken","type":"error"},{"inputs":[],"name":"InvalidTokenOrder","type":"error"},{"inputs":[],"name":"PoolNotInitialized","type":"error"},{"inputs":[],"name":"PositionDoesNotExist","type":"error"},{"inputs":[],"name":"PositionLengthExceedsLimit","type":"error"},{"inputs":[],"name":"SwapInZeroLiquidityRegion","type":"error"},{"inputs":[],"name":"TransactionExpired","type":"error"},{"inputs":[],"name":"ZeroLiquidity","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":false,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"AddLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":false,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeAmount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeAmount1","type":"uint256"}],"name":"CollectSwapFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"shareOwner","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeAmount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeAmount1","type":"uint256"}],"name":"DepositShares","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint24","name":"entryFee","type":"uint24"},{"internalType":"uint24","name":"exitFee","type":"uint24"},{"internalType":"uint24","name":"performanceFee","type":"uint24"},{"internalType":"uint24","name":"managementFee","type":"uint24"}],"indexed":false,"internalType":"struct ITeaVaultV3Pair.FeeConfig","name":"feeConfig","type":"tuple"}],"name":"FeeConfigChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"ManagementFeeCollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"newManager","type":"address"}],"name":"ManagerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":false,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"RemoveLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"zeroForOne","type":"bool"},{"indexed":true,"internalType":"bool","name":"exactInput","type":"bool"},{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOut","type":"uint256"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"teaVaultAddress","type":"address"}],"name":"TeaVaultV3PairCreated","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":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"shareOwner","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeShares","type":"uint256"}],"name":"WithdrawShares","type":"event"},{"inputs":[],"name":"DECIMALS_MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SECONDS_IN_A_YEAR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int24","name":"_tickLower","type":"int24"},{"internalType":"int24","name":"_tickUpper","type":"int24"},{"internalType":"uint128","name":"_liquidity","type":"uint128"},{"internalType":"uint256","name":"_amount0Min","type":"uint256"},{"internalType":"uint256","name":"_amount1Min","type":"uint256"},{"internalType":"uint64","name":"_deadline","type":"uint64"}],"name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allPositionInfo","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"uint256","name":"fee0","type":"uint256"},{"internalType":"uint256","name":"fee1","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","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":[],"name":"assetToken0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"assetToken1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_manager","type":"address"}],"name":"assignManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router1Inch","type":"address"}],"name":"assignRouter1Inch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"clipperExchange","type":"address"},{"internalType":"address","name":"srcToken","type":"address"},{"internalType":"address","name":"dstToken","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"outputAmount","type":"uint256"},{"internalType":"uint256","name":"goodUntil","type":"uint256"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"vs","type":"bytes32"}],"name":"clipperSwap","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"collectAllSwapFee","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"collectManagementFee","outputs":[{"internalType":"uint256","name":"collectedShares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int24","name":"_tickLower","type":"int24"},{"internalType":"int24","name":"_tickUpper","type":"int24"}],"name":"collectPositionSwapFee","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shares","type":"uint256"},{"internalType":"uint256","name":"_amount0Max","type":"uint256"},{"internalType":"uint256","name":"_amount1Max","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"depositedAmount0","type":"uint256"},{"internalType":"uint256","name":"depositedAmount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"estimatedValueInToken0","outputs":[{"internalType":"uint256","name":"value0","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"estimatedValueInToken1","outputs":[{"internalType":"uint256","name":"value1","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeConfig","outputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint24","name":"entryFee","type":"uint24"},{"internalType":"uint24","name":"exitFee","type":"uint24"},{"internalType":"uint24","name":"performanceFee","type":"uint24"},{"internalType":"uint24","name":"managementFee","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllPositions","outputs":[{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"}],"internalType":"struct ITeaVaultV3Pair.Position[]","name":"results","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"}],"name":"getAmountsForLiquidity","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"getLiquidityForAmounts","outputs":[{"internalType":"uint128","name":"liquidity","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPoolInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"uint8","name":"","type":"uint8"},{"internalType":"uint24","name":"","type":"uint24"},{"internalType":"uint160","name":"","type":"uint160"},{"internalType":"int24","name":"","type":"int24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken0Balance","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken1Balance","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"},{"internalType":"uint24","name":"_feeTier","type":"uint24"},{"internalType":"uint8","name":"_decimalOffset","type":"uint8"},{"internalType":"uint24","name":"_feeCap","type":"uint24"},{"components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint24","name":"entryFee","type":"uint24"},{"internalType":"uint24","name":"exitFee","type":"uint24"},{"internalType":"uint24","name":"performanceFee","type":"uint24"},{"internalType":"uint24","name":"managementFee","type":"uint24"}],"internalType":"struct ITeaVaultV3Pair.FeeConfig","name":"_feeConfig","type":"tuple"},{"internalType":"address","name":"_owner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastCollectManagementFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"contract IUniswapV3Pool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"positionInfo","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"uint256","name":"fee0","type":"uint256"},{"internalType":"uint256","name":"fee1","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int24","name":"_tickLower","type":"int24"},{"internalType":"int24","name":"_tickUpper","type":"int24"}],"name":"positionInfo","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"uint256","name":"fee0","type":"uint256"},{"internalType":"uint256","name":"fee1","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"positions","outputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int24","name":"_tickLower","type":"int24"},{"internalType":"int24","name":"_tickUpper","type":"int24"},{"internalType":"uint128","name":"_liquidity","type":"uint128"},{"internalType":"uint256","name":"_amount0Min","type":"uint256"},{"internalType":"uint256","name":"_amount1Min","type":"uint256"},{"internalType":"uint64","name":"_deadline","type":"uint64"}],"name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router1Inch","outputs":[{"internalType":"contract IGenericRouter1Inch","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint24","name":"entryFee","type":"uint24"},{"internalType":"uint24","name":"exitFee","type":"uint24"},{"internalType":"uint24","name":"performanceFee","type":"uint24"},{"internalType":"uint24","name":"managementFee","type":"uint24"}],"internalType":"struct ITeaVaultV3Pair.FeeConfig","name":"_feeConfig","type":"tuple"}],"name":"setFeeConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_zeroForOne","type":"bool"},{"internalType":"uint256","name":"_amountIn","type":"uint256"}],"name":"simulateSwapInputSingleInternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"executor","type":"address"},{"components":[{"internalType":"address","name":"srcToken","type":"address"},{"internalType":"address","name":"dstToken","type":"address"},{"internalType":"address payable","name":"srcReceiver","type":"address"},{"internalType":"address payable","name":"dstReceiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minReturnAmount","type":"uint256"},{"internalType":"uint256","name":"flags","type":"uint256"}],"internalType":"struct IGenericRouter1Inch.SwapDescription","name":"desc","type":"tuple"},{"internalType":"bytes","name":"permit","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"},{"internalType":"uint256","name":"spentAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_zeroForOne","type":"bool"},{"internalType":"uint256","name":"_amountIn","type":"uint256"},{"internalType":"uint256","name":"_amountOutMin","type":"uint256"},{"internalType":"uint160","name":"_minPriceInSqrtPriceX96","type":"uint160"},{"internalType":"uint64","name":"_deadline","type":"uint64"}],"name":"swapInputSingle","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_zeroForOne","type":"bool"},{"internalType":"uint256","name":"_amountOut","type":"uint256"},{"internalType":"uint256","name":"_amountInMax","type":"uint256"},{"internalType":"uint160","name":"_maxPriceInSqrtPriceX96","type":"uint160"},{"internalType":"uint64","name":"_deadline","type":"uint64"}],"name":"swapOutputSingle","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount0Owed","type":"uint256"},{"internalType":"uint256","name":"_amount1Owed","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"uniswapV3MintCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minReturn","type":"uint256"},{"internalType":"uint256[]","name":"pools","type":"uint256[]"}],"name":"uniswapV3Swap","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int256","name":"_amount0Delta","type":"int256"},{"internalType":"int256","name":"_amount1Delta","type":"int256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"uniswapV3SwapCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"srcToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minReturn","type":"uint256"},{"internalType":"uint256[]","name":"pools","type":"uint256[]"}],"name":"unoswap","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"vaultAllUnderlyingAssets","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shares","type":"uint256"},{"internalType":"uint256","name":"_amount0Min","type":"uint256"},{"internalType":"uint256","name":"_amount1Min","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"withdrawnAmount0","type":"uint256"},{"internalType":"uint256","name":"withdrawnAmount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]
60a08060405234620000e157306080526000549060ff8260081c166200008f575060ff8082161062000053575b604051615f8e9081620000e782396080518181816111ce0152818161153c01526116c60152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1386200002c565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8062aeef8a146103f6578063014a0abc146103f15780630502b1c5146103ec57806306fdde03146103e7578063095ea7b3146103e257806312aa3caf146103dd57806314e048ba146103d857806316f0115b146103d357806318160ddd146103ce57806318f56a0a146103c95780631e5eb1d0146103c457806323b872dd146103bf5780632ab48216146103ba5780632d2dcc48146103b5578063313ce567146103b0578063352ddc36146103ab5780633659cfe6146103a657806339509351146103a15780633ee708bc1461039c578063481c6a75146103975780634f1ef286146103925780635153786b1461038d57806352d1902d1461038857806360246c88146103835780636d7c2a571461037e5780637019732f1461037957806370a0823114610374578063715018a61461036f57806373d8fe671461036a57806381c7b06d1461036557806384bd6d291461036057806387f6c4931461035b57806389097a6a146103565780638c625a87146103515780638da5cb5b1461034c578063955f263a1461034757806395d89b411461034257806399fbab881461033d5780639c016ffd14610338578063a301ad2b14610333578063a41fe49f1461032e578063a457c2d714610329578063a9059cbb14610324578063aa3c1d401461031f578063ac9650d81461031a578063b3c40be414610315578063b591b13c14610310578063bbdd366a1461030b578063c2d9ecfa14610306578063c4fa17a414610301578063d3487997146102fc578063d41edb3b146102f7578063dd5f47db146102f2578063dd62ed3e146102ed578063e045b7b4146102e8578063e449022e146102e3578063f2fde38b146102de578063f57fa78d146102d9578063f68eb657146102d4578063fa461e33146102cf578063faf6d874146102ca5763feda50ec146102c557600080fd5b613231565b6130bb565b612fd9565b612f14565b612eea565b612e59565b612c91565b612c67565b612c14565b612a15565b61291e565b6127c7565b6127a8565b612751565b612732565b612713565b6126fa565b61260d565b612562565b612538565b612498565b61214a565b6120a7565b61206e565b61201b565b611f0d565b611e2c565b611e03565b611de9565b611d09565b611cda565b611b7c565b611b3a565b611a61565b611a03565b6119c6565b61199c565b611970565b611773565b6116b3565b61163e565b6114ea565b6113b3565b611357565b6112e2565b6111a7565b611160565b61113e565b6110c4565b611060565b610f25565b610ed3565b610e40565b610dbe565b610d94565b610d75565b610baf565b610b4d565b610a71565b610894565b610818565b61042b565b606090600319011261041557600435906024359060443590565b600080fd5b908152602081019190915260400190565b3461041557610439366103fb565b91610442614902565b6000928382156106115761045461468a565b5060fd54908161062b57505061046d61012e54836148f8565b9261048f8461048661048161013454610837565b610837565b30903390614958565b831580610623575b610611576000918291610132805460018060a01b03811690813303610568575b505050851190811561055e575b5061053a577fa9655c7bb3dce82c29396162aecd039217d6e09ea6ae1fe2c13650c8570e3ecc916104f58433614736565b604080519485526020850186905284018690526060840152608083015233918060a081015b0390a2610527600160c955565b6105366040519283928361041a565b0390f35b50506040516308f51ff960e31b815292839261055a92506004840161041a565b0390fd5b90508511386104c4565b6105bc93999896506105b69192955062ffffff9060a01c1661012f549661059c6105938984846147e8565b9889938c6147e8565b96879483806105f1575b505084806105c5575b505061386f565b9661386f565b953880806104b7565b6105ea916105e26105db61048161013554610837565b9154610837565b903390614958565b38846105af565b61060a913361060561048161013454610837565b614958565b38836105a6565b604051638c88122d60e01b8152600490fd5b508415610497565b61063795949195615130565b5050610131549560405160209761066282610654338c83016113a0565b03601f198101845283611468565b87915b8183106107935750505061067e61048161013454610837565b966040516370a0823160e01b9081815282818061069e30600483016113a0565b03818d5afa8015610771578885916106be93600091610776575b506147e8565b9261013592806106d16104818654610837565b604051948552849081806106e830600483016113a0565b03915afa9586156107715761071f61071787948c61073f9a61072f9861072597600092610744575b50506147e8565b96879261386f565b9a61386f565b9930903390614958565b3090610605610481339254610837565b61048f565b6107639250803d1061076a575b61075b8183611468565b8101906134fb565b3880610710565b503d610751565b61350a565b61078d9150863d881161076a5761075b8183611468565b386106b8565b9091979361080b6108006105b68a61081194610806898f896107dc6107d76107bd6107ee94611fc7565b5080549890959060308a901c6001600160801b03166147e8565b614af4565b80966002908060181c820b910b61545f565b9690946107fb8354611fe7565b6148b6565b906148cf565b61386f565b986148a7565b9190610665565b3461041557600036600319011261041557602061013754604051908152f35b6001600160a01b031690565b6001600160a01b0381160361041557565b6101a4359061086282610843565b565b9181601f84011215610415578235916001600160401b038311610415576020808501948460051b01011161041557565b34610415576080366003190112610415576004356108b181610843565b6024356064356001600160401b038111610415576108d3903690600401610864565b9290916108de614902565b610130546001600160a01b039060101c81163303610a0b576101349461090a6104816104818854610837565b91841691821491821590816109ef575b506109dd5760209461092f8461097994615e8f565b9661094961048161094261013854610837565b9254610837565b9461095961048161013554610837565b96604051998a98899863a3a10a8960e01b8a526044359560048b01615ded565b0381731546b2ae60a2ade3f8f1a9276c198e8f52212c055af4801561077157610536916000916109bf575b506109af600160c955565b6040519081529081906020820190565b6109d7915060203d811161076a5761075b8183611468565b386109a4565b604051633539a70160e01b8152600490fd5b9050610a0361048161048161013554610837565b14153861091a565b604051630190a5dd60e21b8152600490fd5b919082519283825260005b848110610a49575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610a28565b906020610a6e928181520190610a1d565b90565b3461041557600080600319360112610b4a576040518160fe54610a93816137ee565b80845290600190818116908115610b225750600114610ac9575b61053684610abd81880382611468565b60405191829182610a5d565b60fe8352602094507f54075df80ec1ae6ac9100e1fd0ebf3246c17f5c933137af392011f4c5f61513a5b828410610b0f575050508161053693610abd9282010193610aad565b8054858501870152928501928101610af3565b6105369650610abd9450602092508593915060ff191682840152151560051b82010193610aad565b80fd5b3461041557604036600319011261041557610b77600435610b6d81610843565b60243590336139fe565b602060405160018152f35b9181601f84011215610415578235916001600160401b038311610415576020838186019501011161041557565b34610415576101403660031901126104155760048035610bce81610843565b60e0366023190112610415576001600160401b036101043581811161041557610bfa9036908501610b82565b90916101243590811161041557610c149036908601610b82565b91610c1d614902565b610130546001600160a01b03949060101c85163303610d6457610c3e6143b2565b948061013496610c546104816104818a54610837565b921682141580610d3f575b610d2e5791610c8660409899969492610cc89694610c7b6143b2565b161460a43590615e8f565b98610ca0610481610c9961013854610837565b9954610837565b99610cb061048161013554610837565b8a51633850524b60e21b81529b8c9a8b9a8b01615d01565b0381731546b2ae60a2ade3f8f1a9276c198e8f52212c055af4908115610771576000908192610cfd575b50610527600160c955565b9050610d20915060403d8111610d27575b610d188183611468565b810190615073565b9038610cf2565b503d610d0e565b604051633539a70160e01b81528990fd5b50610d486143b2565b81610d5b61048161048161013554610837565b91161415610c5f565b604051630190a5dd60e21b81528790fd5b3461041557600036600319011261041557602061013954604051908152f35b3461041557600036600319011261041557610133546040516001600160a01b039091168152602090f35b3461041557600036600319011261041557602060fd54604051908152f35b60208082019080835283518092528060408094019401926000905b838210610e0657505050505090565b84518051600290810b885281850151900b878501528101516001600160801b03168682015260609095019493820193600190910190610df7565b3461041557600080600319360112610b4a576101318054610e608161590d565b91604093610e7085519485611468565b82845290815260208082208185015b848410610e93578651806105368882610ddc565b60018381928951610ea3816113f7565b8554600281810b83528160181c900b84830152848060801b039060301c168b820152815201920193019290610e7f565b346104155760003660031901126104155760a06101325460405190600180841b038116825262ffffff8082851c166020840152808260b81c1660408401528160d01c16606083015260e81c6080820152f35b3461041557606036600319011261041557600435610f4281610843565b602435610f4e81610843565b6044359060018060a01b03831660005260fc602052610f71336040600020613842565b549260018401610f92575b610f86935061392f565b60405160018152602090f35b828410610fae57610fa983610f86950333836139fe565b610f7c565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b8060020b0361041557565b6001600160801b0381160361041557565b60c09060031901126104155760043561102781610ff3565b9060243561103481610ff3565b9060443561104181610ffe565b90606435906084359060a4356001600160401b03811681036104155790565b346104155761106e3661100f565b9093919291906001600160401b031642116110b2576101305460101c6001600160a01b03163303610a0b576110a294614ecd565b906105366040519283928361041a565b6040516338e5e54b60e21b8152600490fd5b34610415576020366003190112610415576004356110e181610843565b6110e961337c565b610130805462010000600160b01b031916601083901b62010000600160b01b03161790556001600160a01b0316337f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a4350600080a3005b3461041557600036600319011261041557602060ff6101305416604051908152f35b346104155760203660031901126104155760043561117d81610843565b61118561337c565b61013880546001600160a01b0319166001600160a01b03909216919091179055005b34610415576020366003190112610415576004356111c481610843565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691906111fd30841415613439565b61121a600080516020615f1983398151915293828554161461349a565b61122261337c565b6040519061122f82611417565b600082527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561126b57505061126991506135c3565b005b6020600491604094939451928380926352d1902d60e01b825286165afa600091816112c2575b506112af5760405162461bcd60e51b81528061055a60048201613574565b611269936112bd9114613516565b613653565b6112db91925060203d811161076a5761075b8183611468565b9038611291565b34610415576040366003190112610415576004356112ff81610843565b3360005260fc602052611316816040600020613842565b54602435810180911161132d57610b7791336139fe565b613859565b60409060031901126104155760043561134a81610ff3565b90602435610a6e81610ff3565b346104155761136536611332565b6101305460101c6001600160a01b03163303610a0b5761138491614fec565b604080516001600160801b039384168152919092166020820152f35b6001600160a01b03909116815260200190565b34610415576000366003190112610415576101305460405160109190911c6001600160a01b03168152602090f35b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761141257604052565b6113e1565b602081019081106001600160401b0382111761141257604052565b604081019081106001600160401b0382111761141257604052565b608081019081106001600160401b0382111761141257604052565b601f909101601f19168101906001600160401b0382119082101761141257604052565b60405190610862826113f7565b6001600160401b03811161141257601f01601f191660200190565b9291926114bf82611498565b916114cd6040519384611468565b829481845281830111610415578281602093846000960137010152565b60403660031901126104155760043561150281610843565b6024356001600160401b0381116104155736602382011215610415576115329036906024816004013591016114b3565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811692919061156c30851415613439565b611589600080516020615f1983398151915294828654161461349a565b61159161337c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156115c757505061126991506135c3565b6020600491604094939451928380926352d1902d60e01b825286165afa6000918161161e575b5061160b5760405162461bcd60e51b81528061055a60048201613574565b611269936116199114613516565b61371f565b61163791925060203d811161076a5761075b8183611468565b90386115ed565b3461041557600036600319011261041557610135546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa801561077157602091600091611696575b50604051908152f35b6116ad9150823d811161076a5761075b8183611468565b3861168d565b34610415576000366003190112610415577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316300361170d57604051600080516020615f198339815191528152602090f35b60405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608490fd5b3461041557600080600319360112610b4a5761179461048161013354610837565b9060405163ddca3f4360e01b81526020908181600481875afa908115610771578391611927575b506117cb61048161013454610837565b926040519163313ce56760e01b8084528484600481895afa938415610771578394611908575b5061180161048161013554610837565b9660405191825285826004818b5afa9182156107715760049685936118d4575b505060e09060405196878092633850c7bd851b82525afa93841561077157610536958495611899575b50604080516001600160a01b03988916815298881660208a015260ff9182169089015216606087015262ffffff16608086015290921660a084015260029190910b60c0830152819060e0820190565b9094506118be91935060e03d81116118cd575b6118b68183611468565b8101906142f8565b5050505050929092933861184a565b503d6118ac565b60e092935090816118f992903d10611901575b6118f18183611468565b810190613cb8565b919038611821565b503d6118e7565b611920919450853d8711611901576118f18183611468565b92386117f1565b6119479150823d841161194d575b61193f8183611468565b8101906142d4565b386117bb565b503d611935565b9094939260609260808301968352602083015260408201520152565b346104155760003660031901126104155761053661198c615ac4565b9060409492945194859485611954565b3461041557600036600319011261041557610135546040516001600160a01b039091168152602090f35b34610415576020366003190112610415576004356119e381610843565b60018060a01b031660005260fb6020526020604060002054604051908152f35b3461041557600080600319360112610b4a57611a1d61337c565b609780546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b3461041557606036600319011261041557600435611a7e81610ff3565b602435611a8a81610ff3565b60443590611a9782610ffe565b61013354604080516362891e0b60e01b81526001600160a01b039092166004830152600294850b60248301529190930b60448401526001600160801b039190911660648301528160848173d4e10dd0c0e64c5f6eb134e7d2f2d43f82d8dc005af4908115610771576000908192611b19575b506105366040519283928361041a565b9050611b33915060403d8111610d2757610d188183611468565b9038611b09565b3461041557611b483661100f565b9093919291906001600160401b031642116110b2576101305460101c6001600160a01b03163303610a0b576110a294614dd6565b346104155761010036600319011261041557600435611b9a81610843565b60243590611ba782610843565b60443591611bb483610843565b60643591611bc0614902565b610130546001600160a01b039060101c81163303610a0b5761013493611bec6104816104818754610837565b9184169182149182159081611cbe575b506109dd57602094611c118261097994615e8f565b90611c2461048161094261013854610837565b91611c3461048161013554610837565b60405163ebd47b0d60e01b81526001600160a01b039384166004820152938316602485015282166044840152606483015293841660848083019190915294841660a4808301919091529390961660c48088019190915260e4808801929092529335610104870152913561012486015291356101448501523561016484015282908190610184820190565b9050611cd261048161048161013554610837565b141538611bfc565b34610415576000366003190112610415576101305460101c6001600160a01b03163303610a0b57611384615130565b346104155760203660031901126104155760043561013154811015611dd7576080611d6191611d43611d3d61013354610837565b91611fc7565b50604051631612a31760e31b815293849283929030600485016159a9565b038173d4e10dd0c0e64c5f6eb134e7d2f2d43f82d8dc005af480156107715760008091818291611d9d575b906105369160405194859485611954565b50505050611dc46105369160803d8111611dd0575b611dbc8183611468565b810190615987565b91935083929190611d8c565b503d611db2565b60405163f7b3b39160e01b8152600490fd5b346104155761053661198c611dfd36611332565b906159cb565b34610415576000366003190112610415576097546040516001600160a01b039091168152602090f35b3461041557608036600319011261041557600435611e4981610ff3565b602435611e5581610ff3565b60018060a01b036101335416916040519263361d23b760e21b8452600484015260020b602483015260020b60448201526044356064820152606435608482015260208160a48173d4e10dd0c0e64c5f6eb134e7d2f2d43f82d8dc005af480156107715761053691600091611edf575b506040516001600160801b0390911681529081906020820190565b611f00915060203d8111611f06575b611ef88183611468565b810190615ccb565b38611ec4565b503d611eee565b3461041557600080600319360112610b4a576040518160ff54611f2f816137ee565b80845290600190818116908115610b225750600114611f585761053684610abd81880382611468565b60ff8352602094507fe08ec2af2cfc251225e1968fd6ca21e4044f129bffa95bac3503be8bdb30a3675b828410611f9e575050508161053693610abd9282010193610aad565b8054858501870152928501928101611f82565b634e487b7160e01b600052603260045260246000fd5b6101318054821015611fe25760005260206000200190600090565b611fb1565b60301c6001600160801b031690565b600291820b815291900b60208201526001600160801b03909116604082015260600190565b346104155760203660031901126104155760043561013190815481101561041557610536916000526020600020015460405191829160018060801b038160301c16908060181c60020b9060020b84611ff6565b34610415576000366003190112610415576101305460101c6001600160a01b03163303610a0b57602061209f61468a565b604051908152f35b346104155760003660031901126104155760206120c2615bb9565b6101335460405163092df84160e31b81529392849283926120f092906001600160a01b031660048501615cad565b038173d4e10dd0c0e64c5f6eb134e7d2f2d43f82d8dc005af48015610771576105369160009161212c575b506040519081529081906020820190565b612144915060203d811161076a5761075b8183611468565b3861211b565b3461041557612158366103fb565b9091612162614902565b60008180156106115761217361468a565b5060fd5461013254909383916001600160a01b038116903382900361244e575b5050506121a08233614c38565b610131948554916121af615130565b5050610134916121c26104818454610837565b9360405196876370a0823160e01b968782526020998a9181806121e830600483016113a0565b03915afa91821561077157612207928b928a9291612431575b5061481a565b96610135958161221a6104818954610837565b6040519283528290818061223130600483016113a0565b03915afa91821561077157612256928b928a92600092612414575b50509a939a61481a565b9760005b818110612374575050506000975b8054808a10156122da576122946122886122818c611fc7565b5054611fe7565b6001600160801b031690565b6122c9576122ac6122a76122bc9261466e565b611fc7565b506122b68b611fc7565b90614b94565b6122c4614bf6565b612268565b50976122d4906148a7565b97612268565b50508686918a831090811561236a575b5061234d577f43394472faf6e72a904b108d59ae00f2935bfcdd08137aeb9f78e79aa366bcc59461232f61233d9361051a9661232a610481339254610837565b614d29565b61232a610481339254610837565b6040519182918787339785611954565b6040516308f51ff960e31b815291829161055a916004840161041a565b90508110896122ea565b829961238282949394611fc7565b509081549a8b8b600282810b9260181c900b9e8f9e600160801b600190039060301c16916123af9261481a565b6123b890614af4565b9d8e6123c49183615601565b9d6123cf9192615718565b50506123da9161386f565b9a6123e49161386f565b9a81546123f090611fe7565b906123fa91614b5d565b612403916148cf565b61240c906148a7565b91909161225a565b61242a9250803d1061076a5761075b8183611468565b388061224c565b61244891508b3d8d1161076a5761075b8183611468565b38612201565b61246d9192945061247e935062ffffff61012f549160b81c16856147e8565b9283918280612487575b505061467d565b90388080612193565b612491913361392f565b3882612477565b34610415576040366003190112610415576004356124b581610843565b602435903360005260fc6020526124d0816040600020613842565b54918083106124e557610f86920390336139fe565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608490fd5b3461041557604036600319011261041557610b7760043561255881610843565b602435903361392f565b3461041557600036600319011261041557602061257d615bb9565b61013354604051637d5dbf5160e11b81529392849283926120f092906001600160a01b031660048501615cad565b602080820190808352835180925260408301928160408460051b8301019501936000915b8483106125df5750505050505090565b90919293949584806125fd600193603f198682030187528a51610a1d565b98019301930191949392906125cf565b3461041557602080600319360112610415576004356001600160401b0381116104155761263e903690600401610864565b916126488361590d565b9160409161265883519485611468565b848452601f196126678661590d565b0160005b8181106126eb5750505060005b84811061268c5782518061053686826125ab565b806126cb6000806126a16126e6958a88615924565b906126b0895180938193615965565b0390305af46126bd613775565b6126c56137a5565b91613b17565b6126d58287615973565b526126e08186615973565b506148a7565b612678565b6060868201840152820161266b565b34610415576000366003190112610415576110a2615bb9565b3461041557600036600319011261041557602061012f54604051908152f35b3461041557600036600319011261041557602061012e54604051908152f35b3461041557600036600319011261041557610134546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa8015610771576020916000916116965750604051908152f35b3461041557600036600319011261041557602061012d54604051908152f35b34610415576060366003190112610415576004356024356044356001600160401b038111610415576127fd903690600401610b82565b90600261013654036128c75761281861048161013354610837565b6001600160a01b03929033908416036128b557816104819161283b9301906155ec565b928061287a575b508161284a57005b82166128655761126991503361232a61048161013554610837565b61126991339061060561048161013554610837565b83821661289b57612895903361232a61048161013454610837565b38612842565b6128b090338561060561048161013454610837565b612895565b6040516333b43e6360e21b8152600490fd5b604051637748745560e01b8152600490fd5b62ffffff81160361041557565b60e43590610862826128d9565b60ff81160361041557565b60c43590610862826128f3565b60a0906101031901126104155761010490565b34610415576101c0366003190112610415576001600160401b0360043581811161041557612950903690600401610b82565b6024359283116104155761296b611269933690600401610b82565b60443561297781610843565b60643561298381610843565b6084359061299082610843565b60a4359261299d846128d9565b6129a56128fe565b946129ae6128e6565b966129b83661290b565b986129c1610854565b9a613b5c565b8015150361041557565b60a0906003190112610415576004356129e9816129c7565b9060243590604435906064356129fe81610843565b906084356001600160401b03811681036104155790565b3461041557612a23366129d1565b61013054939491936001600160a01b0393919060101c84163303610a0b576001600160401b031642116110b257612aeb93612a5f600261013655565b612a6e61048161013354610837565b93612a80612a7b88615891565b615880565b90821615918215612c0e57508315612bf4576401000276a45b905b60409586926000845193612acd85612abf8b60208301919091602081019215159052565b03601f198101875286611468565b8551630251596160e31b81529a8b95869485938c3060048701615847565b03925af18015610771576000958691612bd1575b50612b0b600161013655565b8315612bc157612b1a90615880565b905b80612bb7575b612b9757508311612b7857610536937f89a0f954e20890e6f71ce02a4e8655fe6262b4e86117de9a0153620430af4ab7612b676000938551918291151594888361041a565b0390a3519081529081906020820190565b81516308f51ff960e31b81526004810184905260006024820152604490fd5b83516308f51ff960e31b8152600481019190915260006024820152604490fd5b5085811415612b22565b94612bcb90615880565b90612b1c565b9050612beb919550843d8611610d2757610d188183611468565b94909438612aff565b73fffd8963efd1fc6a506488495d951d5263988d25612a99565b90612a9b565b34610415576040366003190112610415576020612c5e600435612c3681610843565b60243590612c4382610843565b6001600160a01b0316600090815260fc845260409020613842565b54604051908152f35b3461041557600036600319011261041557610134546040516001600160a01b039091168152602090f35b3461041557606036600319011261041557600480356044356001600160401b03811161041557612cc49036908401610864565b612ccc614902565b610130546001600160a01b039060101c81163303612e4857612cee8284615e39565b60009086903583811690600160ff1b16612e0057604051630dfe168160e01b81529250602091839182905afa90811561077157600091612dd2575b50915b6101349382612d416104816104818854610837565b941693841492831580612db7575b612da65786612d6360209861097996615e8f565b612d75610481610c9961013854610837565b99612d8561048161013554610837565b604051630e42446f60e11b81529b8c9a8b9a60243597831614938b01615e42565b604051633539a70160e01b81528890fd5b50612dca61048161048161013554610837565b851415612d4f565b612df3915060203d8111612df9575b612deb8183611468565b810190613ca3565b38612d29565b503d612de1565b6020906040519283809263d21220a760e01b82525afa9182156107715791612e2a575b5091612d2c565b612e42915060203d8111612df957612deb8183611468565b38612e23565b604051630190a5dd60e21b81528590fd5b3461041557602036600319011261041557600435612e7681610843565b612e7e61337c565b6001600160a01b03811615612e9657611269906133f0565b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b3461041557600036600319011261041557610138546040516001600160a01b039091168152602090f35b346104155760a036600319011261041557612f2d61337c565b612f3561468a565b50612f3e615130565b5050612f59612f4b614361565b612f5361436d565b9061439b565b61013954908162ffffff80921611612fc7578181612f75614379565b1611612fc757612f83614385565b1611612fc757612f916143be565b6040517f9b77979ce4de4fc68093eab0fd33625b0cc9f868dbfa1df90cdc46b7e056cb2e339180612fc242826144f3565b0390a2005b60405163390edff560e11b8152600490fd5b34610415576060366003190112610415576024356004356044356001600160401b0381116104155761300f903690600401610b82565b90600261013654036128c75761302a61048161013354610837565b336001600160a01b03909116036128b557821580156130b3575b6130a157613054918101906158f8565b916000821315613097575090805b15159015151460001461308357611269903361232a61048161013454610837565b611269903361232a61048161013554610837565b9180159150613062565b60405163030e4c8d60e41b8152600490fd5b508315613044565b34610415576130c9366129d1565b61013054939492939192916001600160a01b03919060101c82163303610a0b576001600160401b031642116110b25761317990613107600261013655565b61311661048161013354610837565b9361312087615891565b91811661322b57508215613211576401000276a45b905b6040948592600084519361315b85612abf8a60208301919091602081019215159052565b8551630251596160e31b8152968795869485938b3060048701615847565b03925af18015610771576131a99160009081926131f1575b5061319d600161013655565b83156131ea5750615880565b928310612b7857610536937f89a0f954e20890e6f71ce02a4e8655fe6262b4e86117de9a0153620430af4ab784600193612b6786519283921515958361041a565b9050615880565b905061320a9150843d8611610d2757610d188183611468565b9038613191565b73fffd8963efd1fc6a506488495d951d5263988d25613135565b90613137565b346104155760403660031901126104155760043561324e816129c7565b6101305460101c6001600160a01b03163303610a0b5761326f600261013655565b61327e61048161013354610837565b613289602435615891565b91801561335e576000806401000276a4935b60405195826020976132fe816132bc898c8301919091602081019215159052565b03986132d0601f199a8b8101855284611468565b6132f26040519384928d840197630251596160e31b89528c3060248701615847565b03898101835282611468565b51925af161330a613775565b90613316600161013655565b156104155761335c9161333482868061334095518301019101615073565b91156131ea5750615880565b6040518481019182529092908060208501039182018152611468565bfd5b60008073fffd8963efd1fc6a506488495d951d5263988d259361329b565b6097546001600160a01b0316330361339057565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6133dc61337c565b6001600160a01b03811615612e9657610862905b609780546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b1561344057565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608490fd5b156134a157565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608490fd5b90816020910312610415575190565b6040513d6000823e3d90fd5b1561351d57565b60405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b60809060208152602e60208201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960408201526d6f6e206973206e6f74205555505360901b60608201520190565b803b156135f857600080516020615f1983398151915280546001600160a01b0319166001600160a01b03909216919091179055565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b61365c816135c3565b6040516001600160a01b0382167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2825115801590613717575b6136a257505050565b813b156136c65750600082819260206136c395519201905af46126bd613775565b50565b62461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608490fd5b506000613699565b613728816135c3565b6040516001600160a01b0382167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a282511580159061376d576136a257505050565b506001613699565b3d156137a0573d9061378682611498565b916137946040519384611468565b82523d6000602084013e565b606090565b604051906137b2826113f7565b60278252660819985a5b195960ca1b6040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b90600182811c9216801561381e575b602083101461380857565b634e487b7160e01b600052602260045260246000fd5b91607f16916137fd565b6001600160a01b0316600090815260fb6020526040902090565b9060018060a01b0316600052602052604060002090565b634e487b7160e01b600052601160045260246000fd5b9190820180921161132d57565b1561388357565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b156138db57565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b916001600160a01b0380841692909183156139ab5761399082600080516020615f39833981519152946139a694169661396988151561387c565b61398a8461397683613828565b54613983828210156138d4565b0391613828565b55613828565b8054820190556040519081529081906020820190565b0390a3565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b038082169291908315613ac6578216938415613a765780613a657f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92594613a606139a69560018060a01b031660005260fc602052604060002090565b613842565b556040519081529081906020820190565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b90919015613b23575090565b905b805190919015613b385750805190602001fd5b60405162461bcd60e51b81526020600482015290819061055a906024830190610a1d565b99979593919a98969492909a6000549b60ff8d60081c1615809d819e613c84575b8115613c64575b5015613c0857613baa9b8d613ba1600160ff196000541617600055565b613bef57613ce1565b613bb057565b613bc061ff001960005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1565b613c0361010061ff00196000541617600055565b613ce1565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b303b15915081613c76575b5038613b84565b6001915060ff161438613c6f565b600160ff8216109150613b7d565b60ff16604d811161132d57600a0a90565b908160209103126104155751610a6e81610843565b908160209103126104155751610a6e816128f3565b9060ff8091169116019060ff821161132d57565b91613d15613d239493613d1d939d9c9d9a9899979a613cfe61400d565b613d06613fea565b613d0e61401e565b36916114b3565b9236916114b3565b9061403a565b6001600160a01b03848116958082169391929187851015613f78578392613dc891613d526301e1338061012d55565b613d64613d5e89613c92565b61012e55565b613d71620f424061012f55565b610130805461ff001916610500179055604051630b4c774160e11b81526001600160a01b03948516600482015298909316602489015262ffffff909216604488015260209692879284929091839182906064820190565b0392165afa90811561077157613e06918391600091613f5b575b506101338054919092166001600160a01b03166001600160a01b0319909116179055565b613e1561048161013354610837565b1615613f495761013480546001600160a01b0319166001600160a01b03909216919091179055600492613e649061013580546001600160a01b0319166001600160a01b03909216919091179055565b81613e7461048161013454610837565b60405163313ce56760e01b815294859182905afa90811561077157613eb893613ea693600093613f2a575b5050613ccd565b60ff610130911660ff19825416179055565b613ec3600161013655565b62ffffff61012f54911690811015613f1857613ef092613ee6613eeb9261013955565b6145dc565b6133d4565b307fdf71cb001a7432934a99d34855dc0f49942e430ce37c4d0ba3ba654079162ed7600080a2565b60405163035f0ce760e21b8152600490fd5b613f41929350803d10611901576118f18183611468565b903880613e9f565b60405163486aa30760e01b8152600490fd5b613f729150873d8911612df957612deb8183611468565b38613de2565b604051633f06bf8160e01b8152600490fd5b15613f9157565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b61400460ff60005460081c16613fff81613f8a565b613f8a565b610862336133f0565b61086260ff60005460081c16613f8a565b61403360ff60005460081c16613fff81613f8a565b600160c955565b9061405060ff60005460081c16613fff81613f8a565b81516001600160401b038111611412576140748161406f60fe546137ee565b614145565b602080601f83116001146140b657508190610862946000926140ab575b50508160011b916000199060031b1c19161760fe556141ed565b015190503880614091565b60fe6000529293919291601f1984167f54075df80ec1ae6ac9100e1fd0ebf3246c17f5c933137af392011f4c5f61513a936000905b82821061412d57505091600193918561086297969410614114575b505050811b0160fe556141ed565b015160001960f88460031b161c19169055388080614106565b806001869782949787015181550196019401906140eb565b601f8111614151575050565b60009060fe825260208220906020601f850160051c8301941061418f575b601f0160051c01915b82811061418457505050565b818155600101614178565b909250829061416f565b601f81116141a5575050565b60009060ff825260208220906020601f850160051c830194106141e3575b601f0160051c01915b8281106141d857505050565b8181556001016141cc565b90925082906141c3565b80519091906001600160401b038111611412576142148161420f60ff546137ee565b614199565b602080601f83116001146142505750819293600092614245575b50508160011b916000199060031b1c19161760ff55565b01519050388061422e565b60ff600052601f198316949091907fe08ec2af2cfc251225e1968fd6ca21e4044f129bffa95bac3503be8bdb30a367926000905b8782106142bc5750508360019596106142a3575b505050811b0160ff55565b015160001960f88460031b161c19169055388080614298565b80600185968294968601518155019501930190614284565b908160209103126104155751610a6e816128d9565b519061ffff8216820361041557565b908160e091031261041557805161430e81610843565b91602082015161431d81610ff3565b9161432a604082016142e9565b91614337606083016142e9565b91614344608082016142e9565b9160c060a0830151614355816128f3565b920151610a6e816129c7565b602435610a6e816128d9565b604435610a6e816128d9565b606435610a6e816128d9565b608435610a6e816128d9565b35610a6e816128d9565b91909162ffffff8080941691160191821161132d57565b602435610a6e81610843565b6004356143ca81610843565b6101329081546024356143dc816128d9565b604435916143e9836128d9565b6064356143f5816128d9565b62ffffff60d01b9060d01b169360018060a01b03169062ffffff60e81b16179062ffffff60a01b9060a01b16179062ffffff60b81b9060b81b1617179055610862608435614442816128d9565b61013280546001600160e81b031660e89290921b6001600160e81b031916919091179055565b608061086291803561447981610843565b610132908154602084013561448d816128d9565b60408501359161449c836128d9565b60608601356144aa816128d9565b62ffffff60d01b9060d01b169360018060a01b03169062ffffff60e81b16179062ffffff60a01b9060a01b16179062ffffff60b81b9060b81b16171790550135614442816128d9565b90815260c08101919060043561450881610843565b6001600160a01b0316602082015260a0602435614524816128d9565b62ffffff80911660408401528060443561453d816128d9565b16606084015280606435614550816128d9565b166080840152608435614562816128d9565b16910152565b90815260c08101929160a090803561457f81610843565b600180841b03166020840152608060208201359161459c836128d9565b62ffffff80931660408601528260408201356145b7816128d9565b1660608601528260608201356145cc816128d9565b16828601520135614562816128d9565b6145f76145eb60208301614391565b612f5360408401614391565b61013954908162ffffff80921611612fc757818161461760608601614391565b1611612fc75761462960808401614391565b1611612fc75761463881614468565b7f9b77979ce4de4fc68093eab0fd33625b0cc9f868dbfa1df90cdc46b7e056cb2e6040518061466933944283614568565b0390a2565b60001981019190821161132d57565b9190820391821161132d57565b600090610137548042039042821161132d5742036146a55750565b91506146d361013254928360e81c028061012f5461012d540281811160001461472c5703905b60fd546147e8565b9182806146e7575b50506108624261013755565b6146f9916001600160a01b0316614736565b6040518281527f147fac6415bee3006ba6002a9a6636f492d311690c9e52a2421afc6392e0fb9590602090a138826146db565b50506001906146cb565b6001600160a01b038116919082156147865760fd549082820180921161132d57600092614777602092600080516020615f398339815191529460fd55613828565b818154019055604051908152a3565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b634e487b7160e01b600052601260045260246000fd5b1561041557565b9291906147f682828661481a565b938215614815570961480457565b906000198110156104155760010190565b6147cb565b90916000198383099280830292838086109503948086039514614894579082916148458684116147e1565b0981806000031680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b505091506148a38215156147e1565b0490565b600019811461132d5760010190565b6001600160801b03918216908216019190821161132d57565b8054600160301b600160b01b03191660309290921b600160301b600160b01b0316919091179055565b8115614815570490565b600260c9541461491357600260c955565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761141257610862926040525b604051614a0a916001600160a01b03166149c582611432565b6000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af1614a04613775565b91614a8c565b805180614a1657505050565b8183918101031261041557810151614a2d816129c7565b15614a355750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b91929015614aee5750815115614aa0575090565b3b15614aa95790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b82613b25565b6001600160801b0390818111614b08571690565b60405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608490fd5b6001600160801b03918216908216039190821161132d57565b9081549060181b65ffffff000000169065ffffff0000001916179055565b90614be057818103614ba4575050565b8154815462ffffff191662ffffff90911617815561086291614bcd815460181c60020b83614b76565b5460301c6001600160801b0316906148cf565b634e487b7160e01b600052600060045260246000fd5b6101318054908115614c2257600019828101929081841015611fe2576000918383526020832001015555565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b038116908115614cda57614c5281613828565b54838110614c8a5783600080516020615f3983398151915292614c7c6000966139a6940391613828565b556109af8160fd540360fd55565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815261086291614d628261144d565b6149ac565b610131908154600160401b8110156114125760018101808455811015611fe2576108629260005260206000200190614db2815160020b839062ffffff198254169062ffffff16179055565b614dc3602082015160020b83614b76565b604001516001600160801b0316906148cf565b9094929193610131546000905b808210614e5a57506101305460081c60ff1614614e485784614e11614e439261086295614e33988a87615300565b969097614e29614e1f61148b565b95869060020b9052565b60020b6020850152565b6001600160801b03166040830152565b614d67565b604051633a37518960e21b8152600490fd5b90614e6481611fc7565b50805460029086820b81830b149182614eb9575b5050614e8e5750614e88906148a7565b90614de3565b93614ea8939250614eb59591509661080098819798615300565b9590936107fb8354611fe7565b9190565b9091508a810b9160181c900b143880614e78565b949291909394610131549160005b838110614ef45760405163f7b3b39160e01b8152600490fd5b614efd81611fc7565b50805460029085820b81830b149182614fd8575b5050614f265750614f21906148a7565b614edb565b92614f36849892959697986150a5565b5050614f43838383615601565b9990978810908115614fce575b50614fb25790614f5f91615718565b5050614f6b8254611fe7565b6001600160801b0381811690831603614fa2575050506122b6614f936122a7614f9a9461466e565b5091611fc7565b614eb5614bf6565b614eb59450610800929350614b5d565b6040516308f51ff960e31b81528061055a8b8a6004840161041a565b9050891038614f50565b90915089810b9160181c900b143880614f11565b60009161013192835493815b8581106150115760405163f7b3b39160e01b8152600490fd5b8154811015611fe257818352806020842001805460029087820b81830b14918261505f575b505061504b5750615046906148a7565b614ff8565b94505050505061505b91506150a5565b9091565b90915086810b9160181c900b143880615036565b9190826040910312610415576020825192015190565b600291820b815291900b60208201526000604082015260600190565b60009060406150e160018060a01b0361013354168354835195868094819363a34123a760e01b83528060181c60020b9060020b60048401615089565b03925af19182156107715761510792615113575b50548060181c60020b9060020b615718565b90916108628284615203565b61512a9060403d8111610d2757610d188183611468565b506150f5565b60009060009081610131549080915b808310615153575050506108628284615203565b9091939461516085611fc7565b509061517161048161013354610837565b825460409182519463a34123a760e01b86528386601893818b816151a2600299808a1c8b0b908b0b60048401615089565b03925af1938415610771576151e1966151c9956151e8575b50505480911c820b910b615718565b91016001600160801b039081169790910116946148a7565b919061513f565b816151fe92903d10610d2757610d188183611468565b6151ba565b907f332be93540ee368b088c0f9d4f6e5288d4ea5832df09318be7b59409050a5ed29061013292614669845462ffffff8160d01c169561525d61012f5460018060801b039861525582828c8a166147e8565b9988166147e8565b9187806152d5575b505081806152b2575b505061528261048161048161013354610837565b95604051948594859092606092959493608083019660018060801b03809216845216602083015260408201520152565b6152ce916152c86105db61048161013554610837565b90614d29565b388161526e565b6152f9916152e861048161013454610837565b6001600160a01b0390911690614d29565b3887615265565b91949294604091825193600060208601526020855261531e85611432565b6001600160801b0383161561544e5790600093929161533e600261013655565b83615373610133976153536104818a54610837565b908351988980948193633c8a7d8d60e01b83528a8a8a3060048701615566565b03925af1958615610771576000958697615407575b50906153c687876153ba610481610481600080516020615ef983398151915298976153b4600161013655565b54610837565b968851958695866155aa565b0390a28294829683109081156153fd575b506153e157505050565b516308f51ff960e31b815291829161055a91906004840161041a565b90508310386153d7565b61048197506104819650600080516020615ef98339815191529392916153ba61543f6153c693893d8b11610d2757610d188183611468565b9a509850939450919250615388565b8351630200e8a960e31b8152600490fd5b92939291906001600160801b0382161561555457600092615481600261013655565b60406154b7610133976154976104818a54610837565b908351978880948193633c8a7d8d60e01b83528a8a8a3060048701615566565b03925af195861561077157600094859761550c575b509061550587866154f8610481610481600080516020615ef983398151915298976153b4600161013655565b96604051958695866155aa565b0390a29190565b61048197506104819550600080516020615ef98339815191529392916154f86155456155059360403d8111610d2757610d188183611468565b9a5097509394509192506154cc565b604051630200e8a960e31b8152600490fd5b6001600160a01b039091168152600291820b602082015291900b60408201526001600160801b03909116606082015260a060808201819052610a6e92910190610a1d565b600291820b815291900b60208201526001600160801b0390911660408201526060810191909152608081019190915260a00190565b6084359061086282610843565b908160209103126104155735610a6e81610843565b92916001600160801b038116156155545761013380546040805163a34123a760e01b81529296929492916001600160a01b039190869083168160008161564c8a8a8a60048501611ff6565b03925af1968715610771576000958698615699575b5087866154f86104817f8a3055ac2acbcc6bc795808b7df870b7b6dc76d3de454815764a611d9d19e2c2979695615505955416610837565b7f8a3055ac2acbcc6bc795808b7df870b7b6dc76d3de454815764a611d9d19e2c294939298506104819650906154f86156e26155059360403d8111610d2757610d188183611468565b9a9098509495509293925090615661565b9190826040910312610415576020825161570c81610ffe565b920151610a6e81610ffe565b6101338054604080516309e3d67b60e31b8152306004820152600285810b602483015286900b60448201526001600160801b036064820181905260848201529295939491839060a49082906000906001600160a01b03165af19384156107715760009283956157f1575b50907fdf59c04fc608cf72d827f0db12fc26499265dd6f84db95810fb62454e0979c1f91614669866157bb610481610481889b54610837565b956040519485948592909493606092608085019660020b855260020b602085015260018060801b03809216604085015216910152565b6158379195507fdf59c04fc608cf72d827f0db12fc26499265dd6f84db95810fb62454e0979c1f92935060403d8111615840575b61582f8183611468565b8101906156f3565b94909291615782565b503d615825565b6001600160a01b039182168152911515602083015260408201929092529116606082015260a060808201819052610a6e92910190610a1d565b600160ff1b811461132d5760000390565b6001600160ff1b0381116158a25790565b60405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608490fd5b908160209103126104155735610a6e816129c7565b6001600160401b0381116114125760051b60200190565b9190811015611fe25760051b81013590601e19813603018212156104155701803591906001600160401b038311610415576020018236038113610415579190565b908092918237016000815290565b8051821015611fe25760209160051b010190565b9190826080910312610415578151916020810151916060604083015192015190565b6001600160a01b03918216815291166020820152604081019190915260600190565b6101315491600091825b8481106159ee5760405163f7b3b39160e01b8152600490fd5b6159f781611fc7565b505460029083820b81830b149182615ab0575b5050615a1e57615a19906148a7565b6159d5565b9293505050615a32611d3d61013354610837565b509260405191631612a31760e31b83528280615a56608097889430600485016159a9565b038173d4e10dd0c0e64c5f6eb134e7d2f2d43f82d8dc005af491821561077157839084958594615a89575b505093929190565b929550925050615aa59250803d10611dd057611dbc8183611468565b919390923880615a81565b90915084810b9160181c900b143880615a0a565b60009060009081809181610131548173d4e10dd0c0e64c5f6eb134e7d2f2d43f82d8dc00905b828410615af75750505050565b90919294959697615b0a61013354610837565b615b1387611fc7565b509160405191631612a31760e31b83528280615b37608096879430600485016159a9565b0381885af4801561077157615b8293615b7c9386879188938995615b8a575b505090615b6a615b7092615b76959661386f565b9e61386f565b9b61386f565b9861386f565b956148a7565b929190615aea565b615b769550615b6a9450615b709350615baf9250803d10611dd057611dbc8183611468565b9550939092615b56565b615bd190615bd7615bc8615ac4565b9295919561386f565b9361386f565b91615be761048161013454610837565b6040516370a0823160e01b8082526020939092849083908180615c0d30600483016113a0565b03915afa90811561077157615c2a92600092615c8e575b5061386f565b9382615c3b61048161013554610837565b60405193845283908180615c5230600483016113a0565b03915afa91821561077157610a6e93600093615c6f57505061386f565b615c86929350803d1061076a5761075b8183611468565b9038806105af565b615ca6919250853d871161076a5761075b8183611468565b9038615c24565b604091949392606082019560018060a01b0316825260208201520152565b908160209103126104155751610a6e81610ffe565b908060209392818452848401376000828201840152601f01601f1916010190565b97959394615dba958992610a6e9b999560018060a01b03809681968280951690521660208d01521660408b015260608a015216608088015280602435615d4681610843565b1660a088015280604435615d5981610843565b1660c0880152606435615d6b81610843565b1660e0870152615d8d615d7c6155df565b6001600160a01b0316610100880152565b60a43561012087015260c43561014087015260e4356101608701526101c080610180880152860191615ce0565b926101a0818503910152615ce0565b81835290916001600160fb1b0383116104155760209260051b809284830137010190565b959390610a6e999795929360018060a01b038095818094168a52166020890152166040870152606086015216608084015260a083015260c0820152610100908160e08201520191615dc9565b9015611fe25790565b9593919092610a6e9997959360018060a01b039283809216895216602088015216604086015215156060850152608084015260a083015260c0820152610100908160e08201520191615dc9565b9190600080938192604051906020820192633fb6943b60e21b845215156024830152604482015260448152615ec38161144d565b5190305af4615ed0613775565b9015615eda578280fd5b90918151908115610b4a575090602080610a6e9383010191016134fb56fe66003071e0f230260f5b0fcf3f58155206656900735cc736441b88ac6096acf6360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209e13479af25b7f2cf0db5b46f47b35767f7cab5084343d590ad06e39285f754c64736f6c63430008130033
Deployed Bytecode
0x6080604052600436101561001257600080fd5b60003560e01c8062aeef8a146103f6578063014a0abc146103f15780630502b1c5146103ec57806306fdde03146103e7578063095ea7b3146103e257806312aa3caf146103dd57806314e048ba146103d857806316f0115b146103d357806318160ddd146103ce57806318f56a0a146103c95780631e5eb1d0146103c457806323b872dd146103bf5780632ab48216146103ba5780632d2dcc48146103b5578063313ce567146103b0578063352ddc36146103ab5780633659cfe6146103a657806339509351146103a15780633ee708bc1461039c578063481c6a75146103975780634f1ef286146103925780635153786b1461038d57806352d1902d1461038857806360246c88146103835780636d7c2a571461037e5780637019732f1461037957806370a0823114610374578063715018a61461036f57806373d8fe671461036a57806381c7b06d1461036557806384bd6d291461036057806387f6c4931461035b57806389097a6a146103565780638c625a87146103515780638da5cb5b1461034c578063955f263a1461034757806395d89b411461034257806399fbab881461033d5780639c016ffd14610338578063a301ad2b14610333578063a41fe49f1461032e578063a457c2d714610329578063a9059cbb14610324578063aa3c1d401461031f578063ac9650d81461031a578063b3c40be414610315578063b591b13c14610310578063bbdd366a1461030b578063c2d9ecfa14610306578063c4fa17a414610301578063d3487997146102fc578063d41edb3b146102f7578063dd5f47db146102f2578063dd62ed3e146102ed578063e045b7b4146102e8578063e449022e146102e3578063f2fde38b146102de578063f57fa78d146102d9578063f68eb657146102d4578063fa461e33146102cf578063faf6d874146102ca5763feda50ec146102c557600080fd5b613231565b6130bb565b612fd9565b612f14565b612eea565b612e59565b612c91565b612c67565b612c14565b612a15565b61291e565b6127c7565b6127a8565b612751565b612732565b612713565b6126fa565b61260d565b612562565b612538565b612498565b61214a565b6120a7565b61206e565b61201b565b611f0d565b611e2c565b611e03565b611de9565b611d09565b611cda565b611b7c565b611b3a565b611a61565b611a03565b6119c6565b61199c565b611970565b611773565b6116b3565b61163e565b6114ea565b6113b3565b611357565b6112e2565b6111a7565b611160565b61113e565b6110c4565b611060565b610f25565b610ed3565b610e40565b610dbe565b610d94565b610d75565b610baf565b610b4d565b610a71565b610894565b610818565b61042b565b606090600319011261041557600435906024359060443590565b600080fd5b908152602081019190915260400190565b3461041557610439366103fb565b91610442614902565b6000928382156106115761045461468a565b5060fd54908161062b57505061046d61012e54836148f8565b9261048f8461048661048161013454610837565b610837565b30903390614958565b831580610623575b610611576000918291610132805460018060a01b03811690813303610568575b505050851190811561055e575b5061053a577fa9655c7bb3dce82c29396162aecd039217d6e09ea6ae1fe2c13650c8570e3ecc916104f58433614736565b604080519485526020850186905284018690526060840152608083015233918060a081015b0390a2610527600160c955565b6105366040519283928361041a565b0390f35b50506040516308f51ff960e31b815292839261055a92506004840161041a565b0390fd5b90508511386104c4565b6105bc93999896506105b69192955062ffffff9060a01c1661012f549661059c6105938984846147e8565b9889938c6147e8565b96879483806105f1575b505084806105c5575b505061386f565b9661386f565b953880806104b7565b6105ea916105e26105db61048161013554610837565b9154610837565b903390614958565b38846105af565b61060a913361060561048161013454610837565b614958565b38836105a6565b604051638c88122d60e01b8152600490fd5b508415610497565b61063795949195615130565b5050610131549560405160209761066282610654338c83016113a0565b03601f198101845283611468565b87915b8183106107935750505061067e61048161013454610837565b966040516370a0823160e01b9081815282818061069e30600483016113a0565b03818d5afa8015610771578885916106be93600091610776575b506147e8565b9261013592806106d16104818654610837565b604051948552849081806106e830600483016113a0565b03915afa9586156107715761071f61071787948c61073f9a61072f9861072597600092610744575b50506147e8565b96879261386f565b9a61386f565b9930903390614958565b3090610605610481339254610837565b61048f565b6107639250803d1061076a575b61075b8183611468565b8101906134fb565b3880610710565b503d610751565b61350a565b61078d9150863d881161076a5761075b8183611468565b386106b8565b9091979361080b6108006105b68a61081194610806898f896107dc6107d76107bd6107ee94611fc7565b5080549890959060308a901c6001600160801b03166147e8565b614af4565b80966002908060181c820b910b61545f565b9690946107fb8354611fe7565b6148b6565b906148cf565b61386f565b986148a7565b9190610665565b3461041557600036600319011261041557602061013754604051908152f35b6001600160a01b031690565b6001600160a01b0381160361041557565b6101a4359061086282610843565b565b9181601f84011215610415578235916001600160401b038311610415576020808501948460051b01011161041557565b34610415576080366003190112610415576004356108b181610843565b6024356064356001600160401b038111610415576108d3903690600401610864565b9290916108de614902565b610130546001600160a01b039060101c81163303610a0b576101349461090a6104816104818854610837565b91841691821491821590816109ef575b506109dd5760209461092f8461097994615e8f565b9661094961048161094261013854610837565b9254610837565b9461095961048161013554610837565b96604051998a98899863a3a10a8960e01b8a526044359560048b01615ded565b0381731546b2ae60a2ade3f8f1a9276c198e8f52212c055af4801561077157610536916000916109bf575b506109af600160c955565b6040519081529081906020820190565b6109d7915060203d811161076a5761075b8183611468565b386109a4565b604051633539a70160e01b8152600490fd5b9050610a0361048161048161013554610837565b14153861091a565b604051630190a5dd60e21b8152600490fd5b919082519283825260005b848110610a49575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610a28565b906020610a6e928181520190610a1d565b90565b3461041557600080600319360112610b4a576040518160fe54610a93816137ee565b80845290600190818116908115610b225750600114610ac9575b61053684610abd81880382611468565b60405191829182610a5d565b60fe8352602094507f54075df80ec1ae6ac9100e1fd0ebf3246c17f5c933137af392011f4c5f61513a5b828410610b0f575050508161053693610abd9282010193610aad565b8054858501870152928501928101610af3565b6105369650610abd9450602092508593915060ff191682840152151560051b82010193610aad565b80fd5b3461041557604036600319011261041557610b77600435610b6d81610843565b60243590336139fe565b602060405160018152f35b9181601f84011215610415578235916001600160401b038311610415576020838186019501011161041557565b34610415576101403660031901126104155760048035610bce81610843565b60e0366023190112610415576001600160401b036101043581811161041557610bfa9036908501610b82565b90916101243590811161041557610c149036908601610b82565b91610c1d614902565b610130546001600160a01b03949060101c85163303610d6457610c3e6143b2565b948061013496610c546104816104818a54610837565b921682141580610d3f575b610d2e5791610c8660409899969492610cc89694610c7b6143b2565b161460a43590615e8f565b98610ca0610481610c9961013854610837565b9954610837565b99610cb061048161013554610837565b8a51633850524b60e21b81529b8c9a8b9a8b01615d01565b0381731546b2ae60a2ade3f8f1a9276c198e8f52212c055af4908115610771576000908192610cfd575b50610527600160c955565b9050610d20915060403d8111610d27575b610d188183611468565b810190615073565b9038610cf2565b503d610d0e565b604051633539a70160e01b81528990fd5b50610d486143b2565b81610d5b61048161048161013554610837565b91161415610c5f565b604051630190a5dd60e21b81528790fd5b3461041557600036600319011261041557602061013954604051908152f35b3461041557600036600319011261041557610133546040516001600160a01b039091168152602090f35b3461041557600036600319011261041557602060fd54604051908152f35b60208082019080835283518092528060408094019401926000905b838210610e0657505050505090565b84518051600290810b885281850151900b878501528101516001600160801b03168682015260609095019493820193600190910190610df7565b3461041557600080600319360112610b4a576101318054610e608161590d565b91604093610e7085519485611468565b82845290815260208082208185015b848410610e93578651806105368882610ddc565b60018381928951610ea3816113f7565b8554600281810b83528160181c900b84830152848060801b039060301c168b820152815201920193019290610e7f565b346104155760003660031901126104155760a06101325460405190600180841b038116825262ffffff8082851c166020840152808260b81c1660408401528160d01c16606083015260e81c6080820152f35b3461041557606036600319011261041557600435610f4281610843565b602435610f4e81610843565b6044359060018060a01b03831660005260fc602052610f71336040600020613842565b549260018401610f92575b610f86935061392f565b60405160018152602090f35b828410610fae57610fa983610f86950333836139fe565b610f7c565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b8060020b0361041557565b6001600160801b0381160361041557565b60c09060031901126104155760043561102781610ff3565b9060243561103481610ff3565b9060443561104181610ffe565b90606435906084359060a4356001600160401b03811681036104155790565b346104155761106e3661100f565b9093919291906001600160401b031642116110b2576101305460101c6001600160a01b03163303610a0b576110a294614ecd565b906105366040519283928361041a565b6040516338e5e54b60e21b8152600490fd5b34610415576020366003190112610415576004356110e181610843565b6110e961337c565b610130805462010000600160b01b031916601083901b62010000600160b01b03161790556001600160a01b0316337f605c2dbf762e5f7d60a546d42e7205dcb1b011ebc62a61736a57c9089d3a4350600080a3005b3461041557600036600319011261041557602060ff6101305416604051908152f35b346104155760203660031901126104155760043561117d81610843565b61118561337c565b61013880546001600160a01b0319166001600160a01b03909216919091179055005b34610415576020366003190112610415576004356111c481610843565b6001600160a01b037f00000000000000000000000073d9ccd3017b41e9b29f1e4a49d5468b52bd17c6811691906111fd30841415613439565b61121a600080516020615f1983398151915293828554161461349a565b61122261337c565b6040519061122f82611417565b600082527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561126b57505061126991506135c3565b005b6020600491604094939451928380926352d1902d60e01b825286165afa600091816112c2575b506112af5760405162461bcd60e51b81528061055a60048201613574565b611269936112bd9114613516565b613653565b6112db91925060203d811161076a5761075b8183611468565b9038611291565b34610415576040366003190112610415576004356112ff81610843565b3360005260fc602052611316816040600020613842565b54602435810180911161132d57610b7791336139fe565b613859565b60409060031901126104155760043561134a81610ff3565b90602435610a6e81610ff3565b346104155761136536611332565b6101305460101c6001600160a01b03163303610a0b5761138491614fec565b604080516001600160801b039384168152919092166020820152f35b6001600160a01b03909116815260200190565b34610415576000366003190112610415576101305460405160109190911c6001600160a01b03168152602090f35b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b0382111761141257604052565b6113e1565b602081019081106001600160401b0382111761141257604052565b604081019081106001600160401b0382111761141257604052565b608081019081106001600160401b0382111761141257604052565b601f909101601f19168101906001600160401b0382119082101761141257604052565b60405190610862826113f7565b6001600160401b03811161141257601f01601f191660200190565b9291926114bf82611498565b916114cd6040519384611468565b829481845281830111610415578281602093846000960137010152565b60403660031901126104155760043561150281610843565b6024356001600160401b0381116104155736602382011215610415576115329036906024816004013591016114b3565b6001600160a01b037f00000000000000000000000073d9ccd3017b41e9b29f1e4a49d5468b52bd17c6811692919061156c30851415613439565b611589600080516020615f1983398151915294828654161461349a565b61159161337c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156115c757505061126991506135c3565b6020600491604094939451928380926352d1902d60e01b825286165afa6000918161161e575b5061160b5760405162461bcd60e51b81528061055a60048201613574565b611269936116199114613516565b61371f565b61163791925060203d811161076a5761075b8183611468565b90386115ed565b3461041557600036600319011261041557610135546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa801561077157602091600091611696575b50604051908152f35b6116ad9150823d811161076a5761075b8183611468565b3861168d565b34610415576000366003190112610415577f00000000000000000000000073d9ccd3017b41e9b29f1e4a49d5468b52bd17c66001600160a01b0316300361170d57604051600080516020615f198339815191528152602090f35b60405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608490fd5b3461041557600080600319360112610b4a5761179461048161013354610837565b9060405163ddca3f4360e01b81526020908181600481875afa908115610771578391611927575b506117cb61048161013454610837565b926040519163313ce56760e01b8084528484600481895afa938415610771578394611908575b5061180161048161013554610837565b9660405191825285826004818b5afa9182156107715760049685936118d4575b505060e09060405196878092633850c7bd851b82525afa93841561077157610536958495611899575b50604080516001600160a01b03988916815298881660208a015260ff9182169089015216606087015262ffffff16608086015290921660a084015260029190910b60c0830152819060e0820190565b9094506118be91935060e03d81116118cd575b6118b68183611468565b8101906142f8565b5050505050929092933861184a565b503d6118ac565b60e092935090816118f992903d10611901575b6118f18183611468565b810190613cb8565b919038611821565b503d6118e7565b611920919450853d8711611901576118f18183611468565b92386117f1565b6119479150823d841161194d575b61193f8183611468565b8101906142d4565b386117bb565b503d611935565b9094939260609260808301968352602083015260408201520152565b346104155760003660031901126104155761053661198c615ac4565b9060409492945194859485611954565b3461041557600036600319011261041557610135546040516001600160a01b039091168152602090f35b34610415576020366003190112610415576004356119e381610843565b60018060a01b031660005260fb6020526020604060002054604051908152f35b3461041557600080600319360112610b4a57611a1d61337c565b609780546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b3461041557606036600319011261041557600435611a7e81610ff3565b602435611a8a81610ff3565b60443590611a9782610ffe565b61013354604080516362891e0b60e01b81526001600160a01b039092166004830152600294850b60248301529190930b60448401526001600160801b039190911660648301528160848173d4e10dd0c0e64c5f6eb134e7d2f2d43f82d8dc005af4908115610771576000908192611b19575b506105366040519283928361041a565b9050611b33915060403d8111610d2757610d188183611468565b9038611b09565b3461041557611b483661100f565b9093919291906001600160401b031642116110b2576101305460101c6001600160a01b03163303610a0b576110a294614dd6565b346104155761010036600319011261041557600435611b9a81610843565b60243590611ba782610843565b60443591611bb483610843565b60643591611bc0614902565b610130546001600160a01b039060101c81163303610a0b5761013493611bec6104816104818754610837565b9184169182149182159081611cbe575b506109dd57602094611c118261097994615e8f565b90611c2461048161094261013854610837565b91611c3461048161013554610837565b60405163ebd47b0d60e01b81526001600160a01b039384166004820152938316602485015282166044840152606483015293841660848083019190915294841660a4808301919091529390961660c48088019190915260e4808801929092529335610104870152913561012486015291356101448501523561016484015282908190610184820190565b9050611cd261048161048161013554610837565b141538611bfc565b34610415576000366003190112610415576101305460101c6001600160a01b03163303610a0b57611384615130565b346104155760203660031901126104155760043561013154811015611dd7576080611d6191611d43611d3d61013354610837565b91611fc7565b50604051631612a31760e31b815293849283929030600485016159a9565b038173d4e10dd0c0e64c5f6eb134e7d2f2d43f82d8dc005af480156107715760008091818291611d9d575b906105369160405194859485611954565b50505050611dc46105369160803d8111611dd0575b611dbc8183611468565b810190615987565b91935083929190611d8c565b503d611db2565b60405163f7b3b39160e01b8152600490fd5b346104155761053661198c611dfd36611332565b906159cb565b34610415576000366003190112610415576097546040516001600160a01b039091168152602090f35b3461041557608036600319011261041557600435611e4981610ff3565b602435611e5581610ff3565b60018060a01b036101335416916040519263361d23b760e21b8452600484015260020b602483015260020b60448201526044356064820152606435608482015260208160a48173d4e10dd0c0e64c5f6eb134e7d2f2d43f82d8dc005af480156107715761053691600091611edf575b506040516001600160801b0390911681529081906020820190565b611f00915060203d8111611f06575b611ef88183611468565b810190615ccb565b38611ec4565b503d611eee565b3461041557600080600319360112610b4a576040518160ff54611f2f816137ee565b80845290600190818116908115610b225750600114611f585761053684610abd81880382611468565b60ff8352602094507fe08ec2af2cfc251225e1968fd6ca21e4044f129bffa95bac3503be8bdb30a3675b828410611f9e575050508161053693610abd9282010193610aad565b8054858501870152928501928101611f82565b634e487b7160e01b600052603260045260246000fd5b6101318054821015611fe25760005260206000200190600090565b611fb1565b60301c6001600160801b031690565b600291820b815291900b60208201526001600160801b03909116604082015260600190565b346104155760203660031901126104155760043561013190815481101561041557610536916000526020600020015460405191829160018060801b038160301c16908060181c60020b9060020b84611ff6565b34610415576000366003190112610415576101305460101c6001600160a01b03163303610a0b57602061209f61468a565b604051908152f35b346104155760003660031901126104155760206120c2615bb9565b6101335460405163092df84160e31b81529392849283926120f092906001600160a01b031660048501615cad565b038173d4e10dd0c0e64c5f6eb134e7d2f2d43f82d8dc005af48015610771576105369160009161212c575b506040519081529081906020820190565b612144915060203d811161076a5761075b8183611468565b3861211b565b3461041557612158366103fb565b9091612162614902565b60008180156106115761217361468a565b5060fd5461013254909383916001600160a01b038116903382900361244e575b5050506121a08233614c38565b610131948554916121af615130565b5050610134916121c26104818454610837565b9360405196876370a0823160e01b968782526020998a9181806121e830600483016113a0565b03915afa91821561077157612207928b928a9291612431575b5061481a565b96610135958161221a6104818954610837565b6040519283528290818061223130600483016113a0565b03915afa91821561077157612256928b928a92600092612414575b50509a939a61481a565b9760005b818110612374575050506000975b8054808a10156122da576122946122886122818c611fc7565b5054611fe7565b6001600160801b031690565b6122c9576122ac6122a76122bc9261466e565b611fc7565b506122b68b611fc7565b90614b94565b6122c4614bf6565b612268565b50976122d4906148a7565b97612268565b50508686918a831090811561236a575b5061234d577f43394472faf6e72a904b108d59ae00f2935bfcdd08137aeb9f78e79aa366bcc59461232f61233d9361051a9661232a610481339254610837565b614d29565b61232a610481339254610837565b6040519182918787339785611954565b6040516308f51ff960e31b815291829161055a916004840161041a565b90508110896122ea565b829961238282949394611fc7565b509081549a8b8b600282810b9260181c900b9e8f9e600160801b600190039060301c16916123af9261481a565b6123b890614af4565b9d8e6123c49183615601565b9d6123cf9192615718565b50506123da9161386f565b9a6123e49161386f565b9a81546123f090611fe7565b906123fa91614b5d565b612403916148cf565b61240c906148a7565b91909161225a565b61242a9250803d1061076a5761075b8183611468565b388061224c565b61244891508b3d8d1161076a5761075b8183611468565b38612201565b61246d9192945061247e935062ffffff61012f549160b81c16856147e8565b9283918280612487575b505061467d565b90388080612193565b612491913361392f565b3882612477565b34610415576040366003190112610415576004356124b581610843565b602435903360005260fc6020526124d0816040600020613842565b54918083106124e557610f86920390336139fe565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608490fd5b3461041557604036600319011261041557610b7760043561255881610843565b602435903361392f565b3461041557600036600319011261041557602061257d615bb9565b61013354604051637d5dbf5160e11b81529392849283926120f092906001600160a01b031660048501615cad565b602080820190808352835180925260408301928160408460051b8301019501936000915b8483106125df5750505050505090565b90919293949584806125fd600193603f198682030187528a51610a1d565b98019301930191949392906125cf565b3461041557602080600319360112610415576004356001600160401b0381116104155761263e903690600401610864565b916126488361590d565b9160409161265883519485611468565b848452601f196126678661590d565b0160005b8181106126eb5750505060005b84811061268c5782518061053686826125ab565b806126cb6000806126a16126e6958a88615924565b906126b0895180938193615965565b0390305af46126bd613775565b6126c56137a5565b91613b17565b6126d58287615973565b526126e08186615973565b506148a7565b612678565b6060868201840152820161266b565b34610415576000366003190112610415576110a2615bb9565b3461041557600036600319011261041557602061012f54604051908152f35b3461041557600036600319011261041557602061012e54604051908152f35b3461041557600036600319011261041557610134546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa8015610771576020916000916116965750604051908152f35b3461041557600036600319011261041557602061012d54604051908152f35b34610415576060366003190112610415576004356024356044356001600160401b038111610415576127fd903690600401610b82565b90600261013654036128c75761281861048161013354610837565b6001600160a01b03929033908416036128b557816104819161283b9301906155ec565b928061287a575b508161284a57005b82166128655761126991503361232a61048161013554610837565b61126991339061060561048161013554610837565b83821661289b57612895903361232a61048161013454610837565b38612842565b6128b090338561060561048161013454610837565b612895565b6040516333b43e6360e21b8152600490fd5b604051637748745560e01b8152600490fd5b62ffffff81160361041557565b60e43590610862826128d9565b60ff81160361041557565b60c43590610862826128f3565b60a0906101031901126104155761010490565b34610415576101c0366003190112610415576001600160401b0360043581811161041557612950903690600401610b82565b6024359283116104155761296b611269933690600401610b82565b60443561297781610843565b60643561298381610843565b6084359061299082610843565b60a4359261299d846128d9565b6129a56128fe565b946129ae6128e6565b966129b83661290b565b986129c1610854565b9a613b5c565b8015150361041557565b60a0906003190112610415576004356129e9816129c7565b9060243590604435906064356129fe81610843565b906084356001600160401b03811681036104155790565b3461041557612a23366129d1565b61013054939491936001600160a01b0393919060101c84163303610a0b576001600160401b031642116110b257612aeb93612a5f600261013655565b612a6e61048161013354610837565b93612a80612a7b88615891565b615880565b90821615918215612c0e57508315612bf4576401000276a45b905b60409586926000845193612acd85612abf8b60208301919091602081019215159052565b03601f198101875286611468565b8551630251596160e31b81529a8b95869485938c3060048701615847565b03925af18015610771576000958691612bd1575b50612b0b600161013655565b8315612bc157612b1a90615880565b905b80612bb7575b612b9757508311612b7857610536937f89a0f954e20890e6f71ce02a4e8655fe6262b4e86117de9a0153620430af4ab7612b676000938551918291151594888361041a565b0390a3519081529081906020820190565b81516308f51ff960e31b81526004810184905260006024820152604490fd5b83516308f51ff960e31b8152600481019190915260006024820152604490fd5b5085811415612b22565b94612bcb90615880565b90612b1c565b9050612beb919550843d8611610d2757610d188183611468565b94909438612aff565b73fffd8963efd1fc6a506488495d951d5263988d25612a99565b90612a9b565b34610415576040366003190112610415576020612c5e600435612c3681610843565b60243590612c4382610843565b6001600160a01b0316600090815260fc845260409020613842565b54604051908152f35b3461041557600036600319011261041557610134546040516001600160a01b039091168152602090f35b3461041557606036600319011261041557600480356044356001600160401b03811161041557612cc49036908401610864565b612ccc614902565b610130546001600160a01b039060101c81163303612e4857612cee8284615e39565b60009086903583811690600160ff1b16612e0057604051630dfe168160e01b81529250602091839182905afa90811561077157600091612dd2575b50915b6101349382612d416104816104818854610837565b941693841492831580612db7575b612da65786612d6360209861097996615e8f565b612d75610481610c9961013854610837565b99612d8561048161013554610837565b604051630e42446f60e11b81529b8c9a8b9a60243597831614938b01615e42565b604051633539a70160e01b81528890fd5b50612dca61048161048161013554610837565b851415612d4f565b612df3915060203d8111612df9575b612deb8183611468565b810190613ca3565b38612d29565b503d612de1565b6020906040519283809263d21220a760e01b82525afa9182156107715791612e2a575b5091612d2c565b612e42915060203d8111612df957612deb8183611468565b38612e23565b604051630190a5dd60e21b81528590fd5b3461041557602036600319011261041557600435612e7681610843565b612e7e61337c565b6001600160a01b03811615612e9657611269906133f0565b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b3461041557600036600319011261041557610138546040516001600160a01b039091168152602090f35b346104155760a036600319011261041557612f2d61337c565b612f3561468a565b50612f3e615130565b5050612f59612f4b614361565b612f5361436d565b9061439b565b61013954908162ffffff80921611612fc7578181612f75614379565b1611612fc757612f83614385565b1611612fc757612f916143be565b6040517f9b77979ce4de4fc68093eab0fd33625b0cc9f868dbfa1df90cdc46b7e056cb2e339180612fc242826144f3565b0390a2005b60405163390edff560e11b8152600490fd5b34610415576060366003190112610415576024356004356044356001600160401b0381116104155761300f903690600401610b82565b90600261013654036128c75761302a61048161013354610837565b336001600160a01b03909116036128b557821580156130b3575b6130a157613054918101906158f8565b916000821315613097575090805b15159015151460001461308357611269903361232a61048161013454610837565b611269903361232a61048161013554610837565b9180159150613062565b60405163030e4c8d60e41b8152600490fd5b508315613044565b34610415576130c9366129d1565b61013054939492939192916001600160a01b03919060101c82163303610a0b576001600160401b031642116110b25761317990613107600261013655565b61311661048161013354610837565b9361312087615891565b91811661322b57508215613211576401000276a45b905b6040948592600084519361315b85612abf8a60208301919091602081019215159052565b8551630251596160e31b8152968795869485938b3060048701615847565b03925af18015610771576131a99160009081926131f1575b5061319d600161013655565b83156131ea5750615880565b928310612b7857610536937f89a0f954e20890e6f71ce02a4e8655fe6262b4e86117de9a0153620430af4ab784600193612b6786519283921515958361041a565b9050615880565b905061320a9150843d8611610d2757610d188183611468565b9038613191565b73fffd8963efd1fc6a506488495d951d5263988d25613135565b90613137565b346104155760403660031901126104155760043561324e816129c7565b6101305460101c6001600160a01b03163303610a0b5761326f600261013655565b61327e61048161013354610837565b613289602435615891565b91801561335e576000806401000276a4935b60405195826020976132fe816132bc898c8301919091602081019215159052565b03986132d0601f199a8b8101855284611468565b6132f26040519384928d840197630251596160e31b89528c3060248701615847565b03898101835282611468565b51925af161330a613775565b90613316600161013655565b156104155761335c9161333482868061334095518301019101615073565b91156131ea5750615880565b6040518481019182529092908060208501039182018152611468565bfd5b60008073fffd8963efd1fc6a506488495d951d5263988d259361329b565b6097546001600160a01b0316330361339057565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6133dc61337c565b6001600160a01b03811615612e9657610862905b609780546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b1561344057565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608490fd5b156134a157565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608490fd5b90816020910312610415575190565b6040513d6000823e3d90fd5b1561351d57565b60405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b60809060208152602e60208201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960408201526d6f6e206973206e6f74205555505360901b60608201520190565b803b156135f857600080516020615f1983398151915280546001600160a01b0319166001600160a01b03909216919091179055565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b61365c816135c3565b6040516001600160a01b0382167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2825115801590613717575b6136a257505050565b813b156136c65750600082819260206136c395519201905af46126bd613775565b50565b62461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608490fd5b506000613699565b613728816135c3565b6040516001600160a01b0382167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a282511580159061376d576136a257505050565b506001613699565b3d156137a0573d9061378682611498565b916137946040519384611468565b82523d6000602084013e565b606090565b604051906137b2826113f7565b60278252660819985a5b195960ca1b6040837f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152565b90600182811c9216801561381e575b602083101461380857565b634e487b7160e01b600052602260045260246000fd5b91607f16916137fd565b6001600160a01b0316600090815260fb6020526040902090565b9060018060a01b0316600052602052604060002090565b634e487b7160e01b600052601160045260246000fd5b9190820180921161132d57565b1561388357565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b156138db57565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b916001600160a01b0380841692909183156139ab5761399082600080516020615f39833981519152946139a694169661396988151561387c565b61398a8461397683613828565b54613983828210156138d4565b0391613828565b55613828565b8054820190556040519081529081906020820190565b0390a3565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b038082169291908315613ac6578216938415613a765780613a657f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92594613a606139a69560018060a01b031660005260fc602052604060002090565b613842565b556040519081529081906020820190565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b90919015613b23575090565b905b805190919015613b385750805190602001fd5b60405162461bcd60e51b81526020600482015290819061055a906024830190610a1d565b99979593919a98969492909a6000549b60ff8d60081c1615809d819e613c84575b8115613c64575b5015613c0857613baa9b8d613ba1600160ff196000541617600055565b613bef57613ce1565b613bb057565b613bc061ff001960005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1565b613c0361010061ff00196000541617600055565b613ce1565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b303b15915081613c76575b5038613b84565b6001915060ff161438613c6f565b600160ff8216109150613b7d565b60ff16604d811161132d57600a0a90565b908160209103126104155751610a6e81610843565b908160209103126104155751610a6e816128f3565b9060ff8091169116019060ff821161132d57565b91613d15613d239493613d1d939d9c9d9a9899979a613cfe61400d565b613d06613fea565b613d0e61401e565b36916114b3565b9236916114b3565b9061403a565b6001600160a01b03848116958082169391929187851015613f78578392613dc891613d526301e1338061012d55565b613d64613d5e89613c92565b61012e55565b613d71620f424061012f55565b610130805461ff001916610500179055604051630b4c774160e11b81526001600160a01b03948516600482015298909316602489015262ffffff909216604488015260209692879284929091839182906064820190565b0392165afa90811561077157613e06918391600091613f5b575b506101338054919092166001600160a01b03166001600160a01b0319909116179055565b613e1561048161013354610837565b1615613f495761013480546001600160a01b0319166001600160a01b03909216919091179055600492613e649061013580546001600160a01b0319166001600160a01b03909216919091179055565b81613e7461048161013454610837565b60405163313ce56760e01b815294859182905afa90811561077157613eb893613ea693600093613f2a575b5050613ccd565b60ff610130911660ff19825416179055565b613ec3600161013655565b62ffffff61012f54911690811015613f1857613ef092613ee6613eeb9261013955565b6145dc565b6133d4565b307fdf71cb001a7432934a99d34855dc0f49942e430ce37c4d0ba3ba654079162ed7600080a2565b60405163035f0ce760e21b8152600490fd5b613f41929350803d10611901576118f18183611468565b903880613e9f565b60405163486aa30760e01b8152600490fd5b613f729150873d8911612df957612deb8183611468565b38613de2565b604051633f06bf8160e01b8152600490fd5b15613f9157565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b61400460ff60005460081c16613fff81613f8a565b613f8a565b610862336133f0565b61086260ff60005460081c16613f8a565b61403360ff60005460081c16613fff81613f8a565b600160c955565b9061405060ff60005460081c16613fff81613f8a565b81516001600160401b038111611412576140748161406f60fe546137ee565b614145565b602080601f83116001146140b657508190610862946000926140ab575b50508160011b916000199060031b1c19161760fe556141ed565b015190503880614091565b60fe6000529293919291601f1984167f54075df80ec1ae6ac9100e1fd0ebf3246c17f5c933137af392011f4c5f61513a936000905b82821061412d57505091600193918561086297969410614114575b505050811b0160fe556141ed565b015160001960f88460031b161c19169055388080614106565b806001869782949787015181550196019401906140eb565b601f8111614151575050565b60009060fe825260208220906020601f850160051c8301941061418f575b601f0160051c01915b82811061418457505050565b818155600101614178565b909250829061416f565b601f81116141a5575050565b60009060ff825260208220906020601f850160051c830194106141e3575b601f0160051c01915b8281106141d857505050565b8181556001016141cc565b90925082906141c3565b80519091906001600160401b038111611412576142148161420f60ff546137ee565b614199565b602080601f83116001146142505750819293600092614245575b50508160011b916000199060031b1c19161760ff55565b01519050388061422e565b60ff600052601f198316949091907fe08ec2af2cfc251225e1968fd6ca21e4044f129bffa95bac3503be8bdb30a367926000905b8782106142bc5750508360019596106142a3575b505050811b0160ff55565b015160001960f88460031b161c19169055388080614298565b80600185968294968601518155019501930190614284565b908160209103126104155751610a6e816128d9565b519061ffff8216820361041557565b908160e091031261041557805161430e81610843565b91602082015161431d81610ff3565b9161432a604082016142e9565b91614337606083016142e9565b91614344608082016142e9565b9160c060a0830151614355816128f3565b920151610a6e816129c7565b602435610a6e816128d9565b604435610a6e816128d9565b606435610a6e816128d9565b608435610a6e816128d9565b35610a6e816128d9565b91909162ffffff8080941691160191821161132d57565b602435610a6e81610843565b6004356143ca81610843565b6101329081546024356143dc816128d9565b604435916143e9836128d9565b6064356143f5816128d9565b62ffffff60d01b9060d01b169360018060a01b03169062ffffff60e81b16179062ffffff60a01b9060a01b16179062ffffff60b81b9060b81b1617179055610862608435614442816128d9565b61013280546001600160e81b031660e89290921b6001600160e81b031916919091179055565b608061086291803561447981610843565b610132908154602084013561448d816128d9565b60408501359161449c836128d9565b60608601356144aa816128d9565b62ffffff60d01b9060d01b169360018060a01b03169062ffffff60e81b16179062ffffff60a01b9060a01b16179062ffffff60b81b9060b81b16171790550135614442816128d9565b90815260c08101919060043561450881610843565b6001600160a01b0316602082015260a0602435614524816128d9565b62ffffff80911660408401528060443561453d816128d9565b16606084015280606435614550816128d9565b166080840152608435614562816128d9565b16910152565b90815260c08101929160a090803561457f81610843565b600180841b03166020840152608060208201359161459c836128d9565b62ffffff80931660408601528260408201356145b7816128d9565b1660608601528260608201356145cc816128d9565b16828601520135614562816128d9565b6145f76145eb60208301614391565b612f5360408401614391565b61013954908162ffffff80921611612fc757818161461760608601614391565b1611612fc75761462960808401614391565b1611612fc75761463881614468565b7f9b77979ce4de4fc68093eab0fd33625b0cc9f868dbfa1df90cdc46b7e056cb2e6040518061466933944283614568565b0390a2565b60001981019190821161132d57565b9190820391821161132d57565b600090610137548042039042821161132d5742036146a55750565b91506146d361013254928360e81c028061012f5461012d540281811160001461472c5703905b60fd546147e8565b9182806146e7575b50506108624261013755565b6146f9916001600160a01b0316614736565b6040518281527f147fac6415bee3006ba6002a9a6636f492d311690c9e52a2421afc6392e0fb9590602090a138826146db565b50506001906146cb565b6001600160a01b038116919082156147865760fd549082820180921161132d57600092614777602092600080516020615f398339815191529460fd55613828565b818154019055604051908152a3565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b634e487b7160e01b600052601260045260246000fd5b1561041557565b9291906147f682828661481a565b938215614815570961480457565b906000198110156104155760010190565b6147cb565b90916000198383099280830292838086109503948086039514614894579082916148458684116147e1565b0981806000031680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b505091506148a38215156147e1565b0490565b600019811461132d5760010190565b6001600160801b03918216908216019190821161132d57565b8054600160301b600160b01b03191660309290921b600160301b600160b01b0316919091179055565b8115614815570490565b600260c9541461491357600260c955565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a08101918183106001600160401b0384111761141257610862926040525b604051614a0a916001600160a01b03166149c582611432565b6000806020958685527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656487860152868151910182855af1614a04613775565b91614a8c565b805180614a1657505050565b8183918101031261041557810151614a2d816129c7565b15614a355750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b91929015614aee5750815115614aa0575090565b3b15614aa95790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b82613b25565b6001600160801b0390818111614b08571690565b60405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608490fd5b6001600160801b03918216908216039190821161132d57565b9081549060181b65ffffff000000169065ffffff0000001916179055565b90614be057818103614ba4575050565b8154815462ffffff191662ffffff90911617815561086291614bcd815460181c60020b83614b76565b5460301c6001600160801b0316906148cf565b634e487b7160e01b600052600060045260246000fd5b6101318054908115614c2257600019828101929081841015611fe2576000918383526020832001015555565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b038116908115614cda57614c5281613828565b54838110614c8a5783600080516020615f3983398151915292614c7c6000966139a6940391613828565b556109af8160fd540360fd55565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448083019390935291815261086291614d628261144d565b6149ac565b610131908154600160401b8110156114125760018101808455811015611fe2576108629260005260206000200190614db2815160020b839062ffffff198254169062ffffff16179055565b614dc3602082015160020b83614b76565b604001516001600160801b0316906148cf565b9094929193610131546000905b808210614e5a57506101305460081c60ff1614614e485784614e11614e439261086295614e33988a87615300565b969097614e29614e1f61148b565b95869060020b9052565b60020b6020850152565b6001600160801b03166040830152565b614d67565b604051633a37518960e21b8152600490fd5b90614e6481611fc7565b50805460029086820b81830b149182614eb9575b5050614e8e5750614e88906148a7565b90614de3565b93614ea8939250614eb59591509661080098819798615300565b9590936107fb8354611fe7565b9190565b9091508a810b9160181c900b143880614e78565b949291909394610131549160005b838110614ef45760405163f7b3b39160e01b8152600490fd5b614efd81611fc7565b50805460029085820b81830b149182614fd8575b5050614f265750614f21906148a7565b614edb565b92614f36849892959697986150a5565b5050614f43838383615601565b9990978810908115614fce575b50614fb25790614f5f91615718565b5050614f6b8254611fe7565b6001600160801b0381811690831603614fa2575050506122b6614f936122a7614f9a9461466e565b5091611fc7565b614eb5614bf6565b614eb59450610800929350614b5d565b6040516308f51ff960e31b81528061055a8b8a6004840161041a565b9050891038614f50565b90915089810b9160181c900b143880614f11565b60009161013192835493815b8581106150115760405163f7b3b39160e01b8152600490fd5b8154811015611fe257818352806020842001805460029087820b81830b14918261505f575b505061504b5750615046906148a7565b614ff8565b94505050505061505b91506150a5565b9091565b90915086810b9160181c900b143880615036565b9190826040910312610415576020825192015190565b600291820b815291900b60208201526000604082015260600190565b60009060406150e160018060a01b0361013354168354835195868094819363a34123a760e01b83528060181c60020b9060020b60048401615089565b03925af19182156107715761510792615113575b50548060181c60020b9060020b615718565b90916108628284615203565b61512a9060403d8111610d2757610d188183611468565b506150f5565b60009060009081610131549080915b808310615153575050506108628284615203565b9091939461516085611fc7565b509061517161048161013354610837565b825460409182519463a34123a760e01b86528386601893818b816151a2600299808a1c8b0b908b0b60048401615089565b03925af1938415610771576151e1966151c9956151e8575b50505480911c820b910b615718565b91016001600160801b039081169790910116946148a7565b919061513f565b816151fe92903d10610d2757610d188183611468565b6151ba565b907f332be93540ee368b088c0f9d4f6e5288d4ea5832df09318be7b59409050a5ed29061013292614669845462ffffff8160d01c169561525d61012f5460018060801b039861525582828c8a166147e8565b9988166147e8565b9187806152d5575b505081806152b2575b505061528261048161048161013354610837565b95604051948594859092606092959493608083019660018060801b03809216845216602083015260408201520152565b6152ce916152c86105db61048161013554610837565b90614d29565b388161526e565b6152f9916152e861048161013454610837565b6001600160a01b0390911690614d29565b3887615265565b91949294604091825193600060208601526020855261531e85611432565b6001600160801b0383161561544e5790600093929161533e600261013655565b83615373610133976153536104818a54610837565b908351988980948193633c8a7d8d60e01b83528a8a8a3060048701615566565b03925af1958615610771576000958697615407575b50906153c687876153ba610481610481600080516020615ef983398151915298976153b4600161013655565b54610837565b968851958695866155aa565b0390a28294829683109081156153fd575b506153e157505050565b516308f51ff960e31b815291829161055a91906004840161041a565b90508310386153d7565b61048197506104819650600080516020615ef98339815191529392916153ba61543f6153c693893d8b11610d2757610d188183611468565b9a509850939450919250615388565b8351630200e8a960e31b8152600490fd5b92939291906001600160801b0382161561555457600092615481600261013655565b60406154b7610133976154976104818a54610837565b908351978880948193633c8a7d8d60e01b83528a8a8a3060048701615566565b03925af195861561077157600094859761550c575b509061550587866154f8610481610481600080516020615ef983398151915298976153b4600161013655565b96604051958695866155aa565b0390a29190565b61048197506104819550600080516020615ef98339815191529392916154f86155456155059360403d8111610d2757610d188183611468565b9a5097509394509192506154cc565b604051630200e8a960e31b8152600490fd5b6001600160a01b039091168152600291820b602082015291900b60408201526001600160801b03909116606082015260a060808201819052610a6e92910190610a1d565b600291820b815291900b60208201526001600160801b0390911660408201526060810191909152608081019190915260a00190565b6084359061086282610843565b908160209103126104155735610a6e81610843565b92916001600160801b038116156155545761013380546040805163a34123a760e01b81529296929492916001600160a01b039190869083168160008161564c8a8a8a60048501611ff6565b03925af1968715610771576000958698615699575b5087866154f86104817f8a3055ac2acbcc6bc795808b7df870b7b6dc76d3de454815764a611d9d19e2c2979695615505955416610837565b7f8a3055ac2acbcc6bc795808b7df870b7b6dc76d3de454815764a611d9d19e2c294939298506104819650906154f86156e26155059360403d8111610d2757610d188183611468565b9a9098509495509293925090615661565b9190826040910312610415576020825161570c81610ffe565b920151610a6e81610ffe565b6101338054604080516309e3d67b60e31b8152306004820152600285810b602483015286900b60448201526001600160801b036064820181905260848201529295939491839060a49082906000906001600160a01b03165af19384156107715760009283956157f1575b50907fdf59c04fc608cf72d827f0db12fc26499265dd6f84db95810fb62454e0979c1f91614669866157bb610481610481889b54610837565b956040519485948592909493606092608085019660020b855260020b602085015260018060801b03809216604085015216910152565b6158379195507fdf59c04fc608cf72d827f0db12fc26499265dd6f84db95810fb62454e0979c1f92935060403d8111615840575b61582f8183611468565b8101906156f3565b94909291615782565b503d615825565b6001600160a01b039182168152911515602083015260408201929092529116606082015260a060808201819052610a6e92910190610a1d565b600160ff1b811461132d5760000390565b6001600160ff1b0381116158a25790565b60405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608490fd5b908160209103126104155735610a6e816129c7565b6001600160401b0381116114125760051b60200190565b9190811015611fe25760051b81013590601e19813603018212156104155701803591906001600160401b038311610415576020018236038113610415579190565b908092918237016000815290565b8051821015611fe25760209160051b010190565b9190826080910312610415578151916020810151916060604083015192015190565b6001600160a01b03918216815291166020820152604081019190915260600190565b6101315491600091825b8481106159ee5760405163f7b3b39160e01b8152600490fd5b6159f781611fc7565b505460029083820b81830b149182615ab0575b5050615a1e57615a19906148a7565b6159d5565b9293505050615a32611d3d61013354610837565b509260405191631612a31760e31b83528280615a56608097889430600485016159a9565b038173d4e10dd0c0e64c5f6eb134e7d2f2d43f82d8dc005af491821561077157839084958594615a89575b505093929190565b929550925050615aa59250803d10611dd057611dbc8183611468565b919390923880615a81565b90915084810b9160181c900b143880615a0a565b60009060009081809181610131548173d4e10dd0c0e64c5f6eb134e7d2f2d43f82d8dc00905b828410615af75750505050565b90919294959697615b0a61013354610837565b615b1387611fc7565b509160405191631612a31760e31b83528280615b37608096879430600485016159a9565b0381885af4801561077157615b8293615b7c9386879188938995615b8a575b505090615b6a615b7092615b76959661386f565b9e61386f565b9b61386f565b9861386f565b956148a7565b929190615aea565b615b769550615b6a9450615b709350615baf9250803d10611dd057611dbc8183611468565b9550939092615b56565b615bd190615bd7615bc8615ac4565b9295919561386f565b9361386f565b91615be761048161013454610837565b6040516370a0823160e01b8082526020939092849083908180615c0d30600483016113a0565b03915afa90811561077157615c2a92600092615c8e575b5061386f565b9382615c3b61048161013554610837565b60405193845283908180615c5230600483016113a0565b03915afa91821561077157610a6e93600093615c6f57505061386f565b615c86929350803d1061076a5761075b8183611468565b9038806105af565b615ca6919250853d871161076a5761075b8183611468565b9038615c24565b604091949392606082019560018060a01b0316825260208201520152565b908160209103126104155751610a6e81610ffe565b908060209392818452848401376000828201840152601f01601f1916010190565b97959394615dba958992610a6e9b999560018060a01b03809681968280951690521660208d01521660408b015260608a015216608088015280602435615d4681610843565b1660a088015280604435615d5981610843565b1660c0880152606435615d6b81610843565b1660e0870152615d8d615d7c6155df565b6001600160a01b0316610100880152565b60a43561012087015260c43561014087015260e4356101608701526101c080610180880152860191615ce0565b926101a0818503910152615ce0565b81835290916001600160fb1b0383116104155760209260051b809284830137010190565b959390610a6e999795929360018060a01b038095818094168a52166020890152166040870152606086015216608084015260a083015260c0820152610100908160e08201520191615dc9565b9015611fe25790565b9593919092610a6e9997959360018060a01b039283809216895216602088015216604086015215156060850152608084015260a083015260c0820152610100908160e08201520191615dc9565b9190600080938192604051906020820192633fb6943b60e21b845215156024830152604482015260448152615ec38161144d565b5190305af4615ed0613775565b9015615eda578280fd5b90918151908115610b4a575090602080610a6e9383010191016134fb56fe66003071e0f230260f5b0fcf3f58155206656900735cc736441b88ac6096acf6360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209e13479af25b7f2cf0db5b46f47b35767f7cab5084343d590ad06e39285f754c64736f6c63430008130033
🤖 Code Reader

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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

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.