Sepolia Testnet

Contract

0x315663A47d7E95c47370682DfF77415F469C3246
Source Code Source Code
Transaction Hash
Method
Block
From
To
Amount
Initialize105960242026-04-05 14:39:24108 days ago1775399964IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000208511.52741749
Initialize105955762026-04-05 13:02:48108 days ago1775394168IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000000330.00243291
Initialize105942352026-04-05 8:21:48108 days ago1775377308IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000000520.00381306
Initialize105941412026-04-05 8:02:48108 days ago1775376168IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000001170.00860336
Initialize105539622026-03-30 13:48:24114 days ago1774878504IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000204761.50000002
Initialize105188842026-03-25 13:06:12119 days ago1774443972IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000204761.50000005
Initialize104827852026-03-20 8:58:48124 days ago1773997128IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000204751.50000001
Initialize104671882026-03-18 1:52:00126 days ago1773798720IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000204761.50000001
Initialize104612992026-03-17 2:51:24127 days ago1773715884IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000204761.5
Initialize104340302026-03-12 17:00:24131 days ago1773334824IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000204761.50000001
Initialize104282752026-03-11 18:38:36132 days ago1773254316IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000204761.50000001
Initialize104247232026-03-11 4:20:00133 days ago1773202800IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000204761.50000001
Initialize104238752026-03-11 0:51:24133 days ago1773190284IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000204761.50000001
Initialize104149092026-03-09 13:27:36135 days ago1773062856IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000210241.54010488
Initialize103808172026-03-04 6:39:36140 days ago1772606376IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000204761.50000001
Initialize103801842026-03-04 4:29:36140 days ago1772598576IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000204761.50000001
Initialize103763072026-03-03 15:07:36140 days ago1772550456IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000204761.50000172
Initialize103727532026-03-03 2:58:12141 days ago1772506692IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000204761.50000001
Initialize103688522026-03-02 13:37:12142 days ago1772458632IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000204761.50000001
Initialize103541152026-02-28 10:57:48144 days ago1772276268IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000000130.00100002
Initialize103442992026-02-27 1:15:12145 days ago1772154912IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000000130.00100001
Initialize103341672026-02-25 13:50:48147 days ago1772027448IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000000130.00100958
Initialize102291752026-02-10 4:42:12162 days ago1770698532IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.000351552.57072967
Unlock102181282026-02-08 14:48:12164 days ago1770562092IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.0002544410.1817022
Initialize102181102026-02-08 14:44:24164 days ago1770561864IN
0x315663A47d7E95c47370682DfF77415F469C3246
0 ETH0.0014876210.87821728
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method
Block
From
To
Amount
Transfer106069672026-04-07 4:34:12106 days ago1775536452
0x315663A47d7E95c47370682DfF77415F469C3246
0.00131799 ETH
Settle106069672026-04-07 4:34:12106 days ago1775536452
0x315663A47d7E95c47370682DfF77415F469C3246
0.0002 ETH
Transfer106069622026-04-07 4:33:00106 days ago1775536380
0x315663A47d7E95c47370682DfF77415F469C3246
0.00135403 ETH
Transfer106069622026-04-07 4:33:00106 days ago1775536380
0x315663A47d7E95c47370682DfF77415F469C3246
0.0001 ETH
Transfer106069382026-04-07 4:28:00106 days ago1775536080
0x315663A47d7E95c47370682DfF77415F469C3246
0.0003 ETH
Transfer106069332026-04-07 4:26:36106 days ago1775535996
0x315663A47d7E95c47370682DfF77415F469C3246
0.00149682 ETH
Transfer106069322026-04-07 4:26:24106 days ago1775535984
0x315663A47d7E95c47370682DfF77415F469C3246
0.00006948 ETH
Transfer106069312026-04-07 4:26:12106 days ago1775535972
0x315663A47d7E95c47370682DfF77415F469C3246
0.0014194 ETH
Settle106069312026-04-07 4:26:12106 days ago1775535972
0x315663A47d7E95c47370682DfF77415F469C3246
0.0005 ETH
Settle106069062026-04-07 4:20:48106 days ago1775535648
0x315663A47d7E95c47370682DfF77415F469C3246
0.001 ETH
Settle106067222026-04-07 3:43:12106 days ago1775533392
0x315663A47d7E95c47370682DfF77415F469C3246
0.0005 ETH
Transfer106067202026-04-07 3:42:48106 days ago1775533368
0x315663A47d7E95c47370682DfF77415F469C3246
0.00091655 ETH
Transfer106067182026-04-07 3:42:24106 days ago1775533344
0x315663A47d7E95c47370682DfF77415F469C3246
0.00149153 ETH
Settle106067182026-04-07 3:42:24106 days ago1775533344
0x315663A47d7E95c47370682DfF77415F469C3246
0.0003 ETH
Transfer106067162026-04-07 3:42:00106 days ago1775533320
0x315663A47d7E95c47370682DfF77415F469C3246
0.00289883 ETH
Transfer106067162026-04-07 3:42:00106 days ago1775533320
0x315663A47d7E95c47370682DfF77415F469C3246
0.0015308 ETH
Transfer106067162026-04-07 3:42:00106 days ago1775533320
0x315663A47d7E95c47370682DfF77415F469C3246
0.00045849 ETH
Transfer106067152026-04-07 3:41:48106 days ago1775533308
0x315663A47d7E95c47370682DfF77415F469C3246
0.00116207 ETH
Transfer106065872026-04-07 3:14:36106 days ago1775531676
0x315663A47d7E95c47370682DfF77415F469C3246
0.0009814 ETH
Transfer106065862026-04-07 3:14:24106 days ago1775531664
0x315663A47d7E95c47370682DfF77415F469C3246
0.00110125 ETH
Transfer106065842026-04-07 3:14:00106 days ago1775531640
0x315663A47d7E95c47370682DfF77415F469C3246
0.00107719 ETH
Transfer106065842026-04-07 3:14:00106 days ago1775531640
0x315663A47d7E95c47370682DfF77415F469C3246
0.0004907 ETH
Settle106061432026-04-07 1:43:36106 days ago1775526216
0x315663A47d7E95c47370682DfF77415F469C3246
0.001 ETH
Settle106059852026-04-07 1:10:48106 days ago1775524248
0x315663A47d7E95c47370682DfF77415F469C3246
0.001 ETH
Settle106040692026-04-06 18:33:12106 days ago1775500392
0x315663A47d7E95c47370682DfF77415F469C3246
0.001 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Source Code Verified Exact Match

Contract Name

LikwidVault

Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled
Yes with 200 runs
Other Settings
prague EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract ABI
API
[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyUnlocked","type":"error"},{"inputs":[],"name":"AmountCannotBeZero","type":"error"},{"inputs":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"}],"name":"CurrenciesOutOfOrderOrEqual","type":"error"},{"inputs":[],"name":"CurrencyNotSettled","type":"error"},{"inputs":[],"name":"DelegateCallNotAllowed","type":"error"},{"inputs":[],"name":"ERC20TransferFailed","type":"error"},{"inputs":[],"name":"InvalidCaller","type":"error"},{"inputs":[],"name":"InvalidRecipient","type":"error"},{"inputs":[],"name":"InvalidReserves","type":"error"},{"inputs":[],"name":"LiquidityLocked","type":"error"},{"inputs":[],"name":"MustClearExactPositiveDelta","type":"error"},{"inputs":[],"name":"NativeTransferFailed","type":"error"},{"inputs":[],"name":"NonzeroNativeValue","type":"error"},{"inputs":[],"name":"NotEnoughReserves","type":"error"},{"inputs":[{"internalType":"PoolId","name":"id","type":"bytes32"}],"name":"PoolAlreadyInitialized","type":"error"},{"inputs":[],"name":"PoolNotInitialized","type":"error"},{"inputs":[],"name":"ProtocolFeeCurrencySynced","type":"error"},{"inputs":[{"internalType":"uint24","name":"fee","type":"uint24"}],"name":"ProtocolFeeTooLarge","type":"error"},{"inputs":[],"name":"SafeCastOverflow","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"VaultLocked","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"feeType","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"newFee","type":"uint8"}],"name":"DefaultProtocolFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Donate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"Currency","name":"currency","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint8","name":"feeType","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"feeAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"protocolFeeAmount","type":"uint256"}],"name":"Fees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"Currency","name":"currency0","type":"address"},{"indexed":true,"internalType":"Currency","name":"currency1","type":"address"},{"indexed":false,"internalType":"uint24","name":"fee","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"marginFee","type":"uint24"}],"name":"Initialize","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"PoolId","name":"poolId","type":"bytes32"},{"indexed":false,"internalType":"uint8","name":"insuranceFundPercentage","type":"uint8"}],"name":"InsuranceFundPercentageUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"bool","name":"lendingForOne","type":"bool"},{"indexed":false,"internalType":"int128","name":"lendingAmount","type":"int128"},{"indexed":false,"internalType":"uint256","name":"depositCumulativeLast","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"Lend","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"marginController","type":"address"}],"name":"MarginControllerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"MarginState","name":"newMarginState","type":"bytes32"}],"name":"MarginStateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"int256","name":"callerDelta","type":"int256"},{"indexed":false,"internalType":"int256","name":"liquidityDelta","type":"int256"},{"indexed":false,"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"ModifyLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"OperatorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":false,"internalType":"Reserves","name":"realReserves","type":"uint256"},{"indexed":false,"internalType":"Reserves","name":"mirrorReserves","type":"uint256"},{"indexed":false,"internalType":"Reserves","name":"pairReserves","type":"uint256"},{"indexed":false,"internalType":"Reserves","name":"lendReserves","type":"uint256"},{"indexed":false,"internalType":"Reserves","name":"protocolInterestReserves","type":"uint256"},{"indexed":false,"internalType":"InsuranceFunds","name":"insuranceFunds","type":"int256"}],"name":"PoolUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"protocolFeeController","type":"address"}],"name":"ProtocolFeeControllerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":false,"internalType":"uint24","name":"protocolFee","type":"uint24"}],"name":"ProtocolFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"int128","name":"amount0","type":"int128"},{"indexed":false,"internalType":"int128","name":"amount1","type":"int128"},{"indexed":false,"internalType":"uint24","name":"fee","type":"uint24"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"Currency","name":"currency","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"clear","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"Currency","name":"currency","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collectProtocolFees","outputs":[{"internalType":"uint256","name":"amountCollected","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"defaultProtocolFee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint24","name":"marginFee","type":"uint24"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"donate","outputs":[{"internalType":"BalanceDelta","name":"delta","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"extsload","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"startSlot","type":"bytes32"},{"internalType":"uint256","name":"nSlots","type":"uint256"}],"name":"extsload","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"slots","type":"bytes32[]"}],"name":"extsload","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"slots","type":"bytes32[]"}],"name":"exttload","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"exttload","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint24","name":"marginFee","type":"uint24"}],"internalType":"struct PoolKey","name":"key","type":"tuple"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isOperator","outputs":[{"internalType":"bool","name":"isOperator","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint24","name":"marginFee","type":"uint24"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"components":[{"internalType":"bool","name":"lendForOne","type":"bool"},{"internalType":"int128","name":"lendAmount","type":"int128"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct IVault.LendParams","name":"params","type":"tuple"}],"name":"lend","outputs":[{"internalType":"BalanceDelta","name":"lendDelta","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint24","name":"marginFee","type":"uint24"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"components":[{"internalType":"enum MarginActions","name":"action","type":"uint8"},{"internalType":"bool","name":"marginForOne","type":"bool"},{"internalType":"uint128","name":"marginTotal","type":"uint128"},{"internalType":"uint256","name":"marginFeeAmount","type":"uint256"},{"internalType":"uint256","name":"swapFeeAmount","type":"uint256"},{"internalType":"BalanceDelta","name":"marginDelta","type":"int256"},{"internalType":"BalanceDelta","name":"mirrorDelta","type":"int256"},{"internalType":"BalanceDelta","name":"pairDelta","type":"int256"},{"internalType":"BalanceDelta","name":"lendDelta","type":"int256"},{"internalType":"BalanceDelta","name":"fundsDelta","type":"int256"}],"internalType":"struct MarginBalanceDelta","name":"params","type":"tuple"}],"name":"marginBalance","outputs":[{"internalType":"BalanceDelta","name":"marginDelta","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marginController","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marginState","outputs":[{"internalType":"MarginState","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint24","name":"marginFee","type":"uint24"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"components":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct IVault.ModifyLiquidityParams","name":"params","type":"tuple"}],"name":"modifyLiquidity","outputs":[{"internalType":"BalanceDelta","name":"callerDelta","type":"int256"},{"internalType":"int128","name":"finalLiquidityDelta","type":"int128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFeeController","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Currency","name":"currency","type":"address"}],"name":"protocolFeesAccrued","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum FeeTypes","name":"feeType","type":"uint8"},{"internalType":"uint8","name":"newFee","type":"uint8"}],"name":"setDefaultProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint24","name":"marginFee","type":"uint24"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"internalType":"uint8","name":"insuranceFundPercentage","type":"uint8"}],"name":"setInsuranceFundPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"controller","type":"address"}],"name":"setMarginController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"MarginState","name":"newMarginState","type":"bytes32"}],"name":"setMarginState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint24","name":"marginFee","type":"uint24"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"internalType":"enum FeeTypes","name":"feeType","type":"uint8"},{"internalType":"uint8","name":"newFee","type":"uint8"}],"name":"setProtocolFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"controller","type":"address"}],"name":"setProtocolFeeController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"settle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"settleFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint24","name":"marginFee","type":"uint24"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"bool","name":"useMirror","type":"bool"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct IVault.SwapParams","name":"params","type":"tuple"}],"name":"swap","outputs":[{"internalType":"BalanceDelta","name":"swapDelta","type":"int256"},{"internalType":"uint24","name":"swapFee","type":"uint24"},{"internalType":"uint256","name":"feeAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"Currency","name":"currency","type":"address"}],"name":"sync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"Currency","name":"currency","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"take","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"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":"bytes","name":"data","type":"bytes"}],"name":"unlock","outputs":[{"internalType":"bytes","name":"result","type":"bytes"}],"stateMutability":"nonpayable","type":"function"}]
60a0346100f057601f615b7438819003918201601f19168301916001600160401b038311848410176100f4578084926020946040528339810103126100f057516001600160a01b038116908190036100f0575f80546001600160a01b0319168217815581907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3600180547b0500000500a8c0000bb800271000006400000a0aae600493e000c3506001600160f01b031990911617905560068054306080526001600160b81b0319169190911762028a0560a21b179055604051615a6b9081610109823960805181612aa10152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe610360806040526004361015610013575f80fd5b5f3560e01c908162fdd58e146126b85750806301ffc9a714612662578063095bcdb6146125db5780630b0d9c091461259157806311da60b41461257357806311ea6ee71461254b578063156e29f6146124d95780631e2eaeaf146124bd5780632c8fb09014611fac5780632d77138914611f3a57806335fd631a14611ee45780633dd45adb14611ebe578063421bcbdf14611e99578063426a849314611e1f57806348c8949114611c775780634fd83c3c14611b89578063558a729714611af7578063598af9e714611a9d57806366cf56c1146119fd57806380f0b44c146119a15780638161b874146118ac57806386fe267e146117305780638da5cb5b1461170957806394e02af4146116b757806397e8cd4e1461167f5780639bf6645f146116325780639d18b69c14610fab578063a02a3ad814610f28578063a264187e14610e91578063a584119414610e30578063a9b9d9f3146108f6578063aeb69072146106ba578063b6363cf214610663578063b8e6f1c314610646578063dbd035ff146105f0578063f02de3b2146105c8578063f135baaa146105ac578063f2fde38b14610537578063f5298aca1461041f578063f5de0f1f1461033d5763fe99049a146101df575f80fd5b34610339576080366003190112610339576101f86126f7565b61020061270d565b60443591606435916001600160a01b03909116905f516020615a165f395f51905f529061029d903384141580610316575b6102ab575b835f52600860205260405f20865f5260205260405f206102578682546128ad565b905560018060a01b031693845f52600860205260405f20865f5260205260405f206102838282546128ba565b905560408051338152602081019290925290918291820190565b0390a4602060405160018152f35b5f848152600960209081526040808320338452825280832089845290915290205485600182016102dd575b5050610236565b6102e6916128ad565b845f52600960205260405f2060018060a01b0333165f5260205260405f20875f5260205260405f20555f856102d6565b505f84815260076020908152604080832033845290915290205460ff1615610231565b5f80fd5b34610339576040366003190112610339576004356005811015610339576024359060ff82168083036103395761037d60018060a01b035f541633146128c7565b610393600654938362ffffff8660a01c1661335a565b9260c960ff85161061c90061ff008616101662c9000062ff000086161016156104075790604092917f38b5d4bc1f1acfdf9a841d045e43d6af68bb30b9282de7ace8c536afa64c51629462ffffff60a01b9060a01b169062ffffff60a01b19161760065560ff8351921682526020820152a1005b62ffffff8463a7abe2f760e01b5f521660045260245ffd5b346103395761042d36612723565b9190610437612922565b6001600160a01b0316915f8112610528575f516020615a165f395f51905f526104a05f9361046684338861293e565b6001600160a01b0316923384141580610506575b6104a5575b838552600860205260408520868652602052604085206102838282546128ad565b0390a4005b838552600960209081526040808720338852825280872088885290915285205481861982036104d6575b505061047f565b6104df916128ad565b848652600960209081526040808820338952825280882089895290915286205586816104cf565b5083855260076020908152604080872033885290915285205460ff161561047a565b6393dafdf160e01b5f5260045ffd5b34610339576020366003190112610339576105506126f7565b5f5490610567336001600160a01b038416146128c7565b60018060a01b031680916bffffffffffffffffffffffff60a01b16175f55337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b34610339576020366003190112610339576004355c5f5260205ff35b34610339575f366003190112610339576006546040516001600160a01b039091168152602090f35b34610339576105fe3661285b565b6040519160408360208152836020820152019160051b8301916020806040850193925b833554815201910190848382101561063d575060208091610621565b60408186030190f35b34610339575f366003190112610339576020600154604051908152f35b346103395760403660031901126103395761067c6126f7565b61068461270d565b9060018060a01b03165f52600760205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b346103395760e0366003190112610339576106d4366127db565b60603660831901126103395760405190606082018281106001600160401b038211176108e25760405261070561284c565b825260a4359081600f0b82036103395760208301918252604083019160c435835261072e612922565b610736612a9f565b8051600f0b156108d357608082209161074e81612ae0565b9480511515918351600f0b8651604051906107688261274d565b3382526020820192868452806040840152606083019182525f965f905f146108c357509060048b01549687925b6001600160801b03169060801b179a8b936107ae612cb5565b6040516107ba81612783565b5f81528660208201526107cc82612d01565b526107d681612d01565b506040516107e381612783565b600381528660208201526107f682612d22565b5261080081612d22565b5061080b9083614326565b5050600160a01b600190039051169185511515905191600f0192610852939291908260a81c9160581b9060601b17175f5260581b60205260355f205f5260205260405f2090565b9251151561085f93614240565b50863361086b92613307565b5191519351604080519315158452600f9590950b602084015293820152606081019290925233917f59211f5df275fbc716bd7b2bda83f35670dc61913ac7ad0233feef942d63965c90608090a3604051908152602090f35b60038c0154975087929190610795565b63d11b25af60e01b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b34610339576101c036600319011261033957610911366127db565b610140366083190112610339576040519061014082018281106001600160401b038211176108e257604052608435600681101561033957825260a4358015158103610339576020830190815260c4356001600160801b0381168103610339576040840152606083019260e4358452608081019361010435855260a082019461012435865260c083019561014435875260e08401906101643582526101008501976101843589526101208601926101a43584526109cb612922565b6002546001600160a01b03163303610e22576109e5612a9f565b60808920936109f38a612ae0565b9262ffffff60065460a01c169b5f9c8a516006811015610d65576002141580610e0d575b80610e04575b610df557855496516080528a516006811015610d6557159687610dca575b610a5091610a4891613341565b8951906141bc565b89528b5190965f91829015610daa575015610d9c57508c610a79610a7388613fbd565b91613fbd565b6001600160801b03169060801b176001600160401b036004116108e2576040519460a0610aa681886127ba565b600487525f5b601f1982018110610d7957505081610b0191610ad2610b8899989796959460805161420c565b60405190610adf82612783565b5f82526020820152610af088612d01565b52610afa87612d01565b505161420c565b60405190610b0e82612783565b600282526020820152610b2085612d22565b52610b2a84612d22565b505160405190610b3982612783565b600382526020820152610b4b84612d32565b52610b5583612d32565b505160405190610b6482612783565b600182526020820152610b7683612d42565b52610b8082612d42565b5051916149b7565b969095519860068a1015610d65579051610c039915919015610d4b57602089015189516001600160a01b039182169291165b8315610d4357965b805115801590610d3a575b610cd9575b505050835115801590610cd0575b610c5d575b505050505080610c38575b5080610c0f575b50608051903390613307565b60206040516080518152f35b6020828101516001600160a01b03165f9081526005909152604090208054909101905582610bf7565b82516001600160a01b03165f9081526005602052604090208054909101905583610bf0565b15610cc8576003925b81610ca6575b5160ff60405194168452602084015260408301525f5160206159f65f395f51905f526060339460018060a01b031693a48480808080610be5565b6001600160a01b0385165f908152600560205260409020805483019055610c6c565b600492610c66565b50811515610be0565b81610d18575b5190604051916001835260208301526040820152845f5160206159f65f395f51905f526060339460018060a01b031693a4898080610bd2565b6001600160a01b0383165f908152600560205260409020805483019055610cdf565b50811515610bcd565b508196610bc2565b885160208a01516001600160a01b03918216929116610bba565b634e487b7160e01b5f52602160045260245ffd5b602090604051610d8881612783565b5f81525f8382015282828b01015201610aac565b610da587613fbd565b610a79565b915015610dbb5750610d9c8d613fbd565b610dc487613fbd565b90610a79565b9d50610a48818f610de1610a5094610de992613341565b8d51906141ec565b8d529f91509150610a3b565b632ca2f52b60e11b5f5260045ffd5b50865115610a1d565b508a516006811015610d655760041415610a17565b6282b42960e81b5f5260045ffd5b3461033957602036600319011261033957610e496126f7565b6001600160a01b0381169081610e6c5750505f805c6001600160a01b031916905d005b610e75906134e7565b906bffffffffffffffffffffffff60a01b5f5c16175f5d60015d005b346103395760c0366003190112610339576020610ead366127db565b60843560a435610ebb612922565b610ec3612a9f565b6080832090610ef0610ee78285610ed988612ae0565b610ee2816133d1565b6133eb565b80953390613307565b604051928352848301527f29ef05caaff9404b7cb6d1c0e9bbae9eaa7ab2541feba1a9c4248594c08156cb60403393a3604051908152f35b3461033957602036600319011261033957610f416126f7565b610f5560018060a01b035f541633146128c7565b600254906001600160a01b03821615610f6a57005b6001600160a01b03166001600160a01b03199190911681176002557f65469f7d625266a4c84cadd5dea64729f094d677b847fbe082dae6c41caddfa45f80a2005b346103395761010036600319011261033957610fc6366127db565b608036608319011261033957604051610fde8161274d565b610fe661284c565b8152602081019060a435825260c435801515810361033957604082015260e4356060820152611013612922565b61101b612a9f565b8151156108d3576080832061102f84612ae0565b9282511515905160408401511515956060850151966040519761105189612768565b3389528460208a0152604089019184835260608a0152608089015262ffffff60065460a01c16928860078901549260088a0154928a54975f82125f146115e75750506110e360206110f3946110dc6110ce8b9998966110b36110ee9751612c85565b9a8b9586920151151594859160b81c62ffffff16908a615383565b8b60b81c62ffffff1661546b565b80956155eb565b969096929697613341565b6141bc565b60208a01519097919390156115b85761111661111161111c92613fbd565b612902565b95613fbd565b9761112684613fbd565b60801b995b606081015161140857506111b561115260609b8b6001600160801b03168960801b1761420c565b61115a612cb5565b9060405161116781612783565b5f815281602082015261117983612d01565b5261118382612d01565b506040519061119182612783565b6002825260208201526111a382612d22565b526111ad81612d22565b505b82614326565b50506040820151156113e95781511561138c57867f59211f5df275fbc716bd7b2bda83f35670dc61913ac7ad0233feef942d63965c608088811b6001600160801b038d161780821d90911b9061121a9061121190600f0b612902565b915b3388613307565b845115801594906113825760040154905b61125c8e87015160405193849333988590949392606092608083019615158352600f0b602083015260408201520152565b0390a35b511561136f57516001600160a01b0316905b8515801590611366575b611332575b8061130c575b505062ffffff60405191866001600160801b03168460801b1760801d600f0b8352866001600160801b03168460801b17600f0b602084015216928360408301527f9cabf96bbc00f3f126d1b309884416fe322227e57a50b1da86a5e142c78bb696873393a3604051936001600160801b03169060801b17835260208301526040820152f35b61132b9160018060a01b03165f52600560205260405f20908154019055565b8680611287565b6040515f81528660208201528160408201523390865f5160206159f65f395f51905f528b60018060a01b03871693a4611281565b5080151561127c565b602001516001600160a01b031690611272565b600301549061122b565b867f59211f5df275fbc716bd7b2bda83f35670dc61913ac7ad0233feef942d63965c6001600160801b038860801b166001600160801b038c161761121a6113e38d6001600160801b03168b60801b1760801d612902565b91611213565b50611403886001600160801b03168660801b173384613307565b611260565b6040519a6080611418818e6127ba565b60038d52601f19015f5b81811061159457505061155d8b6111b5936114f960609f6114d48d968297602086015115155f14611573578060801b9661146e8361145f83612902565b6001600160801b03169961420c565b6040519061147b82612783565b5f8252602082015261148c86612d01565b5261149685612d01565b506040516114a381612783565b600381528860208201526114b686612d22565b526114c085612d22565b506001600160801b03169060801b1761420c565b604051906114e182612783565b6002825260208201526114f382612d32565b52612d32565b50602081015115801591906115635760206115526004890154935b60018060a01b0384511690608085015191600f8c019291908260a81c9160581b9060601b17175f5260581b60205260355f205f5260205260405f2090565b910151151590614240565b506111af565b6020611552600389015493611514565b866001600160801b03169661146e8361158b84612902565b60801b9961420c565b808e60208093604051926115a784612783565b5f84525f8385015201015201611422565b946111116115c86115ce92613fbd565b96613fbd565b976115d884613fbd565b6001600160801b03169961112b565b6110f39498969593506110ee925090816116226116148361162995819d8c60b81c62ffffff16908a61522f565b8960b81c62ffffff1661546b565b8095615523565b92969095613341565b34610339576116403661285b565b6040519160408360208152836020820152019160051b8301916020806040850193925b83355c815201910190848382101561063d575060208091611663565b34610339576020366003190112610339576001600160a01b036116a06126f7565b165f526005602052602060405f2054604051908152f35b34610339576020366003190112610339576004356116df60018060a01b035f541633146128c7565b806001557f2a044b62006f76261d3fbe3adc7fb73fd833add28a8f3fa7e29ebbe82fcc04265f80a2005b34610339575f366003190112610339575f546040516001600160a01b039091168152602090f35b346103395760803660031901126103395761174a366127db565b611752612a9f565b805160208201805190916001600160a01b0390811691168082101561188e57505060808220805f52600a60205260405f2060408401938451606082019081516001850193845461187f57620f424062ffffff84161080159061186d575b61185e5760d09190911b62ffffff60d01b1660b89290921b62ffffff60b81b164260801b63ffffffff60801b161791909117600f60e91b178455600160601b92839055600284018390556003840183905560049093019190915590519251935190516040805162ffffff93841681529190921660208201526001600160a01b039485169493909316927fa2ba3c066984d7187e0be4206a2d6ab029c7f3c5f0ca141cbc021bf8e20bed169190a4005b6358d620b360e01b5f5260045ffd5b50620f424062ffffff831610156117af565b637983c05160e01b5f5260045ffd5b60449250604051916306e6c98360e41b835260048301526024820152fd5b34610339576060366003190112610339576118c56126f7565b6118cd61270d565b600654604435906001600160a01b03163303611992576001600160a01b0382168015158061197f575b611970576001600160a01b038416156119615760209361195192825f526005865260405f205481115f146119595750815f526005855260405f20549384925b5f526005865260405f2061194a8482546128ad565b90556129b0565b604051908152f35b938492611935565b634e46966960e11b5f5260045ffd5b6318f3cb2960e31b5f5260045ffd5b505f5c6001600160a01b031681146118f6565b6348f5c3ed60e01b5f5260045ffd5b34610339576040366003190112610339576119ba6126f7565b602435906119c6612922565b6119d03382614161565b5c5f83126105285782036119ee576119ec915f0390339061293e565b005b63bda73abf60e01b5f5260045ffd5b346103395760a036600319011261033957611a17366127db565b6084359060ff82168083036103395760806040927fd82e4bb00d2a4d9245234116186b0c1edb3ab0a4f77b2b68b146de4a0c1f093594611a6160018060a01b035f541633146128c7565b611a6a82612ae0565b90611a74826133d1565b815460ff60e81b191660e89190911b60ff60e81b161790552082519081526020810191909152a1005b3461033957606036600319011261033957611ab66126f7565b611abe61270d565b6001600160a01b039182165f90815260096020908152604080832094909316825292835281812060443582528352819020549051908152f35b3461033957604036600319011261033957611b106126f7565b6024359081151580920361033957335f52600760205260405f2060018060a01b0382165f5260205260405f2060ff1981541660ff841617905560405191825260018060a01b0316907fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa26760203392a3602060405160018152f35b346103395760c036600319011261033957611ba3366127db565b6084359060058210156103395760a43560ff81168103610339576006546001600160a01b0316330361199257611bf8611bdb83612ae0565b91825494611bf362ffffff60065460a01c1687613341565b61335a565b9260c960ff85161061c90061ff008616101662c9000062ff00008616101615610407577fe9c42593e71f84403b84352cd168d693e2c9fcd1fdbcc3feb21d92b43e6696f99282608092611c4c6020956133d1565b62ffffff60a01b191660a087901b62ffffff60a01b161790552060405162ffffff94909416845292a2005b34610339576020366003190112610339576004356001600160401b0381116103395736602382011215610339578060040135906001600160401b0382116103395736602483830101116103395760ff60025c16611e1057602460445f92600160ff1960025c161760025d8460405195869485936348eeb9a360e11b855260206004860152828286015201848401378181018301859052601f01601f1916810103018183335af1908115611e05575f91611d7d575b5060035c611d6e57604060209160ff1960025c1660025d815192839181835280519182918282860152018484015e5f828201840152601f01601f19168101030190f35b635212cba160e01b5f5260045ffd5b90503d805f833e611d8e81836127ba565b810190602081830312610339578051906001600160401b038211610339570181601f82011215610339578051906001600160401b0382116108e25760405192611de1601f8401601f1916602001856127ba565b8284526020838301011161033957815f9260208093018386015e8301015281611d2b565b6040513d5f823e3d90fd5b6328486b6360e11b5f5260045ffd5b3461033957611e2d36612723565b9091335f52600960205260405f2060018060a01b0382165f5260205260405f20835f526020528160405f205560405191825260018060a01b0316907fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a760203392a4602060405160018152f35b34610339575f36600319011261033957602062ffffff60065460a01c16604051908152f35b6020366003190112610339576020611951611ed76126f7565b611edf612922565b612a3b565b34610339576040366003190112610339576024356004356040519160408360208152826020820152019060051b8301916001602060408501935b8354815201910190848382101561063d57506020600191611f1e565b3461033957602036600319011261033957611f536126f7565b611f6760018060a01b035f541633146128c7565b600680546001600160a01b0319166001600160a01b039290921691821790557fb4bd8ef53df690b9943d3318996006dbb82a25f54719d8c8035b516a2a5b8acc5f80a2005b346103395761010036600319011261033957611fc7366127db565b60803660831901126103395760405190611fe08261274d565b6084358252602082019060a43582526040830160c43581526060840160e4358152612009612922565b612011612a9f565b61206c61201d84612ae0565b94608085209361203c87546001600160801b0316985192519151612c44565b8451916040519361204c85612768565b33855260208501526040840152600f0b6060830152608082015285612d66565b939094546001600160801b0316958087115f146121195761209661209082896128ad565b85613100565b5f8712610528575f8112610528578603958613600116612105576040956120f6938693518851928584526020840152888301527f9df4c56a2ff35ca8f2d2783ca734dd0c7a61cd65ac6b6459e0b1f0e55d994cc160603393a33390613307565b8251918252600f0b6020820152f35b634e487b7160e01b5f52601160045260245ffd5b808710156120965761212b87826128ad565b6001548060a81c62ffffff16908060c01c62ffffff169161214c8382612c52565b61215a575b50505050612096565b83905f9384916121726001600160801b039282612c52565b612391575b506001600160801b039161218a91612c65565b161061238257865f52600460205260405f209182546001600160801b0381169060801c0315612151576001600160801b03161561229c57508054916001600160801b0383169260801c831461228a576001600160801b038084165f908152600184810160205260408220805492905584546fffffffffffffffffffffffffffffffff19169501821694909417835561225c939061222f61222985613fe3565b926140c3565b9050168281115f146122745761224b61225693612250926128ad565b613fcf565b906140e2565b90614087565b835f5260036020524260405f20555b87808080612151565b61224b61228491612256946128ad565b90614016565b634e487b715f5260316020526024601cfd5b9061231e61232f9362ffffff6122b184613fe3565b9160016122ce866001600160801b0390548181169060801c031690565b0361236a576122dc90613fcf565b6001600160801b03612301826122fb6122f4876140c3565b9590612c95565b93612c95565b16906001600160801b03199060801b1617945b60d81c1690614046565b158015612347575b61233457614087565b61226b565b865f5260036020524260405f2055614087565b506001612364826001600160801b0390548181169060801c031690565b14612326565b61237661237c91613fcf565b83614016565b94612314565b6347a73ad960e11b5f5260045ffd5b8a5f52600460205260405f208b5f52600360205260405f20549181548481169060801c036123c1575b5050612177565b91935091506123cf82613fe3565b906123d9826140c3565b90509360016123f8856001600160801b0390548181169060801c031690565b1192836124a1575b508261248d575b5050612418575b90818086936123ba565b91509250612436816001600160801b0390548181169060801c031690565b6001101561247b57806001600160801b0380600181819554160116165f5201602052826001600160801b0361218a61247160405f20546140c3565b905094915061240e565b634e487b715f5260326020526024601cfd5b61249792506128ba565b4210158e80612407565b6124b691935062ffffff8860d81c1690614046565b915f612400565b3461033957602036600319011261033957600435545f5260205ff35b34610339576124e736612723565b906124f0612922565b6001600160a01b0316915f8212610528575f516020615a165f395f51905f526104a05f92612521858503338861293e565b60018060a01b031693848452600860205260408420868552602052604084206102838282546128ba565b34610339575f366003190112610339576002546040516001600160a01b039091168152602090f35b5f36600319011261033957612586612922565b602061195133612a3b565b34610339576060366003190112610339576125aa6126f7565b6125b261270d565b604435906125be612922565b5f8212610528576119ec926125d6835f03338361293e565b6129b0565b34610339576125e936612723565b9091335f52600860205260405f20835f5260205260405f2061260c8382546128ad565b905560018060a01b031690815f52600860205260405f20835f5260205260405f206126388282546128ba565b9055604080513380825260208201939093525f516020615a165f395f51905f52918190810161029d565b346103395760203660031901126103395760043563ffffffff60e01b8116809103610339576020906301ffc9a760e01b81149081156126a7575b506040519015158152f35b630f632fb360e01b1490508261269c565b34610339576040366003190112610339576020906001600160a01b036126dc6126f7565b165f526008825260405f206024355f52825260405f20548152f35b600435906001600160a01b038216820361033957565b602435906001600160a01b038216820361033957565b6060906003190112610339576004356001600160a01b038116810361033957906024359060443590565b608081019081106001600160401b038211176108e257604052565b60a081019081106001600160401b038211176108e257604052565b604081019081106001600160401b038211176108e257604052565b61012081019081106001600160401b038211176108e257604052565b90601f801991011681019081106001600160401b038211176108e257604052565b608090600319011261033957604051906127f48261274d565b816004356001600160a01b03811681036103395781526024356001600160a01b038116810361033957602082015260443562ffffff811681036103395760408201526064359062ffffff821682036103395760600152565b60843590811515820361033957565b906020600319830112610339576004356001600160401b0381116103395782602382011215610339578060040135926001600160401b0384116103395760248460051b83010111610339576024019190565b9190820391821161210557565b9190820180921161210557565b156128ce57565b60405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606490fd5b600f0b6f7fffffffffffffffffffffffffffffff198114612105575f0390565b60ff60025c161561292f57565b6372b89e9760e11b5f5260045ffd5b919081156129ab5761295261295892612c44565b92614161565b805c91600f0b908183019182125f84129080158216911516176121055781905d612991575060035c5f1981019081116121055760035d5b565b1561299857565b60035c600181018091116121055760035d565b505050565b6001600160a01b0381166129dd57505f80809381935af1156129ce57565b633d2cec6f60e21b5f5260045ffd5b60205f6044819482604095865198899363a9059cbb60e01b855260018060a01b0316600485015260248401525af13d15601f3d11600185511416171692828152826020820152015215612a2c57565b633c9fd93960e21b5f5260045ffd5b5f5c6001600160a01b0316919082612a625734925b5f84126105285761298f91849161293e565b34612a9057612a7b60015c612a76856134e7565b6128ad565b925f805c6001600160a01b031916905d612a50565b635876424f60e11b5f5260045ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003612ad157565b6306c4a1c760e11b5f5260045ffd5b9060808220805f52600a60205260405f2092612afb846133d1565b612b1360015462ffffff60065460a01c169086613558565b9082610120519160a0516101005194908115801590612c3b575b612bf9575b50508315801590612bf0575b612bac575b505050507f9f3985fdc4058ca90c3568565aba60632c864d79ac8f29a339bc19e8c2acae1f60c06005850154600686015460078701546009880154600b89015491600d8a015493604051958652602086015260408501526060840152608083015260a0820152a2565b6020908101516040805160028152928301959095529381019290925230926001600160a01b0316915f5160206159f65f395f51905f5290606090a45f808281612b43565b50821515612b3e565b82516040805160028152602081019490945283019190915230916001600160a01b039091169084905f5160206159f65f395f51905f5290606090a45f80612b32565b50801515612b2d565b9081600f0b91820361052857565b8181029291811591840414171561210557565b906001600160801b03809116911601906001600160801b03821161210557565b600160ff1b8114612105575f0390565b906001600160801b03809116911603906001600160801b03821161210557565b60405160609190612cc683826127ba565b6002815291601f1901825f5b828110612cde57505050565b602090604051612ced81612783565b5f81525f8382015282828501015201612cd2565b805115612d0e5760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015612d0e5760400190565b805160021015612d0e5760600190565b805160031015612d0e5760800190565b8051821015612d0e5760209160051b010190565b91606082018051600f0b938415806130f4575b806130e8575b6130de57805491600782019283546001600160801b038160801c9116975f836001600160801b031691125f14612fca57612dbc8451600f0b612c85565b986001600160801b03821692838b11612fbb57612df9610a73612df386612e0d958f95612e1399612ded9188613dfa565b95613dfa565b92613fbd565b6001600160801b03169060801b1799613fcf565b90612c95565b6001600160801b0316906001600160801b03191617825551600f0b935b612e94612e3b612cb5565b604051612e4781612783565b5f8152886020820152612e5982612d01565b52612e6381612d01565b50604051612e7081612783565b60028152886020820152612e8382612d22565b52612e8d81612d22565b5083614326565b5050608060018060a01b03825116910151905f526020526034600c205f52600e810160205260405f2084600f0b8015808091612fa9575b612f9a5715612f64575b5060010190815491612ee98760801d612902565b92612ef688600f0b612902565b93600f0b8160801d01938480600f0b03612f57576001600160801b0390600f0b9116600f0b01928380600f0b03612f57576001600160801b0360089416906001600160801b03199060801b161790550190815415612f52575050565b549055565b6393dafdf15f526004601cfd5b6001600160801b0382541601908160801c612f57576001600160801b03600192166001600160801b031982541617815590612ed5565b632bbfae4960e21b5f5260045ffd5b506001600160801b0383541615612ecb565b63bb55fd2760e01b5f5260045ffd5b9197919250826130505750505061304a6103e89560208601519061302e6040880151613010611111612df361111161300a613005868a612c52565b613e98565b97613fbd565b6001600160801b03169060801b179861302884613fcf565b90612c65565b6001600160801b0316906001600160801b031916178355613fbd565b93612e30565b96829761304a93602089015193613068838287613dfa565b60408b01519095908087116130b15750612df361111161302e95946130a26130109561309b611111969b985b848d613dfa565b9288613dfa565b90818082109118021897613fbd565b955050611111612df361111185946130a28561309b6130d76130109861302e9b8e613dfa565b9b98613094565b505f935083925050565b50604084015115612d7f565b50602084015115612d79565b90600154916131208360c01c62ffffff16809460a81c62ffffff16612c52565b156129ab57805f52600360205260405f2054156132f4575b5f52600460205260405f209082156132e25761316790600161315d855f198401613e7a565b0190151502613fcf565b81546001600160801b0381169060801c145f146131e7575f5b8363ffffffff8216106131935750505050565b63ffffffff906131d3836001600160801b036131bc826131b65f805b9590612c65565b93612c65565b16906001600160801b03199060801b1617856140fa565b1663ffffffff811461210557600101613180565b613201826001600160801b0390548181169060801c031690565b8380821091180283185f60018401905b82811061324b5750505b8381106132285750505050565b600190613245836001600160801b036131bc826131b65f806131af565b0161321b565b613265856001600160801b0390548181169060801c031690565b81101561247b576001600160801b03855416906001600160801b038080831680940116165f528260205261329d8560405f20546140e2565b6132b7876001600160801b0390548181169060801c031690565b82101561247b576001600160801b0380600194818a54160116165f528360205260405f205501613211565b634e487b715f5260126020526024601cfd5b805f5260036020524260405f2055613138565b9061298f929161332860018060a01b03825116838560801d600f0b9161293e565b60200151600f9290920b916001600160a01b031661293e565b60a01c62ffffff1680155f14613355575090565b905090565b909160ff81169260c884116133be576005811015610d65578061338257505062ffff00161790565b91925090600181036133a1575061ff0062ff00ff9160081b1691161790565b6002146133ac575090565b62ff000061ffff9160101b1691161790565b83632fcd20fb60e11b5f5260045260245ffd5b60010154156133dc57565b63486aa30760e01b5f5260045ffd5b9291908015806134df575b6134d857611111612df361111161343d93600d8801613436815461341984613fbd565b6134228a613fbd565b6001600160801b03169060801b179061420c565b9055613fbd565b6001600160801b03169060801b17916001600160401b036001116108e25760408051919061346b81846127ba565b60018352601f19015f5b8181106134b5575050906134b19160405161348f81612783565b5f81528560208201526134a183612d01565b526134ab82612d01565b50614326565b5050565b6020906040516134c481612783565b5f81525f8382015282828701015201613475565b505f925050565b5081156133f6565b6001600160a01b0316806134fa57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611e05575f91613529575090565b90506020813d602011613550575b81613544602093836127ba565b81010312610339575190565b3d9150613537565b6101c0819052610200919091525f61010081905260a081905261012081905290546101a081905260e08290529092919060801c63ffffffff818116914290911690818311613b2f57500363ffffffff81116121055763ffffffff1660e0525b60e05115613b1a576135cc906101a051613341565b61364460056101c051015460066101c051015461034052600a6101c051015461030052600b6101c05101546103205260076101c05101546101605260096101c05101546102e05260016101c05101546102405260026101c051015461028052610340519061020051610280516102405160e051614dbf565b6102a052610260526101605160801c9081610180526001600160801b036101605116905f6102c0526102e05160801c6102c0526102c051916001600160801b036102e05116936103405160801c948560c0526001600160801b036103405116935f610220526103005160801c6102205261372b6103205160801c9788946001600160801b0361032051169960036101c051015491604051936136e58561279e565b845261026051602085015261024051604085015261022051606085015260808401526102c05160a084015260c083015260e082015262ffffff8316610100820152614e8a565b6101e0526101006101e0510151613ad6575b6137d59062ffffff60046101c0510154916040519261375b8461279e565b6001600160801b03610340511684526102a05160208501526102805160408501526001600160801b03610300511660608501526001600160801b03610160511660808501526001600160801b036102e0511660a08501526001600160801b03610320511660c085015260e084015216610100820152614e8a565b61014052610100610140510151151580613a92575b6101006101e05101511590811591613a8a575b506139e4575b50505050505060086101c05101805461381e61016051615878565b156139d95761382c81615878565b613915575061016051905b55610260516102405110613904575b6102a05161028051106138f3575b60606101e05101518061022051148015906138d6575b613896575b506101a0516101c05163ffffffff60801b199091164260801b63ffffffff60801b16179055565b61389f90613fcf565b6001600160801b036138b76060610140510151613fcf565b16906001600160801b03199060801b1617600a6101c05101555f61386f565b5060606101405101516001600160801b036103005116141561386a565b6102a05160026101c0510155613854565b6102605160016101c0510155613846565b6001600160801b0361396961393f61392e60e0516150e9565b6102005160901c62ffffff16612c52565b6139638161395d858760801c97166139578882613b6e565b97613b6e565b95615898565b93615898565b61398961224b61398261224b8561016051169687613b6e565b9285613bf8565b6101605160801c8284168110156139b5575050915b16906001600160801b03199060801b161790613837565b9091508282168111156139c957509161399e565b6139d39150613fcf565b9161399e565b506101605190613837565b6001600160801b03613a4f613a0c8297613a6697613a0c9785613a12613a0c61018051613fcf565b92613fcf565b169086199060801b1617806101605260076101c051015584613a38613a0c60c051613fcf565b169085199060801b161760066101c0510155613fcf565b169085199060801b161760096101c0510155613fcf565b16906001600160801b03199060801b1617600b6101c05101555f8080808080613803565b90505f6137fd565b6101405180516020820151604083015160a08401516101c05160040155608084015160c08501516101205260e09094015161010052929950909650945091506137ea565b6101e051805160c0908152602082015161018052604082015160a0808401516101c05160030155608084015192840151905260e0909201519a50909650925061373d565b5090505f905f610100525f60a0525f61012052565b63ffffffff919250166401000000000364ffffffffff81116121055764ffffffffff160164ffffffffff81116121055764ffffffffff1660e0526135b7565b90606082901b905f19600160601b8409928280851094039380850394858411156103395714613bf1578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b81810291905f1982820991838084109303928084039384600160601b11156103395714613c3857600160601b910990828211900360a01b910360601c1790565b50505060601c90565b808202905f198382099082808310920391808303928360c811156103395714613c9d577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c299360c8910990828211900360fd1b910360031c170290565b505060c891500490565b808202905f1983820990828083109203918083039283606411156103395714613d03577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b5050606491500490565b90620f42408202905f19620f42408409928280851094039380850394858411156103395714613bf157620f424082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b808202905f1983820990828083109203918083039283620f424011156103395714613dee577fde8f6cefed634549b62c77574f722e1ac57e23f24d8fd5cb790fb65668c2613993620f4240910990828211900360fa1b910360061c170290565b5050620f424091500490565b91818302915f19818509938380861095039480860395868511156103395714613e72579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b8115613e84570490565b634e487b7160e01b5f52601260045260245ffd5b6001811115613fba57806001600160801b821015613fa9575b600482600160401b613f5b941015613f9c575b640100000000811015613f8f575b62010000811015613f82575b610100811015613f76575b6010811015613f6a575b1015613f62575b60030260011c613f0a8184613e7a565b0160011c613f188184613e7a565b0160011c613f268184613e7a565b0160011c613f348184613e7a565b0160011c613f428184613e7a565b0160011c613f508184613e7a565b0160011c8092613e7a565b8111900390565b60011b613efa565b811c9160021b91613ef3565b60081c91811b91613ee9565b60101c9160081b91613ede565b60201c9160101b91613ed2565b60401c9160201b91613ec4565b5050608081901c600160401b613eb1565b90565b6001607f1b81101561052857600f0b90565b906001600160801b03821680920361052857565b80546001600160801b0381169060801c1461247b57806001600160801b03806001935416165f520160205260405f205490565b61403261402a6001600160801b03926140c3565b939093612c95565b16906001600160801b03199060801b161790565b61404f906140c3565b909163ffffffff81161561407f575b63ffffffff168015613e84576001600160801b038080931693160416101590565b50600261405e565b6140a1816001600160801b0390548181169060801c031690565b1561247b57806001600160801b03806001935416165f520160205260405f2055565b9081156140db576001600160801b038260801c921690565b5f91508190565b614032826131b66131af6001600160801b03946140c3565b908154908160801c6001600160801b036001820193166001600160801b0384161461414f576001600160801b03165f526001830160205260405f20556001600160801b0382549181199060801b169116179055565b634e487b715f5260416020526024601cfd5b604080516001600160a01b039283166020820190815293909216908201527fd9bd4e389ed8cbf1cf078cf6e39b899ba664e27ad65dbc00c572373981e91d5e60608083019190915281526141b66080826127ba565b51902090565b6141cb5f60ff9294939461568e565b1680156141e6576141df613fba9184613c41565b80936128ad565b505f9190565b6141cb600160ff9294939461568e565b6141cb600260ff9294939461568e565b61422f906142218360801d8260801d01612c44565b92600f0b90600f0b01612c44565b6001600160801b03169060801b1790565b91901561431c5782600f0b925b158061430a575b80156142ff575b612f9a575f9260018301908154806142e1575b505f81600f0b125f146142ab5761429c61224b6001600160801b0396876142958195612902565b16906128ba565b16841984541617835555541690565b6001600160801b0316938085116142d25761429c61224b6001600160801b039687936128ad565b63257c509f60e21b5f5260045ffd5b6142f8919550836001600160801b03865416613dfa565b935f61426e565b5082600f0b1561425b565b506001600160801b0382541615614254565b8260801d9261424d565b90915f5f5f908551156149ac576005850154916006860154946007870154946009880154600b890154905f935f975b8c5189101561476157614368898e612d52565b5151906004821015610d655760206143818f8c90612d52565b51015191806143a05750600191614397916156cb565b985b0197614355565b949b90999098919690946001810361471357508860801c97886001600160801b038b169d8060801c94856001600160801b038316935f8d60801d600f0b135f146146ce57506143f8816001600160801b038f166128ba565b9081156146b15760808d901d6001600160801b0316821061464f57506001600160801b038d16908c60801d6001600160801b03169161443692613dfa565b9b61444e8d6001600160801b0360808f901d166128ad565b9561445887613fbd565b60801b6144649161420c565b9c61446e90613fcf565b61447791612c95565b9561448186613fcf565b61448a91612c95565b94614494916128ba565b9b5b5f8b600f0b135f1461460757506144b98f6001600160801b0380841691166128ba565b9081156145e3576001600160801b038b16821061458457506001600160801b038f16906001600160801b038b16916144f092613dfa565b6001600160801b03819a1690614505916128ad565b9d8e9a6145118c613fbd565b6001600160801b03166145239161420c565b9961452d90613fcf565b61453691612c95565b9961454090613fcf565b61454991612c95565b9c614553916128ba565b976001926001600160801b0380925b169082199060801b16179c16906001600160801b03199060801b161793614399565b986001959f506001600160801b0392506145b46145c36145c893856145d0989f6145bc908f836145b49116613fbd565b83169061420c565b9e166128ad565b613fbd565b9716906128ba565b966001600160801b035f9c815f9e614562565b50509c97926001600160801b0361460181939b60019683169061420c565b99614562565b600195929f906001600160801b03949c9b8593505f81600f0b1261462d575b5050614562565b614648925061463f8491600f0b612902565b81169116612c65565b5f80614626565b614664919d50809b9397509d9591939d613fbd565b60801b6146709161420c565b9a8a60801d6001600160801b031690614688916128ad565b61469190613fbd565b60801b61469d9161420c565b976146a7916128ba565b995f935f93614496565b50509b9a94936146c8908b60801d60801b9061420c565b9a614496565b90505f8c929e9260809e98979e1d600f0b126146eb575b50614496565b61470c9196506146fd8c60801d612902565b6001600160801b031690612c65565b945f6146e5565b989b949a919890969190600281036147385750600191614732916156cb565b99614399565b909a919060031461474d575b50600190614399565b61475a90600192946156cb565b9290614744565b909997506147779298959a969b509390936156cb565b94600c8501549083928592600d88015495885460e81c60ff169661479b858c6158cc565b988960801c938060801c906001600160801b038c6147ca849d6147c1818587169b613ca7565b93849316613ca7565b931061499d575b506001600160801b0382911610614995575b5061485361482c6147f38b613fcf565b6001600160801b0361480488613fcf565b16906001600160801b03199060801b16179a8360801c8660801c918960801d8760801d6158f5565b94919790966001600160801b038716926001600160801b03861692600f0b90600f0b6158f5565b929195906001600160801b03821615801590614983575b614955575b5050506001600160801b03821615801590614943575b614915575b5050506001600160801b03169060801b17946148dc6148a985856158cc565b6148ba8860801d5f60801d03612c44565b6148c889600f0b5f03612c44565b6001600160801b03169060801b17906156cb565b0361490657600b966005870155600686015560078501556009840155600c830155600d8201550155565b63f50d48cf60e01b5f5260045ffd5b61493a9397506001600160801b0316906001600160801b03199060801b1617906158cc565b935f808061488a565b506001600160801b0381161515614885565b61497a9399506001600160801b0316906001600160801b03199060801b1617906158cc565b955f808061486f565b506001600160801b038116151561486a565b93505f6147e3565b9a506001600160801b036147d1565b505f94508493505050565b919290925f5f908551156149ac576005850154916006860154946007870154946009880154600b890154905f935f975b8c51891015614761576149fa898e612d52565b5151906004821015610d65576020614a138f8c90612d52565b5101519180614a325750600191614a29916156cb565b985b01976149e7565b949b909990989196909460018103614d7157508860801c97886001600160801b038b169d8060801c94856001600160801b038316935f8d60801d600f0b135f14614d3b5750614a8a816001600160801b038f166128ba565b908115614d1e5760808d901d6001600160801b03168210614cbc57506001600160801b038d16908c60801d6001600160801b031691614ac892613dfa565b9b614ae08d6001600160801b0360808f901d166128ad565b95614aea87613fbd565b60801b614af69161420c565b9c614b0090613fcf565b614b0991612c95565b95614b1386613fcf565b614b1c91612c95565b94614b26916128ba565b9b5b5f8b600f0b135f14614c7d5750614b4b8f6001600160801b0380841691166128ba565b908115614c59576001600160801b038b168210614c1657506001600160801b038f16906001600160801b038b1691614b8292613dfa565b6001600160801b03819a1690614b97916128ad565b9d8e9a614ba38c613fbd565b6001600160801b0316614bb59161420c565b99614bbf90613fcf565b614bc891612c95565b99614bd290613fcf565b614bdb91612c95565b9c614be5916128ba565b976001926001600160801b0380925b169082199060801b16179c16906001600160801b03199060801b161793614a2b565b986001959f506001600160801b0392506145b46145c36145c89385614c46989f6145bc908f836145b49116613fbd565b966001600160801b035f9c815f9e614bf4565b50509c97926001600160801b03614c7781939b60019683169061420c565b99614bf4565b600195929f906001600160801b03949c9b8593505f81600f0b12614ca3575b5050614bf4565b614cb5925061463f8491600f0b612902565b5f80614c9c565b614cd1919d50809b9397509d9591939d613fbd565b60801b614cdd9161420c565b9a8a60801d6001600160801b031690614cf5916128ad565b614cfe90613fbd565b60801b614d0a9161420c565b97614d14916128ba565b995f935f93614b28565b50509b9a9493614d35908b60801d60801b9061420c565b9a614b28565b90505f8c929e9260809e98979e1d600f0b12614d58575b50614b28565b614d6a9196506146fd8c60801d612902565b945f614d52565b989b949a91989096919060028103614d965750600191614d90916156cb565b99614a2b565b909a9190600314614dab575b50600190614a2b565b614db890600192946156cb565b9290614da2565b9091939594928115614e8057614df26001600160801b03614dec8960801c968060801c92839116976128ba565b836157b5565b93614e07836801b5a660ea44b8000096612c52565b620f4240810290808204620f424014901517156121055785019182861161210557614e4c826001600160801b03614e4589614e5297614e579a613dfa565b9b166128ba565b906157b5565b612c52565b620f4240810290808204620f4240149015171561210557810180821161210557613fba92613dfa565b5050919350509190565b90604051614e978161279e565b5f8152602081015f815260408201905f825260608301905f825260808401955f875260a08501905f82525f60c08701525f60e08701525f61010087015285978151875260808201938451905260a082019586519052606082018051865260c08301918251905260e083019384519052614f1383518351906128ba565b908160601b91808304600160601b149015171561210557811515806150d8575b614f43575b505050505050505050565b614f6d614f8291614f65614f9c94612a76602089015160408a01519083613dfa565b9051906128ba565b92614f7b85519151826128ba565b9084613dfa565b62ffffff610100614f9383866128ad565b950151166141fc565b5096871580156150cb575b156150bd578160601c9586156150af5750506bffffffffffffffffffffffff19811694808604600160601b0361210557614ff461502493614fee61503e98615017956128ad565b996128ba565b60601c60c08b019080825261500e60808d019182516128ba565b905251906128ad565b9251614f7b8651826128ba565b60e088019481865281841161506e575b50505085516128ba565b845251615050602085019182516128ba565b9052600161010084015260608301525b5f8080808080808080614f38565b61507b61509192856128ad565b9251906150898482516128ba565b905191613dfa565b60a08801526150a5604088019182516128ba565b90525f8080615034565b919091529750505050505050565b509550505050905052615060565b50600160601b8811614fa7565b506020840151604085015110614f33565b5f9080156151a1578080600114615199576002146151925760016101338210166001600b83101617615184579060019060025b600181116151485750825f1904821161513457500290565b634e487b7160e01b81526011600452602490fd5b92805f190481116151705760018416615167575b80029260011c61511c565b8092029161515c565b634e487b7160e01b82526011600452602482fd5b6002900a9190806151345750565b5050600490565b505050600190565b50505f90565b5f9080156151a1578080600114615199576002146152285760016101338210166001600b8310161761521a579060019060035b600181116151f25750825f1904821161513457500290565b92805f190481116151705760018416615211575b80029260011c6151da565b80920291615206565b6003900a9190806151345750565b5050600890565b5f95948694929161523f83615878565b61524c575b505050505050565b90919293949596506001600160801b038360801c931692801593848015908161537b575b6153645761527e8383613b6e565b9590615373575b6153645761529291613b6e565b938160801c6001600160801b03831691819783948315801561535c575b61534d5786615335575b505015615313575050826152f36152f3946152ed6152fe989988966152f896039a01995b6152e78b82613b6e565b9a613b6e565b986158b1565b613d0d565b946158b1565b908180821191180218905f8080808080615244565b6152fe96506152f89250846152ed6152f396939988966152f394039a016152dd565b829a5091869161534493615523565b50975f806152b9565b50505050505050505050505f90565b5084156152af565b633dce448b60e11b5f5260045ffd5b508015615285565b508115615270565b5f95949386929161539383615878565b61539f57505050505050565b90919293949596506001600160801b038360801c9316928015938480159081615463575b615364576153d18383613b6e565b959061545b575b615364576153e591613b6e565b938160801c6001600160801b038316918197839483158015615453575b61534d578a928315615449575061541b929187916155eb565b50935b15615313575050826152f36152f3946152ed6152fe989988966152f896039a01996152e78b82613b6e565b969250505061541e565b508415615402565b5080156153d8565b5081156153c3565b91908290620f42408111156154845750620f1b30925050565b620186a08111615492575050565b90919250600a810290808204600a1490151715612105576154b2906151a7565b620f42409190600160035b600181116154fb5750835f19048111612105576154e193029162ffffff1690613dfa565b620f424081106154f35750620f1b3090565b62ffffff1690565b93805f19048111612105576001851661551a575b80029360011c6154bd565b8091029061550f565b909392916001600160801b0382169160801c90156155db576001600160801b0380915b16911691811580156155d3575b612fbb5782811015612fbb5761556c81615572946128ad565b91613dfa565b916001830180931161210557620f4240830290838204620f424014841517156121055762ffffff16620f42400390620f4240821161210557816155b4916128ba565b5f19810190811161210557613fba916155cc91613e7a565b92836128ad565b508215615553565b906001600160801b038091615546565b92919092821561567f576001600160801b038160801c9116915f1461566f576001600160801b0380915b1691169281158015615667575b612fbb5762ffffff16620f424003620f4240811161210557826156586156516141df61565e9461566497613d8e565b9582612c52565b926128ba565b90613e7a565b91565b508315615622565b906001600160801b038091615615565b63098fb56160e01b5f5260045ffd5b906005811015610d6557806156a4575060ff1690565b600181036156b6575060081c60ff1690565b6002146156c257505f90565b60101c60ff1690565b906001600160801b038260801c921690829180928260801d83600f0b9581600f0b5f81135f146157885750506001600160801b03169081811061573c5703935b5f81131561574b5750506001600160801b031680821061573c57613a0c614032916001600160801b03930393613fcf565b63c6c13aa760e01b5f5260045ffd5b9091505f819493941261576f575b5050614032613a0c6001600160801b0392613fcf565b5f036001600160801b0316019150614032613a0c615759565b5f909793979291921261579d575b505061570b565b6001600160801b03919296505f031601935f80615796565b9190918062ffffff1691801561587157613fba936157d291613d0d565b908060301c62ffffff1680831015615846575b508060181c62ffffff1680831015615815575b5060649161580e9160481c62ffffff1690612c52565b04906128ba565b929061583d61580e92606461580e61582e8883986128ad565b8560601c62ffffff1690612c52565b939250906157f8565b92606461580e61585a8661586995966128ad565b8560781c62ffffff1690612c52565b91905f6157e5565b5050905090565b8060801c15159081615888575090565b6001600160801b03915016151590565b90620f42400180620f42401161210557613fba91613d8e565b818111156158c35790613fba916128ad565b613fba916128ad565b6140326001600160801b039182806158eb8660801c8460801c01613fcf565b9516911601613fcf565b94915f945f9483600f0b8098600f0b0160016001607f1b0319811260016001607f1b03821317612105575f819913806159e9575b615935575b5050505050565b6001600160801b0316928084111561592e578394959850615960906001600160801b039293946128ad565b94168085116159da575b506001600160801b038061598192169216826128ba565b90816159a2575b5050615997916145c3916128ad565b925f8080808061592e565b8395506145c3929450906159b99161599794613dfa565b936159d061224b6159c987613fcf565b96836128ad565b9391819350615988565b93506001600160801b0361596a565b505f81600f0b1361592956fe094cd6963c390f036fd04ed00bf2527fc04b980da518b076d245b1218e940c471b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859a26469706673582212205af6453622f501e698cbcba763728fd598f9de1faa407234a9c195d20b1dbb3f64736f6c634300081c003300000000000000000000000035d3f3497ec612b3dd982819f95ca98e6a404ce1
Deployed Bytecode
0x610360806040526004361015610013575f80fd5b5f3560e01c908162fdd58e146126b85750806301ffc9a714612662578063095bcdb6146125db5780630b0d9c091461259157806311da60b41461257357806311ea6ee71461254b578063156e29f6146124d95780631e2eaeaf146124bd5780632c8fb09014611fac5780632d77138914611f3a57806335fd631a14611ee45780633dd45adb14611ebe578063421bcbdf14611e99578063426a849314611e1f57806348c8949114611c775780634fd83c3c14611b89578063558a729714611af7578063598af9e714611a9d57806366cf56c1146119fd57806380f0b44c146119a15780638161b874146118ac57806386fe267e146117305780638da5cb5b1461170957806394e02af4146116b757806397e8cd4e1461167f5780639bf6645f146116325780639d18b69c14610fab578063a02a3ad814610f28578063a264187e14610e91578063a584119414610e30578063a9b9d9f3146108f6578063aeb69072146106ba578063b6363cf214610663578063b8e6f1c314610646578063dbd035ff146105f0578063f02de3b2146105c8578063f135baaa146105ac578063f2fde38b14610537578063f5298aca1461041f578063f5de0f1f1461033d5763fe99049a146101df575f80fd5b34610339576080366003190112610339576101f86126f7565b61020061270d565b60443591606435916001600160a01b03909116905f516020615a165f395f51905f529061029d903384141580610316575b6102ab575b835f52600860205260405f20865f5260205260405f206102578682546128ad565b905560018060a01b031693845f52600860205260405f20865f5260205260405f206102838282546128ba565b905560408051338152602081019290925290918291820190565b0390a4602060405160018152f35b5f848152600960209081526040808320338452825280832089845290915290205485600182016102dd575b5050610236565b6102e6916128ad565b845f52600960205260405f2060018060a01b0333165f5260205260405f20875f5260205260405f20555f856102d6565b505f84815260076020908152604080832033845290915290205460ff1615610231565b5f80fd5b34610339576040366003190112610339576004356005811015610339576024359060ff82168083036103395761037d60018060a01b035f541633146128c7565b610393600654938362ffffff8660a01c1661335a565b9260c960ff85161061c90061ff008616101662c9000062ff000086161016156104075790604092917f38b5d4bc1f1acfdf9a841d045e43d6af68bb30b9282de7ace8c536afa64c51629462ffffff60a01b9060a01b169062ffffff60a01b19161760065560ff8351921682526020820152a1005b62ffffff8463a7abe2f760e01b5f521660045260245ffd5b346103395761042d36612723565b9190610437612922565b6001600160a01b0316915f8112610528575f516020615a165f395f51905f526104a05f9361046684338861293e565b6001600160a01b0316923384141580610506575b6104a5575b838552600860205260408520868652602052604085206102838282546128ad565b0390a4005b838552600960209081526040808720338852825280872088885290915285205481861982036104d6575b505061047f565b6104df916128ad565b848652600960209081526040808820338952825280882089895290915286205586816104cf565b5083855260076020908152604080872033885290915285205460ff161561047a565b6393dafdf160e01b5f5260045ffd5b34610339576020366003190112610339576105506126f7565b5f5490610567336001600160a01b038416146128c7565b60018060a01b031680916bffffffffffffffffffffffff60a01b16175f55337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b34610339576020366003190112610339576004355c5f5260205ff35b34610339575f366003190112610339576006546040516001600160a01b039091168152602090f35b34610339576105fe3661285b565b6040519160408360208152836020820152019160051b8301916020806040850193925b833554815201910190848382101561063d575060208091610621565b60408186030190f35b34610339575f366003190112610339576020600154604051908152f35b346103395760403660031901126103395761067c6126f7565b61068461270d565b9060018060a01b03165f52600760205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b346103395760e0366003190112610339576106d4366127db565b60603660831901126103395760405190606082018281106001600160401b038211176108e25760405261070561284c565b825260a4359081600f0b82036103395760208301918252604083019160c435835261072e612922565b610736612a9f565b8051600f0b156108d357608082209161074e81612ae0565b9480511515918351600f0b8651604051906107688261274d565b3382526020820192868452806040840152606083019182525f965f905f146108c357509060048b01549687925b6001600160801b03169060801b179a8b936107ae612cb5565b6040516107ba81612783565b5f81528660208201526107cc82612d01565b526107d681612d01565b506040516107e381612783565b600381528660208201526107f682612d22565b5261080081612d22565b5061080b9083614326565b5050600160a01b600190039051169185511515905191600f0192610852939291908260a81c9160581b9060601b17175f5260581b60205260355f205f5260205260405f2090565b9251151561085f93614240565b50863361086b92613307565b5191519351604080519315158452600f9590950b602084015293820152606081019290925233917f59211f5df275fbc716bd7b2bda83f35670dc61913ac7ad0233feef942d63965c90608090a3604051908152602090f35b60038c0154975087929190610795565b63d11b25af60e01b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b34610339576101c036600319011261033957610911366127db565b610140366083190112610339576040519061014082018281106001600160401b038211176108e257604052608435600681101561033957825260a4358015158103610339576020830190815260c4356001600160801b0381168103610339576040840152606083019260e4358452608081019361010435855260a082019461012435865260c083019561014435875260e08401906101643582526101008501976101843589526101208601926101a43584526109cb612922565b6002546001600160a01b03163303610e22576109e5612a9f565b60808920936109f38a612ae0565b9262ffffff60065460a01c169b5f9c8a516006811015610d65576002141580610e0d575b80610e04575b610df557855496516080528a516006811015610d6557159687610dca575b610a5091610a4891613341565b8951906141bc565b89528b5190965f91829015610daa575015610d9c57508c610a79610a7388613fbd565b91613fbd565b6001600160801b03169060801b176001600160401b036004116108e2576040519460a0610aa681886127ba565b600487525f5b601f1982018110610d7957505081610b0191610ad2610b8899989796959460805161420c565b60405190610adf82612783565b5f82526020820152610af088612d01565b52610afa87612d01565b505161420c565b60405190610b0e82612783565b600282526020820152610b2085612d22565b52610b2a84612d22565b505160405190610b3982612783565b600382526020820152610b4b84612d32565b52610b5583612d32565b505160405190610b6482612783565b600182526020820152610b7683612d42565b52610b8082612d42565b5051916149b7565b969095519860068a1015610d65579051610c039915919015610d4b57602089015189516001600160a01b039182169291165b8315610d4357965b805115801590610d3a575b610cd9575b505050835115801590610cd0575b610c5d575b505050505080610c38575b5080610c0f575b50608051903390613307565b60206040516080518152f35b6020828101516001600160a01b03165f9081526005909152604090208054909101905582610bf7565b82516001600160a01b03165f9081526005602052604090208054909101905583610bf0565b15610cc8576003925b81610ca6575b5160ff60405194168452602084015260408301525f5160206159f65f395f51905f526060339460018060a01b031693a48480808080610be5565b6001600160a01b0385165f908152600560205260409020805483019055610c6c565b600492610c66565b50811515610be0565b81610d18575b5190604051916001835260208301526040820152845f5160206159f65f395f51905f526060339460018060a01b031693a4898080610bd2565b6001600160a01b0383165f908152600560205260409020805483019055610cdf565b50811515610bcd565b508196610bc2565b885160208a01516001600160a01b03918216929116610bba565b634e487b7160e01b5f52602160045260245ffd5b602090604051610d8881612783565b5f81525f8382015282828b01015201610aac565b610da587613fbd565b610a79565b915015610dbb5750610d9c8d613fbd565b610dc487613fbd565b90610a79565b9d50610a48818f610de1610a5094610de992613341565b8d51906141ec565b8d529f91509150610a3b565b632ca2f52b60e11b5f5260045ffd5b50865115610a1d565b508a516006811015610d655760041415610a17565b6282b42960e81b5f5260045ffd5b3461033957602036600319011261033957610e496126f7565b6001600160a01b0381169081610e6c5750505f805c6001600160a01b031916905d005b610e75906134e7565b906bffffffffffffffffffffffff60a01b5f5c16175f5d60015d005b346103395760c0366003190112610339576020610ead366127db565b60843560a435610ebb612922565b610ec3612a9f565b6080832090610ef0610ee78285610ed988612ae0565b610ee2816133d1565b6133eb565b80953390613307565b604051928352848301527f29ef05caaff9404b7cb6d1c0e9bbae9eaa7ab2541feba1a9c4248594c08156cb60403393a3604051908152f35b3461033957602036600319011261033957610f416126f7565b610f5560018060a01b035f541633146128c7565b600254906001600160a01b03821615610f6a57005b6001600160a01b03166001600160a01b03199190911681176002557f65469f7d625266a4c84cadd5dea64729f094d677b847fbe082dae6c41caddfa45f80a2005b346103395761010036600319011261033957610fc6366127db565b608036608319011261033957604051610fde8161274d565b610fe661284c565b8152602081019060a435825260c435801515810361033957604082015260e4356060820152611013612922565b61101b612a9f565b8151156108d3576080832061102f84612ae0565b9282511515905160408401511515956060850151966040519761105189612768565b3389528460208a0152604089019184835260608a0152608089015262ffffff60065460a01c16928860078901549260088a0154928a54975f82125f146115e75750506110e360206110f3946110dc6110ce8b9998966110b36110ee9751612c85565b9a8b9586920151151594859160b81c62ffffff16908a615383565b8b60b81c62ffffff1661546b565b80956155eb565b969096929697613341565b6141bc565b60208a01519097919390156115b85761111661111161111c92613fbd565b612902565b95613fbd565b9761112684613fbd565b60801b995b606081015161140857506111b561115260609b8b6001600160801b03168960801b1761420c565b61115a612cb5565b9060405161116781612783565b5f815281602082015261117983612d01565b5261118382612d01565b506040519061119182612783565b6002825260208201526111a382612d22565b526111ad81612d22565b505b82614326565b50506040820151156113e95781511561138c57867f59211f5df275fbc716bd7b2bda83f35670dc61913ac7ad0233feef942d63965c608088811b6001600160801b038d161780821d90911b9061121a9061121190600f0b612902565b915b3388613307565b845115801594906113825760040154905b61125c8e87015160405193849333988590949392606092608083019615158352600f0b602083015260408201520152565b0390a35b511561136f57516001600160a01b0316905b8515801590611366575b611332575b8061130c575b505062ffffff60405191866001600160801b03168460801b1760801d600f0b8352866001600160801b03168460801b17600f0b602084015216928360408301527f9cabf96bbc00f3f126d1b309884416fe322227e57a50b1da86a5e142c78bb696873393a3604051936001600160801b03169060801b17835260208301526040820152f35b61132b9160018060a01b03165f52600560205260405f20908154019055565b8680611287565b6040515f81528660208201528160408201523390865f5160206159f65f395f51905f528b60018060a01b03871693a4611281565b5080151561127c565b602001516001600160a01b031690611272565b600301549061122b565b867f59211f5df275fbc716bd7b2bda83f35670dc61913ac7ad0233feef942d63965c6001600160801b038860801b166001600160801b038c161761121a6113e38d6001600160801b03168b60801b1760801d612902565b91611213565b50611403886001600160801b03168660801b173384613307565b611260565b6040519a6080611418818e6127ba565b60038d52601f19015f5b81811061159457505061155d8b6111b5936114f960609f6114d48d968297602086015115155f14611573578060801b9661146e8361145f83612902565b6001600160801b03169961420c565b6040519061147b82612783565b5f8252602082015261148c86612d01565b5261149685612d01565b506040516114a381612783565b600381528860208201526114b686612d22565b526114c085612d22565b506001600160801b03169060801b1761420c565b604051906114e182612783565b6002825260208201526114f382612d32565b52612d32565b50602081015115801591906115635760206115526004890154935b60018060a01b0384511690608085015191600f8c019291908260a81c9160581b9060601b17175f5260581b60205260355f205f5260205260405f2090565b910151151590614240565b506111af565b6020611552600389015493611514565b866001600160801b03169661146e8361158b84612902565b60801b9961420c565b808e60208093604051926115a784612783565b5f84525f8385015201015201611422565b946111116115c86115ce92613fbd565b96613fbd565b976115d884613fbd565b6001600160801b03169961112b565b6110f39498969593506110ee925090816116226116148361162995819d8c60b81c62ffffff16908a61522f565b8960b81c62ffffff1661546b565b8095615523565b92969095613341565b34610339576116403661285b565b6040519160408360208152836020820152019160051b8301916020806040850193925b83355c815201910190848382101561063d575060208091611663565b34610339576020366003190112610339576001600160a01b036116a06126f7565b165f526005602052602060405f2054604051908152f35b34610339576020366003190112610339576004356116df60018060a01b035f541633146128c7565b806001557f2a044b62006f76261d3fbe3adc7fb73fd833add28a8f3fa7e29ebbe82fcc04265f80a2005b34610339575f366003190112610339575f546040516001600160a01b039091168152602090f35b346103395760803660031901126103395761174a366127db565b611752612a9f565b805160208201805190916001600160a01b0390811691168082101561188e57505060808220805f52600a60205260405f2060408401938451606082019081516001850193845461187f57620f424062ffffff84161080159061186d575b61185e5760d09190911b62ffffff60d01b1660b89290921b62ffffff60b81b164260801b63ffffffff60801b161791909117600f60e91b178455600160601b92839055600284018390556003840183905560049093019190915590519251935190516040805162ffffff93841681529190921660208201526001600160a01b039485169493909316927fa2ba3c066984d7187e0be4206a2d6ab029c7f3c5f0ca141cbc021bf8e20bed169190a4005b6358d620b360e01b5f5260045ffd5b50620f424062ffffff831610156117af565b637983c05160e01b5f5260045ffd5b60449250604051916306e6c98360e41b835260048301526024820152fd5b34610339576060366003190112610339576118c56126f7565b6118cd61270d565b600654604435906001600160a01b03163303611992576001600160a01b0382168015158061197f575b611970576001600160a01b038416156119615760209361195192825f526005865260405f205481115f146119595750815f526005855260405f20549384925b5f526005865260405f2061194a8482546128ad565b90556129b0565b604051908152f35b938492611935565b634e46966960e11b5f5260045ffd5b6318f3cb2960e31b5f5260045ffd5b505f5c6001600160a01b031681146118f6565b6348f5c3ed60e01b5f5260045ffd5b34610339576040366003190112610339576119ba6126f7565b602435906119c6612922565b6119d03382614161565b5c5f83126105285782036119ee576119ec915f0390339061293e565b005b63bda73abf60e01b5f5260045ffd5b346103395760a036600319011261033957611a17366127db565b6084359060ff82168083036103395760806040927fd82e4bb00d2a4d9245234116186b0c1edb3ab0a4f77b2b68b146de4a0c1f093594611a6160018060a01b035f541633146128c7565b611a6a82612ae0565b90611a74826133d1565b815460ff60e81b191660e89190911b60ff60e81b161790552082519081526020810191909152a1005b3461033957606036600319011261033957611ab66126f7565b611abe61270d565b6001600160a01b039182165f90815260096020908152604080832094909316825292835281812060443582528352819020549051908152f35b3461033957604036600319011261033957611b106126f7565b6024359081151580920361033957335f52600760205260405f2060018060a01b0382165f5260205260405f2060ff1981541660ff841617905560405191825260018060a01b0316907fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa26760203392a3602060405160018152f35b346103395760c036600319011261033957611ba3366127db565b6084359060058210156103395760a43560ff81168103610339576006546001600160a01b0316330361199257611bf8611bdb83612ae0565b91825494611bf362ffffff60065460a01c1687613341565b61335a565b9260c960ff85161061c90061ff008616101662c9000062ff00008616101615610407577fe9c42593e71f84403b84352cd168d693e2c9fcd1fdbcc3feb21d92b43e6696f99282608092611c4c6020956133d1565b62ffffff60a01b191660a087901b62ffffff60a01b161790552060405162ffffff94909416845292a2005b34610339576020366003190112610339576004356001600160401b0381116103395736602382011215610339578060040135906001600160401b0382116103395736602483830101116103395760ff60025c16611e1057602460445f92600160ff1960025c161760025d8460405195869485936348eeb9a360e11b855260206004860152828286015201848401378181018301859052601f01601f1916810103018183335af1908115611e05575f91611d7d575b5060035c611d6e57604060209160ff1960025c1660025d815192839181835280519182918282860152018484015e5f828201840152601f01601f19168101030190f35b635212cba160e01b5f5260045ffd5b90503d805f833e611d8e81836127ba565b810190602081830312610339578051906001600160401b038211610339570181601f82011215610339578051906001600160401b0382116108e25760405192611de1601f8401601f1916602001856127ba565b8284526020838301011161033957815f9260208093018386015e8301015281611d2b565b6040513d5f823e3d90fd5b6328486b6360e11b5f5260045ffd5b3461033957611e2d36612723565b9091335f52600960205260405f2060018060a01b0382165f5260205260405f20835f526020528160405f205560405191825260018060a01b0316907fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a760203392a4602060405160018152f35b34610339575f36600319011261033957602062ffffff60065460a01c16604051908152f35b6020366003190112610339576020611951611ed76126f7565b611edf612922565b612a3b565b34610339576040366003190112610339576024356004356040519160408360208152826020820152019060051b8301916001602060408501935b8354815201910190848382101561063d57506020600191611f1e565b3461033957602036600319011261033957611f536126f7565b611f6760018060a01b035f541633146128c7565b600680546001600160a01b0319166001600160a01b039290921691821790557fb4bd8ef53df690b9943d3318996006dbb82a25f54719d8c8035b516a2a5b8acc5f80a2005b346103395761010036600319011261033957611fc7366127db565b60803660831901126103395760405190611fe08261274d565b6084358252602082019060a43582526040830160c43581526060840160e4358152612009612922565b612011612a9f565b61206c61201d84612ae0565b94608085209361203c87546001600160801b0316985192519151612c44565b8451916040519361204c85612768565b33855260208501526040840152600f0b6060830152608082015285612d66565b939094546001600160801b0316958087115f146121195761209661209082896128ad565b85613100565b5f8712610528575f8112610528578603958613600116612105576040956120f6938693518851928584526020840152888301527f9df4c56a2ff35ca8f2d2783ca734dd0c7a61cd65ac6b6459e0b1f0e55d994cc160603393a33390613307565b8251918252600f0b6020820152f35b634e487b7160e01b5f52601160045260245ffd5b808710156120965761212b87826128ad565b6001548060a81c62ffffff16908060c01c62ffffff169161214c8382612c52565b61215a575b50505050612096565b83905f9384916121726001600160801b039282612c52565b612391575b506001600160801b039161218a91612c65565b161061238257865f52600460205260405f209182546001600160801b0381169060801c0315612151576001600160801b03161561229c57508054916001600160801b0383169260801c831461228a576001600160801b038084165f908152600184810160205260408220805492905584546fffffffffffffffffffffffffffffffff19169501821694909417835561225c939061222f61222985613fe3565b926140c3565b9050168281115f146122745761224b61225693612250926128ad565b613fcf565b906140e2565b90614087565b835f5260036020524260405f20555b87808080612151565b61224b61228491612256946128ad565b90614016565b634e487b715f5260316020526024601cfd5b9061231e61232f9362ffffff6122b184613fe3565b9160016122ce866001600160801b0390548181169060801c031690565b0361236a576122dc90613fcf565b6001600160801b03612301826122fb6122f4876140c3565b9590612c95565b93612c95565b16906001600160801b03199060801b1617945b60d81c1690614046565b158015612347575b61233457614087565b61226b565b865f5260036020524260405f2055614087565b506001612364826001600160801b0390548181169060801c031690565b14612326565b61237661237c91613fcf565b83614016565b94612314565b6347a73ad960e11b5f5260045ffd5b8a5f52600460205260405f208b5f52600360205260405f20549181548481169060801c036123c1575b5050612177565b91935091506123cf82613fe3565b906123d9826140c3565b90509360016123f8856001600160801b0390548181169060801c031690565b1192836124a1575b508261248d575b5050612418575b90818086936123ba565b91509250612436816001600160801b0390548181169060801c031690565b6001101561247b57806001600160801b0380600181819554160116165f5201602052826001600160801b0361218a61247160405f20546140c3565b905094915061240e565b634e487b715f5260326020526024601cfd5b61249792506128ba565b4210158e80612407565b6124b691935062ffffff8860d81c1690614046565b915f612400565b3461033957602036600319011261033957600435545f5260205ff35b34610339576124e736612723565b906124f0612922565b6001600160a01b0316915f8212610528575f516020615a165f395f51905f526104a05f92612521858503338861293e565b60018060a01b031693848452600860205260408420868552602052604084206102838282546128ba565b34610339575f366003190112610339576002546040516001600160a01b039091168152602090f35b5f36600319011261033957612586612922565b602061195133612a3b565b34610339576060366003190112610339576125aa6126f7565b6125b261270d565b604435906125be612922565b5f8212610528576119ec926125d6835f03338361293e565b6129b0565b34610339576125e936612723565b9091335f52600860205260405f20835f5260205260405f2061260c8382546128ad565b905560018060a01b031690815f52600860205260405f20835f5260205260405f206126388282546128ba565b9055604080513380825260208201939093525f516020615a165f395f51905f52918190810161029d565b346103395760203660031901126103395760043563ffffffff60e01b8116809103610339576020906301ffc9a760e01b81149081156126a7575b506040519015158152f35b630f632fb360e01b1490508261269c565b34610339576040366003190112610339576020906001600160a01b036126dc6126f7565b165f526008825260405f206024355f52825260405f20548152f35b600435906001600160a01b038216820361033957565b602435906001600160a01b038216820361033957565b6060906003190112610339576004356001600160a01b038116810361033957906024359060443590565b608081019081106001600160401b038211176108e257604052565b60a081019081106001600160401b038211176108e257604052565b604081019081106001600160401b038211176108e257604052565b61012081019081106001600160401b038211176108e257604052565b90601f801991011681019081106001600160401b038211176108e257604052565b608090600319011261033957604051906127f48261274d565b816004356001600160a01b03811681036103395781526024356001600160a01b038116810361033957602082015260443562ffffff811681036103395760408201526064359062ffffff821682036103395760600152565b60843590811515820361033957565b906020600319830112610339576004356001600160401b0381116103395782602382011215610339578060040135926001600160401b0384116103395760248460051b83010111610339576024019190565b9190820391821161210557565b9190820180921161210557565b156128ce57565b60405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606490fd5b600f0b6f7fffffffffffffffffffffffffffffff198114612105575f0390565b60ff60025c161561292f57565b6372b89e9760e11b5f5260045ffd5b919081156129ab5761295261295892612c44565b92614161565b805c91600f0b908183019182125f84129080158216911516176121055781905d612991575060035c5f1981019081116121055760035d5b565b1561299857565b60035c600181018091116121055760035d565b505050565b6001600160a01b0381166129dd57505f80809381935af1156129ce57565b633d2cec6f60e21b5f5260045ffd5b60205f6044819482604095865198899363a9059cbb60e01b855260018060a01b0316600485015260248401525af13d15601f3d11600185511416171692828152826020820152015215612a2c57565b633c9fd93960e21b5f5260045ffd5b5f5c6001600160a01b0316919082612a625734925b5f84126105285761298f91849161293e565b34612a9057612a7b60015c612a76856134e7565b6128ad565b925f805c6001600160a01b031916905d612a50565b635876424f60e11b5f5260045ffd5b7f000000000000000000000000315663a47d7e95c47370682dff77415f469c32466001600160a01b03163003612ad157565b6306c4a1c760e11b5f5260045ffd5b9060808220805f52600a60205260405f2092612afb846133d1565b612b1360015462ffffff60065460a01c169086613558565b9082610120519160a0516101005194908115801590612c3b575b612bf9575b50508315801590612bf0575b612bac575b505050507f9f3985fdc4058ca90c3568565aba60632c864d79ac8f29a339bc19e8c2acae1f60c06005850154600686015460078701546009880154600b89015491600d8a015493604051958652602086015260408501526060840152608083015260a0820152a2565b6020908101516040805160028152928301959095529381019290925230926001600160a01b0316915f5160206159f65f395f51905f5290606090a45f808281612b43565b50821515612b3e565b82516040805160028152602081019490945283019190915230916001600160a01b039091169084905f5160206159f65f395f51905f5290606090a45f80612b32565b50801515612b2d565b9081600f0b91820361052857565b8181029291811591840414171561210557565b906001600160801b03809116911601906001600160801b03821161210557565b600160ff1b8114612105575f0390565b906001600160801b03809116911603906001600160801b03821161210557565b60405160609190612cc683826127ba565b6002815291601f1901825f5b828110612cde57505050565b602090604051612ced81612783565b5f81525f8382015282828501015201612cd2565b805115612d0e5760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015612d0e5760400190565b805160021015612d0e5760600190565b805160031015612d0e5760800190565b8051821015612d0e5760209160051b010190565b91606082018051600f0b938415806130f4575b806130e8575b6130de57805491600782019283546001600160801b038160801c9116975f836001600160801b031691125f14612fca57612dbc8451600f0b612c85565b986001600160801b03821692838b11612fbb57612df9610a73612df386612e0d958f95612e1399612ded9188613dfa565b95613dfa565b92613fbd565b6001600160801b03169060801b1799613fcf565b90612c95565b6001600160801b0316906001600160801b03191617825551600f0b935b612e94612e3b612cb5565b604051612e4781612783565b5f8152886020820152612e5982612d01565b52612e6381612d01565b50604051612e7081612783565b60028152886020820152612e8382612d22565b52612e8d81612d22565b5083614326565b5050608060018060a01b03825116910151905f526020526034600c205f52600e810160205260405f2084600f0b8015808091612fa9575b612f9a5715612f64575b5060010190815491612ee98760801d612902565b92612ef688600f0b612902565b93600f0b8160801d01938480600f0b03612f57576001600160801b0390600f0b9116600f0b01928380600f0b03612f57576001600160801b0360089416906001600160801b03199060801b161790550190815415612f52575050565b549055565b6393dafdf15f526004601cfd5b6001600160801b0382541601908160801c612f57576001600160801b03600192166001600160801b031982541617815590612ed5565b632bbfae4960e21b5f5260045ffd5b506001600160801b0383541615612ecb565b63bb55fd2760e01b5f5260045ffd5b9197919250826130505750505061304a6103e89560208601519061302e6040880151613010611111612df361111161300a613005868a612c52565b613e98565b97613fbd565b6001600160801b03169060801b179861302884613fcf565b90612c65565b6001600160801b0316906001600160801b031916178355613fbd565b93612e30565b96829761304a93602089015193613068838287613dfa565b60408b01519095908087116130b15750612df361111161302e95946130a26130109561309b611111969b985b848d613dfa565b9288613dfa565b90818082109118021897613fbd565b955050611111612df361111185946130a28561309b6130d76130109861302e9b8e613dfa565b9b98613094565b505f935083925050565b50604084015115612d7f565b50602084015115612d79565b90600154916131208360c01c62ffffff16809460a81c62ffffff16612c52565b156129ab57805f52600360205260405f2054156132f4575b5f52600460205260405f209082156132e25761316790600161315d855f198401613e7a565b0190151502613fcf565b81546001600160801b0381169060801c145f146131e7575f5b8363ffffffff8216106131935750505050565b63ffffffff906131d3836001600160801b036131bc826131b65f805b9590612c65565b93612c65565b16906001600160801b03199060801b1617856140fa565b1663ffffffff811461210557600101613180565b613201826001600160801b0390548181169060801c031690565b8380821091180283185f60018401905b82811061324b5750505b8381106132285750505050565b600190613245836001600160801b036131bc826131b65f806131af565b0161321b565b613265856001600160801b0390548181169060801c031690565b81101561247b576001600160801b03855416906001600160801b038080831680940116165f528260205261329d8560405f20546140e2565b6132b7876001600160801b0390548181169060801c031690565b82101561247b576001600160801b0380600194818a54160116165f528360205260405f205501613211565b634e487b715f5260126020526024601cfd5b805f5260036020524260405f2055613138565b9061298f929161332860018060a01b03825116838560801d600f0b9161293e565b60200151600f9290920b916001600160a01b031661293e565b60a01c62ffffff1680155f14613355575090565b905090565b909160ff81169260c884116133be576005811015610d65578061338257505062ffff00161790565b91925090600181036133a1575061ff0062ff00ff9160081b1691161790565b6002146133ac575090565b62ff000061ffff9160101b1691161790565b83632fcd20fb60e11b5f5260045260245ffd5b60010154156133dc57565b63486aa30760e01b5f5260045ffd5b9291908015806134df575b6134d857611111612df361111161343d93600d8801613436815461341984613fbd565b6134228a613fbd565b6001600160801b03169060801b179061420c565b9055613fbd565b6001600160801b03169060801b17916001600160401b036001116108e25760408051919061346b81846127ba565b60018352601f19015f5b8181106134b5575050906134b19160405161348f81612783565b5f81528560208201526134a183612d01565b526134ab82612d01565b50614326565b5050565b6020906040516134c481612783565b5f81525f8382015282828701015201613475565b505f925050565b5081156133f6565b6001600160a01b0316806134fa57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611e05575f91613529575090565b90506020813d602011613550575b81613544602093836127ba565b81010312610339575190565b3d9150613537565b6101c0819052610200919091525f61010081905260a081905261012081905290546101a081905260e08290529092919060801c63ffffffff818116914290911690818311613b2f57500363ffffffff81116121055763ffffffff1660e0525b60e05115613b1a576135cc906101a051613341565b61364460056101c051015460066101c051015461034052600a6101c051015461030052600b6101c05101546103205260076101c05101546101605260096101c05101546102e05260016101c05101546102405260026101c051015461028052610340519061020051610280516102405160e051614dbf565b6102a052610260526101605160801c9081610180526001600160801b036101605116905f6102c0526102e05160801c6102c0526102c051916001600160801b036102e05116936103405160801c948560c0526001600160801b036103405116935f610220526103005160801c6102205261372b6103205160801c9788946001600160801b0361032051169960036101c051015491604051936136e58561279e565b845261026051602085015261024051604085015261022051606085015260808401526102c05160a084015260c083015260e082015262ffffff8316610100820152614e8a565b6101e0526101006101e0510151613ad6575b6137d59062ffffff60046101c0510154916040519261375b8461279e565b6001600160801b03610340511684526102a05160208501526102805160408501526001600160801b03610300511660608501526001600160801b03610160511660808501526001600160801b036102e0511660a08501526001600160801b03610320511660c085015260e084015216610100820152614e8a565b61014052610100610140510151151580613a92575b6101006101e05101511590811591613a8a575b506139e4575b50505050505060086101c05101805461381e61016051615878565b156139d95761382c81615878565b613915575061016051905b55610260516102405110613904575b6102a05161028051106138f3575b60606101e05101518061022051148015906138d6575b613896575b506101a0516101c05163ffffffff60801b199091164260801b63ffffffff60801b16179055565b61389f90613fcf565b6001600160801b036138b76060610140510151613fcf565b16906001600160801b03199060801b1617600a6101c05101555f61386f565b5060606101405101516001600160801b036103005116141561386a565b6102a05160026101c0510155613854565b6102605160016101c0510155613846565b6001600160801b0361396961393f61392e60e0516150e9565b6102005160901c62ffffff16612c52565b6139638161395d858760801c97166139578882613b6e565b97613b6e565b95615898565b93615898565b61398961224b61398261224b8561016051169687613b6e565b9285613bf8565b6101605160801c8284168110156139b5575050915b16906001600160801b03199060801b161790613837565b9091508282168111156139c957509161399e565b6139d39150613fcf565b9161399e565b506101605190613837565b6001600160801b03613a4f613a0c8297613a6697613a0c9785613a12613a0c61018051613fcf565b92613fcf565b169086199060801b1617806101605260076101c051015584613a38613a0c60c051613fcf565b169085199060801b161760066101c0510155613fcf565b169085199060801b161760096101c0510155613fcf565b16906001600160801b03199060801b1617600b6101c05101555f8080808080613803565b90505f6137fd565b6101405180516020820151604083015160a08401516101c05160040155608084015160c08501516101205260e09094015161010052929950909650945091506137ea565b6101e051805160c0908152602082015161018052604082015160a0808401516101c05160030155608084015192840151905260e0909201519a50909650925061373d565b5090505f905f610100525f60a0525f61012052565b63ffffffff919250166401000000000364ffffffffff81116121055764ffffffffff160164ffffffffff81116121055764ffffffffff1660e0526135b7565b90606082901b905f19600160601b8409928280851094039380850394858411156103395714613bf1578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b81810291905f1982820991838084109303928084039384600160601b11156103395714613c3857600160601b910990828211900360a01b910360601c1790565b50505060601c90565b808202905f198382099082808310920391808303928360c811156103395714613c9d577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c299360c8910990828211900360fd1b910360031c170290565b505060c891500490565b808202905f1983820990828083109203918083039283606411156103395714613d03577f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c28f5c29936064910990828211900360fe1b910360021c170290565b5050606491500490565b90620f42408202905f19620f42408409928280851094039380850394858411156103395714613bf157620f424082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b808202905f1983820990828083109203918083039283620f424011156103395714613dee577fde8f6cefed634549b62c77574f722e1ac57e23f24d8fd5cb790fb65668c2613993620f4240910990828211900360fa1b910360061c170290565b5050620f424091500490565b91818302915f19818509938380861095039480860395868511156103395714613e72579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b8115613e84570490565b634e487b7160e01b5f52601260045260245ffd5b6001811115613fba57806001600160801b821015613fa9575b600482600160401b613f5b941015613f9c575b640100000000811015613f8f575b62010000811015613f82575b610100811015613f76575b6010811015613f6a575b1015613f62575b60030260011c613f0a8184613e7a565b0160011c613f188184613e7a565b0160011c613f268184613e7a565b0160011c613f348184613e7a565b0160011c613f428184613e7a565b0160011c613f508184613e7a565b0160011c8092613e7a565b8111900390565b60011b613efa565b811c9160021b91613ef3565b60081c91811b91613ee9565b60101c9160081b91613ede565b60201c9160101b91613ed2565b60401c9160201b91613ec4565b5050608081901c600160401b613eb1565b90565b6001607f1b81101561052857600f0b90565b906001600160801b03821680920361052857565b80546001600160801b0381169060801c1461247b57806001600160801b03806001935416165f520160205260405f205490565b61403261402a6001600160801b03926140c3565b939093612c95565b16906001600160801b03199060801b161790565b61404f906140c3565b909163ffffffff81161561407f575b63ffffffff168015613e84576001600160801b038080931693160416101590565b50600261405e565b6140a1816001600160801b0390548181169060801c031690565b1561247b57806001600160801b03806001935416165f520160205260405f2055565b9081156140db576001600160801b038260801c921690565b5f91508190565b614032826131b66131af6001600160801b03946140c3565b908154908160801c6001600160801b036001820193166001600160801b0384161461414f576001600160801b03165f526001830160205260405f20556001600160801b0382549181199060801b169116179055565b634e487b715f5260416020526024601cfd5b604080516001600160a01b039283166020820190815293909216908201527fd9bd4e389ed8cbf1cf078cf6e39b899ba664e27ad65dbc00c572373981e91d5e60608083019190915281526141b66080826127ba565b51902090565b6141cb5f60ff9294939461568e565b1680156141e6576141df613fba9184613c41565b80936128ad565b505f9190565b6141cb600160ff9294939461568e565b6141cb600260ff9294939461568e565b61422f906142218360801d8260801d01612c44565b92600f0b90600f0b01612c44565b6001600160801b03169060801b1790565b91901561431c5782600f0b925b158061430a575b80156142ff575b612f9a575f9260018301908154806142e1575b505f81600f0b125f146142ab5761429c61224b6001600160801b0396876142958195612902565b16906128ba565b16841984541617835555541690565b6001600160801b0316938085116142d25761429c61224b6001600160801b039687936128ad565b63257c509f60e21b5f5260045ffd5b6142f8919550836001600160801b03865416613dfa565b935f61426e565b5082600f0b1561425b565b506001600160801b0382541615614254565b8260801d9261424d565b90915f5f5f908551156149ac576005850154916006860154946007870154946009880154600b890154905f935f975b8c5189101561476157614368898e612d52565b5151906004821015610d655760206143818f8c90612d52565b51015191806143a05750600191614397916156cb565b985b0197614355565b949b90999098919690946001810361471357508860801c97886001600160801b038b169d8060801c94856001600160801b038316935f8d60801d600f0b135f146146ce57506143f8816001600160801b038f166128ba565b9081156146b15760808d901d6001600160801b0316821061464f57506001600160801b038d16908c60801d6001600160801b03169161443692613dfa565b9b61444e8d6001600160801b0360808f901d166128ad565b9561445887613fbd565b60801b6144649161420c565b9c61446e90613fcf565b61447791612c95565b9561448186613fcf565b61448a91612c95565b94614494916128ba565b9b5b5f8b600f0b135f1461460757506144b98f6001600160801b0380841691166128ba565b9081156145e3576001600160801b038b16821061458457506001600160801b038f16906001600160801b038b16916144f092613dfa565b6001600160801b03819a1690614505916128ad565b9d8e9a6145118c613fbd565b6001600160801b03166145239161420c565b9961452d90613fcf565b61453691612c95565b9961454090613fcf565b61454991612c95565b9c614553916128ba565b976001926001600160801b0380925b169082199060801b16179c16906001600160801b03199060801b161793614399565b986001959f506001600160801b0392506145b46145c36145c893856145d0989f6145bc908f836145b49116613fbd565b83169061420c565b9e166128ad565b613fbd565b9716906128ba565b966001600160801b035f9c815f9e614562565b50509c97926001600160801b0361460181939b60019683169061420c565b99614562565b600195929f906001600160801b03949c9b8593505f81600f0b1261462d575b5050614562565b614648925061463f8491600f0b612902565b81169116612c65565b5f80614626565b614664919d50809b9397509d9591939d613fbd565b60801b6146709161420c565b9a8a60801d6001600160801b031690614688916128ad565b61469190613fbd565b60801b61469d9161420c565b976146a7916128ba565b995f935f93614496565b50509b9a94936146c8908b60801d60801b9061420c565b9a614496565b90505f8c929e9260809e98979e1d600f0b126146eb575b50614496565b61470c9196506146fd8c60801d612902565b6001600160801b031690612c65565b945f6146e5565b989b949a919890969190600281036147385750600191614732916156cb565b99614399565b909a919060031461474d575b50600190614399565b61475a90600192946156cb565b9290614744565b909997506147779298959a969b509390936156cb565b94600c8501549083928592600d88015495885460e81c60ff169661479b858c6158cc565b988960801c938060801c906001600160801b038c6147ca849d6147c1818587169b613ca7565b93849316613ca7565b931061499d575b506001600160801b0382911610614995575b5061485361482c6147f38b613fcf565b6001600160801b0361480488613fcf565b16906001600160801b03199060801b16179a8360801c8660801c918960801d8760801d6158f5565b94919790966001600160801b038716926001600160801b03861692600f0b90600f0b6158f5565b929195906001600160801b03821615801590614983575b614955575b5050506001600160801b03821615801590614943575b614915575b5050506001600160801b03169060801b17946148dc6148a985856158cc565b6148ba8860801d5f60801d03612c44565b6148c889600f0b5f03612c44565b6001600160801b03169060801b17906156cb565b0361490657600b966005870155600686015560078501556009840155600c830155600d8201550155565b63f50d48cf60e01b5f5260045ffd5b61493a9397506001600160801b0316906001600160801b03199060801b1617906158cc565b935f808061488a565b506001600160801b0381161515614885565b61497a9399506001600160801b0316906001600160801b03199060801b1617906158cc565b955f808061486f565b506001600160801b038116151561486a565b93505f6147e3565b9a506001600160801b036147d1565b505f94508493505050565b919290925f5f908551156149ac576005850154916006860154946007870154946009880154600b890154905f935f975b8c51891015614761576149fa898e612d52565b5151906004821015610d65576020614a138f8c90612d52565b5101519180614a325750600191614a29916156cb565b985b01976149e7565b949b909990989196909460018103614d7157508860801c97886001600160801b038b169d8060801c94856001600160801b038316935f8d60801d600f0b135f14614d3b5750614a8a816001600160801b038f166128ba565b908115614d1e5760808d901d6001600160801b03168210614cbc57506001600160801b038d16908c60801d6001600160801b031691614ac892613dfa565b9b614ae08d6001600160801b0360808f901d166128ad565b95614aea87613fbd565b60801b614af69161420c565b9c614b0090613fcf565b614b0991612c95565b95614b1386613fcf565b614b1c91612c95565b94614b26916128ba565b9b5b5f8b600f0b135f14614c7d5750614b4b8f6001600160801b0380841691166128ba565b908115614c59576001600160801b038b168210614c1657506001600160801b038f16906001600160801b038b1691614b8292613dfa565b6001600160801b03819a1690614b97916128ad565b9d8e9a614ba38c613fbd565b6001600160801b0316614bb59161420c565b99614bbf90613fcf565b614bc891612c95565b99614bd290613fcf565b614bdb91612c95565b9c614be5916128ba565b976001926001600160801b0380925b169082199060801b16179c16906001600160801b03199060801b161793614a2b565b986001959f506001600160801b0392506145b46145c36145c89385614c46989f6145bc908f836145b49116613fbd565b966001600160801b035f9c815f9e614bf4565b50509c97926001600160801b03614c7781939b60019683169061420c565b99614bf4565b600195929f906001600160801b03949c9b8593505f81600f0b12614ca3575b5050614bf4565b614cb5925061463f8491600f0b612902565b5f80614c9c565b614cd1919d50809b9397509d9591939d613fbd565b60801b614cdd9161420c565b9a8a60801d6001600160801b031690614cf5916128ad565b614cfe90613fbd565b60801b614d0a9161420c565b97614d14916128ba565b995f935f93614b28565b50509b9a9493614d35908b60801d60801b9061420c565b9a614b28565b90505f8c929e9260809e98979e1d600f0b12614d58575b50614b28565b614d6a9196506146fd8c60801d612902565b945f614d52565b989b949a91989096919060028103614d965750600191614d90916156cb565b99614a2b565b909a9190600314614dab575b50600190614a2b565b614db890600192946156cb565b9290614da2565b9091939594928115614e8057614df26001600160801b03614dec8960801c968060801c92839116976128ba565b836157b5565b93614e07836801b5a660ea44b8000096612c52565b620f4240810290808204620f424014901517156121055785019182861161210557614e4c826001600160801b03614e4589614e5297614e579a613dfa565b9b166128ba565b906157b5565b612c52565b620f4240810290808204620f4240149015171561210557810180821161210557613fba92613dfa565b5050919350509190565b90604051614e978161279e565b5f8152602081015f815260408201905f825260608301905f825260808401955f875260a08501905f82525f60c08701525f60e08701525f61010087015285978151875260808201938451905260a082019586519052606082018051865260c08301918251905260e083019384519052614f1383518351906128ba565b908160601b91808304600160601b149015171561210557811515806150d8575b614f43575b505050505050505050565b614f6d614f8291614f65614f9c94612a76602089015160408a01519083613dfa565b9051906128ba565b92614f7b85519151826128ba565b9084613dfa565b62ffffff610100614f9383866128ad565b950151166141fc565b5096871580156150cb575b156150bd578160601c9586156150af5750506bffffffffffffffffffffffff19811694808604600160601b0361210557614ff461502493614fee61503e98615017956128ad565b996128ba565b60601c60c08b019080825261500e60808d019182516128ba565b905251906128ad565b9251614f7b8651826128ba565b60e088019481865281841161506e575b50505085516128ba565b845251615050602085019182516128ba565b9052600161010084015260608301525b5f8080808080808080614f38565b61507b61509192856128ad565b9251906150898482516128ba565b905191613dfa565b60a08801526150a5604088019182516128ba565b90525f8080615034565b919091529750505050505050565b509550505050905052615060565b50600160601b8811614fa7565b506020840151604085015110614f33565b5f9080156151a1578080600114615199576002146151925760016101338210166001600b83101617615184579060019060025b600181116151485750825f1904821161513457500290565b634e487b7160e01b81526011600452602490fd5b92805f190481116151705760018416615167575b80029260011c61511c565b8092029161515c565b634e487b7160e01b82526011600452602482fd5b6002900a9190806151345750565b5050600490565b505050600190565b50505f90565b5f9080156151a1578080600114615199576002146152285760016101338210166001600b8310161761521a579060019060035b600181116151f25750825f1904821161513457500290565b92805f190481116151705760018416615211575b80029260011c6151da565b80920291615206565b6003900a9190806151345750565b5050600890565b5f95948694929161523f83615878565b61524c575b505050505050565b90919293949596506001600160801b038360801c931692801593848015908161537b575b6153645761527e8383613b6e565b9590615373575b6153645761529291613b6e565b938160801c6001600160801b03831691819783948315801561535c575b61534d5786615335575b505015615313575050826152f36152f3946152ed6152fe989988966152f896039a01995b6152e78b82613b6e565b9a613b6e565b986158b1565b613d0d565b946158b1565b908180821191180218905f8080808080615244565b6152fe96506152f89250846152ed6152f396939988966152f394039a016152dd565b829a5091869161534493615523565b50975f806152b9565b50505050505050505050505f90565b5084156152af565b633dce448b60e11b5f5260045ffd5b508015615285565b508115615270565b5f95949386929161539383615878565b61539f57505050505050565b90919293949596506001600160801b038360801c9316928015938480159081615463575b615364576153d18383613b6e565b959061545b575b615364576153e591613b6e565b938160801c6001600160801b038316918197839483158015615453575b61534d578a928315615449575061541b929187916155eb565b50935b15615313575050826152f36152f3946152ed6152fe989988966152f896039a01996152e78b82613b6e565b969250505061541e565b508415615402565b5080156153d8565b5081156153c3565b91908290620f42408111156154845750620f1b30925050565b620186a08111615492575050565b90919250600a810290808204600a1490151715612105576154b2906151a7565b620f42409190600160035b600181116154fb5750835f19048111612105576154e193029162ffffff1690613dfa565b620f424081106154f35750620f1b3090565b62ffffff1690565b93805f19048111612105576001851661551a575b80029360011c6154bd565b8091029061550f565b909392916001600160801b0382169160801c90156155db576001600160801b0380915b16911691811580156155d3575b612fbb5782811015612fbb5761556c81615572946128ad565b91613dfa565b916001830180931161210557620f4240830290838204620f424014841517156121055762ffffff16620f42400390620f4240821161210557816155b4916128ba565b5f19810190811161210557613fba916155cc91613e7a565b92836128ad565b508215615553565b906001600160801b038091615546565b92919092821561567f576001600160801b038160801c9116915f1461566f576001600160801b0380915b1691169281158015615667575b612fbb5762ffffff16620f424003620f4240811161210557826156586156516141df61565e9461566497613d8e565b9582612c52565b926128ba565b90613e7a565b91565b508315615622565b906001600160801b038091615615565b63098fb56160e01b5f5260045ffd5b906005811015610d6557806156a4575060ff1690565b600181036156b6575060081c60ff1690565b6002146156c257505f90565b60101c60ff1690565b906001600160801b038260801c921690829180928260801d83600f0b9581600f0b5f81135f146157885750506001600160801b03169081811061573c5703935b5f81131561574b5750506001600160801b031680821061573c57613a0c614032916001600160801b03930393613fcf565b63c6c13aa760e01b5f5260045ffd5b9091505f819493941261576f575b5050614032613a0c6001600160801b0392613fcf565b5f036001600160801b0316019150614032613a0c615759565b5f909793979291921261579d575b505061570b565b6001600160801b03919296505f031601935f80615796565b9190918062ffffff1691801561587157613fba936157d291613d0d565b908060301c62ffffff1680831015615846575b508060181c62ffffff1680831015615815575b5060649161580e9160481c62ffffff1690612c52565b04906128ba565b929061583d61580e92606461580e61582e8883986128ad565b8560601c62ffffff1690612c52565b939250906157f8565b92606461580e61585a8661586995966128ad565b8560781c62ffffff1690612c52565b91905f6157e5565b5050905090565b8060801c15159081615888575090565b6001600160801b03915016151590565b90620f42400180620f42401161210557613fba91613d8e565b818111156158c35790613fba916128ad565b613fba916128ad565b6140326001600160801b039182806158eb8660801c8460801c01613fcf565b9516911601613fcf565b94915f945f9483600f0b8098600f0b0160016001607f1b0319811260016001607f1b03821317612105575f819913806159e9575b615935575b5050505050565b6001600160801b0316928084111561592e578394959850615960906001600160801b039293946128ad565b94168085116159da575b506001600160801b038061598192169216826128ba565b90816159a2575b5050615997916145c3916128ad565b925f8080808061592e565b8395506145c3929450906159b99161599794613dfa565b936159d061224b6159c987613fcf565b96836128ad565b9391819350615988565b93506001600160801b0361596a565b505f81600f0b1361592956fe094cd6963c390f036fd04ed00bf2527fc04b980da518b076d245b1218e940c471b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859a26469706673582212205af6453622f501e698cbcba763728fd598f9de1faa407234a9c195d20b1dbb3f64736f6c634300081c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000035d3f3497ec612b3dd982819f95ca98e6a404ce1

-----Decoded View---------------
Arg [0] : initialOwner (address): 0x35D3F3497eC612b3Dd982819F95cA98e6a404Ce1

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000035d3f3497ec612b3dd982819f95ca98e6a404ce1

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
0x315663A47d7E95c47370682DfF77415F469C3246
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.