ETH Price: $2,476.24 (-1.28%)

Token

Mozaic LPToken (mozLP)
 

Overview

Max Total Supply

517,607.219288 mozLP

Holders

517

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Filtered by Token Holder
Mozaic Finance: Hercules Arb Vault
Balance
0 mozLP

Value
$0.00
0x8bfed25d58d4c38a3a9bca1ac45bcfd866a3a88c
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Name

MozaicLP

Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled
Yes with 1000 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 Security Audit

Contract ABI
API
[{"inputs":[{"internalType":"address","name":"_layerZeroEndpoint","type":"address"},{"internalType":"uint8","name":"_sharedDecimals","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_hash","type":"bytes32"}],"name":"CallOFTReceivedSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"_payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"_reason","type":"bytes"}],"name":"MessageFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"}],"name":"NonContractAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ReceiveFromChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"_nonce","type":"uint64"},{"indexed":false,"internalType":"bytes32","name":"_payloadHash","type":"bytes32"}],"name":"RetryMessageSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"SendToChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"_type","type":"uint16"},{"indexed":false,"internalType":"uint256","name":"_minDstGas","type":"uint256"}],"name":"SetMinDstGas","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"precrime","type":"address"}],"name":"SetPrecrime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_path","type":"bytes"}],"name":"SetTrustedRemote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"SetTrustedRemoteAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_useCustomAdapterParams","type":"bool"}],"name":"SetUseCustomAdapterParams","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEFAULT_PAYLOAD_SIZE_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NO_EXTRA_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PT_SEND","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PT_SEND_AND_CALL","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes32","name":"_from","type":"bytes32"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint256","name":"_gasForCall","type":"uint256"}],"name":"callOnOFTReceived","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"creditedPackets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint64","name":"_dstGasForCall","type":"uint64"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendAndCallFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_useZro","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateSendFee","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"uint64","name":"","type":"uint64"}],"name":"failedMessages","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"}],"name":"getTrustedRemoteAddress","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"isTrustedRemote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lzEndpoint","outputs":[{"internalType":"contract ILayerZeroEndpoint","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"lzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"uint16","name":"","type":"uint16"}],"name":"minDstGasLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"nonblockingLzReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"payloadSizeLimitLookup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"precrime","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"uint64","name":"_dstGasForCall","type":"uint64"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"_callParams","type":"tuple"}],"name":"sendAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes32","name":"_toAddress","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"components":[{"internalType":"address payable","name":"refundAddress","type":"address"},{"internalType":"address","name":"zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"adapterParams","type":"bytes"}],"internalType":"struct ICommonOFT.LzCallParams","name":"_callParams","type":"tuple"}],"name":"sendFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint16","name":"_packetType","type":"uint16"},{"internalType":"uint256","name":"_minGas","type":"uint256"}],"name":"setMinDstGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"uint256","name":"_size","type":"uint256"}],"name":"setPayloadSizeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_precrime","type":"address"}],"name":"setPrecrime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_path","type":"bytes"}],"name":"setTrustedRemote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_remoteChainId","type":"uint16"},{"internalType":"bytes","name":"_remoteAddress","type":"bytes"}],"name":"setTrustedRemoteAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_useCustomAdapterParams","type":"bool"}],"name":"setUseCustomAdapterParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"name":"setVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sharedDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"trustedRemoteLookup","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"useCustomAdapterParams","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
60e06040523480156200001157600080fd5b5060405162004e5338038062004e53833981016040819052620000349162000289565b6040518060400160405280600e81526020016d26b7bd30b4b19026282a37b5b2b760911b8152506040518060400160405280600581526020016406d6f7a4c560dc1b815250828483838383818180806200009d620000976200018a60201b60201c565b6200018e565b6001600160a01b0316608052505060ff1660a05250508151620000c890600b906020850190620001e3565b508051620000de90600c906020840190620001e3565b5050506000620000f3620001de60201b60201c565b90508060ff168360ff161115620001605760405162461bcd60e51b815260206004820152602760248201527f4f46543a20736861726564446563696d616c73206d757374206265203c3d20646044820152666563696d616c7360c81b606482015260840160405180910390fd5b6200016c8382620002ee565b6200017990600a62000413565b60c052506200046895505050505050565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600690565b828054620001f1906200042b565b90600052602060002090601f01602090048101928262000215576000855562000260565b82601f106200023057805160ff191683800117855562000260565b8280016001018555821562000260579182015b828111156200026057825182559160200191906001019062000243565b506200026e92915062000272565b5090565b5b808211156200026e576000815560010162000273565b600080604083850312156200029d57600080fd5b82516001600160a01b0381168114620002b557600080fd5b602084015190925060ff81168114620002cd57600080fd5b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8416808210156200030b576200030b620002d8565b90039392505050565b600181815b8085111562000355578160001904821115620003395762000339620002d8565b808516156200034757918102915b93841c939080029062000319565b509250929050565b6000826200036e575060016200040d565b816200037d575060006200040d565b8160018114620003965760028114620003a157620003c1565b60019150506200040d565b60ff841115620003b557620003b5620002d8565b50506001821b6200040d565b5060208310610133831016604e8410600b8410161715620003e6575081810a6200040d565b620003f2838362000314565b8060001904821115620004095762000409620002d8565b0290505b92915050565b60006200042460ff8416836200035d565b9392505050565b600181811c908216806200044057607f821691505b602082108114156200046257634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05161496e620004e560003960008181612eef0152818161330e0152613617015260006106fc0152600081816108f601528181610aec01528181610e6601528181610f3f015281816111a50152818161198c01528181611fb4015281816125ad01528181612ccf01526134c9015261496e6000f3fe60806040526004361061035f5760003560e01c80638cfd8f5c116101c6578063c4461834116100f7578063eaffd49a11610095578063f2fde38b1161006f578063f2fde38b14610a76578063f5ecbdbc14610a96578063fbfa77cf14610ab6578063fc0c546a14610ad657600080fd5b8063eaffd49a14610a1c578063eb8d72b714610a3c578063ed629c5c14610a5c57600080fd5b8063dd62ed3e116100d1578063dd62ed3e14610981578063df2a5b3b146109c7578063e6a20ae6146109e7578063eab45d9c146109fc57600080fd5b8063c446183414610938578063cbed8b9c1461094e578063d1deba1f1461096e57600080fd5b80639f38369a11610164578063a6c3d1651161013e578063a6c3d165146108a4578063a9059cbb146108c4578063b353aaa7146108e4578063baf3292d1461091857600080fd5b80639f38369a14610844578063a457c2d714610864578063a4c51df51461088457600080fd5b8063950c8a74116101a0578063950c8a741461079d57806395d89b41146107bd5780639bdb9812146107d25780639dc29fac1461082457600080fd5b80638cfd8f5c1461071e5780638da5cb5b146107565780639358928b1461078857600080fd5b80633f1f4fa4116102a05780636817031b1161023e578063715018a611610218578063715018a6146106a25780637533d788146106b757806376203b48146106d7578063857749b0146106ea57600080fd5b80636817031b14610639578063695ef6bf1461065957806370a082311461066c57600080fd5b8063447705151161027a57806344770515146105a05780634c42899a146105b55780635b8c41e6146105ca57806366ad5c8a1461061957600080fd5b80633f1f4fa41461053357806340c10f191461056057806342d65a8d1461058057600080fd5b806310ddb1371161030d578063313ce567116102e7578063313ce5671461049c578063365260b4146104be57806339509351146104f35780633d8b38f61461051357600080fd5b806310ddb1371461043d57806318160ddd1461045d57806323b872dd1461047c57600080fd5b806307e0db171161033e57806307e0db17146103dd578063095ea7b3146103fd5780630df374831461041d57600080fd5b80621d35671461036457806301ffc9a71461038657806306fdde03146103bb575b600080fd5b34801561037057600080fd5b5061038461037f366004613b85565b610ae9565b005b34801561039257600080fd5b506103a66103a1366004613c19565b610d31565b60405190151581526020015b60405180910390f35b3480156103c757600080fd5b506103d0610d9a565b6040516103b29190613c9b565b3480156103e957600080fd5b506103846103f8366004613cae565b610e2c565b34801561040957600080fd5b506103a6610418366004613cde565b610ece565b34801561042957600080fd5b50610384610438366004613d0a565b610ee6565b34801561044957600080fd5b50610384610458366004613cae565b610f05565b34801561046957600080fd5b50600a545b6040519081526020016103b2565b34801561048857600080fd5b506103a6610497366004613d26565b610f76565b3480156104a857600080fd5b5060065b60405160ff90911681526020016103b2565b3480156104ca57600080fd5b506104de6104d9366004613d77565b610f9a565b604080519283526020830191909152016103b2565b3480156104ff57600080fd5b506103a661050e366004613cde565b610fef565b34801561051f57600080fd5b506103a661052e366004613ddd565b61102e565b34801561053f57600080fd5b5061046e61054e366004613cae565b60036020526000908152604090205481565b34801561056c57600080fd5b5061038461057b366004613cde565b6110fa565b34801561058c57600080fd5b5061038461059b366004613ddd565b61116d565b3480156105ac57600080fd5b5061046e600081565b3480156105c157600080fd5b506104ac600081565b3480156105d657600080fd5b5061046e6105e5366004613e9f565b6005602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561062557600080fd5b50610384610634366004613b85565b61120c565b34801561064557600080fd5b50610384610654366004613f40565b6112ff565b610384610667366004613f75565b6113a3565b34801561067857600080fd5b5061046e610687366004613f40565b6001600160a01b031660009081526008602052604090205490565b3480156106ae57600080fd5b5061038461140e565b3480156106c357600080fd5b506103d06106d2366004613cae565b611422565b6103846106e5366004613fe9565b6114bc565b3480156106f657600080fd5b506104ac7f000000000000000000000000000000000000000000000000000000000000000081565b34801561072a57600080fd5b5061046e61073936600461409c565b600260209081526000928352604080842090915290825290205481565b34801561076257600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103b2565b34801561079457600080fd5b5061046e61156b565b3480156107a957600080fd5b50600454610770906001600160a01b031681565b3480156107c957600080fd5b506103d061157b565b3480156107de57600080fd5b506103a66107ed366004613e9f565b6007602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205460ff1681565b34801561083057600080fd5b5061038461083f366004613cde565b61158a565b34801561085057600080fd5b506103d061085f366004613cae565b6115f9565b34801561087057600080fd5b506103a661087f366004613cde565b611710565b34801561089057600080fd5b506104de61089f3660046140cf565b6117ba565b3480156108b057600080fd5b506103846108bf366004613ddd565b611849565b3480156108d057600080fd5b506103a66108df366004613cde565b6118dc565b3480156108f057600080fd5b506107707f000000000000000000000000000000000000000000000000000000000000000081565b34801561092457600080fd5b50610384610933366004613f40565b6118ea565b34801561094457600080fd5b5061046e61271081565b34801561095a57600080fd5b50610384610969366004614189565b611954565b61038461097c366004613b85565b6119f7565b34801561098d57600080fd5b5061046e61099c3660046141f8565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156109d357600080fd5b506103846109e2366004614231565b611c45565b3480156109f357600080fd5b506104ac600181565b348015610a0857600080fd5b50610384610a1736600461426d565b611cff565b348015610a2857600080fd5b50610384610a37366004614288565b611d48565b348015610a4857600080fd5b50610384610a57366004613ddd565b611e80565b348015610a6857600080fd5b506006546103a69060ff1681565b348015610a8257600080fd5b50610384610a91366004613f40565b611eda565b348015610aa257600080fd5b506103d0610ab1366004614351565b611f6a565b348015610ac257600080fd5b50600d54610770906001600160a01b031681565b348015610ae257600080fd5b5030610770565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610b665760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff861660009081526001602052604081208054610b849061439e565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb09061439e565b8015610bfd5780601f10610bd257610100808354040283529160200191610bfd565b820191906000526020600020905b815481529060010190602001808311610be057829003601f168201915b50505050509050805186869050148015610c18575060008151115b8015610c40575080516020820120604051610c3690889088906143d3565b6040518091039020145b610cb25760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610b5d565b610d288787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061204392505050565b50505050505050565b60006001600160e01b031982167f1f7ecdf7000000000000000000000000000000000000000000000000000000001480610d9457507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6060600b8054610da99061439e565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd59061439e565b8015610e225780601f10610df757610100808354040283529160200191610e22565b820191906000526020600020905b815481529060010190602001808311610e0557829003601f168201915b5050505050905090565b610e346120d1565b6040517f07e0db1700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b158015610eb357600080fd5b505af1158015610ec7573d6000803e3d6000fd5b5050505050565b600033610edc81858561212b565b5060019392505050565b610eee6120d1565b61ffff909116600090815260036020526040902055565b610f0d6120d1565b6040517f10ddb13700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb13790602401610e99565b600033610f84858285612284565b610f8f858585612316565b506001949350505050565b600080610fe08888888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061252d92505050565b91509150965096945050505050565b3360008181526009602090815260408083206001600160a01b0387168452909152812054909190610edc90829086906110299087906143f9565b61212b565b61ffff83166000908152600160205260408120805482919061104f9061439e565b80601f016020809104026020016040519081016040528092919081815260200182805461107b9061439e565b80156110c85780601f1061109d576101008083540402835291602001916110c8565b820191906000526020600020905b8154815290600101906020018083116110ab57829003601f168201915b5050505050905083836040516110df9291906143d3565b60405180910390208180519060200120149150509392505050565b600d546001600160a01b0316331461115f5760405162461bcd60e51b815260206004820152602260248201527f4f6e6c795661756c743a2063616c6c6572206973206e6f7420746865207661756044820152611b1d60f21b6064820152608401610b5d565b6111698282612648565b5050565b6111756120d1565b6040517f42d65a8d0000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d906111de9086908690869060040161443a565b600060405180830381600087803b1580156111f857600080fd5b505af1158015610d28573d6000803e3d6000fd5b3330146112815760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d75737420626560448201527f204c7a41707000000000000000000000000000000000000000000000000000006064820152608401610b5d565b6112f78686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061272792505050565b505050505050565b6113076120d1565b6001600160a01b038116158015906113285750600d546001600160a01b0316155b6113745760405162461bcd60e51b815260206004820152601660248201527f4552524f523a20496e76616c69642061646472657373000000000000000000006044820152606401610b5d565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6112f7858585856113b76020870187613f40565b6113c76040880160208901613f40565b6113d46040890189614458565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127ae92505050565b6114166120d1565b611420600061289a565b565b6001602052600090815260409020805461143b9061439e565b80601f01602080910402602001604051908101604052809291908181526020018280546114679061439e565b80156114b45780601f10611489576101008083540402835291602001916114b4565b820191906000526020600020905b81548152906001019060200180831161149757829003601f168201915b505050505081565b6115608888888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506115099150506020890189613f40565b61151960408a0160208b01613f40565b61152660408b018b614458565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506128f792505050565b505050505050505050565b6000611576600a5490565b905090565b6060600c8054610da99061439e565b600d546001600160a01b031633146115ef5760405162461bcd60e51b815260206004820152602260248201527f4f6e6c795661756c743a2063616c6c6572206973206e6f7420746865207661756044820152611b1d60f21b6064820152608401610b5d565b61116982826129f8565b61ffff811660009081526001602052604081208054606092919061161c9061439e565b80601f01602080910402602001604051908101604052809291908181526020018280546116489061439e565b80156116955780601f1061166a57610100808354040283529160200191611695565b820191906000526020600020905b81548152906001019060200180831161167857829003601f168201915b505050505090508051600014156116ee5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f72640000006044820152606401610b5d565b611709600060148351611701919061449f565b839190612b7a565b9392505050565b3360008181526009602090815260408083206001600160a01b0387168452909152812054909190838110156117ad5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610b5d565b610f8f828686840361212b565b6000806118378b8b8b8b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b81528e93508d9250908c908c9081908401838280828437600092019190915250612ca292505050565b91509150995099975050505050505050565b6118516120d1565b818130604051602001611866939291906144b6565b60408051601f1981840301815291815261ffff8516600090815260016020908152919020825161189b93919290910190613a00565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce8383836040516118cf9392919061443a565b60405180910390a1505050565b600033610edc818585612316565b6118f26120d1565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b906020015b60405180910390a150565b61195c6120d1565b6040517fcbed8b9c0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c906119c990889088908890889088906004016144dc565b600060405180830381600087803b1580156119e357600080fd5b505af1158015611560573d6000803e3d6000fd5b61ffff86166000908152600560205260408082209051611a1a90889088906143d3565b908152604080516020928190038301902067ffffffffffffffff871660009081529252902054905080611ab55760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201527f61676500000000000000000000000000000000000000000000000000000000006064820152608401610b5d565b808383604051611ac69291906143d3565b604051809103902014611b415760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f6160448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610b5d565b61ffff87166000908152600560205260408082209051611b6490899089906143d3565b908152604080516020928190038301812067ffffffffffffffff8916600090815290845282902093909355601f88018290048202830182019052868252611bfd918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061272792505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051611c34959493929190614515565b60405180910390a150505050505050565b611c4d6120d1565b60008111611c9d5760405162461bcd60e51b815260206004820152601560248201527f4c7a4170703a20696e76616c6964206d696e47617300000000000000000000006044820152606401610b5d565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac0906060016118cf565b611d076120d1565b6006805460ff19168215159081179091556040519081527f1584ad594a70cbe1e6515592e1272a987d922b097ead875069cebe8b40c004a490602001611949565b333014611d975760405162461bcd60e51b815260206004820152601f60248201527f4f4654436f72653a2063616c6c6572206d757374206265204f4654436f7265006044820152606401610b5d565b611da2308686612d6c565b9350846001600160a01b03168a61ffff167fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf86604051611de491815260200190565b60405180910390a36040517f7fcf35da0000000000000000000000000000000000000000000000000000000081526001600160a01b03861690637fcf35da908390611e41908e908e908e908e908e908d908d908d90600401614551565b600060405180830381600088803b158015611e5b57600080fd5b5087f1158015611e6f573d6000803e3d6000fd5b505050505050505050505050505050565b611e886120d1565b61ffff83166000908152600160205260409020611ea6908383613a84565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab8383836040516118cf9392919061443a565b611ee26120d1565b6001600160a01b038116611f5e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610b5d565b611f678161289a565b50565b6040517ff5ecbdbc00000000000000000000000000000000000000000000000000000000815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc9060840160006040518083038186803b158015611ffe57600080fd5b505afa158015612012573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261203a91908101906145ad565b95945050505050565b6000806120bb5a60966366ad5c8a60e01b8989898960405160240161206b949392919061461b565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b03199093169290921790915230929190612dbe565b91509150816112f7576112f78686868685612e49565b6000546001600160a01b031633146114205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b5d565b6001600160a01b0383166121a65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610b5d565b6001600160a01b0382166122225760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610b5d565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03838116600090815260096020908152604080832093861683529290522054600019811461231057818110156123035760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610b5d565b612310848484840361212b565b50505050565b6001600160a01b0383166123925760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610b5d565b6001600160a01b03821661240e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610b5d565b6001600160a01b0383166000908152600860205260409020548181101561249d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610b5d565b6001600160a01b038085166000908152600860205260408082208585039055918516815290812080548492906124d49084906143f9565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161252091815260200190565b60405180910390a3612310565b60008060006125938761253f88612ee7565b6040805160006020820152602181019390935260c09190911b7fffffffffffffffff000000000000000000000000000000000000000000000000166041830152805160298184030181526049909201905290565b60405163040a7bb160e41b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb10906125ea908b90309086908b908b9060040161465a565b604080518083038186803b15801561260157600080fd5b505afa158015612615573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263991906146ac565b92509250509550959350505050565b6001600160a01b03821661269e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610b5d565b80600a60008282546126b091906143f9565b90915550506001600160a01b038216600090815260086020526040812080548392906126dd9084906143f9565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60006127338282612f6e565b905060ff811661274e5761274985858585612fd4565b610ec7565b60ff8116600114156127665761274985858585613064565b60405162461bcd60e51b815260206004820152601c60248201527f4f4654436f72653a20756e6b6e6f776e207061636b65742074797065000000006044820152606401610b5d565b60006127bc87828481613275565b6127c585613306565b5090506127d488888884613346565b9050600081116128265760405162461bcd60e51b815260206004820152601960248201527f4f4654436f72653a20616d6f756e7420746f6f20736d616c6c000000000000006044820152606401610b5d565b60006128358761253f84612ee7565b9050612845888287878734613378565b86896001600160a01b03168961ffff167fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a8560405161288691815260200190565b60405180910390a450979650505050505050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006129108960018467ffffffffffffffff8916613275565b61291987613306565b5090506129288a8a8a84613346565b90506000811161297a5760405162461bcd60e51b815260206004820152601960248201527f4f4654436f72653a20616d6f756e7420746f6f20736d616c6c000000000000006044820152606401610b5d565b6000612991338a61298a85612ee7565b8a8a613545565b90506129a18a8287878734613378565b888b6001600160a01b03168b61ffff167fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a856040516129e291815260200190565b60405180910390a4509998505050505050505050565b6001600160a01b038216612a745760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610b5d565b6001600160a01b03821660009081526008602052604090205481811015612b035760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610b5d565b6001600160a01b03831660009081526008602052604081208383039055600a8054849290612b3290849061449f565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001612277565b505050565b606081612b8881601f6143f9565b1015612bd65760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610b5d565b612be082846143f9565b84511015612c305760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610b5d565b606082158015612c4f5760405191506000825260208201604052612c99565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612c88578051835260209283019201612c70565b5050858452601f01601f1916604052505b50949350505050565b6000806000612cb5338a61298a8b612ee7565b60405163040a7bb160e41b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906340a7bb1090612d0c908d90309086908b908b9060040161465a565b604080518083038186803b158015612d2357600080fd5b505afa158015612d37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5b91906146ac565b925092505097509795505050505050565b600033306001600160a01b03861614801590612d9a5750806001600160a01b0316856001600160a01b031614155b15612daa57612daa858285612284565b612db5858585612316565b50909392505050565b6000606060008060008661ffff1667ffffffffffffffff811115612de457612de4613e30565b6040519080825280601f01601f191660200182016040528015612e0e576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115612e30578692505b828152826000602083013e909890975095505050505050565b8180519060200120600560008761ffff1661ffff16815260200190815260200160002085604051612e7a91906146d0565b90815260408051918290036020908101832067ffffffffffffffff88166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90612ed890879087908790879087906146ec565b60405180910390a15050505050565b600080612f147f000000000000000000000000000000000000000000000000000000000000000084614755565b905067ffffffffffffffff811115610d945760405162461bcd60e51b815260206004820152601a60248201527f4f4654436f72653a20616d6f756e745344206f766572666c6f770000000000006044820152606401610b5d565b6000612f7b8260016143f9565b83511015612fcb5760405162461bcd60e51b815260206004820152601360248201527f746f55696e74385f6f75744f66426f756e6473000000000000000000000000006044820152606401610b5d565b50016001015190565b600080612fe083613586565b90925090506001600160a01b038216612ff95761dead91505b600061300482613610565b9050613011878483613646565b9050826001600160a01b03168761ffff167fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf8360405161305391815260200190565b60405180910390a350505050505050565b600080600080600061307586613659565b945094509450945094506000600760008b61ffff1661ffff168152602001908152602001600020896040516130aa91906146d0565b908152604080516020928190038301902067ffffffffffffffff8b166000908152925281205460ff1691506130de85613610565b90508161314d576130f08b3083613646565b61ffff8c16600090815260076020526040908190209051919250600191613118908d906146d0565b908152604080516020928190038301902067ffffffffffffffff8d16600090815292529020805460ff19169115159190911790555b6001600160a01b0386163b6131a4576040516001600160a01b03871681527f9aedf5fdba8716db3b6705ca00150643309995d4f818a249ed6dde6677e7792d9060200160405180910390a150505050505050612310565b8a8a8a8a8a8a868a60008a6131c3578b67ffffffffffffffff166131c5565b5a5b90506000806131f75a609663eaffd49a60e01b8e8e8e8d8d8d8d8d60405160240161206b989796959493929190614769565b915091508115613250578751602089012060405161ffff8d16907fb8890edbfc1c74692f527444645f95489c3703cc2df42e4a366f5d06fa6cd88490613242908e908e9086906147dc565b60405180910390a25061325d565b61325d8b8b8b8b85612e49565b50505050505050505050505050505050505050505050565b60065460ff16156132915761328c84848484613715565b612310565b8151156123105760405162461bcd60e51b815260206004820152602660248201527f4f4654436f72653a205f61646170746572506172616d73206d7573742062652060448201527f656d7074792e00000000000000000000000000000000000000000000000000006064820152608401610b5d565b6000806133337f00000000000000000000000000000000000000000000000000000000000000008461480b565b905061333f818461449f565b9150915091565b6000336001600160a01b038616811461336457613364868285612284565b61336e86846129f8565b5090949350505050565b61ffff8616600090815260016020526040812080546133969061439e565b80601f01602080910402602001604051908101604052809291908181526020018280546133c29061439e565b801561340f5780601f106133e45761010080835404028352916020019161340f565b820191906000526020600020905b8154815290600101906020018083116133f257829003601f168201915b5050505050905080516000141561348e5760405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201527f61207472757374656420736f75726365000000000000000000000000000000006064820152608401610b5d565b6134998787516137f4565b6040517fc58031000000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c580310090849061350a908b9086908c908c908c908c9060040161481f565b6000604051808303818588803b15801561352357600080fd5b505af1158015613537573d6000803e3d6000fd5b505050505050505050505050565b6060600185856001600160a01b038916858760405160200161356c96959493929190614886565b604051602081830303815290604052905095945050505050565b600080806135948482612f6e565b60ff161480156135a5575082516029145b6135f15760405162461bcd60e51b815260206004820152601860248201527f4f4654436f72653a20696e76616c6964207061796c6f616400000000000000006044820152606401610b5d565b6135fc83600d613862565b91506136098360216138d8565b9050915091565b6000610d947f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8416614919565b60006136528383612648565b5092915050565b60008080606081600161366c8783612f6e565b60ff16146136bc5760405162461bcd60e51b815260206004820152601860248201527f4f4654436f72653a20696e76616c6964207061796c6f616400000000000000006044820152606401610b5d565b6136c786600d613862565b93506136d48660216138d8565b92506136e186602961393e565b94506136ee8660496138d8565b905061370a6051808851613702919061449f565b889190612b7a565b915091939590929450565b6000613720836139a4565b61ffff8087166000908152600260209081526040808320938916835292905290812054919250906137529084906143f9565b9050600081116137a45760405162461bcd60e51b815260206004820152601a60248201527f4c7a4170703a206d696e4761734c696d6974206e6f74207365740000000000006044820152606401610b5d565b808210156112f75760405162461bcd60e51b815260206004820152601b60248201527f4c7a4170703a20676173206c696d697420697320746f6f206c6f7700000000006044820152606401610b5d565b61ffff82166000908152600360205260409020548061381257506127105b80821115612b755760405162461bcd60e51b815260206004820181905260248201527f4c7a4170703a207061796c6f61642073697a6520697320746f6f206c617267656044820152606401610b5d565b600061386f8260146143f9565b835110156138bf5760405162461bcd60e51b815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e647300000000000000000000006044820152606401610b5d565b5001602001516c01000000000000000000000000900490565b60006138e58260086143f9565b835110156139355760405162461bcd60e51b815260206004820152601460248201527f746f55696e7436345f6f75744f66426f756e64730000000000000000000000006044820152606401610b5d565b50016008015190565b600061394b8260206143f9565b8351101561399b5760405162461bcd60e51b815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e647300000000000000000000006044820152606401610b5d565b50016020015190565b60006022825110156139f85760405162461bcd60e51b815260206004820152601c60248201527f4c7a4170703a20696e76616c69642061646170746572506172616d73000000006044820152606401610b5d565b506022015190565b828054613a0c9061439e565b90600052602060002090601f016020900481019282613a2e5760008555613a74565b82601f10613a4757805160ff1916838001178555613a74565b82800160010185558215613a74579182015b82811115613a74578251825591602001919060010190613a59565b50613a80929150613af8565b5090565b828054613a909061439e565b90600052602060002090601f016020900481019282613ab25760008555613a74565b82601f10613acb5782800160ff19823516178555613a74565b82800160010185558215613a74579182015b82811115613a74578235825591602001919060010190613add565b5b80821115613a805760008155600101613af9565b803561ffff81168114613b1f57600080fd5b919050565b60008083601f840112613b3657600080fd5b50813567ffffffffffffffff811115613b4e57600080fd5b602083019150836020828501011115613b6657600080fd5b9250929050565b803567ffffffffffffffff81168114613b1f57600080fd5b60008060008060008060808789031215613b9e57600080fd5b613ba787613b0d565b9550602087013567ffffffffffffffff80821115613bc457600080fd5b613bd08a838b01613b24565b9097509550859150613be460408a01613b6d565b94506060890135915080821115613bfa57600080fd5b50613c0789828a01613b24565b979a9699509497509295939492505050565b600060208284031215613c2b57600080fd5b81356001600160e01b03198116811461170957600080fd5b60005b83811015613c5e578181015183820152602001613c46565b838111156123105750506000910152565b60008151808452613c87816020860160208601613c43565b601f01601f19169290920160200192915050565b6020815260006117096020830184613c6f565b600060208284031215613cc057600080fd5b61170982613b0d565b6001600160a01b0381168114611f6757600080fd5b60008060408385031215613cf157600080fd5b8235613cfc81613cc9565b946020939093013593505050565b60008060408385031215613d1d57600080fd5b613cfc83613b0d565b600080600060608486031215613d3b57600080fd5b8335613d4681613cc9565b92506020840135613d5681613cc9565b929592945050506040919091013590565b80358015158114613b1f57600080fd5b60008060008060008060a08789031215613d9057600080fd5b613d9987613b0d565b95506020870135945060408701359350613db560608801613d67565b9250608087013567ffffffffffffffff811115613dd157600080fd5b613c0789828a01613b24565b600080600060408486031215613df257600080fd5b613dfb84613b0d565b9250602084013567ffffffffffffffff811115613e1757600080fd5b613e2386828701613b24565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613e6f57613e6f613e30565b604052919050565b600067ffffffffffffffff821115613e9157613e91613e30565b50601f01601f191660200190565b600080600060608486031215613eb457600080fd5b613ebd84613b0d565b9250602084013567ffffffffffffffff811115613ed957600080fd5b8401601f81018613613eea57600080fd5b8035613efd613ef882613e77565b613e46565b818152876020838501011115613f1257600080fd5b81602084016020830137600060208383010152809450505050613f3760408501613b6d565b90509250925092565b600060208284031215613f5257600080fd5b813561170981613cc9565b600060608284031215613f6f57600080fd5b50919050565b600080600080600060a08688031215613f8d57600080fd5b8535613f9881613cc9565b9450613fa660208701613b0d565b93506040860135925060608601359150608086013567ffffffffffffffff811115613fd057600080fd5b613fdc88828901613f5d565b9150509295509295909350565b60008060008060008060008060e0898b03121561400557600080fd5b883561401081613cc9565b975061401e60208a01613b0d565b96506040890135955060608901359450608089013567ffffffffffffffff8082111561404957600080fd5b6140558c838d01613b24565b909650945084915061406960a08c01613b6d565b935060c08b013591508082111561407f57600080fd5b5061408c8b828c01613f5d565b9150509295985092959890939650565b600080604083850312156140af57600080fd5b6140b883613b0d565b91506140c660208401613b0d565b90509250929050565b600080600080600080600080600060e08a8c0312156140ed57600080fd5b6140f68a613b0d565b985060208a0135975060408a0135965060608a013567ffffffffffffffff8082111561412157600080fd5b61412d8d838e01613b24565b909850965086915061414160808d01613b6d565b955061414f60a08d01613d67565b945060c08c013591508082111561416557600080fd5b506141728c828d01613b24565b915080935050809150509295985092959850929598565b6000806000806000608086880312156141a157600080fd5b6141aa86613b0d565b94506141b860208701613b0d565b935060408601359250606086013567ffffffffffffffff8111156141db57600080fd5b6141e788828901613b24565b969995985093965092949392505050565b6000806040838503121561420b57600080fd5b823561421681613cc9565b9150602083013561422681613cc9565b809150509250929050565b60008060006060848603121561424657600080fd5b61424f84613b0d565b925061425d60208501613b0d565b9150604084013590509250925092565b60006020828403121561427f57600080fd5b61170982613d67565b6000806000806000806000806000806101008b8d0312156142a857600080fd5b6142b18b613b0d565b995060208b013567ffffffffffffffff808211156142ce57600080fd5b6142da8e838f01613b24565b909b5099508991506142ee60408e01613b6d565b985060608d0135975060808d0135915061430782613cc9565b90955060a08c0135945060c08c0135908082111561432457600080fd5b506143318d828e01613b24565b9150809450508092505060e08b013590509295989b9194979a5092959850565b6000806000806080858703121561436757600080fd5b61437085613b0d565b935061437e60208601613b0d565b9250604085013561438e81613cc9565b9396929550929360600135925050565b600181811c908216806143b257607f821691505b60208210811415613f6f57634e487b7160e01b600052602260045260246000fd5b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561440c5761440c6143e3565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff8416815260406020820152600061203a604083018486614411565b6000808335601e1984360301811261446f57600080fd5b83018035915067ffffffffffffffff82111561448a57600080fd5b602001915036819003821315613b6657600080fd5b6000828210156144b1576144b16143e3565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff80881683528087166020840152508460408301526080606083015261450a608083018486614411565b979650505050505050565b61ffff86168152608060208201526000614533608083018688614411565b67ffffffffffffffff94909416604083015250606001529392505050565b61ffff8916815260c06020820152600061456f60c08301898b614411565b67ffffffffffffffff8816604084015286606084015285608084015282810360a084015261459e818587614411565b9b9a5050505050505050505050565b6000602082840312156145bf57600080fd5b815167ffffffffffffffff8111156145d657600080fd5b8201601f810184136145e757600080fd5b80516145f5613ef882613e77565b81815285602083850101111561460a57600080fd5b61203a826020830160208601613c43565b61ffff851681526080602082015260006146386080830186613c6f565b67ffffffffffffffff85166040840152828103606084015261450a8185613c6f565b61ffff861681526001600160a01b038516602082015260a06040820152600061468660a0830186613c6f565b841515606084015282810360808401526146a08185613c6f565b98975050505050505050565b600080604083850312156146bf57600080fd5b505080516020909101519092909150565b600082516146e2818460208701613c43565b9190910192915050565b61ffff8616815260a06020820152600061470960a0830187613c6f565b67ffffffffffffffff86166040840152828103606084015261472b8186613c6f565b905082810360808401526146a08185613c6f565b634e487b7160e01b600052601260045260246000fd5b6000826147645761476461473f565b500490565b600061010061ffff8b1683528060208401526147878184018b613c6f565b905067ffffffffffffffff891660408401528760608401526001600160a01b03871660808401528560a084015282810360c08401526147c68186613c6f565b9150508260e08301529998505050505050505050565b6060815260006147ef6060830186613c6f565b67ffffffffffffffff9490941660208301525060400152919050565b60008261481a5761481a61473f565b500690565b61ffff8716815260c06020820152600061483c60c0830188613c6f565b828103604084015261484e8188613c6f565b6001600160a01b0387811660608601528616608085015283810360a085015290506148798185613c6f565b9998505050505050505050565b7fff000000000000000000000000000000000000000000000000000000000000008760f81b16815285600182015260007fffffffffffffffff000000000000000000000000000000000000000000000000808760c01b166021840152856029840152808560c01b166049840152508251614907816051850160208701613c43565b91909101605101979650505050505050565b6000816000190483118215151615614933576149336143e3565b50029056fea2646970667358221220d48e16289bf372d813974da3b6b398f8c272f2fd373a844e49bdb2498f57f9f764736f6c634300080900330000000000000000000000003c2269811836af69497e5f486a85d7316753cf620000000000000000000000000000000000000000000000000000000000000006
Deployed Bytecode
0x60806040526004361061035f5760003560e01c80638cfd8f5c116101c6578063c4461834116100f7578063eaffd49a11610095578063f2fde38b1161006f578063f2fde38b14610a76578063f5ecbdbc14610a96578063fbfa77cf14610ab6578063fc0c546a14610ad657600080fd5b8063eaffd49a14610a1c578063eb8d72b714610a3c578063ed629c5c14610a5c57600080fd5b8063dd62ed3e116100d1578063dd62ed3e14610981578063df2a5b3b146109c7578063e6a20ae6146109e7578063eab45d9c146109fc57600080fd5b8063c446183414610938578063cbed8b9c1461094e578063d1deba1f1461096e57600080fd5b80639f38369a11610164578063a6c3d1651161013e578063a6c3d165146108a4578063a9059cbb146108c4578063b353aaa7146108e4578063baf3292d1461091857600080fd5b80639f38369a14610844578063a457c2d714610864578063a4c51df51461088457600080fd5b8063950c8a74116101a0578063950c8a741461079d57806395d89b41146107bd5780639bdb9812146107d25780639dc29fac1461082457600080fd5b80638cfd8f5c1461071e5780638da5cb5b146107565780639358928b1461078857600080fd5b80633f1f4fa4116102a05780636817031b1161023e578063715018a611610218578063715018a6146106a25780637533d788146106b757806376203b48146106d7578063857749b0146106ea57600080fd5b80636817031b14610639578063695ef6bf1461065957806370a082311461066c57600080fd5b8063447705151161027a57806344770515146105a05780634c42899a146105b55780635b8c41e6146105ca57806366ad5c8a1461061957600080fd5b80633f1f4fa41461053357806340c10f191461056057806342d65a8d1461058057600080fd5b806310ddb1371161030d578063313ce567116102e7578063313ce5671461049c578063365260b4146104be57806339509351146104f35780633d8b38f61461051357600080fd5b806310ddb1371461043d57806318160ddd1461045d57806323b872dd1461047c57600080fd5b806307e0db171161033e57806307e0db17146103dd578063095ea7b3146103fd5780630df374831461041d57600080fd5b80621d35671461036457806301ffc9a71461038657806306fdde03146103bb575b600080fd5b34801561037057600080fd5b5061038461037f366004613b85565b610ae9565b005b34801561039257600080fd5b506103a66103a1366004613c19565b610d31565b60405190151581526020015b60405180910390f35b3480156103c757600080fd5b506103d0610d9a565b6040516103b29190613c9b565b3480156103e957600080fd5b506103846103f8366004613cae565b610e2c565b34801561040957600080fd5b506103a6610418366004613cde565b610ece565b34801561042957600080fd5b50610384610438366004613d0a565b610ee6565b34801561044957600080fd5b50610384610458366004613cae565b610f05565b34801561046957600080fd5b50600a545b6040519081526020016103b2565b34801561048857600080fd5b506103a6610497366004613d26565b610f76565b3480156104a857600080fd5b5060065b60405160ff90911681526020016103b2565b3480156104ca57600080fd5b506104de6104d9366004613d77565b610f9a565b604080519283526020830191909152016103b2565b3480156104ff57600080fd5b506103a661050e366004613cde565b610fef565b34801561051f57600080fd5b506103a661052e366004613ddd565b61102e565b34801561053f57600080fd5b5061046e61054e366004613cae565b60036020526000908152604090205481565b34801561056c57600080fd5b5061038461057b366004613cde565b6110fa565b34801561058c57600080fd5b5061038461059b366004613ddd565b61116d565b3480156105ac57600080fd5b5061046e600081565b3480156105c157600080fd5b506104ac600081565b3480156105d657600080fd5b5061046e6105e5366004613e9f565b6005602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561062557600080fd5b50610384610634366004613b85565b61120c565b34801561064557600080fd5b50610384610654366004613f40565b6112ff565b610384610667366004613f75565b6113a3565b34801561067857600080fd5b5061046e610687366004613f40565b6001600160a01b031660009081526008602052604090205490565b3480156106ae57600080fd5b5061038461140e565b3480156106c357600080fd5b506103d06106d2366004613cae565b611422565b6103846106e5366004613fe9565b6114bc565b3480156106f657600080fd5b506104ac7f000000000000000000000000000000000000000000000000000000000000000681565b34801561072a57600080fd5b5061046e61073936600461409c565b600260209081526000928352604080842090915290825290205481565b34801561076257600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103b2565b34801561079457600080fd5b5061046e61156b565b3480156107a957600080fd5b50600454610770906001600160a01b031681565b3480156107c957600080fd5b506103d061157b565b3480156107de57600080fd5b506103a66107ed366004613e9f565b6007602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205460ff1681565b34801561083057600080fd5b5061038461083f366004613cde565b61158a565b34801561085057600080fd5b506103d061085f366004613cae565b6115f9565b34801561087057600080fd5b506103a661087f366004613cde565b611710565b34801561089057600080fd5b506104de61089f3660046140cf565b6117ba565b3480156108b057600080fd5b506103846108bf366004613ddd565b611849565b3480156108d057600080fd5b506103a66108df366004613cde565b6118dc565b3480156108f057600080fd5b506107707f0000000000000000000000003c2269811836af69497e5f486a85d7316753cf6281565b34801561092457600080fd5b50610384610933366004613f40565b6118ea565b34801561094457600080fd5b5061046e61271081565b34801561095a57600080fd5b50610384610969366004614189565b611954565b61038461097c366004613b85565b6119f7565b34801561098d57600080fd5b5061046e61099c3660046141f8565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156109d357600080fd5b506103846109e2366004614231565b611c45565b3480156109f357600080fd5b506104ac600181565b348015610a0857600080fd5b50610384610a1736600461426d565b611cff565b348015610a2857600080fd5b50610384610a37366004614288565b611d48565b348015610a4857600080fd5b50610384610a57366004613ddd565b611e80565b348015610a6857600080fd5b506006546103a69060ff1681565b348015610a8257600080fd5b50610384610a91366004613f40565b611eda565b348015610aa257600080fd5b506103d0610ab1366004614351565b611f6a565b348015610ac257600080fd5b50600d54610770906001600160a01b031681565b348015610ae257600080fd5b5030610770565b337f0000000000000000000000003c2269811836af69497e5f486a85d7316753cf626001600160a01b031614610b665760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff861660009081526001602052604081208054610b849061439e565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb09061439e565b8015610bfd5780601f10610bd257610100808354040283529160200191610bfd565b820191906000526020600020905b815481529060010190602001808311610be057829003601f168201915b50505050509050805186869050148015610c18575060008151115b8015610c40575080516020820120604051610c3690889088906143d3565b6040518091039020145b610cb25760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610b5d565b610d288787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061204392505050565b50505050505050565b60006001600160e01b031982167f1f7ecdf7000000000000000000000000000000000000000000000000000000001480610d9457507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6060600b8054610da99061439e565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd59061439e565b8015610e225780601f10610df757610100808354040283529160200191610e22565b820191906000526020600020905b815481529060010190602001808311610e0557829003601f168201915b5050505050905090565b610e346120d1565b6040517f07e0db1700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f0000000000000000000000003c2269811836af69497e5f486a85d7316753cf626001600160a01b0316906307e0db17906024015b600060405180830381600087803b158015610eb357600080fd5b505af1158015610ec7573d6000803e3d6000fd5b5050505050565b600033610edc81858561212b565b5060019392505050565b610eee6120d1565b61ffff909116600090815260036020526040902055565b610f0d6120d1565b6040517f10ddb13700000000000000000000000000000000000000000000000000000000815261ffff821660048201527f0000000000000000000000003c2269811836af69497e5f486a85d7316753cf626001600160a01b0316906310ddb13790602401610e99565b600033610f84858285612284565b610f8f858585612316565b506001949350505050565b600080610fe08888888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061252d92505050565b91509150965096945050505050565b3360008181526009602090815260408083206001600160a01b0387168452909152812054909190610edc90829086906110299087906143f9565b61212b565b61ffff83166000908152600160205260408120805482919061104f9061439e565b80601f016020809104026020016040519081016040528092919081815260200182805461107b9061439e565b80156110c85780601f1061109d576101008083540402835291602001916110c8565b820191906000526020600020905b8154815290600101906020018083116110ab57829003601f168201915b5050505050905083836040516110df9291906143d3565b60405180910390208180519060200120149150509392505050565b600d546001600160a01b0316331461115f5760405162461bcd60e51b815260206004820152602260248201527f4f6e6c795661756c743a2063616c6c6572206973206e6f7420746865207661756044820152611b1d60f21b6064820152608401610b5d565b6111698282612648565b5050565b6111756120d1565b6040517f42d65a8d0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000003c2269811836af69497e5f486a85d7316753cf6216906342d65a8d906111de9086908690869060040161443a565b600060405180830381600087803b1580156111f857600080fd5b505af1158015610d28573d6000803e3d6000fd5b3330146112815760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d75737420626560448201527f204c7a41707000000000000000000000000000000000000000000000000000006064820152608401610b5d565b6112f78686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f89018190048102820181019092528781528993509150879087908190840183828082843760009201919091525061272792505050565b505050505050565b6113076120d1565b6001600160a01b038116158015906113285750600d546001600160a01b0316155b6113745760405162461bcd60e51b815260206004820152601660248201527f4552524f523a20496e76616c69642061646472657373000000000000000000006044820152606401610b5d565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6112f7858585856113b76020870187613f40565b6113c76040880160208901613f40565b6113d46040890189614458565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127ae92505050565b6114166120d1565b611420600061289a565b565b6001602052600090815260409020805461143b9061439e565b80601f01602080910402602001604051908101604052809291908181526020018280546114679061439e565b80156114b45780601f10611489576101008083540402835291602001916114b4565b820191906000526020600020905b81548152906001019060200180831161149757829003601f168201915b505050505081565b6115608888888888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92506115099150506020890189613f40565b61151960408a0160208b01613f40565b61152660408b018b614458565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506128f792505050565b505050505050505050565b6000611576600a5490565b905090565b6060600c8054610da99061439e565b600d546001600160a01b031633146115ef5760405162461bcd60e51b815260206004820152602260248201527f4f6e6c795661756c743a2063616c6c6572206973206e6f7420746865207661756044820152611b1d60f21b6064820152608401610b5d565b61116982826129f8565b61ffff811660009081526001602052604081208054606092919061161c9061439e565b80601f01602080910402602001604051908101604052809291908181526020018280546116489061439e565b80156116955780601f1061166a57610100808354040283529160200191611695565b820191906000526020600020905b81548152906001019060200180831161167857829003601f168201915b505050505090508051600014156116ee5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f72640000006044820152606401610b5d565b611709600060148351611701919061449f565b839190612b7a565b9392505050565b3360008181526009602090815260408083206001600160a01b0387168452909152812054909190838110156117ad5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610b5d565b610f8f828686840361212b565b6000806118378b8b8b8b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b81528e93508d9250908c908c9081908401838280828437600092019190915250612ca292505050565b91509150995099975050505050505050565b6118516120d1565b818130604051602001611866939291906144b6565b60408051601f1981840301815291815261ffff8516600090815260016020908152919020825161189b93919290910190613a00565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce8383836040516118cf9392919061443a565b60405180910390a1505050565b600033610edc818585612316565b6118f26120d1565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b906020015b60405180910390a150565b61195c6120d1565b6040517fcbed8b9c0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000003c2269811836af69497e5f486a85d7316753cf62169063cbed8b9c906119c990889088908890889088906004016144dc565b600060405180830381600087803b1580156119e357600080fd5b505af1158015611560573d6000803e3d6000fd5b61ffff86166000908152600560205260408082209051611a1a90889088906143d3565b908152604080516020928190038301902067ffffffffffffffff871660009081529252902054905080611ab55760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201527f61676500000000000000000000000000000000000000000000000000000000006064820152608401610b5d565b808383604051611ac69291906143d3565b604051809103902014611b415760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f6160448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610b5d565b61ffff87166000908152600560205260408082209051611b6490899089906143d3565b908152604080516020928190038301812067ffffffffffffffff8916600090815290845282902093909355601f88018290048202830182019052868252611bfd918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a93509150889088908190840183828082843760009201919091525061272792505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e58787878785604051611c34959493929190614515565b60405180910390a150505050505050565b611c4d6120d1565b60008111611c9d5760405162461bcd60e51b815260206004820152601560248201527f4c7a4170703a20696e76616c6964206d696e47617300000000000000000000006044820152606401610b5d565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac0906060016118cf565b611d076120d1565b6006805460ff19168215159081179091556040519081527f1584ad594a70cbe1e6515592e1272a987d922b097ead875069cebe8b40c004a490602001611949565b333014611d975760405162461bcd60e51b815260206004820152601f60248201527f4f4654436f72653a2063616c6c6572206d757374206265204f4654436f7265006044820152606401610b5d565b611da2308686612d6c565b9350846001600160a01b03168a61ffff167fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf86604051611de491815260200190565b60405180910390a36040517f7fcf35da0000000000000000000000000000000000000000000000000000000081526001600160a01b03861690637fcf35da908390611e41908e908e908e908e908e908d908d908d90600401614551565b600060405180830381600088803b158015611e5b57600080fd5b5087f1158015611e6f573d6000803e3d6000fd5b505050505050505050505050505050565b611e886120d1565b61ffff83166000908152600160205260409020611ea6908383613a84565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab8383836040516118cf9392919061443a565b611ee26120d1565b6001600160a01b038116611f5e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610b5d565b611f678161289a565b50565b6040517ff5ecbdbc00000000000000000000000000000000000000000000000000000000815261ffff808616600483015284166024820152306044820152606481018290526060907f0000000000000000000000003c2269811836af69497e5f486a85d7316753cf626001600160a01b03169063f5ecbdbc9060840160006040518083038186803b158015611ffe57600080fd5b505afa158015612012573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261203a91908101906145ad565b95945050505050565b6000806120bb5a60966366ad5c8a60e01b8989898960405160240161206b949392919061461b565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166001600160e01b03199093169290921790915230929190612dbe565b91509150816112f7576112f78686868685612e49565b6000546001600160a01b031633146114205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b5d565b6001600160a01b0383166121a65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610b5d565b6001600160a01b0382166122225760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610b5d565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03838116600090815260096020908152604080832093861683529290522054600019811461231057818110156123035760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610b5d565b612310848484840361212b565b50505050565b6001600160a01b0383166123925760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610b5d565b6001600160a01b03821661240e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610b5d565b6001600160a01b0383166000908152600860205260409020548181101561249d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608401610b5d565b6001600160a01b038085166000908152600860205260408082208585039055918516815290812080548492906124d49084906143f9565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161252091815260200190565b60405180910390a3612310565b60008060006125938761253f88612ee7565b6040805160006020820152602181019390935260c09190911b7fffffffffffffffff000000000000000000000000000000000000000000000000166041830152805160298184030181526049909201905290565b60405163040a7bb160e41b81529091506001600160a01b037f0000000000000000000000003c2269811836af69497e5f486a85d7316753cf6216906340a7bb10906125ea908b90309086908b908b9060040161465a565b604080518083038186803b15801561260157600080fd5b505afa158015612615573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263991906146ac565b92509250509550959350505050565b6001600160a01b03821661269e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610b5d565b80600a60008282546126b091906143f9565b90915550506001600160a01b038216600090815260086020526040812080548392906126dd9084906143f9565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60006127338282612f6e565b905060ff811661274e5761274985858585612fd4565b610ec7565b60ff8116600114156127665761274985858585613064565b60405162461bcd60e51b815260206004820152601c60248201527f4f4654436f72653a20756e6b6e6f776e207061636b65742074797065000000006044820152606401610b5d565b60006127bc87828481613275565b6127c585613306565b5090506127d488888884613346565b9050600081116128265760405162461bcd60e51b815260206004820152601960248201527f4f4654436f72653a20616d6f756e7420746f6f20736d616c6c000000000000006044820152606401610b5d565b60006128358761253f84612ee7565b9050612845888287878734613378565b86896001600160a01b03168961ffff167fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a8560405161288691815260200190565b60405180910390a450979650505050505050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006129108960018467ffffffffffffffff8916613275565b61291987613306565b5090506129288a8a8a84613346565b90506000811161297a5760405162461bcd60e51b815260206004820152601960248201527f4f4654436f72653a20616d6f756e7420746f6f20736d616c6c000000000000006044820152606401610b5d565b6000612991338a61298a85612ee7565b8a8a613545565b90506129a18a8287878734613378565b888b6001600160a01b03168b61ffff167fd81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a856040516129e291815260200190565b60405180910390a4509998505050505050505050565b6001600160a01b038216612a745760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152608401610b5d565b6001600160a01b03821660009081526008602052604090205481811015612b035760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152608401610b5d565b6001600160a01b03831660009081526008602052604081208383039055600a8054849290612b3290849061449f565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001612277565b505050565b606081612b8881601f6143f9565b1015612bd65760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610b5d565b612be082846143f9565b84511015612c305760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610b5d565b606082158015612c4f5760405191506000825260208201604052612c99565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612c88578051835260209283019201612c70565b5050858452601f01601f1916604052505b50949350505050565b6000806000612cb5338a61298a8b612ee7565b60405163040a7bb160e41b81529091506001600160a01b037f0000000000000000000000003c2269811836af69497e5f486a85d7316753cf6216906340a7bb1090612d0c908d90309086908b908b9060040161465a565b604080518083038186803b158015612d2357600080fd5b505afa158015612d37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d5b91906146ac565b925092505097509795505050505050565b600033306001600160a01b03861614801590612d9a5750806001600160a01b0316856001600160a01b031614155b15612daa57612daa858285612284565b612db5858585612316565b50909392505050565b6000606060008060008661ffff1667ffffffffffffffff811115612de457612de4613e30565b6040519080825280601f01601f191660200182016040528015612e0e576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115612e30578692505b828152826000602083013e909890975095505050505050565b8180519060200120600560008761ffff1661ffff16815260200190815260200160002085604051612e7a91906146d0565b90815260408051918290036020908101832067ffffffffffffffff88166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c90612ed890879087908790879087906146ec565b60405180910390a15050505050565b600080612f147f000000000000000000000000000000000000000000000000000000000000000184614755565b905067ffffffffffffffff811115610d945760405162461bcd60e51b815260206004820152601a60248201527f4f4654436f72653a20616d6f756e745344206f766572666c6f770000000000006044820152606401610b5d565b6000612f7b8260016143f9565b83511015612fcb5760405162461bcd60e51b815260206004820152601360248201527f746f55696e74385f6f75744f66426f756e6473000000000000000000000000006044820152606401610b5d565b50016001015190565b600080612fe083613586565b90925090506001600160a01b038216612ff95761dead91505b600061300482613610565b9050613011878483613646565b9050826001600160a01b03168761ffff167fbf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf8360405161305391815260200190565b60405180910390a350505050505050565b600080600080600061307586613659565b945094509450945094506000600760008b61ffff1661ffff168152602001908152602001600020896040516130aa91906146d0565b908152604080516020928190038301902067ffffffffffffffff8b166000908152925281205460ff1691506130de85613610565b90508161314d576130f08b3083613646565b61ffff8c16600090815260076020526040908190209051919250600191613118908d906146d0565b908152604080516020928190038301902067ffffffffffffffff8d16600090815292529020805460ff19169115159190911790555b6001600160a01b0386163b6131a4576040516001600160a01b03871681527f9aedf5fdba8716db3b6705ca00150643309995d4f818a249ed6dde6677e7792d9060200160405180910390a150505050505050612310565b8a8a8a8a8a8a868a60008a6131c3578b67ffffffffffffffff166131c5565b5a5b90506000806131f75a609663eaffd49a60e01b8e8e8e8d8d8d8d8d60405160240161206b989796959493929190614769565b915091508115613250578751602089012060405161ffff8d16907fb8890edbfc1c74692f527444645f95489c3703cc2df42e4a366f5d06fa6cd88490613242908e908e9086906147dc565b60405180910390a25061325d565b61325d8b8b8b8b85612e49565b50505050505050505050505050505050505050505050565b60065460ff16156132915761328c84848484613715565b612310565b8151156123105760405162461bcd60e51b815260206004820152602660248201527f4f4654436f72653a205f61646170746572506172616d73206d7573742062652060448201527f656d7074792e00000000000000000000000000000000000000000000000000006064820152608401610b5d565b6000806133337f00000000000000000000000000000000000000000000000000000000000000018461480b565b905061333f818461449f565b9150915091565b6000336001600160a01b038616811461336457613364868285612284565b61336e86846129f8565b5090949350505050565b61ffff8616600090815260016020526040812080546133969061439e565b80601f01602080910402602001604051908101604052809291908181526020018280546133c29061439e565b801561340f5780601f106133e45761010080835404028352916020019161340f565b820191906000526020600020905b8154815290600101906020018083116133f257829003601f168201915b5050505050905080516000141561348e5760405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201527f61207472757374656420736f75726365000000000000000000000000000000006064820152608401610b5d565b6134998787516137f4565b6040517fc58031000000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000003c2269811836af69497e5f486a85d7316753cf62169063c580310090849061350a908b9086908c908c908c908c9060040161481f565b6000604051808303818588803b15801561352357600080fd5b505af1158015613537573d6000803e3d6000fd5b505050505050505050505050565b6060600185856001600160a01b038916858760405160200161356c96959493929190614886565b604051602081830303815290604052905095945050505050565b600080806135948482612f6e565b60ff161480156135a5575082516029145b6135f15760405162461bcd60e51b815260206004820152601860248201527f4f4654436f72653a20696e76616c6964207061796c6f616400000000000000006044820152606401610b5d565b6135fc83600d613862565b91506136098360216138d8565b9050915091565b6000610d947f000000000000000000000000000000000000000000000000000000000000000167ffffffffffffffff8416614919565b60006136528383612648565b5092915050565b60008080606081600161366c8783612f6e565b60ff16146136bc5760405162461bcd60e51b815260206004820152601860248201527f4f4654436f72653a20696e76616c6964207061796c6f616400000000000000006044820152606401610b5d565b6136c786600d613862565b93506136d48660216138d8565b92506136e186602961393e565b94506136ee8660496138d8565b905061370a6051808851613702919061449f565b889190612b7a565b915091939590929450565b6000613720836139a4565b61ffff8087166000908152600260209081526040808320938916835292905290812054919250906137529084906143f9565b9050600081116137a45760405162461bcd60e51b815260206004820152601a60248201527f4c7a4170703a206d696e4761734c696d6974206e6f74207365740000000000006044820152606401610b5d565b808210156112f75760405162461bcd60e51b815260206004820152601b60248201527f4c7a4170703a20676173206c696d697420697320746f6f206c6f7700000000006044820152606401610b5d565b61ffff82166000908152600360205260409020548061381257506127105b80821115612b755760405162461bcd60e51b815260206004820181905260248201527f4c7a4170703a207061796c6f61642073697a6520697320746f6f206c617267656044820152606401610b5d565b600061386f8260146143f9565b835110156138bf5760405162461bcd60e51b815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e647300000000000000000000006044820152606401610b5d565b5001602001516c01000000000000000000000000900490565b60006138e58260086143f9565b835110156139355760405162461bcd60e51b815260206004820152601460248201527f746f55696e7436345f6f75744f66426f756e64730000000000000000000000006044820152606401610b5d565b50016008015190565b600061394b8260206143f9565b8351101561399b5760405162461bcd60e51b815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e647300000000000000000000006044820152606401610b5d565b50016020015190565b60006022825110156139f85760405162461bcd60e51b815260206004820152601c60248201527f4c7a4170703a20696e76616c69642061646170746572506172616d73000000006044820152606401610b5d565b506022015190565b828054613a0c9061439e565b90600052602060002090601f016020900481019282613a2e5760008555613a74565b82601f10613a4757805160ff1916838001178555613a74565b82800160010185558215613a74579182015b82811115613a74578251825591602001919060010190613a59565b50613a80929150613af8565b5090565b828054613a909061439e565b90600052602060002090601f016020900481019282613ab25760008555613a74565b82601f10613acb5782800160ff19823516178555613a74565b82800160010185558215613a74579182015b82811115613a74578235825591602001919060010190613add565b5b80821115613a805760008155600101613af9565b803561ffff81168114613b1f57600080fd5b919050565b60008083601f840112613b3657600080fd5b50813567ffffffffffffffff811115613b4e57600080fd5b602083019150836020828501011115613b6657600080fd5b9250929050565b803567ffffffffffffffff81168114613b1f57600080fd5b60008060008060008060808789031215613b9e57600080fd5b613ba787613b0d565b9550602087013567ffffffffffffffff80821115613bc457600080fd5b613bd08a838b01613b24565b9097509550859150613be460408a01613b6d565b94506060890135915080821115613bfa57600080fd5b50613c0789828a01613b24565b979a9699509497509295939492505050565b600060208284031215613c2b57600080fd5b81356001600160e01b03198116811461170957600080fd5b60005b83811015613c5e578181015183820152602001613c46565b838111156123105750506000910152565b60008151808452613c87816020860160208601613c43565b601f01601f19169290920160200192915050565b6020815260006117096020830184613c6f565b600060208284031215613cc057600080fd5b61170982613b0d565b6001600160a01b0381168114611f6757600080fd5b60008060408385031215613cf157600080fd5b8235613cfc81613cc9565b946020939093013593505050565b60008060408385031215613d1d57600080fd5b613cfc83613b0d565b600080600060608486031215613d3b57600080fd5b8335613d4681613cc9565b92506020840135613d5681613cc9565b929592945050506040919091013590565b80358015158114613b1f57600080fd5b60008060008060008060a08789031215613d9057600080fd5b613d9987613b0d565b95506020870135945060408701359350613db560608801613d67565b9250608087013567ffffffffffffffff811115613dd157600080fd5b613c0789828a01613b24565b600080600060408486031215613df257600080fd5b613dfb84613b0d565b9250602084013567ffffffffffffffff811115613e1757600080fd5b613e2386828701613b24565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613e6f57613e6f613e30565b604052919050565b600067ffffffffffffffff821115613e9157613e91613e30565b50601f01601f191660200190565b600080600060608486031215613eb457600080fd5b613ebd84613b0d565b9250602084013567ffffffffffffffff811115613ed957600080fd5b8401601f81018613613eea57600080fd5b8035613efd613ef882613e77565b613e46565b818152876020838501011115613f1257600080fd5b81602084016020830137600060208383010152809450505050613f3760408501613b6d565b90509250925092565b600060208284031215613f5257600080fd5b813561170981613cc9565b600060608284031215613f6f57600080fd5b50919050565b600080600080600060a08688031215613f8d57600080fd5b8535613f9881613cc9565b9450613fa660208701613b0d565b93506040860135925060608601359150608086013567ffffffffffffffff811115613fd057600080fd5b613fdc88828901613f5d565b9150509295509295909350565b60008060008060008060008060e0898b03121561400557600080fd5b883561401081613cc9565b975061401e60208a01613b0d565b96506040890135955060608901359450608089013567ffffffffffffffff8082111561404957600080fd5b6140558c838d01613b24565b909650945084915061406960a08c01613b6d565b935060c08b013591508082111561407f57600080fd5b5061408c8b828c01613f5d565b9150509295985092959890939650565b600080604083850312156140af57600080fd5b6140b883613b0d565b91506140c660208401613b0d565b90509250929050565b600080600080600080600080600060e08a8c0312156140ed57600080fd5b6140f68a613b0d565b985060208a0135975060408a0135965060608a013567ffffffffffffffff8082111561412157600080fd5b61412d8d838e01613b24565b909850965086915061414160808d01613b6d565b955061414f60a08d01613d67565b945060c08c013591508082111561416557600080fd5b506141728c828d01613b24565b915080935050809150509295985092959850929598565b6000806000806000608086880312156141a157600080fd5b6141aa86613b0d565b94506141b860208701613b0d565b935060408601359250606086013567ffffffffffffffff8111156141db57600080fd5b6141e788828901613b24565b969995985093965092949392505050565b6000806040838503121561420b57600080fd5b823561421681613cc9565b9150602083013561422681613cc9565b809150509250929050565b60008060006060848603121561424657600080fd5b61424f84613b0d565b925061425d60208501613b0d565b9150604084013590509250925092565b60006020828403121561427f57600080fd5b61170982613d67565b6000806000806000806000806000806101008b8d0312156142a857600080fd5b6142b18b613b0d565b995060208b013567ffffffffffffffff808211156142ce57600080fd5b6142da8e838f01613b24565b909b5099508991506142ee60408e01613b6d565b985060608d0135975060808d0135915061430782613cc9565b90955060a08c0135945060c08c0135908082111561432457600080fd5b506143318d828e01613b24565b9150809450508092505060e08b013590509295989b9194979a5092959850565b6000806000806080858703121561436757600080fd5b61437085613b0d565b935061437e60208601613b0d565b9250604085013561438e81613cc9565b9396929550929360600135925050565b600181811c908216806143b257607f821691505b60208210811415613f6f57634e487b7160e01b600052602260045260246000fd5b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561440c5761440c6143e3565b500190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff8416815260406020820152600061203a604083018486614411565b6000808335601e1984360301811261446f57600080fd5b83018035915067ffffffffffffffff82111561448a57600080fd5b602001915036819003821315613b6657600080fd5b6000828210156144b1576144b16143e3565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff80881683528087166020840152508460408301526080606083015261450a608083018486614411565b979650505050505050565b61ffff86168152608060208201526000614533608083018688614411565b67ffffffffffffffff94909416604083015250606001529392505050565b61ffff8916815260c06020820152600061456f60c08301898b614411565b67ffffffffffffffff8816604084015286606084015285608084015282810360a084015261459e818587614411565b9b9a5050505050505050505050565b6000602082840312156145bf57600080fd5b815167ffffffffffffffff8111156145d657600080fd5b8201601f810184136145e757600080fd5b80516145f5613ef882613e77565b81815285602083850101111561460a57600080fd5b61203a826020830160208601613c43565b61ffff851681526080602082015260006146386080830186613c6f565b67ffffffffffffffff85166040840152828103606084015261450a8185613c6f565b61ffff861681526001600160a01b038516602082015260a06040820152600061468660a0830186613c6f565b841515606084015282810360808401526146a08185613c6f565b98975050505050505050565b600080604083850312156146bf57600080fd5b505080516020909101519092909150565b600082516146e2818460208701613c43565b9190910192915050565b61ffff8616815260a06020820152600061470960a0830187613c6f565b67ffffffffffffffff86166040840152828103606084015261472b8186613c6f565b905082810360808401526146a08185613c6f565b634e487b7160e01b600052601260045260246000fd5b6000826147645761476461473f565b500490565b600061010061ffff8b1683528060208401526147878184018b613c6f565b905067ffffffffffffffff891660408401528760608401526001600160a01b03871660808401528560a084015282810360c08401526147c68186613c6f565b9150508260e08301529998505050505050505050565b6060815260006147ef6060830186613c6f565b67ffffffffffffffff9490941660208301525060400152919050565b60008261481a5761481a61473f565b500690565b61ffff8716815260c06020820152600061483c60c0830188613c6f565b828103604084015261484e8188613c6f565b6001600160a01b0387811660608601528616608085015283810360a085015290506148798185613c6f565b9998505050505050505050565b7fff000000000000000000000000000000000000000000000000000000000000008760f81b16815285600182015260007fffffffffffffffff000000000000000000000000000000000000000000000000808760c01b166021840152856029840152808560c01b166049840152508251614907816051850160208701613c43565b91909101605101979650505050505050565b6000816000190483118215151615614933576149336143e3565b50029056fea2646970667358221220d48e16289bf372d813974da3b6b398f8c272f2fd373a844e49bdb2498f57f9f764736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003c2269811836af69497e5f486a85d7316753cf620000000000000000000000000000000000000000000000000000000000000006

-----Decoded View---------------
Arg [0] : _layerZeroEndpoint (address): 0x3c2269811836af69497E5F486A85D7316753cf62
Arg [1] : _sharedDecimals (uint8): 6

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000003c2269811836af69497e5f486a85d7316753cf62
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000006

🤖 Code Reader

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

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

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