0 txs
0 calls
constructor
No constructor.
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
contractsApproval
viewfunction contractsApproval() view returns (bool)
decimals
purefunction decimals() pure returns (uint8)
getSkipNFT
viewfunction getSkipNFT(address owner) view returns (bool)
LEASHHolderMintLimit
viewfunction LEASHHolderMintLimit() view returns (uint8)
maxSupply
viewfunction maxSupply() view returns (uint256)
mintPrice
viewfunction mintPrice() view returns (uint256)
mirrorERC721
viewfunction mirrorERC721() view returns (address)
name
viewfunction name() view returns (string)
numMinted
viewfunction numMinted() view returns (uint256)
owner
viewfunction owner() view returns (address result)
ownershipHandoverExpiresAt
viewfunction ownershipHandoverExpiresAt(address pendingOwner) view returns (uint256 result)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
reveal
viewfunction reveal() view returns (bool)
saleStartTime
viewfunction saleStartTime() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
tokenLEASH
viewfunction tokenLEASH() view returns (address)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string result)
totalSupply
viewfunction totalSupply() view returns (uint256)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
approvalToContracts
nonpayablefunction approvalToContracts(bool _value)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
cancelOwnershipHandover
payablefunction cancelOwnershipHandover() payable
changeName
nonpayablefunction changeName(uint256 tokenId, string newName)
claim
nonpayablefunction claim(uint256 amount, bytes32[] proof)
completeOwnershipHandover
payablefunction completeOwnershipHandover(address pendingOwner) payable
initialize
nonpayablefunction initialize(string name_, string symbol_, uint96 initialTokenSupply, bytes32 _allowlistRoot, uint256 _maxSupply, uint256 _mintPrice, uint8 _LEASHHolderMintLimit)
mint
payablefunction mint(uint256 amount) payable
renounceOwnership
payablefunction renounceOwnership() payable
requestOwnershipHandover
payablefunction requestOwnershipHandover() payable
setAllowlistRoot
nonpayablefunction setAllowlistRoot(bytes32 _allowlistRoot)
setBaseURI
nonpayablefunction setBaseURI(string baseURI_)
setLEASH
nonpayablefunction setLEASH(address addr)
setLEASHHolderMintLimit
nonpayablefunction setLEASHHolderMintLimit(uint8 _LEASHHolderMintLimit)
setMaxSupply
nonpayablefunction setMaxSupply(uint256 _maxSupply)
setMintPrice
nonpayablefunction setMintPrice(uint256 _mintPrice)
setReveal
nonpayablefunction setReveal()
setSkipNFT
nonpayablefunction setSkipNFT(bool skipNFT) returns (bool)
startSale
nonpayablefunction startSale()
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
payablefunction transferOwnership(address newOwner) payable
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdraw
nonpayablefunction withdraw()
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 amount)
ContractURIUpdated
event ContractURIUpdated()
Initialized
event Initialized(uint64 version)
NameChanged
event NameChanged(uint256 indexed tokenId, string name)
OwnershipHandoverCanceled
event OwnershipHandoverCanceled(address indexed pendingOwner)
OwnershipHandoverRequested
event OwnershipHandoverRequested(address indexed pendingOwner)
OwnershipTransferred
event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)
SkipNFTSet
event SkipNFTSet(address indexed target, bool status)
Transfer
event Transfer(address indexed from, address indexed to, uint256 amount)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AlreadyInitialized
error AlreadyInitialized()
ApprovalCallerNotOwnerNorApproved
error ApprovalCallerNotOwnerNorApproved()
DNAlreadyInitialized
error DNAlreadyInitialized()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedInnerCall
error FailedInnerCall()
InsufficientAllowance
error InsufficientAllowance()
InsufficientBalance
error InsufficientBalance()
InvalidInitialization
error InvalidInitialization()
InvalidMint
error InvalidMint()
InvalidPrice
error InvalidPrice()
InvalidProof
error InvalidProof()
LinkMirrorContractFailed
error LinkMirrorContractFailed()
MirrorAddressIsZero
error MirrorAddressIsZero()
NewOwnerIsZeroAddress
error NewOwnerIsZeroAddress()
NoHandoverRequest
error NoHandoverRequest()
NotInitializing
error NotInitializing()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SaleNotStarted
error SaleNotStarted()
SenderNotMirror
error SenderNotMirror()
TokenDoesNotExist
error TokenDoesNotExist()
TotalSupplyOverflow
error TotalSupplyOverflow()
TotalSupplyReached
error TotalSupplyReached()
TransferCallerNotOwnerNorApproved
error TransferCallerNotOwnerNorApproved()
TransferFromIncorrectOwner
error TransferFromIncorrectOwner()
TransferToZeroAddress
error TransferToZeroAddress()
Unauthorized
error Unauthorized()
UnitIsZero
error UnitIsZero()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a06040523060805234801561001457600080fd5b506080516147dc61003e60003960008181612c5c01528181612c860152612dd601526147dc6000f3fe608060405260043610620002b35760003560e01c806370a08231116200016f578063b66a0e5d11620000d3578063f04e283e1162000085578063f04e283e1462000c2c578063f2fde38b1462000c43578063f406de2a1462000c5a578063f4a0a5281462000c7c578063f6ec89b81462000ca1578063fee81cf41462000cc657620002bb565b8063b66a0e5d1462000b57578063c39cbef11462000b6f578063c87b56dd1462000b94578063d52079b41462000bb9578063d5abeb011462000bd1578063dd62ed3e1462000be957620002bb565b806395d89b41116200012d57806395d89b411462000a88578063a0712d681462000aa0578063a475b5dd1462000ab7578063a9059cbb1462000ada578063ad3cb1cc1462000aff578063b089ae871462000b3257620002bb565b806370a0823114620009d4578063715018a61462000a26578063766453151462000a305780638da5cb5b1462000a485780638e0acd121462000a6357620002bb565b8063313ce567116200021757806352d1902d11620001d557806352d1902d146200093457806354d1f13d146200094c57806355f804b314620009565780635744cc0e146200097b5780636817c76c14620009975780636f8b44b014620009af57620002bb565b8063313ce567146200088257806336e8df9514620008a65780633ccfd60b14620008c95780634ef41efc14620008e15780634f1ef286146200091d57620002bb565b806323b872dd116200027157806323b872dd14620007bf5780632569296214620007e4578063274e430b14620007ee5780632a6a935d14620008135780632e37fc5a14620008385780632f52ebb7146200085d57620002bb565b806306fdde0314620006e3578063095ea7b3146200071357806316c44ae3146200074957806318160ddd146200076e5780631cbaee2d14620007a757620002bb565b36620002bb57005b68a20d6e21d0e525530860003560e01c63e5eb36c8819003620003405760018201546001600160a01b03163314620003065760405163ce5a776b60e01b815260040160405180910390fd5b60843610156200031557600080fd5b6004356024356044356064356200032f8484848462000cfd565b6200033b60016200106f565b505050505b8063813500fc03620003c75760018201546001600160a01b031633146200037a5760405163ce5a776b60e01b815260040160405180910390fd5b60643610156200038957600080fd5b6004356028818152604435601481905268a20d6e21d0e525530b6000908152604881209252602435151591829055620003c360016200106f565b5050505b8063e985e9c503620004425760018201546001600160a01b03163314620004015760405163ce5a776b60e01b815260040160405180910390fd5b60443610156200041057600080fd5b6024356028818152600435601481905260038501600090815260488120925290549091906200043f906200106f565b50505b80636352211e03620004ae5760018201546001600160a01b031633146200047c5760405163ce5a776b60e01b815260040160405180910390fd5b60243610156200048b57600080fd5b600435620004ac6200049d8262001079565b6001600160a01b03166200106f565b505b806324359879036200050b5760018201546001600160a01b03163314620004e85760405163ce5a776b60e01b815260040160405180910390fd5b6024361015620004f757600080fd5b600435620005096200049d82620010b5565b505b8063d10b6e0c03620005725760018201546001600160a01b03163314620005455760405163ce5a776b60e01b815260040160405180910390fd5b60643610156200055457600080fd5b6004356024356044356200056e6200049d8484846200110f565b5050505b8063081812fc03620005cf5760018201546001600160a01b03163314620005ac5760405163ce5a776b60e01b815260040160405180910390fd5b6024361015620005bb57600080fd5b600435620005cd6200049d8262001206565b505b8063f5b100ea036200065d5760018201546001600160a01b03163314620006095760405163ce5a776b60e01b815260040160405180910390fd5b60243610156200061857600080fd5b6004356200065b62000655826001600160a01b0316600090815268a20d6e21d0e5255312602052604090205463ffffffff600160801b9091041690565b6200106f565b505b8063e2c7928103620006c95760018201546001600160a01b03163314620006975760405163ce5a776b60e01b815260040160405180910390fd5b6004361015620006a657600080fd5b68a20d6e21d0e525530854620006c990600160601b900463ffffffff166200106f565b8063b7a94eb803620006e157620006e160016200106f565b005b348015620006f057600080fd5b50620006fb62001255565b6040516200070a919062003225565b60405180910390f35b3480156200072057600080fd5b50620007386200073236600462003272565b620012ef565b60405190151581526020016200070a565b3480156200075657600080fd5b50620006e162000768366004620032b1565b6200137c565b3480156200077b57600080fd5b5068a20d6e21d0e525530854600160801b90046001600160601b03165b6040519081526020016200070a565b348015620007b457600080fd5b506200079860055481565b348015620007cc57600080fd5b5062000738620007de366004620032cf565b6200139c565b620006e16200140e565b348015620007fb57600080fd5b50620007386200080d36600462003310565b6200145e565b3480156200082057600080fd5b5062000738620008323660046200332e565b620014ac565b3480156200084557600080fd5b50620006e16200085736600462003408565b620014c2565b3480156200086a57600080fd5b50620006e16200087c366004620034c2565b620016bf565b3480156200088f57600080fd5b5060125b60405160ff90911681526020016200070a565b348015620008b357600080fd5b506006546200073890600160a01b900460ff1681565b348015620008d657600080fd5b50620006e16200185d565b348015620008ee57600080fd5b5068a20d6e21d0e5255309546001600160a01b03165b6040516001600160a01b0390911681526020016200070a565b620006e16200092e36600462003546565b62001874565b3480156200094157600080fd5b506200079862001899565b620006e1620018b9565b3480156200096357600080fd5b50620006e162000975366004620035af565b620018f5565b3480156200098857600080fd5b50600a54620008939060ff1681565b348015620009a457600080fd5b506200079860085481565b348015620009bc57600080fd5b50620006e1620009ce36600462003626565b6200190e565b348015620009e157600080fd5b5062000798620009f336600462003310565b6001600160a01b0316600090815268a20d6e21d0e52553126020526040902054600160a01b90046001600160601b031690565b620006e16200191d565b34801562000a3d57600080fd5b50620006e162001933565b34801562000a5557600080fd5b50638b78c6d8195462000904565b34801562000a7057600080fd5b50620006e162000a8236600462003626565b62001952565b34801562000a9557600080fd5b50620006fb62001961565b620006e162000ab136600462003626565b62001972565b34801562000ac457600080fd5b506006546200073890600160a81b900460ff1681565b34801562000ae757600080fd5b506200073862000af936600462003272565b62001bdf565b34801562000b0c57600080fd5b50620006fb604051806040016040528060058152602001640352e302e360dc1b81525081565b34801562000b3f57600080fd5b50620006e162000b513660046200332e565b62001bf7565b34801562000b6457600080fd5b50620006e162001c1f565b34801562000b7c57600080fd5b50620006e162000b8e36600462003640565b62001c2f565b34801562000ba157600080fd5b50620006fb62000bb336600462003626565b62001cdb565b34801562000bc657600080fd5b506200079860035481565b34801562000bde57600080fd5b506200079860075481565b34801562000bf657600080fd5b506200079862000c0836600462003681565b602890815260149190915268a20d6e21d0e525530e60009081526048812091525490565b620006e162000c3d36600462003310565b62001df3565b620006e162000c5436600462003310565b62001e38565b34801562000c6757600080fd5b5060065462000904906001600160a01b031681565b34801562000c8957600080fd5b50620006e162000c9b36600462003626565b62001e64565b34801562000cae57600080fd5b50620006e162000cc036600462003310565b62001e73565b34801562000cd357600080fd5b506200079862000ce536600462003310565b63389a75e1600c908152600091909152602090205490565b68a20d6e21d0e52553086001600160a01b03841662000d2f57604051633a954ecd60e21b815260040160405180910390fd5b6009810160028201600062000d6b83600019880160011b5b60008160031c8360601b0180546007841660051b1c63ffffffff1691505092915050565b63ffffffff1681526020810191909152604001600020546001600160a01b0387811691161462000dad5760405162a1148160e81b815260040160405180910390fd5b856001600160a01b0316836001600160a01b03161462000e2657602883815260148790526003830160009081526048812091525460000362000e265760008481526004830160205260409020546001600160a01b0384811691161462000e2657604051632ce44b5f60e11b815260040160405180910390fd5b600062000e338762001e9f565b9050600062000e428762001e9f565b8254909150670de0b6b3a764000090600160a01b90046001600160601b03168082111562000e8357604051631e9acf1760e31b815260040160405180910390fd5b83546001600160601b03918390038216600160a01b9081026001600160a01b039283161786558454818104841685019093160291811691909117835589166000908152600786016020819052604090912062000ef6600588018a60609190911b600882901c0154600160ff9092161c1690565b1562000f35576005870160601b60088a901c018054600160ff8c161b191690556000898152600488016020526040902080546001600160a01b03191690555b845463ffffffff60801b198116600160801b9182900463ffffffff90811660001901808216909302919091178755606083901b631fffffff600384901c16015460009260e060059190911b161c169050600062000f9d886000198d01600190811b0162000d47565b905062000fb2838263ffffffff168462001efa565b62000fcf8860001963ffffffff851601600190811b018362001efa565b5050835463ffffffff60801b198116600160801b9182900463ffffffff908116600181019091169092021785556001600160a01b038b1660009081526020849052604090206200102190828c62001efa565b6200103a878b62001033888f62001f27565b8462001fbc565b505050806000528760601b60601c8960601b60601c6000805160206200476783398151915260206000a3505050505050505050565b8060005260206000f35b6000620010868262002001565b620010a45760405163677510db60e11b815260040160405180910390fd5b620010af82620010b5565b92915050565b600068a20d6e21d0e525530868a20d6e21d0e525530a82620010e868a20d6e21d0e5255311600019870160011b62000d47565b63ffffffff1681526020810191909152604001600020546001600160a01b03169392505050565b600068a20d6e21d0e525530868a20d6e21d0e525530a826200114268a20d6e21d0e5255311600019880160011b62000d47565b63ffffffff1681526020810191909152604001600020546001600160a01b03908116925083168214620011aa576028838152601483905260038201600090815260488120915254600003620011aa576040516367d9dca160e11b815260040160405180910390fd5b6000848152600482016020526040902080546001600160a01b0319166001600160a01b0387169081179091556005820160601b600886901c018054600160ff881690811b1991909116921515901b919091179055509392505050565b6000620012138262002001565b620012315760405163677510db60e11b815260040160405180910390fd5b50600090815268a20d6e21d0e525530c60205260409020546001600160a01b031690565b6060600080546200126690620036b9565b80601f01602080910402602001604051908101604052809291908181526020018280546200129490620036b9565b8015620012e55780601f10620012b957610100808354040283529160200191620012e5565b820191906000526020600020905b815481529060010190602001808311620012c757829003601f168201915b5050505050905090565b600654600090600160a01b900460ff16156200136957823b15620013695760405162461bcd60e51b815260206004820152602660248201527f417070726f76616c7320746f20636f6e74726163747320626c6f636b656420666044820152656f72206e6f7760d01b60648201526084015b60405180910390fd5b62001375838362002020565b9392505050565b620013866200202f565b600a805460ff191660ff92909216919091179055565b336028908152601484905268a20d6e21d0e525530e6000908152604881209181905281549091906000198114620013f55780841115620013ef576040516313be252b60e01b815260040160405180910390fd5b83810382555b620014028686866200204b565b50600195945050505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b6001600160a01b038116600090815268a20d6e21d0e5255312602052604081208054600160581b900460011682036200149957823b62001375565b54600160581b9004600216151592915050565b6000620014ba3383620025e6565b506001919050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff16600081158015620015095750825b905060008267ffffffffffffffff166001148015620015275750303b155b90508115801562001536575080155b15620015555760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156200158057845460ff60401b1916600160401b1785555b6200158b3362002667565b62001595620026a3565b6200159f620026b7565b6000620015ad8d8262003749565b506001620015bc8c8262003749565b50600489905560078890556008879055600a805460ff881660ff199091161790556006805460ff60a01b1916600160a01b17905560405160009033906200160390620031f1565b6001600160a01b039091168152602001604051809103906000f08015801562001630573d6000803e3d6000fd5b5090506200164160003383620026c1565b620016693362001663670de0b6b3a76400006001600160601b038f166200382c565b6200287c565b508315620016b157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b620016c962002ba9565b600554620016db906202a30062003846565b4210620017365760405162461bcd60e51b815260206004820152602260248201527f53616c65206973206e6f7420696e2074686520534849424f5348495320706861604482015261736560f01b606482015260840162001360565b3360009081526009602052604090205460ff16156200178a5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e4818db185a5b5959608a1b604482015260640162001360565b604080513360601b6bffffffffffffffffffffffff1916602082015260a085901b6001600160a01b0319811660348301528592909160009101604051602081830303815290604052805190602001209050620017eb85856004548462002be3565b62001809576040516309bde33960e01b815260040160405180910390fd5b620018223362001663670de0b6b3a7640000896200382c565b5050336000908152600960205260409020805460ff19166001179055506200185860016000805160206200478783398151915255565b505050565b620018676200202f565b620018723362002c34565b565b6200187e62002c51565b620018898262002cfa565b62001895828262002d04565b5050565b6000620018a562002dcb565b506000805160206200474783398151915290565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b620018ff6200202f565b6002620018588284836200385c565b620019186200202f565b600755565b620019276200202f565b62001872600062002e15565b6200193d6200202f565b6006805460ff60a81b1916600160a81b179055565b6200195c6200202f565b600455565b6060600180546200126690620036b9565b8060055460000362001997576040516316851a3760e11b815260040160405180910390fd5b3481600854620019a891906200382c565b14620019c65760405162bfc92160e01b815260040160405180910390fd5b60075481600354620019d9919062003846565b1115620019f957604051637be9badb60e01b815260040160405180910390fd5b62001a0362002ba9565b60055462001a15906202a30062003846565b421015801562001a36575060055462001a32906203f48062003846565b4211155b1562001bad576006546040516370a0823160e01b815233600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa15801562001a8a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001ab0919062003929565b1190508062001b025760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c79204c4541534820686f6c646572732063616e206d696e74206e6f7700604482015260640162001360565b600a54336000908152600b602052604090205460ff9182169162001b299186911662003846565b111562001b6f5760405162461bcd60e51b8152602060048201526013602482015272135a5b9d081b1a5b5a5d08195e18d959591959606a1b604482015260640162001360565b336000908152600b60205260408120805485929062001b9390849060ff1662003943565b92506101000a81548160ff021916908360ff160217905550505b62001bc63362001663670de0b6b3a7640000856200382c565b6200189560016000805160206200478783398151915255565b600062001bee3384846200204b565b50600192915050565b62001c016200202f565b60068054911515600160a01b0260ff60a01b19909216919091179055565b62001c296200202f565b42600555565b3362001c3b8362001079565b6001600160a01b03161462001c9d5760405162461bcd60e51b815260206004820152602160248201527f596f7520617265206e6f7420746865206f776e6572206f662074686973204e466044820152601560fa1b606482015260840162001360565b817f8edfa912e70e283a8ef6d6f52cd1faef9690ff989eff2f11a134e8478ba7b28b8260405162001ccf919062003225565b60405180910390a25050565b6060600062001cea83620010b5565b6001600160a01b03160362001d125760405163677510db60e11b815260040160405180910390fd5b600654600160a81b900460ff161562001d5a57600262001d328362002e53565b60405160200162001d459291906200395f565b604051602081830303815290604052620010af565b6002805462001d6990620036b9565b80601f016020809104026020016040519081016040528092919081815260200182805462001d9790620036b9565b801562001de85780601f1062001dbc5761010080835404028352916020019162001de8565b820191906000526020600020905b81548152906001019060200180831162001dca57829003601f168201915b505050505092915050565b62001dfd6200202f565b63389a75e1600c52806000526020600c20805442111562001e2657636f5e88186000526004601cfd5b6000905562001e358162002e15565b50565b62001e426200202f565b8060601b62001e5957637448fbae6000526004601cfd5b62001e358162002e15565b62001e6e6200202f565b600855565b62001e7d6200202f565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815268a20d6e21d0e52553126020526040812080549091600160581b909104600116900362001ef557805460ff60581b1916600160581b60ff843b151560020260011716021781555b919050565b8160031c8360601b016007831660051b815463ffffffff8482841c188116831b8218845550505050505050565b8154600160601b900463ffffffff1668a20d6e21d0e5255308600082900362001fb557805463ffffffff198116600163ffffffff928316019182169081178355855463ffffffff60601b1916600160601b82021786556000818152600284016020526040812080546001600160a01b0319166001600160a01b038816179055919350900362001fb557600080fd5b5092915050565b600183038060021c8560601b016003821660061b9150805467ffffffffffffffff8563ffffffff168560201b178083861c188216851b83188455505050505050505050565b6000806200200f83620010b5565b6001600160a01b0316141592915050565b600062001bee33848462002e98565b638b78c6d81954331462001872576382b429006000526004601cfd5b6001600160a01b0382166200207357604051633a954ecd60e21b815260040160405180910390fd5b68a20d6e21d0e525530860006200208a8562001e9f565b90506000620020998562001e9f565b9050620020e460405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8254600160801b80820463ffffffff908116608085015284548290041660a08401528554046001600160601b0390811660c0840152600160a01b90910416604082018190528511156200214a57604051631e9acf1760e31b815260040160405180910390fd5b6040810180518690039081905283546001600160601b03918216600160a01b9081026001600160a01b03928316178655845481810484168901606086018190529093160291161782556080810151620021cc90620021ad670de0b6b3a764000090565b836040015181620021c257620021c2620039f0565b0480821191030290565b81528154600160581b90046002166000036200224157856001600160a01b0316876001600160a01b0316036200220a57805160808201510360a08201525b6200223b670de0b6b3a76400008260600151816200222c576200222c620039f0565b048260a0015180821191030290565b60208201525b80516020820151855463ffffffff600160601b8083048216840185900360e087018190529091160263ffffffff60601b1990911617865560009162002287910162002efa565b855483519192506009870191600160401b90910463ffffffff169015620023db5760608a901b60011760208401526000620022cb8560e001518660c0015162002f42565b6001600160a01b038c16600090815260078a0160205260409020608087015187518a5463ffffffff918303918216600160801b0263ffffffff60801b19909116178b5592935090915b60001991909101600381901c606084901b0154909190600583901b60e0161c63ffffffff1662002348878260008062001fbc565b87516020808a0151600884901b17825201885284156200237857620023788c600801878060010198508362001efa565b600881901c60058d0160601b015460ff82161c60011615620023cd5760058c0160601b600882901c018054600160ff84161b19169055600081815260048d016020526040902080546001600160a01b03191690555b508082036200231457505050505b6020840151156200257057606089901b602084015286546001600160a01b038a1660009081526007890160209081526040822060a08801519188015164010000000090940463ffffffff1693909290820190620024398a8f62001f27565b90506000670de0b6b3a76400008a60c00151816200245b576200245b620039f0565b8c5463ffffffff60801b1916600160801b63ffffffff871602178d550490505b60008715620024b95760001997909701600381901c60088f0160601b0154909790600589901b60e0161c63ffffffff1663ffffffff169050620024fd565b50855b620024cf89600019830160011b62000d47565b63ffffffff1615620024ed57600101818111801590910217620024bc565b6001810182811180159091021796505b6200250a86868362001efa565b6200251e8982858880600101995062001fbc565b89516020808c0151600884901b178252018a52508284036200247b57600786018181118015909102178d5463ffffffff919091166401000000000267ffffffff0000000019909116178d555050505050505b60408301515115620025b357865463ffffffff60401b1916600160401b63ffffffff8316021787556001870154620025b39084906001600160a01b031662002f71565b505050846000528560601b60601c8760601b60601c6000805160206200476783398151915260206000a350505050505050565b6000620025f38362001e9f565b8054909150600160581b90046002161515821515146200262f57805460ff600160581b80830482166002189091160260ff60581b199091161781555b8115156000528260601b60601c7fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360206000a2505050565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b620026ad62002fae565b6200187262002ff8565b6200187262002fae565b68a20d6e21d0e52553088054640100000000900463ffffffff1615620026fa57604051633ab534b960e21b815260040160405180910390fd5b6001600160a01b03821662002722576040516339a84a7b60e01b815260040160405180910390fd5b630f4599e560005233602052602060006024601c6000865af160016000511416620027555763d125259c6000526004601cfd5b805467ffffffff0000000019166401000000001781556001810180546001600160a01b0384166001600160a01b0319909116179055831562002876576001600160a01b038316620027b957604051633a954ecd60e21b815260040160405180910390fd5b6001600160601b03841163fffffffe670de0b6b3a76400008604111715620027f45760405163e5cfe95760e01b815260040160405180910390fd5b80546bffffffffffffffffffffffff60801b1916600160801b6001600160601b038616021781556000620028288462001e9f565b80546001600160601b038716600160a01b026001600160a01b03918216178255600087815291925085169060008051602062004767833981519152602082a362002874846001620025e6565b505b50505050565b6001600160a01b038216620028a457604051633a954ecd60e21b815260040160405180910390fd5b68a20d6e21d0e52553086000620028bb8462001e9f565b82546bffffffffffffffffffffffff60801b198116600160801b918290046001600160601b039081168701808216909302919091178555919250600091811163fffffffe670de0b6b3a7640000830411171515858210811715620029325760405163e5cfe95760e01b815260040160405180910390fd5b5082546001600160601b03600160a01b80830482168801918216026001600160a01b0390921691909117808555670de0b6b3a764000092839004935091900490600160581b900460021660000362002b7d576001600160a01b03861660009081526007850160205260408120845490916009870191600160801b900463ffffffff1690620029c68286038387110262002efa565b905080604001515160001462002b785760608a901b6020820152875463ffffffff600160401b8204811691640100000000900416600062002a088a8e62001f27565b6040850151518c5463ffffffff600160601b8083048216909301811690920263ffffffff60601b19909116178d558b54908a16600160801b0263ffffffff60801b19909116178b5590505b6000831562002a915760001993909301600381901c60088d0160601b0154909390600585901b60e0161c63ffffffff1663ffffffff16905062002ad5565b50815b62002aa787600019830160011b62000d47565b63ffffffff161562002ac55760010189811180159091021762002a94565b600181018a811180159091021792505b62002ae288878362001efa565b62002af687828489806001019a5062001fbc565b8451602080870151600884901b1782520185525087850362002a5357600782018981118015909102178b546bffffffffffffffff00000000191664010000000063ffffffff9283160263ffffffff60401b191617600160401b91851691909102178b5560018b015462002b749085906001600160a01b031662002f71565b5050505b505050505b505060008381526001600160a01b0385169060008051602062004767833981519152602082a350505050565b6000805160206200478783398151915280546001190162002bdd57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b6000831562002c17578360051b8501855b803580851160051b9485526020948518526040600020930181811062002bf45750505b501492915050565b60016000805160206200478783398151915255565b60003860003847855af162001e355763b12d13eb6000526004601cfd5b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148062002cdb57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662002ccf60008051602062004747833981519152546001600160a01b031690565b6001600160a01b031614155b15620018725760405163703e46dd60e11b815260040160405180910390fd5b62001e356200202f565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562002d61575060408051601f3d908101601f1916820190925262002d5e9181019062003929565b60015b62002d8b57604051634c9c8ce360e01b81526001600160a01b038316600482015260240162001360565b60008051602062004747833981519152811462002dbf57604051632a87526960e21b81526004810182905260240162001360565b62001858838362003002565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614620018725760405163703e46dd60e11b815260040160405180910390fd5b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b60606080604051019050602081016040526000815280600019835b928101926030600a8206018453600a90048062002e6e575050819003601f19909101908152919050565b6028828152601484905268a20d6e21d0e525530e600090815260488120915281905560008181526001600160a01b0380841691908516907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3505050565b62002f1f60405180606001604052806000815260200160008152602001606081525090565b604051828152806020018360051b81016040528183604001528083525050919050565b600080600162002f5b670de0b6b3a76400008562003a06565b901c905060808111818511161515949350505050565b60408201516040810363263c69d68152602080820152815160051b604401915060208183601c84016000875af16001825114166200287657600081fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166200187257604051631afcd79f60e31b815260040160405180910390fd5b62002c1f62002fae565b6200300d826200305f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156200305557620018588282620030c7565b6200189562003143565b806001600160a01b03163b6000036200309757604051634c9c8ce360e01b81526001600160a01b038216600482015260240162001360565b6000805160206200474783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051620030e6919062003a29565b600060405180830381855af49150503d806000811462003123576040519150601f19603f3d011682016040523d82523d6000602084013e62003128565b606091505b50915091506200313a85838362003163565b95945050505050565b3415620018725760405163b398979f60e01b815260040160405180910390fd5b6060826200317c576200317682620031c7565b62001375565b81511580156200319457506001600160a01b0384163b155b15620031bf57604051639996b31560e01b81526001600160a01b038516600482015260240162001360565b508062001375565b805115620031d85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b610cff8062003a4883390190565b60005b838110156200321c57818101518382015260200162003202565b50506000910152565b602081526000825180602084015262003246816040850160208701620031ff565b601f01601f19169190910160400192915050565b80356001600160a01b038116811462001ef557600080fd5b600080604083850312156200328657600080fd5b62003291836200325a565b946020939093013593505050565b803560ff8116811462001ef557600080fd5b600060208284031215620032c457600080fd5b62001375826200329f565b600080600060608486031215620032e557600080fd5b620032f0846200325a565b925062003300602085016200325a565b9150604084013590509250925092565b6000602082840312156200332357600080fd5b62001375826200325a565b6000602082840312156200334157600080fd5b813580151581146200137557600080fd5b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111562003386576200338662003352565b604051601f8501601f19908116603f01168101908282118183101715620033b157620033b162003352565b81604052809350858152868686011115620033cb57600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112620033f757600080fd5b620013758383356020850162003368565b600080600080600080600060e0888a0312156200342457600080fd5b873567ffffffffffffffff808211156200343d57600080fd5b6200344b8b838c01620033e5565b985060208a01359150808211156200346257600080fd5b50620034718a828b01620033e5565b96505060408801356001600160601b03811681146200348f57600080fd5b9450606088013593506080880135925060a08801359150620034b460c089016200329f565b905092959891949750929550565b600080600060408486031215620034d857600080fd5b83359250602084013567ffffffffffffffff80821115620034f857600080fd5b818601915086601f8301126200350d57600080fd5b8135818111156200351d57600080fd5b8760208260051b85010111156200353357600080fd5b6020830194508093505050509250925092565b600080604083850312156200355a57600080fd5b62003565836200325a565b9150602083013567ffffffffffffffff8111156200358257600080fd5b8301601f810185136200359457600080fd5b620035a58582356020840162003368565b9150509250929050565b60008060208385031215620035c357600080fd5b823567ffffffffffffffff80821115620035dc57600080fd5b818501915085601f830112620035f157600080fd5b8135818111156200360157600080fd5b8660208285010111156200361457600080fd5b60209290920196919550909350505050565b6000602082840312156200363957600080fd5b5035919050565b600080604083850312156200365457600080fd5b82359150602083013567ffffffffffffffff8111156200367357600080fd5b620035a585828601620033e5565b600080604083850312156200369557600080fd5b620036a0836200325a565b9150620036b0602084016200325a565b90509250929050565b600181811c90821680620036ce57607f821691505b602082108103620036ef57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562001858576000816000526020600020601f850160051c81016020861015620037205750805b601f850160051c820191505b8181101562003741578281556001016200372c565b505050505050565b815167ffffffffffffffff81111562003766576200376662003352565b6200377e81620037778454620036b9565b84620036f5565b602080601f831160018114620037b657600084156200379d5750858301515b600019600386901b1c1916600185901b17855562003741565b600085815260208120601f198616915b82811015620037e757888601518255948401946001909101908401620037c6565b5085821015620038065787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620010af57620010af62003816565b80820180821115620010af57620010af62003816565b67ffffffffffffffff83111562003877576200387762003352565b6200388f83620038888354620036b9565b83620036f5565b6000601f841160018114620038c65760008515620038ad5750838201355b600019600387901b1c1916600186901b17835562002874565b600083815260209020601f19861690835b82811015620038f95786850135825560209485019460019092019101620038d7565b5086821015620039175760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000602082840312156200393c57600080fd5b5051919050565b60ff8181168382160190811115620010af57620010af62003816565b60008084546200396f81620036b9565b600182811680156200398a5760018114620039a057620039d1565b60ff1984168752821515830287019450620039d1565b8860005260208060002060005b85811015620039c85781548a820152908401908201620039ad565b50505082870194505b505050508351620039e7818360208801620031ff565b01949350505050565b634e487b7160e01b600052601260045260246000fd5b60008262003a2457634e487b7160e01b600052601260045260246000fd5b500490565b6000825162003a3d818460208701620031ff565b919091019291505056fe608060405234801561001057600080fd5b50604051610cff380380610cff83398101604081905261002f9161005c565b683602298b8c10b0123180546001600160a01b0319166001600160a01b039290921691909117905561008c565b60006020828403121561006e57600080fd5b81516001600160a01b038116811461008557600080fd5b9392505050565b610c648061009b6000396000f3fe60806040526004361061010d5760003560e01c80636cef16e61161009557806397e5311c1161006457806397e5311c1461044f578063a22cb46514610464578063b88d4fde14610484578063c87b56dd146104a4578063e985e9c5146104c457610114565b80636cef16e6146103df57806370a08231146103f45780638da5cb5b1461041457806395d89b411461043a57610114565b806318160ddd116100dc57806318160ddd1461034957806323b872dd1461036c578063243598791461038c57806342842e0e146103ac5780636352211e146103bf57610114565b806301ffc9a71461027d57806306fdde03146102cf578063081812fc146102f1578063095ea7b31461032957610114565b3661011457005b683602298b8c10b0123060003560e01c63263c69d68190036101e05781546001600160a01b0316331461015a57604051631b1e598960e11b815260040160405180910390fd5b602036103d60003e6004356024018036103d60003e602081033560051b81018036103d60003e5b8082146101d35781358060601c816001168260a01b60a81c811583028284027fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a4505050816020019150610181565b5050600160005260206000f35b80630f4599e50361027b5760018201546001600160a01b0316156102365760018201546001600160a01b03166004356001600160a01b031614610236576040516362cf623d60e11b815260040160405180910390fd5b81546001600160a01b03161561025f57604051635fb2b52360e11b815260040160405180910390fd5b81546001600160a01b0319163317825560016000908152602090f35b005b34801561028957600080fd5b506102ba6102983660046109ee565b6301ffc9a760e09190911c9081146380ac58cd821417635b5e139f9091141790565b60405190151581526020015b60405180910390f35b3480156102db57600080fd5b506102e46104e4565b6040516102c69190610a1f565b3480156102fd57600080fd5b5061031161030c366004610a6e565b6104fa565b6040516001600160a01b0390911681526020016102c6565b34801561033557600080fd5b5061027b610344366004610aa3565b610512565b34801561035557600080fd5b5061035e610598565b6040519081526020016102c6565b34801561037857600080fd5b5061027b610387366004610acd565b6105aa565b34801561039857600080fd5b506103116103a7366004610a6e565b610639565b61027b6103ba366004610acd565b61064b565b3480156103cb57600080fd5b506103116103da366004610a6e565b61067d565b3480156103eb57600080fd5b5061027b61068f565b34801561040057600080fd5b5061035e61040f366004610b09565b610742565b34801561042057600080fd5b50683602298b8c10b01232546001600160a01b0316610311565b34801561044657600080fd5b506102e461075d565b34801561045b57600080fd5b5061031161076e565b34801561047057600080fd5b5061027b61047f366004610b24565b6107a3565b34801561049057600080fd5b5061027b61049f366004610b60565b610826565b3480156104b057600080fd5b506102e46104bf366004610a6e565b610881565b3480156104d057600080fd5b506102ba6104df366004610bfb565b610891565b60606104f56306fdde0360006108bd565b905090565b600061050c63081812fc83600061091a565b92915050565b600061051c61076e565b90508260601b60601c925060405163d10b6e0c600052836020528260405233606052602060006064601c34865af1601f3d111661055c573d6000823e3d81fd5b806040525060006060528183600c5160601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600038a4505050565b60006104f563e2c7928160008061091a565b60006105b461076e565b90508360601b60601c93508260601b60601c925060405163e5eb36c881528460208201528360408201528260608201523360808201526020816084601c840134865af160018251141661060a573d6000823e3d81fd5b508183857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a450505050565b600061050c632435987983600061091a565b6106568383836105aa565b813b156106785761067883838360405180602001604052806000815250610962565b505050565b600061050c636352211e83600061091a565b60008061069a61076e565b9050638da5cb5b600052602060006004601c845afa601f3d1116156106c257600c5160601c91505b683602298b8c10b0123254683602298b8c10b01230906001600160a01b03908116908416811461073c576002820180546001600160a01b0319166001600160a01b0386811691821790925560405190918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35b50505050565b600061050c63f5b100ea836001600160a01b0316600061091a565b60606104f56395d89b4160006108bd565b683602298b8c10b01230546001600160a01b0316806107a057604051632d9523d760e11b815260040160405180910390fd5b90565b60006107ad61076e565b90508260601b60601c925060405163813500fc6000528360205282151560405233606052602060006064601c34865af1600160005114166107f1573d6000823e3d81fd5b83337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206040a36040525050600060605250565b6108318585856105aa565b833b1561087a5761087a85858585858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061096292505050565b5050505050565b606061050c63c87b56dd836108bd565b60006108b463e985e9c5846001600160a01b0316846001600160a01b031661091a565b15159392505050565b606060006108c961076e565b9050604051915083600052826020526000806024601c845afa6108ef573d6000833e3d82fd5b60206000803e6020600051833e8151602060005101602084013e815160208301016040525092915050565b60008061092561076e565b9050604051856000528460205283604052602060006044601c855afa601f3d1116610953573d6000823e3d81fd5b60405250506000519392505050565b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a084015280156109a9578060c08401826020870160045afa505b60208360a48301601c860160008a5af16109cc573d156109cc573d6000843e3d83fd5b508060e01b8251146109e65763d1a57ed66000526004601cfd5b505050505050565b600060208284031215610a0057600080fd5b81356001600160e01b031981168114610a1857600080fd5b9392505050565b60006020808352835180602085015260005b81811015610a4d57858101830151858201604001528201610a31565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215610a8057600080fd5b5035919050565b80356001600160a01b0381168114610a9e57600080fd5b919050565b60008060408385031215610ab657600080fd5b610abf83610a87565b946020939093013593505050565b600080600060608486031215610ae257600080fd5b610aeb84610a87565b9250610af960208501610a87565b9150604084013590509250925092565b600060208284031215610b1b57600080fd5b610a1882610a87565b60008060408385031215610b3757600080fd5b610b4083610a87565b915060208301358015158114610b5557600080fd5b809150509250929050565b600080600080600060808688031215610b7857600080fd5b610b8186610a87565b9450610b8f60208701610a87565b935060408601359250606086013567ffffffffffffffff80821115610bb357600080fd5b818801915088601f830112610bc757600080fd5b813581811115610bd657600080fd5b896020828501011115610be857600080fd5b9699959850939650602001949392505050565b60008060408385031215610c0e57600080fd5b610c1783610a87565b9150610c2560208401610a87565b9050925092905056fea264697066735822122025271acaeeef935a9720ae022d10da12004eb2b0c320597c15207a6090b472c964736f6c63430008170033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a264697066735822122068fe8ed661781f83e21833256171d9de4991b910bb6a14409d2ea562e5b1beff64736f6c63430008170033