0 txs
46 calls
constructor
No constructor.
functions
AVAILABILITY
viewfunction AVAILABILITY() view returns (uint256)
availableUntil
viewfunction availableUntil(address) view returns (uint256)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
baseURI
viewfunction baseURI() view returns (string)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getAvailableUntilForTokenId
viewfunction getAvailableUntilForTokenId(uint256 _tokenId) view returns (uint256)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
paused
viewfunction paused() view returns (bool)
price
viewfunction price() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenPaymentAddress
viewfunction tokenPaymentAddress() view returns (address)
tokenPaymentPrice
viewfunction tokenPaymentPrice() view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
approve
nonpayablefunction approve(address to, uint256 tokenId)
extendAvailability
payablefunction extendAvailability() payable
extendAvailabilityWithToken
nonpayablefunction extendAvailabilityWithToken()
gift
nonpayablefunction gift(address[] receivers)
initialize
nonpayablefunction initialize(string name, string symbol, string baseURI_, address _signerAddress, uint256 _price)
mint
payablefunction mint(bytes signature) payable returns (uint256)
mintWithToken
nonpayablefunction mintWithToken(bytes signature) returns (uint256)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setAvailableUntil
nonpayablefunction setAvailableUntil(address _address, uint256 _timestamp)
setBaseURI
nonpayablefunction setBaseURI(string _newBaseURI)
setMintPrice
nonpayablefunction setMintPrice(uint256 _newMintPrice)
setSignerAddress
nonpayablefunction setSignerAddress(address _signerAddress)
setTokenPaymentAddress
nonpayablefunction setTokenPaymentAddress(address _tokenPaymentAddress)
setTokenPaymentPrice
nonpayablefunction setTokenPaymentPrice(uint256 _tokenPaymentPrice)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
withdraw
nonpayablefunction withdraw()
withdrawTokens
nonpayablefunction withdrawTokens(address _tokenAddress)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
Available
event Available(address indexed account, uint256 timestamp)
Initialized
event Initialized(uint64 version)
NewTokenPaymentAddress
event NewTokenPaymentAddress(address indexed tokenPaymentAddress)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
Unpaused
event Unpaused(address account)
Withdraw
event Withdraw(address indexed account, uint256 amount)
WithdrawToken
event WithdrawToken(address indexed account, address indexed token, uint256 amount)
errors
ECDSAInvalidSignature
error ECDSAInvalidSignature()
ECDSAInvalidSignatureLength
error ECDSAInvalidSignatureLength(uint256 length)
ECDSAInvalidSignatureS
error ECDSAInvalidSignatureS(bytes32 s)
EnforcedPause
error EnforcedPause()
ERC721IncorrectOwner
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner)
ERC721InsufficientApproval
error ERC721InsufficientApproval(address operator, uint256 tokenId)
ERC721InvalidApprover
error ERC721InvalidApprover(address approver)
ERC721InvalidOperator
error ERC721InvalidOperator(address operator)
ERC721InvalidOwner
error ERC721InvalidOwner(address owner)
ERC721InvalidReceiver
error ERC721InvalidReceiver(address receiver)
ERC721InvalidSender
error ERC721InvalidSender(address sender)
ERC721NonexistentToken
error ERC721NonexistentToken(uint256 tokenId)
ExpectedPause
error ExpectedPause()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x6080604052348015600f57600080fd5b50612f438061001f6000396000f3fe60806040526004361061023b5760003560e01c80637ba0e2e71161012e578063b88d4fde116100ab578063ce6c7ed31161006f578063ce6c7ed314610670578063e985e9c514610678578063f2fde38b14610698578063f4a0a528146106b8578063f85b4f05146106d857600080fd5b8063b88d4fde146105d8578063c0f207e0146105f8578063c5f7750814610625578063c6f61e031461063a578063c87b56dd1461065057600080fd5b8063a035b1fe116100f2578063a035b1fe1461054a578063a22cb46514610560578063a92aa33d14610580578063b0cd91b1146105a0578063b2ecc0e1146105b857600080fd5b80637ba0e2e7146104d85780638456cb59146104eb57806385d621f4146105005780638da5cb5b1461052057806395d89b411461053557600080fd5b806342842e0e116101bc5780636c0360eb116101805780636c0360eb1461044057806370a0823114610455578063715018a61461048357806372e19be21461049857806375aa2125146104b857600080fd5b806342842e0e1461039b57806349df728c146103bb57806355f804b3146103db5780635c975abb146103fb5780636352211e1461042057600080fd5b8063163e1e6111610203578063163e1e611461031157806323b872dd146103315780632fa37e5c146103515780633ccfd60b146103715780633f4ba83a1461038657600080fd5b806301ffc9a714610240578063046dc1661461027557806306fdde0314610297578063081812fc146102b9578063095ea7b3146102f1575b600080fd5b34801561024c57600080fd5b5061026061025b3660046126eb565b6106f8565b60405190151581526020015b60405180910390f35b34801561028157600080fd5b50610295610290366004612724565b61074a565b005b3480156102a357600080fd5b506102ac610787565b60405161026c919061278f565b3480156102c557600080fd5b506102d96102d43660046127a2565b61082b565b6040516001600160a01b03909116815260200161026c565b3480156102fd57600080fd5b5061029561030c3660046127bb565b610840565b34801561031d57600080fd5b5061029561032c3660046127e5565b61084f565b34801561033d57600080fd5b5061029561034c36600461285a565b6109ed565b34801561035d57600080fd5b5061029561036c366004612724565b610a7d565b34801561037d57600080fd5b50610295610acf565b34801561039257600080fd5b50610295610b66565b3480156103a757600080fd5b506102956103b636600461285a565b610b78565b3480156103c757600080fd5b506102956103d6366004612724565b610b98565b3480156103e757600080fd5b506102956103f63660046128df565b610d1f565b34801561040757600080fd5b50600080516020612eee8339815191525460ff16610260565b34801561042c57600080fd5b506102d961043b3660046127a2565b610d34565b34801561044c57600080fd5b506102ac610d3f565b34801561046157600080fd5b50610475610470366004612724565b610dcd565b60405190815260200161026c565b34801561048f57600080fd5b50610295610e29565b3480156104a457600080fd5b506104756104b33660046127a2565b610e3b565b3480156104c457600080fd5b506102956104d33660046127bb565b610e74565b6104756104e63660046128df565b610e98565b3480156104f757600080fd5b506102956110b8565b34801561050c57600080fd5b5061047561051b3660046128df565b6110c8565b34801561052c57600080fd5b506102d9611276565b34801561054157600080fd5b506102ac6112a4565b34801561055657600080fd5b5061047560015481565b34801561056c57600080fd5b5061029561057b36600461292e565b6112e3565b34801561058c57600080fd5b506003546102d9906001600160a01b031681565b3480156105ac57600080fd5b506104756301e1338081565b3480156105c457600080fd5b506102956105d3366004612a13565b6112ee565b3480156105e457600080fd5b506102956105f3366004612abd565b61144f565b34801561060457600080fd5b50610475610613366004612724565b60026020526000908152604090205481565b34801561063157600080fd5b50610295611466565b34801561064657600080fd5b5061047560045481565b34801561065c57600080fd5b506102ac61066b3660046127a2565b61161f565b610295611687565b34801561068457600080fd5b50610260610693366004612b38565b6117b7565b3480156106a457600080fd5b506102956106b3366004612724565b611804565b3480156106c457600080fd5b506102956106d33660046127a2565b61183f565b3480156106e457600080fd5b506102956106f33660046127a2565b61189d565b60006001600160e01b031982166380ac58cd60e01b148061072957506001600160e01b03198216635b5e139f60e01b145b8061074457506301ffc9a760e01b6001600160e01b03198316145b92915050565b6107526118aa565b6001600160a01b03811661076557600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b600080516020612ece83398151915280546060919081906107a790612b6b565b80601f01602080910402602001604051908101604052809291908181526020018280546107d390612b6b565b80156108205780601f106107f557610100808354040283529160200191610820565b820191906000526020600020905b81548152906001019060200180831161080357829003601f168201915b505050505091505090565b6000610836826118dc565b5061074482611914565b61084b82823361194e565b5050565b6108576118aa565b6006544260005b838110156109e45761089085858381811061087b5761087b612ba5565b90506020020160208101906104709190612724565b6000036109dc576108c78585838181106108ac576108ac612ba5565b90506020020160208101906108c19190612724565b8461195b565b6108d56301e1338083612bd1565b600260008787858181106108eb576108eb612ba5565b90506020020160208101906109009190612724565b6001600160a01b031681526020810191909152604001600020558261092481612be4565b93505084848281811061093957610939612ba5565b905060200201602081019061094e9190612724565b6001600160a01b03167f8ae8ecf3fba48fa4fa86333a7d46148274bc592f859b7266d64e7b17dbb0d9da6002600088888681811061098e5761098e612ba5565b90506020020160208101906109a39190612724565b6001600160a01b03166001600160a01b03168152602001908152602001600020546040516109d391815260200190565b60405180910390a25b60010161085e565b50506006555050565b6001600160a01b038216610a1c57604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610a29838333611975565b9050836001600160a01b0316816001600160a01b031614610a77576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610a13565b50505050565b610a856118aa565b600380546001600160a01b0319166001600160a01b0383169081179091556040517f319abc80f938d9d83dfcff707190aba1abd33610cb5ee202991c1f9b3c6f0a9690600090a250565b610ad76118aa565b47610ae0611276565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610b18573d6000803e3d6000fd5b50610b21611276565b6001600160a01b03167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436482604051610b5b91815260200190565b60405180910390a250565b610b6e6118aa565b610b766119da565b565b610b938383836040518060200160405280600081525061144f565b505050565b610ba06118aa565b610ba8611a3a565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c139190612bfd565b9050816001600160a01b031663a9059cbb610c2c611276565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610c79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9d9190612c16565b50816001600160a01b0316610cb0611276565b6001600160a01b03167f037238854fe57fbf51f09946f854fc3916fe83938d6521f09bd05463839f130483604051610cea91815260200190565b60405180910390a350610d1c60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b50565b610d276118aa565b6000610b93828483612c7a565b6000610744826118dc565b60008054610d4c90612b6b565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7890612b6b565b8015610dc55780601f10610d9a57610100808354040283529160200191610dc5565b820191906000526020600020905b815481529060010190602001808311610da857829003601f168201915b505050505081565b6000600080516020612ece8339815191526001600160a01b038316610e08576040516322718ad960e21b815260006004820152602401610a13565b6001600160a01b039092166000908152600390920160205250604090205490565b610e316118aa565b610b766000611aaa565b6000610e46826118dc565b5060026000610e5484611b1b565b6001600160a01b0316815260208101919091526040016000205492915050565b610e7c6118aa565b6001600160a01b03909116600090815260026020526040902055565b6000610ea2611b55565b6003546001600160a01b031615610efb5760405162461bcd60e51b815260206004820152601960248201527f544f4b454e5f5041594d454e545f414444524553535f534554000000000000006044820152606401610a13565b6000610f0633611b86565b9050610f488185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bc592505050565b610f945760405162461bcd60e51b815260206004820152601b60248201527f5349474e41545552455f56414c49444154494f4e5f4641494c454400000000006044820152606401610a13565b6001543414610fd55760405162461bcd60e51b815260206004820152600d60248201526c494e56414c49445f505249434560981b6044820152606401610a13565b610fde33610dcd565b1561102b5760405162461bcd60e51b815260206004820152601b60248201527f414444524553535f414c52454144595f4841535f42414c414e434500000000006044820152606401610a13565b600654611038338261195b565b6110466301e1338042612bd1565b33600090815260026020526040812091909155600680549161106783612be4565b9091555050336000818152600260209081526040918290205491519182527f8ae8ecf3fba48fa4fa86333a7d46148274bc592f859b7266d64e7b17dbb0d9da910160405180910390a2949350505050565b6110c06118aa565b610b76611c33565b60006110d2611b55565b6003546001600160a01b03166110fa5760405162461bcd60e51b8152600401610a1390612d39565b600061110533611b86565b90506111478185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611bc592505050565b6111935760405162461bcd60e51b815260206004820152601b60248201527f5349474e41545552455f56414c49444154494f4e5f4641494c454400000000006044820152606401610a13565b61119c33610dcd565b156111e95760405162461bcd60e51b815260206004820152601b60248201527f414444524553535f414c52454144595f4841535f42414c414e434500000000006044820152606401610a13565b600354600480546040516323b872dd60e01b8152339281019290925230602483015260448201526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015611244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112689190612c16565b50600654611038338261195b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793018054606091600080516020612ece833981519152916107a790612b6b565b61084b338383611c7c565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156113335750825b90506000826001600160401b0316600114801561134f5750303b155b90508115801561135d575080155b1561137b5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156113a557845460ff60401b1916600160401b1785555b6113af8a8a611d2d565b6113b833611d3f565b6113c0611d50565b6113c8611d60565b60006113d48982612d70565b50600580546001600160a01b0319166001600160a01b03891617905560018690556113fd611c33565b831561144357845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b61145a8484846109ed565b610a7784848484611d70565b6003546001600160a01b031661148e5760405162461bcd60e51b8152600401610a1390612d39565b336000908152600260205260409020544210156114d95760405162461bcd60e51b8152602060048201526009602482015268544f4f5f4541524c5960b81b6044820152606401610a13565b6114e233610dcd565b6001146115315760405162461bcd60e51b815260206004820152601d60248201527f414444524553535f444f45535f4e4f545f484156455f42414c414e43450000006044820152606401610a13565b600354600480546040516323b872dd60e01b8152339281019290925230602483015260448201526001600160a01b03909116906323b872dd906064016020604051808303816000875af115801561158c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b09190612c16565b5033600090815260026020526040812080546301e1338092906115d4908490612bd1565b9091555050336000818152600260209081526040918290205491519182527f8ae8ecf3fba48fa4fa86333a7d46148274bc592f859b7266d64e7b17dbb0d9da910160405180910390a2565b606061162a826118dc565b506000611635611e99565b905060008151116116555760405180602001604052806000815250611680565b8061165f84611f2b565b604051602001611670929190612e2e565b6040516020818303038152906040525b9392505050565b6003546001600160a01b0316156116b05760405162461bcd60e51b8152600401610a1390612d39565b336000908152600260205260409020544210156116fb5760405162461bcd60e51b8152602060048201526009602482015268544f4f5f4541524c5960b81b6044820152606401610a13565b600154341461173c5760405162461bcd60e51b815260206004820152600d60248201526c494e56414c49445f505249434560981b6044820152606401610a13565b61174533610dcd565b6001146117945760405162461bcd60e51b815260206004820152601d60248201527f414444524553535f444f45535f4e4f545f484156455f42414c414e43450000006044820152606401610a13565b33600090815260026020526040812080546301e1338092906115d4908490612bd1565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b61180c6118aa565b6001600160a01b03811661183657604051631e4fbdf760e01b815260006004820152602401610a13565b610d1c81611aaa565b6118476118aa565b80600154036118985760405162461bcd60e51b815260206004820181905260248201527f4e45575f53544154455f4944454e544943414c5f544f5f4f4c445f53544154456044820152606401610a13565b600155565b6118a56118aa565b600455565b336118b3611276565b6001600160a01b031614610b765760405163118cdaa760e01b8152336004820152602401610a13565b6000806118e883611b1b565b90506001600160a01b03811661074457604051637e27328960e01b815260048101849052602401610a13565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b610b938383836001611fbd565b61084b8282604051806020016040528060008152506120d3565b60008061198184611b1b565b90506001600160a01b038116156119c65760405162461bcd60e51b815260206004820152600960248201526814dbdd5b189bdd5b9960ba1b6044820152606401610a13565b6119d18585856120ea565b95945050505050565b6119e26121f4565b600080516020612eee833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00805460011901611a7e57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b600080516020612eee8339815191525460ff1615610b765760405163d93c066560e01b815260040160405180910390fd5b6040516bffffffffffffffffffffffff19606083901b166020820152600090603401604051602081830303815290604052805190602001209050919050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101839052600090611c1b90605c016040516020818303038152906040528051906020012083612224565b6005546001600160a01b039182169116149392505050565b611c3b611b55565b600080516020612eee833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611a1c565b600080516020612ece8339815191526001600160a01b038316611cbd57604051630b61174360e31b81526001600160a01b0384166004820152602401610a13565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b611d3561224e565b61084b8282612297565b611d4761224e565b610d1c816122c8565b611d5861224e565b610b766122d0565b611d6861224e565b610b766122f1565b6001600160a01b0383163b15610a7757604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290611db2903390889087908790600401612e5d565b6020604051808303816000875af1925050508015611ded575060408051601f3d908101601f19168201909252611dea91810190612e9a565b60015b611e56573d808015611e1b576040519150601f19603f3d011682016040523d82523d6000602084013e611e20565b606091505b508051600003611e4e57604051633250574960e11b81526001600160a01b0385166004820152602401610a13565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14611e9257604051633250574960e11b81526001600160a01b0385166004820152602401610a13565b5050505050565b606060008054611ea890612b6b565b80601f0160208091040260200160405190810160405280929190818152602001828054611ed490612b6b565b8015611f215780601f10611ef657610100808354040283529160200191611f21565b820191906000526020600020905b815481529060010190602001808311611f0457829003601f168201915b5050505050905090565b60606000611f38836122f9565b60010190506000816001600160401b03811115611f5757611f57612965565b6040519080825280601f01601f191660200182016040528015611f81576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611f8b57509392505050565b600080516020612ece8339815191528180611fe057506001600160a01b03831615155b156120a2576000611ff0856118dc565b90506001600160a01b0384161580159061201c5750836001600160a01b0316816001600160a01b031614155b801561202f575061202d81856117b7565b155b156120585760405163a9fbf51f60e01b81526001600160a01b0385166004820152602401610a13565b82156120a05784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6120dd83836123d1565b610b936000848484611d70565b6000600080516020612ece8339815191528161210585611b1b565b90506001600160a01b0384161561212157612121818587612436565b6001600160a01b038116156121615761213e600086600080611fbd565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b03861615612192576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b600080516020612eee8339815191525460ff16610b7657604051638dfc202b60e01b815260040160405180910390fd5b600080600080612234868661249a565b92509250925061224482826124e7565b5090949350505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610b7657604051631afcd79f60e31b815260040160405180910390fd5b61229f61224e565b600080516020612ece833981519152806122b98482612d70565b5060018101610a778382612d70565b61180c61224e565b6122d861224e565b600080516020612eee833981519152805460ff19169055565b611a8461224e565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106123385772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612364576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061238257662386f26fc10000830492506010015b6305f5e100831061239a576305f5e100830492506008015b61271083106123ae57612710830492506004015b606483106123c0576064830492506002015b600a83106107445760010192915050565b6001600160a01b0382166123fb57604051633250574960e11b815260006004820152602401610a13565b600061240983836000611975565b90506001600160a01b03811615610b93576040516339e3563760e11b815260006004820152602401610a13565b6124418383836125a0565b610b93576001600160a01b03831661246f57604051637e27328960e01b815260048101829052602401610a13565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610a13565b600080600083516041036124d45760208401516040850151606086015160001a6124c688828585612606565b9550955095505050506124e0565b50508151600091506002905b9250925092565b60008260038111156124fb576124fb612eb7565b03612504575050565b600182600381111561251857612518612eb7565b036125365760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561254a5761254a612eb7565b0361256b5760405163fce698f760e01b815260048101829052602401610a13565b600382600381111561257f5761257f612eb7565b0361084b576040516335e2f38360e21b815260048101829052602401610a13565b60006001600160a01b038316158015906125fe5750826001600160a01b0316846001600160a01b031614806125da57506125da84846117b7565b806125fe5750826001600160a01b03166125f383611914565b6001600160a01b0316145b949350505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561264157506000915060039050826126cb565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612695573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166126c1575060009250600191508290506126cb565b9250600091508190505b9450945094915050565b6001600160e01b031981168114610d1c57600080fd5b6000602082840312156126fd57600080fd5b8135611680816126d5565b80356001600160a01b038116811461271f57600080fd5b919050565b60006020828403121561273657600080fd5b61168082612708565b60005b8381101561275a578181015183820152602001612742565b50506000910152565b6000815180845261277b81602086016020860161273f565b601f01601f19169290920160200192915050565b6020815260006116806020830184612763565b6000602082840312156127b457600080fd5b5035919050565b600080604083850312156127ce57600080fd5b6127d783612708565b946020939093013593505050565b600080602083850312156127f857600080fd5b82356001600160401b0381111561280e57600080fd5b8301601f8101851361281f57600080fd5b80356001600160401b0381111561283557600080fd5b8560208260051b840101111561284a57600080fd5b6020919091019590945092505050565b60008060006060848603121561286f57600080fd5b61287884612708565b925061288660208501612708565b929592945050506040919091013590565b60008083601f8401126128a957600080fd5b5081356001600160401b038111156128c057600080fd5b6020830191508360208285010111156128d857600080fd5b9250929050565b600080602083850312156128f257600080fd5b82356001600160401b0381111561290857600080fd5b61291485828601612897565b90969095509350505050565b8015158114610d1c57600080fd5b6000806040838503121561294157600080fd5b61294a83612708565b9150602083013561295a81612920565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806001600160401b0384111561299557612995612965565b50604051601f19601f85018116603f011681018181106001600160401b03821117156129c3576129c3612965565b6040528381529050808284018510156129db57600080fd5b83836020830137600060208583010152509392505050565b600082601f830112612a0457600080fd5b6116808383356020850161297b565b600080600080600060a08688031215612a2b57600080fd5b85356001600160401b03811115612a4157600080fd5b612a4d888289016129f3565b95505060208601356001600160401b03811115612a6957600080fd5b612a75888289016129f3565b94505060408601356001600160401b03811115612a9157600080fd5b612a9d888289016129f3565b935050612aac60608701612708565b949793965091946080013592915050565b60008060008060808587031215612ad357600080fd5b612adc85612708565b9350612aea60208601612708565b92506040850135915060608501356001600160401b03811115612b0c57600080fd5b8501601f81018713612b1d57600080fd5b612b2c8782356020840161297b565b91505092959194509250565b60008060408385031215612b4b57600080fd5b612b5483612708565b9150612b6260208401612708565b90509250929050565b600181811c90821680612b7f57607f821691505b602082108103612b9f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561074457610744612bbb565b600060018201612bf657612bf6612bbb565b5060010190565b600060208284031215612c0f57600080fd5b5051919050565b600060208284031215612c2857600080fd5b815161168081612920565b601f821115610b9357806000526020600020601f840160051c81016020851015612c5a5750805b601f840160051c820191505b81811015611e925760008155600101612c66565b6001600160401b03831115612c9157612c91612965565b612ca583612c9f8354612b6b565b83612c33565b6000601f841160018114612cd95760008515612cc15750838201355b600019600387901b1c1916600186901b178355611e92565b600083815260209020601f19861690835b82811015612d0a5786850135825560209485019460019092019101612cea565b5086821015612d275760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6020808252601d908201527f544f4b454e5f5041594d454e545f414444524553535f4e4f545f534554000000604082015260600190565b81516001600160401b03811115612d8957612d89612965565b612d9d81612d978454612b6b565b84612c33565b6020601f821160018114612dd15760008315612db95750848201515b600019600385901b1c1916600184901b178455611e92565b600084815260208120601f198516915b82811015612e015787850151825560209485019460019092019101612de1565b5084821015612e1f5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60008351612e4081846020880161273f565b835190830190612e5481836020880161273f565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612e9090830184612763565b9695505050505050565b600060208284031215612eac57600080fd5b8151611680816126d5565b634e487b7160e01b600052602160045260246000fdfe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a2646970667358221220b40bd00b029ca8d75e6f52b97762a2bb4cd1aa25e7e800e09e106d8171cfdb7c64736f6c634300081a0033