ETH Price: $1,559.96 (-2.54%)
Gas: 0.16 Gwei

Contract

0x3814307b86b54b1d8e7B2Ac34662De9125F8f4E6
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Nominate New Own...133665452021-10-06 16:37:351703 days ago1633538255IN
0x3814307b...125F8f4E6
0 ETH0.00503579106.91713279
Collect Fees133032842021-09-26 19:19:591713 days ago1632683999IN
0x3814307b...125F8f4E6
0 ETH0.0420381770.91005552
Burn FXS132141462021-09-13 0:15:131727 days ago1631492113IN
0x3814307b...125F8f4E6
0 ETH0.0090772472.35629485
Collect Fees132141462021-09-13 0:15:131727 days ago1631492113IN
0x3814307b...125F8f4E6
0 ETH0.0455849466
Mint130778432021-08-22 22:26:231748 days ago1629671183IN
0x3814307b...125F8f4E6
0 ETH0.0235944141.17856588
Approve Target130778412021-08-22 22:25:331748 days ago1629671133IN
0x3814307b...125F8f4E6
0 ETH0.0017571550
Swap130778172021-08-22 22:20:461748 days ago1629670846IN
0x3814307b...125F8f4E6
0 ETH0.0071214345
Mint Redeem Part...130778042021-08-22 22:18:031748 days ago1629670683IN
0x3814307b...125F8f4E6
0 ETH0.0077415442.75821317
Mint Redeem Part...130778002021-08-22 22:16:591748 days ago1629670619IN
0x3814307b...125F8f4E6
0 ETH0.0120358439.16757169
Burn FXS130648092021-08-20 22:11:141750 days ago1629497474IN
0x3814307b...125F8f4E6
0 ETH0.0036899629.41338226
Withdraw130601092021-08-20 4:53:171751 days ago1629435197IN
0x3814307b...125F8f4E6
0 ETH0.0108841841
Mint130599862021-08-20 4:24:201751 days ago1629433460IN
0x3814307b...125F8f4E6
0 ETH0.0205272935.36353811
Approve Target130599702021-08-20 4:22:091751 days ago1629433329IN
0x3814307b...125F8f4E6
0 ETH0.001803432.61892975
Recover ERC20130599322021-08-20 4:13:331751 days ago1629432813IN
0x3814307b...125F8f4E6
0 ETH0.002866239.51803168
Mint130599082021-08-20 4:06:341751 days ago1629432394IN
0x3814307b...125F8f4E6
0 ETH0.0245048635.12129846
Approve Target130599012021-08-20 4:05:271751 days ago1629432327IN
0x3814307b...125F8f4E6
0 ETH0.0020918459
Approve Target130598992021-08-20 4:04:451751 days ago1629432285IN
0x3814307b...125F8f4E6
0 ETH0.0035310660
Mint130598892021-08-20 4:01:091751 days ago1629432069IN
0x3814307b...125F8f4E6
0 ETH0.0064719240
Approve Target130598522021-08-20 3:52:491751 days ago1629431569IN
0x3814307b...125F8f4E6
0 ETH0.0019616125.08169046
Approve Target130598462021-08-20 3:51:331751 days ago1629431493IN
0x3814307b...125F8f4E6
0 ETH0.0013272524.21422005
Mint FRAX For In...130598162021-08-20 3:45:591751 days ago1629431159IN
0x3814307b...125F8f4E6
0 ETH0.0962222230.5626586
Recover ERC20130597792021-08-20 3:37:381751 days ago1629430658IN
0x3814307b...125F8f4E6
0 ETH0.002368130.62373595
Mint Redeem Part...130597552021-08-20 3:32:551751 days ago1629430375IN
0x3814307b...125F8f4E6
0 ETH0.0056889131.42110032
Mint Redeem Part...130597462021-08-20 3:31:201751 days ago1629430280IN
0x3814307b...125F8f4E6
0 ETH0.0131077948
Mint Redeem Part...130597452021-08-20 3:31:101751 days ago1629430270IN
0x3814307b...125F8f4E6
0 ETH0.0089196132.66311639
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

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

UniV3LiquidityAMO

Compiler Version
v0.8.4+commit.c7e474f2
Optimization Enabled
Yes with 100000 runs
Other Settings
default evmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[{"internalType":"address","name":"_creator_address","type":"address"},{"internalType":"address","name":"_custodian_address","type":"address"},{"internalType":"address","name":"_frax_contract_address","type":"address"},{"internalType":"address","name":"_fxs_contract_address","type":"address"},{"internalType":"address","name":"_timelock_address","type":"address"},{"internalType":"address","name":"_pool_address","type":"address"},{"internalType":"address","name":"_pool_collateral_address","type":"address"},{"internalType":"address","name":"_univ3_factory_address","type":"address"},{"internalType":"address","name":"_univ3_positions_address","type":"address"},{"internalType":"address","name":"_univ3_router_address","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RecoveredERC20","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"RecoveredERC721","type":"event"},{"inputs":[],"name":"TotalLiquidityFrax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"accumulatedProfit","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"collat_addr","type":"address"}],"name":"addCollateral","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allCollateralAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allowed_collaterals","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"use_safe_approve","type":"bool"}],"name":"approveTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"borrowed_collat_historical","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFRAX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFXS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burned_sum_historical","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collatDollarBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collat_borrow_cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collateralBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"collateral_addresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collectFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"custodian_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"freeColDolVal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"giveCollatBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"min_cr","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_collat_addr","type":"address"},{"internalType":"uint256","name":"_amountCollateral","type":"uint256"},{"internalType":"uint256","name":"_amountFrax","type":"uint256"},{"internalType":"uint24","name":"_fee_tier","type":"uint24"},{"internalType":"int24","name":"_tickLower","type":"int24"},{"internalType":"int24","name":"_tickUpper","type":"int24"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"frax_amount","type":"uint256"}],"name":"mintFRAXForInvestments","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"frax_amount","type":"uint256"}],"name":"mintRedeemPart1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintRedeemPart2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mint_cap","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintedBalance","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minted_sum_historical","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"missing_decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numPositions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool_collateral_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"positions_array","outputs":[{"internalType":"uint256","name":"token_id","type":"uint256"},{"internalType":"address","name":"collateral_address","type":"address"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint24","name":"fee_tier","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"positions_mapping","outputs":[{"internalType":"uint256","name":"token_id","type":"uint256"},{"internalType":"address","name":"collateral_address","type":"address"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint24","name":"fee_tier","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"recoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"token_id","type":"uint256"}],"name":"recoverERC721","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"returned_collat_historical","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_custodian_address","type":"address"}],"name":"setCustodian","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pool_address","type":"address"},{"internalType":"address","name":"_pool_collateral_address","type":"address"},{"internalType":"uint256","name":"_missing_decimals","type":"uint256"}],"name":"setPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_min_cr","type":"uint256"},{"internalType":"uint256","name":"_mint_cap","type":"uint256"},{"internalType":"uint256","name":"_collat_borrow_cap","type":"uint256"}],"name":"setSafetyParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"new_timelock","type":"address"}],"name":"setTimelock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"showAllocations","outputs":[{"internalType":"uint256[4]","name":"allocations","type":"uint256[4]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenA","type":"address"},{"internalType":"address","name":"_tokenB","type":"address"},{"internalType":"uint24","name":"_fee_tier","type":"uint24"},{"internalType":"uint256","name":"_amountAtoB","type":"uint256"},{"internalType":"uint256","name":"_amountOutMinimum","type":"uint256"},{"internalType":"uint160","name":"_sqrtPriceLimitX96","type":"uint160"}],"name":"swap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"timelock_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"univ3_factory","outputs":[{"internalType":"contract IUniswapV3Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"univ3_positions","outputs":[{"internalType":"contract INonfungiblePositionManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"univ3_router","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_token_id","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]
60806040526a0422ca8b0a00a42500000060125565048c27395000601555620c8320601655600060175560006018553480156200003b57600080fd5b5060405162005ace38038062005ace8339810160408190526200005e9162000370565b896001600160a01b038116620000bb5760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f7420626520300000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b03831690811782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a150600680546001600160a01b03808b166001600160a01b031992831617909255600780548a8416908316179055600c805488841690831681179091556008805483169091179055600a80549287169282168317905560098054909116821790556040805163313ce56760e01b8152905162000202929163313ce567916004828101926020929190829003018186803b158015620001ae57600080fd5b505afa158015620001c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e991906200043e565b60ff166012620002c360201b62003fca1790919060201c565b600b55600d80546001600160a01b03199081166001600160a01b0398891617909155600e805482169a88169a909a179099556003805460018181019092557fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180548b169588169586179055600094855260046020526040909420805460ff1916909417909355600f80548916928616929092179091556010805488169185169190911790556011805490961692169190911790935550620004db92505050565b60006200030d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200031460201b60201c565b9392505050565b600081848411156200033b5760405162461bcd60e51b8152600401620000b2919062000461565b5060006200034a8486620004b7565b95945050505050565b80516001600160a01b03811681146200036b57600080fd5b919050565b6000806000806000806000806000806101408b8d03121562000390578586fd5b6200039b8b62000353565b9950620003ab60208c0162000353565b9850620003bb60408c0162000353565b9750620003cb60608c0162000353565b9650620003db60808c0162000353565b9550620003eb60a08c0162000353565b9450620003fb60c08c0162000353565b93506200040b60e08c0162000353565b92506200041c6101008c0162000353565b91506200042d6101208c0162000353565b90509295989b9194979a5092959850565b60006020828403121562000450578081fd5b815160ff811681146200030d578182fd5b6000602080835283518082850152825b818110156200048f5785810183015185820160400152820162000471565b81811115620004a15783604083870101525b50601f01601f1916929092016040019392505050565b600082821015620004d657634e487b7160e01b81526011600452602481fd5b500390565b6155e380620004eb6000396000f3fe608060405234801561001057600080fd5b50600436106103365760003560e01c80637bdfc32a116101b2578063b497d8ca116100f9578063d72da8dc116100a2578063dc6663c71161007c578063dc6663c7146107ef578063e06b421b1461080f578063e97d85a514610822578063f0d2d5a81461082b57600080fd5b8063d72da8dc146107c1578063d989f747146107d4578063d99e4d67146107e757600080fd5b8063c8796572116100d3578063c879657214610778578063c98c05b714610780578063cfb13e651461078857600080fd5b8063b497d8ca1461073c578063bdacb3031461075c578063c221c32a1461076f57600080fd5b80638980f11f1161015b5780638f8e1ed2116101355780638f8e1ed214610722578063a7100f211461072b578063ad7b68fe1461073457600080fd5b80638980f11f146106dc5780638c79d138146106ef5780638da5cb5b1461070257600080fd5b80637e34026e1161018c5780637e34026e14610694578063819d4cc6146106a95780638292fd84146106bc57600080fd5b80637bdfc32a146106595780637ccc0078146106615780637ce6112b1461067457600080fd5b806337508b06116102815780634755abbb1161022a5780635e71823b116102045780635e71823b14610531578063722f7a9f14610539578063748e37f41461064957806379ba50971461065157600080fd5b80634755abbb146104de5780634bb4a730146104fe57806353a47bb71461051157600080fd5b8063403f37311161025b578063403f3731146104ae57806341401da9146104c1578063467b96e0146104d657600080fd5b806337508b061461045f578063377a18c7146104925780633ed4e55c146104a557600080fd5b806323fbd1c7116102e357806332b82dbb116102bd57806332b82dbb1461042357806336082ac01461044357806336d5a76d1461044c57600080fd5b806323fbd1c7146103df57806329988e2c146103f25780632e1a7d4d146103fb57600080fd5b80631627540c116103145780631627540c1461037f57806317284c94146103925780631baf16821461039a57600080fd5b806302825d111461033b57806303a76bff1461035057806314af33801461036c575b600080fd5b61034e610349366004614e9c565b61083e565b005b61035960185481565b6040519081526020015b60405180910390f35b61034e61037a366004614e9c565b610a67565b61034e61038d366004614cd3565b610b8f565b610359610caf565b600f546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610363565b61034e6103ed366004614e9c565b610db3565b61035960175481565b61040e610409366004614e9c565b610f0c565b60408051928352602083019190915201610363565b600a546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b61035960165481565b61034e61045a366004614e9c565b611641565b61048261046d366004614cd3565b60046020526000908152604090205460ff1681565b6040519015158152602001610363565b61034e6104a0366004614e9c565b611b7c565b610359600b5481565b61034e6104bc366004614cd3565b612072565b6104c96121d9565b6040516103639190614fa8565b610359612248565b600c546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b6103ba61050c366004614e9c565b61242d565b6001546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b600254610359565b6105e5610547366004614e9c565b600560205260009081526040902080546001820154600292830154919273ffffffffffffffffffffffffffffffffffffffff909116916fffffffffffffffffffffffffffffffff8116917001000000000000000000000000000000008204810b91730100000000000000000000000000000000000000810490910b90760100000000000000000000000000000000000000000000900462ffffff1686565b6040805196875273ffffffffffffffffffffffffffffffffffffffff90951660208701526fffffffffffffffffffffffffffffffff90931693850193909352600290810b60608501529190910b608083015262ffffff1660a082015260c001610363565b610359612464565b61034e612486565b61034e6125d1565b61034e61066f366004614d5c565b6126f8565b600e546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b61069c61280e565b6040516103639190615002565b61034e6106b7366004614dee565b6128f3565b6011546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b61034e6106ea366004614dee565b612a7d565b61034e6106fd366004614d9c565b612b91565b6000546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b61035960125481565b61035960135481565b610359612cf2565b6010546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b61034e61076a366004614cd3565b612d04565b61035960145481565b61034e612e6b565b610359613154565b61079b610796366004614e19565b613176565b604080519283526fffffffffffffffffffffffffffffffff909116602083015201610363565b61034e6107cf366004614f40565b613766565b6105e56107e2366004614e9c565b613817565b6103596138c5565b600d546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b61035961081d366004614cef565b613aca565b61035960155481565b61034e610839366004614cd3565b613cec565b600d5473ffffffffffffffffffffffffffffffffffffffff1633148061087b575060005473ffffffffffffffffffffffffffffffffffffffff1633145b8061089d5750600e5473ffffffffffffffffffffffffffffffffffffffff1633145b61092e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4e6f74206f776e65722c2074696d656c6f636b2c206f7220637573746f64696160448201527f6e0000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6007546040517f095ea7b30000000000000000000000000000000000000000000000000000000081523060048201526024810183905273ffffffffffffffffffffffffffffffffffffffff9091169063095ea7b390604401602060405180830381600087803b1580156109a057600080fd5b505af11580156109b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d89190614e80565b506007546040517fa8a778ae0000000000000000000000000000000000000000000000000000000081523060048201526024810183905273ffffffffffffffffffffffffffffffffffffffff9091169063a8a778ae906044015b600060405180830381600087803b158015610a4c57600080fd5b505af1158015610a60573d6000803e3d6000fd5b5050505050565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480610aa4575060005473ffffffffffffffffffffffffffffffffffffffff1633145b80610ac65750600e5473ffffffffffffffffffffffffffffffffffffffff1633145b610b52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4e6f74206f776e65722c2074696d656c6f636b2c206f7220637573746f64696160448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152608401610925565b601454610b5f9082614015565b601455600954600854610b8c9173ffffffffffffffffffffffffffffffffffffffff90811691168361408e565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201527f6f726d207468697320616374696f6e00000000000000000000000000000000006064820152608401610925565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229060200160405180910390a150565b600080610cba61280e565b6020015190506000610ce7610ccd61280e565b60400151610cd961280e565b60005b602002015190614015565b9050610da0620f4240610d9a600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632eb9771b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d5b57600080fd5b505afa158015610d6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d939190614eb4565b84906141f7565b906142ac565b9050610dac8282614015565b9250505090565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480610df0575060005473ffffffffffffffffffffffffffffffffffffffff1633145b80610e125750600e5473ffffffffffffffffffffffffffffffffffffffff1633145b610e9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4e6f74206f776e65722c2074696d656c6f636b2c206f7220637573746f64696160448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152608401610925565b8060186000828254610eb0919061516f565b90915550506006546040517f42966c680000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906342966c6890602401610a32565b600d54600090819073ffffffffffffffffffffffffffffffffffffffff16331480610f4e575060005473ffffffffffffffffffffffffffffffffffffffff1633145b610fb4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b6000838152600560209081526040808320815160c08101835281548152600182015473ffffffffffffffffffffffffffffffffffffffff908116828601526002928301546fffffffffffffffffffffffffffffffff8082168487019081527001000000000000000000000000000000008304860b860b860b6060808701919091527301000000000000000000000000000000000000008404870b870b90960b60808087019190915276010000000000000000000000000000000000000000000090930462ffffff1660a080870191909152875190810188528c815290518216978101978852808701898152958101988952637d7c549292810192835260105496517f0c49ccbe0000000000000000000000000000000000000000000000000000000081528151600482015297519091166024880152935160448701529551606486015294516084850152939092911690630c49ccbe9060a4016040805180830381600087803b15801561112657600080fd5b505af115801561113a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115e9190614f1d565b50506010546040805160808101825287815230602082019081526fffffffffffffffffffffffffffffffff8284018181526060840182815294517ffc6f786500000000000000000000000000000000000000000000000000000000815293516004850152915173ffffffffffffffffffffffffffffffffffffffff9081166024850152915181166044840152925190921660648201526000928392169063fc6f7865906084016040805180830381600087803b15801561121d57600080fd5b505af1158015611231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112559190614f1d565b60008981526005602052604081208181556001810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905560020180547fffffffffffffff0000000000000000000000000000000000000000000000000016905591935091505b600254811015611634578760028281548110611304577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060030201600001541415611622576002805461132c9060019061541c565b81548110611363577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060030201600282815481106113ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020909120825460039092020190815560018083015490820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556002918201805491830180547fffffffffffffffffffffffffffffffff0000000000000000000000000000000081166fffffffffffffffffffffffffffffffff9094169384178255825470010000000000000000000000000000000090819004860b860b62ffffff9081169091027fffffffffffffffffffffffffff0000000000000000000000000000000000000090921690941717808255825473010000000000000000000000000000000000000090819004860b860b8516027fffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffff8216811783559254760100000000000000000000000000000000000000000000908190049094169093027fffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffffff90931692909217179055805480611596577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008281526020812060037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909301928302019081556001810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905560020180547fffffffffffffff0000000000000000000000000000000000000000000000000016905590555b8061162c8161545f565b9150506112bf565b5090945092505050915091565b600d5473ffffffffffffffffffffffffffffffffffffffff1633148061167e575060005473ffffffffffffffffffffffffffffffffffffffff1633145b6116e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b60006117b6600b54600a6116f89190615270565b610d9a620f4240610d9a6117af600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb73999f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561176d57600080fd5b505afa158015611781573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a59190614eb4565b620f424090613fca565b87906141f7565b9050600061186b620f4240610d9a600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632eb9771b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561182c57600080fd5b505afa158015611840573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118649190614eb4565b85906141f7565b905061191d600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f7683bbc6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118d857600080fd5b505afa1580156118ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119109190614eb4565b610d9a83620f42406141f7565b90506015546119348261192e613154565b90614015565b111561199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f426f72726f7720636170000000000000000000000000000000000000000000006044820152606401610925565b6013546119a99082614015565b6013556006546040517fb4f56b260000000000000000000000000000000000000000000000000000000081523060048201526024810185905273ffffffffffffffffffffffffffffffffffffffff9091169063b4f56b2690604401600060405180830381600087803b158015611a1e57600080fd5b505af1158015611a32573d6000803e3d6000fd5b50506006546008546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018890529116925063095ea7b39150604401602060405180830381600087803b158015611aac57600080fd5b505af1158015611ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae49190614e80565b506008546040517f7e108af900000000000000000000000000000000000000000000000000000000815260048101859052600060248201819052604482015273ffffffffffffffffffffffffffffffffffffffff90911690637e108af990606401600060405180830381600087803b158015611b5f57600080fd5b505af1158015611b73573d6000803e3d6000fd5b50505050505050565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480611bb9575060005473ffffffffffffffffffffffffffffffffffffffff1633145b611c1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b601254819081611c2d612cf2565b611c37919061516f565b1315611c9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4d696e74206361702072656163686564000000000000000000000000000000006044820152606401610925565b80601754611cad919061516f565b601755601654600654604080517f2eb9771b000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff90921691632eb9771b91600480820192602092909190829003018186803b158015611d1e57600080fd5b505afa158015611d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d569190614eb4565b11611de3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f436f6c6c61746572616c20726174696f20697320616c726561647920746f6f2060448201527f6c6f7700000000000000000000000000000000000000000000000000000000006064820152608401610925565b600654604080517fd2d97b06000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163d2d97b06916004808301926020929190829003018186803b158015611e4e57600080fd5b505afa158015611e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e869190614eb4565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ef257600080fd5b505afa158015611f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2a9190614eb4565b90506000611f388286614015565b90506000611f4d82610d9a86620f42406141f7565b90506016548111611fe0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4d696e74696e6720776f756c6420636175736520636f6c6c61746572616c207260448201527f6174696f20746f20626520746f6f206c6f7700000000000000000000000000006064820152608401610925565b6006546040517fb4f56b260000000000000000000000000000000000000000000000000000000081523060048201526024810188905273ffffffffffffffffffffffffffffffffffffffff9091169063b4f56b2690604401600060405180830381600087803b15801561205257600080fd5b505af1158015612066573d6000803e3d6000fd5b50505050505050505050565b600d5473ffffffffffffffffffffffffffffffffffffffff163314806120af575060005473ffffffffffffffffffffffffffffffffffffffff1633145b612115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b73ffffffffffffffffffffffffffffffffffffffff8116612192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437573746f6469616e20616464726573732063616e6e6f7420626520300000006044820152606401610925565b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060600380548060200260200160405190810160405280929190818152602001828054801561223e57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311612213575b5050505050905090565b600080805b60035481101561242757600060038281548110612293577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600061234e8273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561230b57600080fd5b505afa15801561231f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123439190614f6b565b60129060ff16613fca565b9050600061240361236083600a615270565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8616906370a082319060240160206040518083038186803b1580156123c557600080fd5b505afa1580156123d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123fd9190614eb4565b906141f7565b905061240f8582614015565b9450505050808061241f9061545f565b91505061224d565b50919050565b6003818154811061243d57600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b600061246e612cf2565b61247661280e565b516124819190615373565b905090565b60015473ffffffffffffffffffffffffffffffffffffffff16331461252d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527f2063616e20616363657074206f776e65727368697000000000000000000000006064820152608401610925565b6000546001546040805173ffffffffffffffffffffffffffffffffffffffff93841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b600d5473ffffffffffffffffffffffffffffffffffffffff1633148061260e575060005473ffffffffffffffffffffffffffffffffffffffff1633145b612674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312ace5a26040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156126de57600080fd5b505af11580156126f2573d6000803e3d6000fd5b50505050565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480612735575060005473ffffffffffffffffffffffffffffffffffffffff1633145b61279b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b600c805473ffffffffffffffffffffffffffffffffffffffff9485167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216811790925560088054821690921790915560098054939094169281168317909355600a8054909316909117909155600b55565b612816614c8b565b6006546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a082319060240160206040518083038186803b15801561287f57600080fd5b505afa158015612893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128b79190614eb4565b81526128c1612248565b60208201526128ce6138c5565b6040820181905260208201516128eb919061192e90846000610cdc565b606082015290565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480612930575060005473ffffffffffffffffffffffffffffffffffffffff1633145b612996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b600e546040517f42842e0e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff918216602482015260448101839052908316906342842e0e90606401600060405180830381600087803b158015612a1057600080fd5b505af1158015612a24573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff86168152602081018590527f57519b6a0997d7d44511836bcee0a36871aa79d445816f6c464abb0cd9d3f3e893500190505b60405180910390a15050565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480612aba575060005473ffffffffffffffffffffffffffffffffffffffff1633145b612b20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b600e54612b4590839073ffffffffffffffffffffffffffffffffffffffff168361408e565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527f55350610fe57096d8c0ffa30beede987326bccfcb0b4415804164d0dd50ce8b19101612a71565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480612bce575060005473ffffffffffffffffffffffffffffffffffffffff1633145b612c34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b8015612c4a57612c458385846142ee565b6126f2565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820184905284169063095ea7b390604401602060405180830381600087803b158015612cba57600080fd5b505af1158015612cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a609190614e80565b60006018546017546124819190615373565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480612d41575060005473ffffffffffffffffffffffffffffffffffffffff1633145b612da7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b73ffffffffffffffffffffffffffffffffffffffff8116612e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f54696d656c6f636b20616464726573732063616e6e6f742062652030000000006044820152606401610925565b600d80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480612ea8575060005473ffffffffffffffffffffffffffffffffffffffff1633145b80612eca5750600e5473ffffffffffffffffffffffffffffffffffffffff1633145b612f56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4e6f74206f776e65722c2074696d656c6f636b2c206f7220637573746f64696160448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152608401610925565b60005b600254811015610b8c57600060028281548110612f9f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020918290206040805160c08101825260039390930290910180548352600181015473ffffffffffffffffffffffffffffffffffffffff908116848601526002918201546fffffffffffffffffffffffffffffffff808216868601527001000000000000000000000000000000008204840b840b840b6060808801919091527301000000000000000000000000000000000000008304850b850b90940b60808088019190915276010000000000000000000000000000000000000000000090920462ffffff1660a08701528451918201855285518252600e54831696820196875281850181815293820181815260105495517ffc6f786500000000000000000000000000000000000000000000000000000000815283516004820152975184166024890152935181166044880152925190921660648601529294509291169063fc6f7865906084016040805180830381600087803b15801561310557600080fd5b505af1158015613119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313d9190614f1d565b50505050808061314c9061545f565b915050612f59565b6000601454601354106131705760145460135461248191613fca565b50600090565b600d54600090819073ffffffffffffffffffffffffffffffffffffffff163314806131b8575060005473ffffffffffffffffffffffffffffffffffffffff1633145b61321e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b6040805161016081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081019190915260065473ffffffffffffffffffffffffffffffffffffffff908116908a16101561331d5750604080516101608101825273ffffffffffffffffffffffffffffffffffffffff808b16825260065416602082015262ffffff871691810191909152600285810b606083015284900b608082015260a0810188905260c08101879052600060e0820181905261010082015230610120820152637d7c549261014082015261339c565b50604080516101608101825260065473ffffffffffffffffffffffffffffffffffffffff90811682528a16602082015262ffffff871691810191909152600285810b606083015284900b608082015260a0810187905260c08101889052600060e0820181905261010082015230610120820152637d7c54926101408201525b6010546133c1908a9073ffffffffffffffffffffffffffffffffffffffff168a6142ee565b6006546010546133eb9173ffffffffffffffffffffffffffffffffffffffff9081169116896142ee565b6010546040517f88316456000000000000000000000000000000000000000000000000000000008152600091829173ffffffffffffffffffffffffffffffffffffffff90911690638831645690613446908690600401615084565b608060405180830381600087803b15801561346057600080fd5b505af1158015613474573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134989190614ecc565b50509150915060006040518060c001604052808481526020018d73ffffffffffffffffffffffffffffffffffffffff168152602001836fffffffffffffffffffffffffffffffff1681526020018960020b81526020018860020b81526020018a62ffffff16815250905080600560008581526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a81548162ffffff021916908360020b62ffffff16021790555060808201518160020160136101000a81548162ffffff021916908360020b62ffffff16021790555060a08201518160020160166101000a81548162ffffff021916908362ffffff16021790555090505060028190806001815401808255809150506001900390600052602060002090600302016000909190919091506000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a81548162ffffff021916908360020b62ffffff16021790555060808201518160020160136101000a81548162ffffff021916908360020b62ffffff16021790555060a08201518160020160166101000a81548162ffffff021916908362ffffff160217905550505082829550955050505050965096945050505050565b600d5473ffffffffffffffffffffffffffffffffffffffff163314806137a3575060005473ffffffffffffffffffffffffffffffffffffffff1633145b613809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b601692909255601255601555565b6002818154811061382757600080fd5b600091825260209091206003909102018054600182015460029283015491935073ffffffffffffffffffffffffffffffffffffffff16916fffffffffffffffffffffffffffffffff8216917001000000000000000000000000000000008104820b917301000000000000000000000000000000000000008204900b90760100000000000000000000000000000000000000000000900462ffffff1686565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101829052819060005b600254811015613ac2576002818154811061393f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020918290206040805160c08101825260039390930290910180548352600181015473ffffffffffffffffffffffffffffffffffffffff16938301939093526002928301546fffffffffffffffffffffffffffffffff81169183018290527001000000000000000000000000000000008104840b840b840b60608401527301000000000000000000000000000000000000008104840b840b90930b608083015276010000000000000000000000000000000000000000000090920462ffffff1660a082015292508015613aaf576000613a208460600151614457565b90506000613a318560800151614457565b905073853d955acef822db058eb8505911ed77f175b99e73ffffffffffffffffffffffffffffffffffffffff16856020015173ffffffffffffffffffffffffffffffffffffffff161115613a9b57613a94613a8d8383866148f1565b8790614015565b9550613aac565b613aa9613a8d8383866149b8565b95505b50505b5080613aba8161545f565b9150506138fb565b509092915050565b600d5460009073ffffffffffffffffffffffffffffffffffffffff16331480613b0a575060005473ffffffffffffffffffffffffffffffffffffffff1633145b613b70576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b604080516101008101825273ffffffffffffffffffffffffffffffffffffffff808a168252888116602083015262ffffff881692820192909252306060820152637d7c5492608082015260a0810186905260c0810185905283821660e08201526011549091613be2918a9116876142ee565b601154604080517f414bf389000000000000000000000000000000000000000000000000000000008152835173ffffffffffffffffffffffffffffffffffffffff90811660048301526020850151811660248301529184015162ffffff1660448201526060840151821660648201526080840151608482015260a084015160a482015260c084015160c482015260e0840151821660e4820152600092919091169063414bf3899061010401602060405180830381600087803b158015613ca757600080fd5b505af1158015613cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cdf9190614eb4565b9998505050505050505050565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480613d29575060005473ffffffffffffffffffffffffffffffffffffffff1633145b613d8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b73ffffffffffffffffffffffffffffffffffffffff8116613e0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5a65726f206164647265737320646574656374656400000000000000000000006044820152606401610925565b60065473ffffffffffffffffffffffffffffffffffffffff82811691161415613e91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f46524158206973206e6f7420636f6c6c61746572616c000000000000000000006044820152606401610925565b73ffffffffffffffffffffffffffffffffffffffff811660009081526004602052604090205460ff1615613f21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4164647265737320616c726561647920657869737473000000000000000000006044820152606401610925565b73ffffffffffffffffffffffffffffffffffffffff16600081815260046020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556003805491820181559091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b600061400c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614a3b565b90505b92915050565b60008061402283856151e3565b90508381101561400c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610925565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916141259190614f8c565b6000604051808303816000865af19150503d8060008114614162576040519150601f19603f3d011682016040523d82523d6000602084013e614167565b606091505b50915091508180156141915750805115806141915750808060200190518101906141919190614e80565b610a60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c4544006044820152606401610925565b6000826142065750600061400f565b60006142128385615336565b90508261421f85836151fb565b1461400c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610925565b600061400c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614a8f565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b30000000000000000000000000000000000000000000000000000000017905291516000928392908716916143859190614f8c565b6000604051808303816000865af19150503d80600081146143c2576040519150601f19603f3d011682016040523d82523d6000602084013e6143c7565b606091505b50915091508180156143f15750805115806143f15750808060200190518101906143f19190614e80565b610a60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c454400006044820152606401610925565b60008060008360020b1261446e578260020b61447b565b8260020b61447b906154e9565b90506144a67ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276186154ac565b60020b811315614512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152606401610925565b60006001821661453357700100000000000000000000000000000000614545565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561458457608061457f826ffff97272373d413259a46990580e213a615336565b901c90505b60048216156145ae5760806145a9826ffff2e50f5f656932ef12357cf3c7fdcc615336565b901c90505b60088216156145d85760806145d3826fffe5caca7e10e4e61c3624eaa0941cd0615336565b901c90505b60108216156146025760806145fd826fffcb9843d60f6159c9db58835c926644615336565b901c90505b602082161561462c576080614627826fff973b41fa98c081472e6896dfb254c0615336565b901c90505b6040821615614656576080614651826fff2ea16466c96a3843ec78b326b52861615336565b901c90505b608082161561468057608061467b826ffe5dee046a99a2a811c461f1969c3053615336565b901c90505b6101008216156146ab5760806146a6826ffcbe86c7900a88aedcffc83b479aa3a4615336565b901c90505b6102008216156146d65760806146d1826ff987a7253ac413176f2b074cf7815e54615336565b901c90505b6104008216156147015760806146fc826ff3392b0822b70005940c7a398e4b70f3615336565b901c90505b61080082161561472c576080614727826fe7159475a2c29b7443b29c7fa6e889d9615336565b901c90505b611000821615614757576080614752826fd097f3bdfd2022b8845ad8f792aa5825615336565b901c90505b61200082161561478257608061477d826fa9f746462d870fdf8a65dc1f90e061e5615336565b901c90505b6140008216156147ad5760806147a8826f70d869a156d2a1b890bb3df62baf32f7615336565b901c90505b6180008216156147d85760806147d3826f31be135f97d08fd981231505542fcfa6615336565b901c90505b620100008216156148045760806147ff826f09aa508b5b7a84e1c677de54f3e99bc9615336565b901c90505b6202000082161561482f57608061482a826e5d6af8dedb81196699c329225ee604615336565b901c90505b62040000821615614859576080614854826d2216e584f5fa1ea926041bedfe98615336565b901c90505b6208000082161561488157608061487c826b048a170391f7dc42444e8fa2615336565b901c90505b60008460020b13156148ba576148b7817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6151fb565b90505b6148c964010000000082615498565b156148d55760016148d8565b60005b6148e99060ff16602083901c6151e3565b949350505050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16111561492b579192915b73ffffffffffffffffffffffffffffffffffffffff84166149a47bffffffffffffffffffffffffffffffff000000000000000000000000606085901b1661497287876153e7565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16614ad7565b6149ae91906151fb565b90505b9392505050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156149f2579192915b6149ae6fffffffffffffffffffffffffffffffff8316614a1286866153e7565b73ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000614ad7565b60008184841115614a79576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109259190615033565b506000614a86848661541c565b95945050505050565b60008183614aca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109259190615033565b506000614a8684866151fb565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8587098587029250828110838203039150508060001415614b2f5760008411614b2457600080fd5b5082900490506149b1565b808411614b3b57600080fd5b600084868809808403938111909203919050600085614b7a817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61541c565b614b859060016151e3565b16958690049593849004936000819003046001019050614ba58184615336565b909317926000614bb6876003615336565b6002189050614bc58188615336565b614bd090600261541c565b614bda9082615336565b9050614be68188615336565b614bf190600261541c565b614bfb9082615336565b9050614c078188615336565b614c1290600261541c565b614c1c9082615336565b9050614c288188615336565b614c3390600261541c565b614c3d9082615336565b9050614c498188615336565b614c5490600261541c565b614c5e9082615336565b9050614c6a8188615336565b614c7590600261541c565b614c7f9082615336565b9050613cdf8186615336565b60405180608001604052806004906020820280368337509192915050565b8035600281900b8114614cbb57600080fd5b919050565b803562ffffff81168114614cbb57600080fd5b600060208284031215614ce4578081fd5b813561400c8161557d565b60008060008060008060c08789031215614d07578182fd5b8635614d128161557d565b95506020870135614d228161557d565b9450614d3060408801614cc0565b9350606087013592506080870135915060a0870135614d4e8161557d565b809150509295509295509295565b600080600060608486031215614d70578283fd5b8335614d7b8161557d565b92506020840135614d8b8161557d565b929592945050506040919091013590565b60008060008060808587031215614db1578384fd5b8435614dbc8161557d565b93506020850135614dcc8161557d565b9250604085013591506060850135614de38161559f565b939692955090935050565b60008060408385031215614e00578182fd5b8235614e0b8161557d565b946020939093013593505050565b60008060008060008060c08789031215614e31578182fd5b8635614e3c8161557d565b95506020870135945060408701359350614e5860608801614cc0565b9250614e6660808801614ca9565b9150614e7460a08801614ca9565b90509295509295509295565b600060208284031215614e91578081fd5b815161400c8161559f565b600060208284031215614ead578081fd5b5035919050565b600060208284031215614ec5578081fd5b5051919050565b60008060008060808587031215614ee1578384fd5b8451935060208501516fffffffffffffffffffffffffffffffff81168114614f07578384fd5b6040860151606090960151949790965092505050565b60008060408385031215614f2f578182fd5b505080516020909101519092909150565b600080600060608486031215614f54578081fd5b505081359360208301359350604090920135919050565b600060208284031215614f7c578081fd5b815160ff8116811461400c578182fd5b60008251614f9e818460208701615433565b9190910192915050565b6020808252825182820181905260009190848201906040850190845b81811015614ff657835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101614fc4565b50909695505050505050565b60808101818360005b600481101561502a57815183526020928301929091019060010161500b565b50505092915050565b6020815260008251806020840152615052816040850160208701615433565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b815173ffffffffffffffffffffffffffffffffffffffff168152610160810160208301516150ca602084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060408301516150e1604084018262ffffff169052565b5060608301516150f6606084018260020b9052565b50608083015161510b608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e08301526101008084015181840152506101208084015161515e8285018273ffffffffffffffffffffffffffffffffffffffff169052565b505061014092830151919092015290565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038413811516156151a9576151a961551f565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156151dd576151dd61551f565b50500190565b600082198211156151f6576151f661551f565b500190565b60008261520a5761520a61554e565b500490565b600181815b8085111561526857817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561524e5761524e61551f565b8085161561525b57918102915b93841c9390800290615214565b509250929050565b600061400c83836000826152865750600161400f565b816152935750600061400f565b81600181146152a957600281146152b3576152cf565b600191505061400f565b60ff8411156152c4576152c461551f565b50506001821b61400f565b5060208310610133831016604e8410600b84101617156152f2575081810a61400f565b6152fc838361520f565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561532e5761532e61551f565b029392505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561536e5761536e61551f565b500290565b6000808312837f8000000000000000000000000000000000000000000000000000000000000000018312811516156153ad576153ad61551f565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0183138116156153e1576153e161551f565b50500390565b600073ffffffffffffffffffffffffffffffffffffffff838116908316818110156154145761541461551f565b039392505050565b60008282101561542e5761542e61551f565b500390565b60005b8381101561544e578181015183820152602001615436565b838111156126f25750506000910152565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156154915761549161551f565b5060010190565b6000826154a7576154a761554e565b500690565b60008160020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008114156154e2576154e261551f565b9003919050565b60007f800000000000000000000000000000000000000000000000000000000000000082141561551b5761551b61551f565b0390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114610b8c57600080fd5b8015158114610b8c57600080fdfea2646970667358221220e17be7bd828d49ffb4ba6e76bead5b058d923ddc15f845b4c6febf1e8d1fcaee64736f6c63430008040033000000000000000000000000234d953a9404bf9dbc3b526271d440cd2870bcd20000000000000000000000005180db0237291a6449dda9ed33ad90a38787621c000000000000000000000000853d955acef822db058eb8505911ed77f175b99e0000000000000000000000003432b6a60d23ca0dfca7761b7ab56459d9c964d00000000000000000000000008412ebf45bac1b340bbe8f318b928c466c4e39ca0000000000000000000000001864ca3d47aab98ee78d11fc9dcc5e7badda1c0d000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106103365760003560e01c80637bdfc32a116101b2578063b497d8ca116100f9578063d72da8dc116100a2578063dc6663c71161007c578063dc6663c7146107ef578063e06b421b1461080f578063e97d85a514610822578063f0d2d5a81461082b57600080fd5b8063d72da8dc146107c1578063d989f747146107d4578063d99e4d67146107e757600080fd5b8063c8796572116100d3578063c879657214610778578063c98c05b714610780578063cfb13e651461078857600080fd5b8063b497d8ca1461073c578063bdacb3031461075c578063c221c32a1461076f57600080fd5b80638980f11f1161015b5780638f8e1ed2116101355780638f8e1ed214610722578063a7100f211461072b578063ad7b68fe1461073457600080fd5b80638980f11f146106dc5780638c79d138146106ef5780638da5cb5b1461070257600080fd5b80637e34026e1161018c5780637e34026e14610694578063819d4cc6146106a95780638292fd84146106bc57600080fd5b80637bdfc32a146106595780637ccc0078146106615780637ce6112b1461067457600080fd5b806337508b06116102815780634755abbb1161022a5780635e71823b116102045780635e71823b14610531578063722f7a9f14610539578063748e37f41461064957806379ba50971461065157600080fd5b80634755abbb146104de5780634bb4a730146104fe57806353a47bb71461051157600080fd5b8063403f37311161025b578063403f3731146104ae57806341401da9146104c1578063467b96e0146104d657600080fd5b806337508b061461045f578063377a18c7146104925780633ed4e55c146104a557600080fd5b806323fbd1c7116102e357806332b82dbb116102bd57806332b82dbb1461042357806336082ac01461044357806336d5a76d1461044c57600080fd5b806323fbd1c7146103df57806329988e2c146103f25780632e1a7d4d146103fb57600080fd5b80631627540c116103145780631627540c1461037f57806317284c94146103925780631baf16821461039a57600080fd5b806302825d111461033b57806303a76bff1461035057806314af33801461036c575b600080fd5b61034e610349366004614e9c565b61083e565b005b61035960185481565b6040519081526020015b60405180910390f35b61034e61037a366004614e9c565b610a67565b61034e61038d366004614cd3565b610b8f565b610359610caf565b600f546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610363565b61034e6103ed366004614e9c565b610db3565b61035960175481565b61040e610409366004614e9c565b610f0c565b60408051928352602083019190915201610363565b600a546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b61035960165481565b61034e61045a366004614e9c565b611641565b61048261046d366004614cd3565b60046020526000908152604090205460ff1681565b6040519015158152602001610363565b61034e6104a0366004614e9c565b611b7c565b610359600b5481565b61034e6104bc366004614cd3565b612072565b6104c96121d9565b6040516103639190614fa8565b610359612248565b600c546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b6103ba61050c366004614e9c565b61242d565b6001546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b600254610359565b6105e5610547366004614e9c565b600560205260009081526040902080546001820154600292830154919273ffffffffffffffffffffffffffffffffffffffff909116916fffffffffffffffffffffffffffffffff8116917001000000000000000000000000000000008204810b91730100000000000000000000000000000000000000810490910b90760100000000000000000000000000000000000000000000900462ffffff1686565b6040805196875273ffffffffffffffffffffffffffffffffffffffff90951660208701526fffffffffffffffffffffffffffffffff90931693850193909352600290810b60608501529190910b608083015262ffffff1660a082015260c001610363565b610359612464565b61034e612486565b61034e6125d1565b61034e61066f366004614d5c565b6126f8565b600e546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b61069c61280e565b6040516103639190615002565b61034e6106b7366004614dee565b6128f3565b6011546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b61034e6106ea366004614dee565b612a7d565b61034e6106fd366004614d9c565b612b91565b6000546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b61035960125481565b61035960135481565b610359612cf2565b6010546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b61034e61076a366004614cd3565b612d04565b61035960145481565b61034e612e6b565b610359613154565b61079b610796366004614e19565b613176565b604080519283526fffffffffffffffffffffffffffffffff909116602083015201610363565b61034e6107cf366004614f40565b613766565b6105e56107e2366004614e9c565b613817565b6103596138c5565b600d546103ba9073ffffffffffffffffffffffffffffffffffffffff1681565b61035961081d366004614cef565b613aca565b61035960155481565b61034e610839366004614cd3565b613cec565b600d5473ffffffffffffffffffffffffffffffffffffffff1633148061087b575060005473ffffffffffffffffffffffffffffffffffffffff1633145b8061089d5750600e5473ffffffffffffffffffffffffffffffffffffffff1633145b61092e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4e6f74206f776e65722c2074696d656c6f636b2c206f7220637573746f64696160448201527f6e0000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6007546040517f095ea7b30000000000000000000000000000000000000000000000000000000081523060048201526024810183905273ffffffffffffffffffffffffffffffffffffffff9091169063095ea7b390604401602060405180830381600087803b1580156109a057600080fd5b505af11580156109b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d89190614e80565b506007546040517fa8a778ae0000000000000000000000000000000000000000000000000000000081523060048201526024810183905273ffffffffffffffffffffffffffffffffffffffff9091169063a8a778ae906044015b600060405180830381600087803b158015610a4c57600080fd5b505af1158015610a60573d6000803e3d6000fd5b5050505050565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480610aa4575060005473ffffffffffffffffffffffffffffffffffffffff1633145b80610ac65750600e5473ffffffffffffffffffffffffffffffffffffffff1633145b610b52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4e6f74206f776e65722c2074696d656c6f636b2c206f7220637573746f64696160448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152608401610925565b601454610b5f9082614015565b601455600954600854610b8c9173ffffffffffffffffffffffffffffffffffffffff90811691168361408e565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726660448201527f6f726d207468697320616374696f6e00000000000000000000000000000000006064820152608401610925565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229060200160405180910390a150565b600080610cba61280e565b6020015190506000610ce7610ccd61280e565b60400151610cd961280e565b60005b602002015190614015565b9050610da0620f4240610d9a600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632eb9771b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d5b57600080fd5b505afa158015610d6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d939190614eb4565b84906141f7565b906142ac565b9050610dac8282614015565b9250505090565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480610df0575060005473ffffffffffffffffffffffffffffffffffffffff1633145b80610e125750600e5473ffffffffffffffffffffffffffffffffffffffff1633145b610e9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4e6f74206f776e65722c2074696d656c6f636b2c206f7220637573746f64696160448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152608401610925565b8060186000828254610eb0919061516f565b90915550506006546040517f42966c680000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906342966c6890602401610a32565b600d54600090819073ffffffffffffffffffffffffffffffffffffffff16331480610f4e575060005473ffffffffffffffffffffffffffffffffffffffff1633145b610fb4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b6000838152600560209081526040808320815160c08101835281548152600182015473ffffffffffffffffffffffffffffffffffffffff908116828601526002928301546fffffffffffffffffffffffffffffffff8082168487019081527001000000000000000000000000000000008304860b860b860b6060808701919091527301000000000000000000000000000000000000008404870b870b90960b60808087019190915276010000000000000000000000000000000000000000000090930462ffffff1660a080870191909152875190810188528c815290518216978101978852808701898152958101988952637d7c549292810192835260105496517f0c49ccbe0000000000000000000000000000000000000000000000000000000081528151600482015297519091166024880152935160448701529551606486015294516084850152939092911690630c49ccbe9060a4016040805180830381600087803b15801561112657600080fd5b505af115801561113a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115e9190614f1d565b50506010546040805160808101825287815230602082019081526fffffffffffffffffffffffffffffffff8284018181526060840182815294517ffc6f786500000000000000000000000000000000000000000000000000000000815293516004850152915173ffffffffffffffffffffffffffffffffffffffff9081166024850152915181166044840152925190921660648201526000928392169063fc6f7865906084016040805180830381600087803b15801561121d57600080fd5b505af1158015611231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112559190614f1d565b60008981526005602052604081208181556001810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905560020180547fffffffffffffff0000000000000000000000000000000000000000000000000016905591935091505b600254811015611634578760028281548110611304577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060030201600001541415611622576002805461132c9060019061541c565b81548110611363577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000209060030201600282815481106113ab577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020909120825460039092020190815560018083015490820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556002918201805491830180547fffffffffffffffffffffffffffffffff0000000000000000000000000000000081166fffffffffffffffffffffffffffffffff9094169384178255825470010000000000000000000000000000000090819004860b860b62ffffff9081169091027fffffffffffffffffffffffffff0000000000000000000000000000000000000090921690941717808255825473010000000000000000000000000000000000000090819004860b860b8516027fffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffff8216811783559254760100000000000000000000000000000000000000000000908190049094169093027fffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffff000000000000ffffffffffffffffffffffffffffffffffffff90931692909217179055805480611596577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60008281526020812060037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909301928302019081556001810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905560020180547fffffffffffffff0000000000000000000000000000000000000000000000000016905590555b8061162c8161545f565b9150506112bf565b5090945092505050915091565b600d5473ffffffffffffffffffffffffffffffffffffffff1633148061167e575060005473ffffffffffffffffffffffffffffffffffffffff1633145b6116e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b60006117b6600b54600a6116f89190615270565b610d9a620f4240610d9a6117af600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cb73999f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561176d57600080fd5b505afa158015611781573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a59190614eb4565b620f424090613fca565b87906141f7565b9050600061186b620f4240610d9a600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632eb9771b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561182c57600080fd5b505afa158015611840573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118649190614eb4565b85906141f7565b905061191d600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f7683bbc6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118d857600080fd5b505afa1580156118ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119109190614eb4565b610d9a83620f42406141f7565b90506015546119348261192e613154565b90614015565b111561199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f426f72726f7720636170000000000000000000000000000000000000000000006044820152606401610925565b6013546119a99082614015565b6013556006546040517fb4f56b260000000000000000000000000000000000000000000000000000000081523060048201526024810185905273ffffffffffffffffffffffffffffffffffffffff9091169063b4f56b2690604401600060405180830381600087803b158015611a1e57600080fd5b505af1158015611a32573d6000803e3d6000fd5b50506006546008546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018890529116925063095ea7b39150604401602060405180830381600087803b158015611aac57600080fd5b505af1158015611ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae49190614e80565b506008546040517f7e108af900000000000000000000000000000000000000000000000000000000815260048101859052600060248201819052604482015273ffffffffffffffffffffffffffffffffffffffff90911690637e108af990606401600060405180830381600087803b158015611b5f57600080fd5b505af1158015611b73573d6000803e3d6000fd5b50505050505050565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480611bb9575060005473ffffffffffffffffffffffffffffffffffffffff1633145b611c1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b601254819081611c2d612cf2565b611c37919061516f565b1315611c9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4d696e74206361702072656163686564000000000000000000000000000000006044820152606401610925565b80601754611cad919061516f565b601755601654600654604080517f2eb9771b000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff90921691632eb9771b91600480820192602092909190829003018186803b158015611d1e57600080fd5b505afa158015611d32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d569190614eb4565b11611de3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f436f6c6c61746572616c20726174696f20697320616c726561647920746f6f2060448201527f6c6f7700000000000000000000000000000000000000000000000000000000006064820152608401610925565b600654604080517fd2d97b06000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163d2d97b06916004808301926020929190829003018186803b158015611e4e57600080fd5b505afa158015611e62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e869190614eb4565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ef257600080fd5b505afa158015611f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2a9190614eb4565b90506000611f388286614015565b90506000611f4d82610d9a86620f42406141f7565b90506016548111611fe0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4d696e74696e6720776f756c6420636175736520636f6c6c61746572616c207260448201527f6174696f20746f20626520746f6f206c6f7700000000000000000000000000006064820152608401610925565b6006546040517fb4f56b260000000000000000000000000000000000000000000000000000000081523060048201526024810188905273ffffffffffffffffffffffffffffffffffffffff9091169063b4f56b2690604401600060405180830381600087803b15801561205257600080fd5b505af1158015612066573d6000803e3d6000fd5b50505050505050505050565b600d5473ffffffffffffffffffffffffffffffffffffffff163314806120af575060005473ffffffffffffffffffffffffffffffffffffffff1633145b612115576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b73ffffffffffffffffffffffffffffffffffffffff8116612192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f437573746f6469616e20616464726573732063616e6e6f7420626520300000006044820152606401610925565b600e80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6060600380548060200260200160405190810160405280929190818152602001828054801561223e57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311612213575b5050505050905090565b600080805b60035481101561242757600060038281548110612293577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600061234e8273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561230b57600080fd5b505afa15801561231f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123439190614f6b565b60129060ff16613fca565b9050600061240361236083600a615270565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8616906370a082319060240160206040518083038186803b1580156123c557600080fd5b505afa1580156123d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123fd9190614eb4565b906141f7565b905061240f8582614015565b9450505050808061241f9061545f565b91505061224d565b50919050565b6003818154811061243d57600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b600061246e612cf2565b61247661280e565b516124819190615373565b905090565b60015473ffffffffffffffffffffffffffffffffffffffff16331461252d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7560448201527f2063616e20616363657074206f776e65727368697000000000000000000000006064820152608401610925565b6000546001546040805173ffffffffffffffffffffffffffffffffffffffff93841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b600d5473ffffffffffffffffffffffffffffffffffffffff1633148061260e575060005473ffffffffffffffffffffffffffffffffffffffff1633145b612674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312ace5a26040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156126de57600080fd5b505af11580156126f2573d6000803e3d6000fd5b50505050565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480612735575060005473ffffffffffffffffffffffffffffffffffffffff1633145b61279b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b600c805473ffffffffffffffffffffffffffffffffffffffff9485167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216811790925560088054821690921790915560098054939094169281168317909355600a8054909316909117909155600b55565b612816614c8b565b6006546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a082319060240160206040518083038186803b15801561287f57600080fd5b505afa158015612893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128b79190614eb4565b81526128c1612248565b60208201526128ce6138c5565b6040820181905260208201516128eb919061192e90846000610cdc565b606082015290565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480612930575060005473ffffffffffffffffffffffffffffffffffffffff1633145b612996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b600e546040517f42842e0e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff918216602482015260448101839052908316906342842e0e90606401600060405180830381600087803b158015612a1057600080fd5b505af1158015612a24573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff86168152602081018590527f57519b6a0997d7d44511836bcee0a36871aa79d445816f6c464abb0cd9d3f3e893500190505b60405180910390a15050565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480612aba575060005473ffffffffffffffffffffffffffffffffffffffff1633145b612b20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b600e54612b4590839073ffffffffffffffffffffffffffffffffffffffff168361408e565b6040805173ffffffffffffffffffffffffffffffffffffffff84168152602081018390527f55350610fe57096d8c0ffa30beede987326bccfcb0b4415804164d0dd50ce8b19101612a71565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480612bce575060005473ffffffffffffffffffffffffffffffffffffffff1633145b612c34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b8015612c4a57612c458385846142ee565b6126f2565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301526024820184905284169063095ea7b390604401602060405180830381600087803b158015612cba57600080fd5b505af1158015612cce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a609190614e80565b60006018546017546124819190615373565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480612d41575060005473ffffffffffffffffffffffffffffffffffffffff1633145b612da7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b73ffffffffffffffffffffffffffffffffffffffff8116612e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f54696d656c6f636b20616464726573732063616e6e6f742062652030000000006044820152606401610925565b600d80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480612ea8575060005473ffffffffffffffffffffffffffffffffffffffff1633145b80612eca5750600e5473ffffffffffffffffffffffffffffffffffffffff1633145b612f56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4e6f74206f776e65722c2074696d656c6f636b2c206f7220637573746f64696160448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152608401610925565b60005b600254811015610b8c57600060028281548110612f9f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020918290206040805160c08101825260039390930290910180548352600181015473ffffffffffffffffffffffffffffffffffffffff908116848601526002918201546fffffffffffffffffffffffffffffffff808216868601527001000000000000000000000000000000008204840b840b840b6060808801919091527301000000000000000000000000000000000000008304850b850b90940b60808088019190915276010000000000000000000000000000000000000000000090920462ffffff1660a08701528451918201855285518252600e54831696820196875281850181815293820181815260105495517ffc6f786500000000000000000000000000000000000000000000000000000000815283516004820152975184166024890152935181166044880152925190921660648601529294509291169063fc6f7865906084016040805180830381600087803b15801561310557600080fd5b505af1158015613119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313d9190614f1d565b50505050808061314c9061545f565b915050612f59565b6000601454601354106131705760145460135461248191613fca565b50600090565b600d54600090819073ffffffffffffffffffffffffffffffffffffffff163314806131b8575060005473ffffffffffffffffffffffffffffffffffffffff1633145b61321e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b6040805161016081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081019190915260065473ffffffffffffffffffffffffffffffffffffffff908116908a16101561331d5750604080516101608101825273ffffffffffffffffffffffffffffffffffffffff808b16825260065416602082015262ffffff871691810191909152600285810b606083015284900b608082015260a0810188905260c08101879052600060e0820181905261010082015230610120820152637d7c549261014082015261339c565b50604080516101608101825260065473ffffffffffffffffffffffffffffffffffffffff90811682528a16602082015262ffffff871691810191909152600285810b606083015284900b608082015260a0810187905260c08101889052600060e0820181905261010082015230610120820152637d7c54926101408201525b6010546133c1908a9073ffffffffffffffffffffffffffffffffffffffff168a6142ee565b6006546010546133eb9173ffffffffffffffffffffffffffffffffffffffff9081169116896142ee565b6010546040517f88316456000000000000000000000000000000000000000000000000000000008152600091829173ffffffffffffffffffffffffffffffffffffffff90911690638831645690613446908690600401615084565b608060405180830381600087803b15801561346057600080fd5b505af1158015613474573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134989190614ecc565b50509150915060006040518060c001604052808481526020018d73ffffffffffffffffffffffffffffffffffffffff168152602001836fffffffffffffffffffffffffffffffff1681526020018960020b81526020018860020b81526020018a62ffffff16815250905080600560008581526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a81548162ffffff021916908360020b62ffffff16021790555060808201518160020160136101000a81548162ffffff021916908360020b62ffffff16021790555060a08201518160020160166101000a81548162ffffff021916908362ffffff16021790555090505060028190806001815401808255809150506001900390600052602060002090600302016000909190919091506000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160106101000a81548162ffffff021916908360020b62ffffff16021790555060808201518160020160136101000a81548162ffffff021916908360020b62ffffff16021790555060a08201518160020160166101000a81548162ffffff021916908362ffffff160217905550505082829550955050505050965096945050505050565b600d5473ffffffffffffffffffffffffffffffffffffffff163314806137a3575060005473ffffffffffffffffffffffffffffffffffffffff1633145b613809576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b601692909255601255601555565b6002818154811061382757600080fd5b600091825260209091206003909102018054600182015460029283015491935073ffffffffffffffffffffffffffffffffffffffff16916fffffffffffffffffffffffffffffffff8216917001000000000000000000000000000000008104820b917301000000000000000000000000000000000000008204900b90760100000000000000000000000000000000000000000000900462ffffff1686565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101829052819060005b600254811015613ac2576002818154811061393f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60009182526020918290206040805160c08101825260039390930290910180548352600181015473ffffffffffffffffffffffffffffffffffffffff16938301939093526002928301546fffffffffffffffffffffffffffffffff81169183018290527001000000000000000000000000000000008104840b840b840b60608401527301000000000000000000000000000000000000008104840b840b90930b608083015276010000000000000000000000000000000000000000000090920462ffffff1660a082015292508015613aaf576000613a208460600151614457565b90506000613a318560800151614457565b905073853d955acef822db058eb8505911ed77f175b99e73ffffffffffffffffffffffffffffffffffffffff16856020015173ffffffffffffffffffffffffffffffffffffffff161115613a9b57613a94613a8d8383866148f1565b8790614015565b9550613aac565b613aa9613a8d8383866149b8565b95505b50505b5080613aba8161545f565b9150506138fb565b509092915050565b600d5460009073ffffffffffffffffffffffffffffffffffffffff16331480613b0a575060005473ffffffffffffffffffffffffffffffffffffffff1633145b613b70576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b604080516101008101825273ffffffffffffffffffffffffffffffffffffffff808a168252888116602083015262ffffff881692820192909252306060820152637d7c5492608082015260a0810186905260c0810185905283821660e08201526011549091613be2918a9116876142ee565b601154604080517f414bf389000000000000000000000000000000000000000000000000000000008152835173ffffffffffffffffffffffffffffffffffffffff90811660048301526020850151811660248301529184015162ffffff1660448201526060840151821660648201526080840151608482015260a084015160a482015260c084015160c482015260e0840151821660e4820152600092919091169063414bf3899061010401602060405180830381600087803b158015613ca757600080fd5b505af1158015613cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cdf9190614eb4565b9998505050505050505050565b600d5473ffffffffffffffffffffffffffffffffffffffff16331480613d29575060005473ffffffffffffffffffffffffffffffffffffffff1633145b613d8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f74206f776e6572206f722074696d656c6f636b00000000000000000000006044820152606401610925565b73ffffffffffffffffffffffffffffffffffffffff8116613e0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5a65726f206164647265737320646574656374656400000000000000000000006044820152606401610925565b60065473ffffffffffffffffffffffffffffffffffffffff82811691161415613e91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f46524158206973206e6f7420636f6c6c61746572616c000000000000000000006044820152606401610925565b73ffffffffffffffffffffffffffffffffffffffff811660009081526004602052604090205460ff1615613f21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4164647265737320616c726561647920657869737473000000000000000000006044820152606401610925565b73ffffffffffffffffffffffffffffffffffffffff16600081815260046020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091556003805491820181559091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b600061400c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614a3b565b90505b92915050565b60008061402283856151e3565b90508381101561400c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610925565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916141259190614f8c565b6000604051808303816000865af19150503d8060008114614162576040519150601f19603f3d011682016040523d82523d6000602084013e614167565b606091505b50915091508180156141915750805115806141915750808060200190518101906141919190614e80565b610a60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c4544006044820152606401610925565b6000826142065750600061400f565b60006142128385615336565b90508261421f85836151fb565b1461400c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610925565b600061400c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614a8f565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b30000000000000000000000000000000000000000000000000000000017905291516000928392908716916143859190614f8c565b6000604051808303816000865af19150503d80600081146143c2576040519150601f19603f3d011682016040523d82523d6000602084013e6143c7565b606091505b50915091508180156143f15750805115806143f15750808060200190518101906143f19190614e80565b610a60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f5472616e7366657248656c7065723a20415050524f56455f4641494c454400006044820152606401610925565b60008060008360020b1261446e578260020b61447b565b8260020b61447b906154e9565b90506144a67ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276186154ac565b60020b811315614512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152606401610925565b60006001821661453357700100000000000000000000000000000000614545565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561458457608061457f826ffff97272373d413259a46990580e213a615336565b901c90505b60048216156145ae5760806145a9826ffff2e50f5f656932ef12357cf3c7fdcc615336565b901c90505b60088216156145d85760806145d3826fffe5caca7e10e4e61c3624eaa0941cd0615336565b901c90505b60108216156146025760806145fd826fffcb9843d60f6159c9db58835c926644615336565b901c90505b602082161561462c576080614627826fff973b41fa98c081472e6896dfb254c0615336565b901c90505b6040821615614656576080614651826fff2ea16466c96a3843ec78b326b52861615336565b901c90505b608082161561468057608061467b826ffe5dee046a99a2a811c461f1969c3053615336565b901c90505b6101008216156146ab5760806146a6826ffcbe86c7900a88aedcffc83b479aa3a4615336565b901c90505b6102008216156146d65760806146d1826ff987a7253ac413176f2b074cf7815e54615336565b901c90505b6104008216156147015760806146fc826ff3392b0822b70005940c7a398e4b70f3615336565b901c90505b61080082161561472c576080614727826fe7159475a2c29b7443b29c7fa6e889d9615336565b901c90505b611000821615614757576080614752826fd097f3bdfd2022b8845ad8f792aa5825615336565b901c90505b61200082161561478257608061477d826fa9f746462d870fdf8a65dc1f90e061e5615336565b901c90505b6140008216156147ad5760806147a8826f70d869a156d2a1b890bb3df62baf32f7615336565b901c90505b6180008216156147d85760806147d3826f31be135f97d08fd981231505542fcfa6615336565b901c90505b620100008216156148045760806147ff826f09aa508b5b7a84e1c677de54f3e99bc9615336565b901c90505b6202000082161561482f57608061482a826e5d6af8dedb81196699c329225ee604615336565b901c90505b62040000821615614859576080614854826d2216e584f5fa1ea926041bedfe98615336565b901c90505b6208000082161561488157608061487c826b048a170391f7dc42444e8fa2615336565b901c90505b60008460020b13156148ba576148b7817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6151fb565b90505b6148c964010000000082615498565b156148d55760016148d8565b60005b6148e99060ff16602083901c6151e3565b949350505050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16111561492b579192915b73ffffffffffffffffffffffffffffffffffffffff84166149a47bffffffffffffffffffffffffffffffff000000000000000000000000606085901b1661497287876153e7565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16614ad7565b6149ae91906151fb565b90505b9392505050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156149f2579192915b6149ae6fffffffffffffffffffffffffffffffff8316614a1286866153e7565b73ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000614ad7565b60008184841115614a79576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109259190615033565b506000614a86848661541c565b95945050505050565b60008183614aca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109259190615033565b506000614a8684866151fb565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8587098587029250828110838203039150508060001415614b2f5760008411614b2457600080fd5b5082900490506149b1565b808411614b3b57600080fd5b600084868809808403938111909203919050600085614b7a817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61541c565b614b859060016151e3565b16958690049593849004936000819003046001019050614ba58184615336565b909317926000614bb6876003615336565b6002189050614bc58188615336565b614bd090600261541c565b614bda9082615336565b9050614be68188615336565b614bf190600261541c565b614bfb9082615336565b9050614c078188615336565b614c1290600261541c565b614c1c9082615336565b9050614c288188615336565b614c3390600261541c565b614c3d9082615336565b9050614c498188615336565b614c5490600261541c565b614c5e9082615336565b9050614c6a8188615336565b614c7590600261541c565b614c7f9082615336565b9050613cdf8186615336565b60405180608001604052806004906020820280368337509192915050565b8035600281900b8114614cbb57600080fd5b919050565b803562ffffff81168114614cbb57600080fd5b600060208284031215614ce4578081fd5b813561400c8161557d565b60008060008060008060c08789031215614d07578182fd5b8635614d128161557d565b95506020870135614d228161557d565b9450614d3060408801614cc0565b9350606087013592506080870135915060a0870135614d4e8161557d565b809150509295509295509295565b600080600060608486031215614d70578283fd5b8335614d7b8161557d565b92506020840135614d8b8161557d565b929592945050506040919091013590565b60008060008060808587031215614db1578384fd5b8435614dbc8161557d565b93506020850135614dcc8161557d565b9250604085013591506060850135614de38161559f565b939692955090935050565b60008060408385031215614e00578182fd5b8235614e0b8161557d565b946020939093013593505050565b60008060008060008060c08789031215614e31578182fd5b8635614e3c8161557d565b95506020870135945060408701359350614e5860608801614cc0565b9250614e6660808801614ca9565b9150614e7460a08801614ca9565b90509295509295509295565b600060208284031215614e91578081fd5b815161400c8161559f565b600060208284031215614ead578081fd5b5035919050565b600060208284031215614ec5578081fd5b5051919050565b60008060008060808587031215614ee1578384fd5b8451935060208501516fffffffffffffffffffffffffffffffff81168114614f07578384fd5b6040860151606090960151949790965092505050565b60008060408385031215614f2f578182fd5b505080516020909101519092909150565b600080600060608486031215614f54578081fd5b505081359360208301359350604090920135919050565b600060208284031215614f7c578081fd5b815160ff8116811461400c578182fd5b60008251614f9e818460208701615433565b9190910192915050565b6020808252825182820181905260009190848201906040850190845b81811015614ff657835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101614fc4565b50909695505050505050565b60808101818360005b600481101561502a57815183526020928301929091019060010161500b565b50505092915050565b6020815260008251806020840152615052816040850160208701615433565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b815173ffffffffffffffffffffffffffffffffffffffff168152610160810160208301516150ca602084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060408301516150e1604084018262ffffff169052565b5060608301516150f6606084018260020b9052565b50608083015161510b608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e08301526101008084015181840152506101208084015161515e8285018273ffffffffffffffffffffffffffffffffffffffff169052565b505061014092830151919092015290565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038413811516156151a9576151a961551f565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156151dd576151dd61551f565b50500190565b600082198211156151f6576151f661551f565b500190565b60008261520a5761520a61554e565b500490565b600181815b8085111561526857817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561524e5761524e61551f565b8085161561525b57918102915b93841c9390800290615214565b509250929050565b600061400c83836000826152865750600161400f565b816152935750600061400f565b81600181146152a957600281146152b3576152cf565b600191505061400f565b60ff8411156152c4576152c461551f565b50506001821b61400f565b5060208310610133831016604e8410600b84101617156152f2575081810a61400f565b6152fc838361520f565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561532e5761532e61551f565b029392505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561536e5761536e61551f565b500290565b6000808312837f8000000000000000000000000000000000000000000000000000000000000000018312811516156153ad576153ad61551f565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0183138116156153e1576153e161551f565b50500390565b600073ffffffffffffffffffffffffffffffffffffffff838116908316818110156154145761541461551f565b039392505050565b60008282101561542e5761542e61551f565b500390565b60005b8381101561544e578181015183820152602001615436565b838111156126f25750506000910152565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156154915761549161551f565b5060010190565b6000826154a7576154a761554e565b500690565b60008160020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008114156154e2576154e261551f565b9003919050565b60007f800000000000000000000000000000000000000000000000000000000000000082141561551b5761551b61551f565b0390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff81168114610b8c57600080fd5b8015158114610b8c57600080fdfea2646970667358221220e17be7bd828d49ffb4ba6e76bead5b058d923ddc15f845b4c6febf1e8d1fcaee64736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000234d953a9404bf9dbc3b526271d440cd2870bcd20000000000000000000000005180db0237291a6449dda9ed33ad90a38787621c000000000000000000000000853d955acef822db058eb8505911ed77f175b99e0000000000000000000000003432b6a60d23ca0dfca7761b7ab56459d9c964d00000000000000000000000008412ebf45bac1b340bbe8f318b928c466c4e39ca0000000000000000000000001864ca3d47aab98ee78d11fc9dcc5e7badda1c0d000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f984000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564

-----Decoded View---------------
Arg [0] : _creator_address (address): 0x234D953a9404Bf9DbC3b526271d440cD2870bCd2
Arg [1] : _custodian_address (address): 0x5180db0237291A6449DdA9ed33aD90a38787621c
Arg [2] : _frax_contract_address (address): 0x853d955aCEf822Db058eb8505911ED77F175b99e
Arg [3] : _fxs_contract_address (address): 0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0
Arg [4] : _timelock_address (address): 0x8412ebf45bAC1B340BbE8F318b928C466c4E39CA
Arg [5] : _pool_address (address): 0x1864Ca3d47AaB98Ee78D11fc9DCC5E7bADdA1c0d
Arg [6] : _pool_collateral_address (address): 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Arg [7] : _univ3_factory_address (address): 0x1F98431c8aD98523631AE4a59f267346ea31F984
Arg [8] : _univ3_positions_address (address): 0xC36442b4a4522E871399CD717aBDD847Ab11FE88
Arg [9] : _univ3_router_address (address): 0xE592427A0AEce92De3Edee1F18E0157C05861564

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 000000000000000000000000234d953a9404bf9dbc3b526271d440cd2870bcd2
Arg [1] : 0000000000000000000000005180db0237291a6449dda9ed33ad90a38787621c
Arg [2] : 000000000000000000000000853d955acef822db058eb8505911ed77f175b99e
Arg [3] : 0000000000000000000000003432b6a60d23ca0dfca7761b7ab56459d9c964d0
Arg [4] : 0000000000000000000000008412ebf45bac1b340bbe8f318b928c466c4e39ca
Arg [5] : 0000000000000000000000001864ca3d47aab98ee78d11fc9dcc5e7badda1c0d
Arg [6] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [7] : 0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f984
Arg [8] : 000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88
Arg [9] : 000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564

🤖 Code Reader

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

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.