0 txs
0 calls
constructor
constructor(address _nft, address _currency, uint256[] _maxAmountsPerStage, uint256[] _startTimesPerStage, address[] _whitelist)
functions
AIRDROP_ROLE
viewfunction AIRDROP_ROLE() view returns (bytes32)
airdropAmount
viewfunction airdropAmount() view returns (uint256)
airdropMinted
viewfunction airdropMinted() view returns (uint256)
CROSS_MINTER_ROLE
viewfunction CROSS_MINTER_ROLE() view returns (bytes32)
currency
viewfunction currency() view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
maxAmountsPerStage
viewfunction maxAmountsPerStage(uint256) view returns (uint256)
mintedByStage
viewfunction mintedByStage(uint8) view returns (uint256)
owner
viewfunction owner() view returns (address)
signers
viewfunction signers(address) view returns (bool)
startTimesPerStage
viewfunction startTimesPerStage(uint256) view returns (uint256)
startTokenId
viewfunction startTokenId() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
totalMinted
viewfunction totalMinted() view returns (uint256)
userInfo
viewfunction userInfo(address user, uint8 stage) view returns (uint256 total, uint256 minted, uint256[3] all)
userMintedByStage
viewfunction userMintedByStage(uint8, address) view returns (uint256)
airdropNFT
nonpayablefunction airdropNFT(address to, uint256 amount)
emergencyWithdraw
nonpayablefunction emergencyWithdraw(address to, address[] tokens)
emergencyWithdrawERC721
nonpayablefunction emergencyWithdrawERC721(address to, address[] tokens, uint256[] tokenIds)
granAirdropRole
nonpayablefunction granAirdropRole(address account)
grantCrossMinterRole
nonpayablefunction grantCrossMinterRole(address account)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
mintForAirdrop
nonpayablefunction mintForAirdrop(address to, uint256 amount)
mintNFT
payablefunction mintNFT(tuple data) payable
mintStage
nonpayablefunction mintStage() returns (uint8)
mintTo
payablefunction mintTo(address to, address token, tuple data) payable
renounceOwnership
nonpayablefunction renounceOwnership()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeAirdropRole
nonpayablefunction revokeAirdropRole(address account)
revokeCrossMinterRole
nonpayablefunction revokeCrossMinterRole(address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateCurrency
nonpayablefunction updateCurrency(address _currency)
updateFreeStages
nonpayablefunction updateFreeStages(uint8[] toAdd, uint8[] toRemove)
updateMaxAmountsPerStage
nonpayablefunction updateMaxAmountsPerStage(uint256[] _maxAmountsPerStage)
updateNFT
nonpayablefunction updateNFT(address _nft)
updateSigners
nonpayablefunction updateSigners(address[] toAdd, address[] toRemove)
updateStartTimesPerStage
nonpayablefunction updateStartTimesPerStage(uint256[] _startTimesPerStage)
updateStartTokenId
nonpayablefunction updateStartTokenId(uint256 _startTokenId)
withdraw
nonpayablefunction withdraw(address to, uint256 amount)
events
AirdropMinted
event AirdropMinted(uint256 amount, address operator, address receiver)
CurrencyUpdate
event CurrencyUpdate(address nftAddress)
FreeStageUpdate
event FreeStageUpdate(uint8 stage, bool isFree)
MaxAmountsPerStageUpdate
event MaxAmountsPerStageUpdate(uint256[] maxAmountsPerStage)
NFTMinted
event NFTMinted(address indexed to, uint8 indexed stage, uint256 amount, address token, uint256 price)
NFTUpdate
event NFTUpdate(address nftAddress)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
SignerUpdate
event SignerUpdate(address signer, bool isRemoval)
StartTimesPerStageUpdate
event StartTimesPerStageUpdate(uint256[] startTimesPerStage)
StartTokenIdUpdate
event StartTokenIdUpdate(uint256 startTokenId)
Withdraw
event Withdraw(address token, uint256 amount, address operator, address receiver)
WithdrawERC721
event WithdrawERC721(address token, uint256 tokenId, address operator, address receiver)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b50604051620041bf380380620041bf8339810160408190526200003491620003b1565b828282620000423362000158565b600160025582516200005c90600b9060208601906200024b565b5081516200007290600c9060208501906200024b565b5060006004819055600680546001600160a01b0319169055600781905560088190555b81518110156200010157600160036000848481518110620000ba57620000ba620004cd565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580620000f881620004e3565b91505062000095565b506200010f600033620001aa565b5050600f80546001600160a01b039788166001600160a01b031991821617909155610514600481905560068054979098169690911695909517909555505050600855506200050b565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000247576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002063390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b82805482825590600052602060002090810192821562000289579160200282015b82811115620002895782518255916020019190600101906200026c565b50620002979291506200029b565b5090565b5b808211156200029757600081556001016200029c565b80516001600160a01b0381168114620002ca57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620003105762000310620002cf565b604052919050565b60006001600160401b03821115620003345762000334620002cf565b5060051b60200190565b600082601f8301126200035057600080fd5b8151602062000369620003638362000318565b620002e5565b82815260059290921b840181019181810190868411156200038957600080fd5b8286015b84811015620003a657805183529183019183016200038d565b509695505050505050565b600080600080600060a08688031215620003ca57600080fd5b620003d586620002b2565b94506020620003e6818801620002b2565b60408801519095506001600160401b03808211156200040457600080fd5b620004128a838b016200033e565b955060608901519150808211156200042957600080fd5b620004378a838b016200033e565b945060808901519150808211156200044e57600080fd5b508701601f810189136200046157600080fd5b805162000472620003638262000318565b81815260059190911b8201830190838101908b8311156200049257600080fd5b928401925b82841015620004bb57620004ab84620002b2565b8252928401929084019062000497565b80955050505050509295509295909350565b634e487b7160e01b600052603260045260246000fd5b6000600182016200050457634e487b7160e01b600052601160045260246000fd5b5060010190565b613ca4806200051b6000396000f3fe6080604052600436106102d15760003560e01c8063715018a611610179578063c98d2309116100d6578063f150a0491161008a578063f5229e6d11610064578063f5229e6d14610832578063fa8b372f14610866578063fc2ea8a51461088657600080fd5b8063f150a049146107cb578063f2fde38b146107f2578063f3fef3a31461081257600080fd5b8063e5a6b10f116100bb578063e5a6b10f14610775578063e6798baa14610795578063ebd8dea3146107ab57600080fd5b8063c98d23091461073f578063d547741f1461075557600080fd5b8063a217fddf1161012d578063b1c9719411610112578063b1c97194146106d0578063b4dec4e0146106ff578063c58cdf901461071f57600080fd5b8063a217fddf146106a5578063a2309ff8146106ba57600080fd5b80638da5cb5b1161015e5780638da5cb5b1461060f57806391d14854146106415780639564feff1461068557600080fd5b8063715018a6146105ca578063736c0d5b146105df57600080fd5b806337e36f791161023257806347979ab7116101e6578063534110b0116101c0578063534110b01461056a5780635be68e931461058a5780635e027601146105aa57600080fd5b806347979ab7146104ff5780634e5553751461051f578063512ecb611461053257600080fd5b80633dd79ae2116102175780633dd79ae21461049257806341c86d44146104b25780634351013b146104d257600080fd5b806337e36f79146104525780633dcf13421461047257600080fd5b80632f2ff15d11610289578063350b23691161026e578063350b2369146103f257806336568abe14610412578063377a9f4c1461043257600080fd5b80632f2ff15d146103b2578063308d30a0146103d257600080fd5b80631c73ae64116102ba5780631c73ae64146103205780631e0fbfa21461034e578063248a9ca31461038257600080fd5b806301ffc9a7146102d657806305b7fb9e1461030b575b600080fd5b3480156102e257600080fd5b506102f66102f13660046132bb565b61089c565b60405190151581526020015b60405180910390f35b61031e610319366004613423565b610935565b005b34801561032c57600080fd5b5061034061033b366004613440565b610954565b604051908152602001610302565b34801561035a57600080fd5b506103407f3a2f235c9daaf33349d300aadff2f15078a89df81bcfdd45ba11c8f816bddc6f81565b34801561038e57600080fd5b5061034061039d366004613440565b60009081526020819052604090206001015490565b3480156103be57600080fd5b5061031e6103cd36600461346e565b610975565b3480156103de57600080fd5b5061031e6103ed36600461349e565b61099f565b3480156103fe57600080fd5b5061031e61040d366004613562565b610a7d565b34801561041e57600080fd5b5061031e61042d36600461346e565b610c39565b34801561043e57600080fd5b5061031e61044d3660046135c6565b610cc5565b34801561045e57600080fd5b5061031e61046d36600461349e565b610cf7565b34801561047e57600080fd5b5061031e61048d3660046135e3565b610def565b34801561049e57600080fd5b5061031e6104ad3660046136f4565b610fa0565b3480156104be57600080fd5b5061031e6104cd3660046137a9565b611138565b3480156104de57600080fd5b506103406104ed3660046137de565b600a6020526000908152604090205481565b34801561050b57600080fd5b5061034061051a366004613440565b6111e6565b61031e61052d3660046137f9565b6111f6565b34801561053e57600080fd5b5061034061054d366004613842565b600960209081526000928352604080842090915290825290205481565b34801561057657600080fd5b5061031e6105853660046135c6565b6112a6565b34801561059657600080fd5b5061031e6105a53660046135c6565b6112d8565b3480156105b657600080fd5b5061031e6105c53660046135c6565b611346565b3480156105d657600080fd5b5061031e6113b4565b3480156105eb57600080fd5b506102f66105fa3660046135c6565b600d6020526000908152604090205460ff1681565b34801561061b57600080fd5b506001546001600160a01b03165b6040516001600160a01b039091168152602001610302565b34801561064d57600080fd5b506102f661065c36600461346e565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b34801561069157600080fd5b5061031e6106a03660046137a9565b6113c8565b3480156106b157600080fd5b50610340600081565b3480156106c657600080fd5b5061034060085481565b3480156106dc57600080fd5b506106f06106eb36600461386e565b61158f565b604051610302939291906138a3565b34801561070b57600080fd5b5061031e61071a3660046138e4565b611667565b34801561072b57600080fd5b5061031e61073a3660046135c6565b61188a565b34801561074b57600080fd5b5061034060055481565b34801561076157600080fd5b5061031e61077036600461346e565b6118b8565b34801561078157600080fd5b50600654610629906001600160a01b031681565b3480156107a157600080fd5b5061034060075481565b3480156107b757600080fd5b5061031e6107c63660046135c6565b6118dd565b3480156107d757600080fd5b506107e061190f565b60405160ff9091168152602001610302565b3480156107fe57600080fd5b5061031e61080d3660046135c6565b61199e565b34801561081e57600080fd5b5061031e61082d36600461349e565b611a2b565b34801561083e57600080fd5b506103407ff41547b313a789295c7ff22c6b54c0b57eb90469de5b408222b32756c52fa3ed81565b34801561087257600080fd5b5061031e610881366004613440565b611c54565b34801561089257600080fd5b5061034060045481565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061092f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b61093d611c91565b6109473382611ce8565b6109516001600255565b50565b600c818154811061096457600080fd5b600091825260209091200154905081565b60008281526020819052604090206001015461099081611ffd565b61099a8383612007565b505050565b6109a76120c3565b6004546005546109b790836139e9565b11156040518060400160405280601781526020017f4d696e7465723a2041697264726f70206c696d6974656400000000000000000081525090610a165760405162461bcd60e51b8152600401610a0d9190613a20565b60405180910390fd5b50610a21828261211d565b80600554610a2f91906139e9565b600555604080518281523360208201526001600160a01b0384168183015290517f4efc9e8c7a0f080d7257cb6f396e6e2c61c5b2b1492d11a77ab5ed0bdabcd1649181900360600190a15050565b610a856120c3565b60005b8251811015610b63576001600d6000858481518110610aa957610aa9613a53565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc648f6265408cc54c0dc26d24ba51dfc9f35ce1a63baa2228f65d93aaf11cc67838281518110610b1b57610b1b613a53565b60200260200101516000604051610b499291906001600160a01b039290921682521515602082015260400190565b60405180910390a180610b5b81613a82565b915050610a88565b5060005b815181101561099a57600d6000838381518110610b8657610b86613a53565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81549060ff02191690557fc648f6265408cc54c0dc26d24ba51dfc9f35ce1a63baa2228f65d93aaf11cc67828281518110610bf157610bf1613a53565b60200260200101516001604051610c1f9291906001600160a01b039290921682521515602082015260400190565b60405180910390a180610c3181613a82565b915050610b67565b6001600160a01b0381163314610cb75760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401610a0d565b610cc182826121a0565b5050565b610ccd6120c3565b6109517f3a2f235c9daaf33349d300aadff2f15078a89df81bcfdd45ba11c8f816bddc6f82610975565b7f3a2f235c9daaf33349d300aadff2f15078a89df81bcfdd45ba11c8f816bddc6f610d2181611ffd565b600454600554610d3190846139e9565b11156040518060400160405280601781526020017f4d696e7465723a2041697264726f70206c696d6974656400000000000000000081525090610d875760405162461bcd60e51b8152600401610a0d9190613a20565b50610d92838361211d565b81600554610da091906139e9565b600555604080518381523360208201526001600160a01b0385168183015290517f4efc9e8c7a0f080d7257cb6f396e6e2c61c5b2b1492d11a77ab5ed0bdabcd1649181900360600190a1505050565b610df76120c3565b610dff611c91565b478015610e6057610e10838261223d565b60408051600081526020810183905233818301526001600160a01b038516606082015290517f9dfef32f0f1af6520e7a4f8eff8cc6a3444943d083e156ae859ee6002c28b0299181900360800190a15b60005b8251811015610f94576000838281518110610e8057610e80613a53565b60209081029190910101516040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610eee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f129190613aba565b90508015610f7f57610f2e6001600160a01b0383168783612356565b604080516001600160a01b0384811682526020820184905233828401528816606082015290517f9dfef32f0f1af6520e7a4f8eff8cc6a3444943d083e156ae859ee6002c28b0299181900360800190a15b50508080610f8c90613a82565b915050610e63565b5050610cc16001600255565b610fa86120c3565b60005b8251811015611074576001600e6000858481518110610fcc57610fcc613a53565b602002602001015160ff1660ff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd6475b2d2286e73cbae1d673fcb1a686f51261f5801f1dab64193bb92fd01d0283828151811061103257611032613a53565b6020026020010151600160405161105a92919060ff9290921682521515602082015260400190565b60405180910390a18061106c81613a82565b915050610fab565b5060005b815181101561099a57600e600083838151811061109757611097613a53565b602002602001015160ff1660ff16815260200190815260200160002060006101000a81549060ff02191690557fd6475b2d2286e73cbae1d673fcb1a686f51261f5801f1dab64193bb92fd01d028282815181106110f6576110f6613a53565b6020026020010151600060405161111e92919060ff9290921682521515602082015260400190565b60405180910390a18061113081613a82565b915050611078565b6111406120c3565b805160408051808201909152601481527f4d696e7465723a20496e76616c696420617267730000000000000000000000006020820152906003146111975760405162461bcd60e51b8152600401610a0d9190613a20565b5080516111ab90600b90602084019061323d565b507fed6ab00c0fa02e0975164c72b8d4fd76845e187abe7be50fd72100747931dffa816040516111db9190613ad3565b60405180910390a150565b600b818154811061096457600080fd5b7ff41547b313a789295c7ff22c6b54c0b57eb90469de5b408222b32756c52fa3ed61122081611ffd565b611228611c91565b60065460408051808201909152601481527f4d696e7465723a20496e76616c696420617267730000000000000000000000006020820152906001600160a01b0385811691161461128b5760405162461bcd60e51b8152600401610a0d9190613a20565b506112968483611ce8565b6112a06001600255565b50505050565b6112ae6120c3565b6109517ff41547b313a789295c7ff22c6b54c0b57eb90469de5b408222b32756c52fa3ed826118b8565b6112e06120c3565b600f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f7f8555f29e58d5ea419dffedac71e64b4012ffd7c119cccd28aa25d19abcd7c7906020016111db565b61134e6120c3565b600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527ffbd43d523ad62afb693158d7490531be4d55b2933cfb8a4e18ac475412dafd94906020016111db565b6113bc6120c3565b6113c660006123ff565b565b6113d06120c3565b805160408051808201909152601481527f4d696e7465723a20496e76616c696420617267730000000000000000000000006020820152906003146114275760405162461bcd60e51b8152600401610a0d9190613a20565b5080600060ff168151811061143e5761143e613a53565b602002602001015181600160ff168151811061145c5761145c613a53565b6020026020010151116040518060400160405280601481526020017f4d696e7465723a20496e76616c69642061726773000000000000000000000000815250906114b95760405162461bcd60e51b8152600401610a0d9190613a20565b5080600160ff16815181106114d0576114d0613a53565b602002602001015181600260ff16815181106114ee576114ee613a53565b6020026020010151116040518060400160405280601481526020017f4d696e7465723a20496e76616c696420617267730000000000000000000000008152509061154b5760405162461bcd60e51b8152600401610a0d9190613a20565b50805161155f90600c90602084019061323d565b507fe10814cc4a1636b4a170854623415f9d16186892544cfbd5968b70013a5210e1816040516111db9190613ad3565b60008061159a613288565b505060085460ff9290921660009081526009602090815260408083206001600160a01b03969096168084529582528083205481516060810183527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b84528285205481528785527f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36845282852054818501529684527f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c390925291829020549185019190915291939192919050565b61166f6120c3565b611677611c91565b80518251146116c85760405162461bcd60e51b815260206004820152601460248201527f4d696e7465723a206c656e67746820636865636b0000000000000000000000006044820152606401610a0d565b60005b825181101561187f5760008382815181106116e8576116e8613a53565b60200260200101519050600083838151811061170657611706613a53565b60200260200101519050306001600160a01b0316826001600160a01b0316636352211e836040518263ffffffff1660e01b815260040161174891815260200190565b602060405180830381865afa158015611765573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117899190613b17565b6001600160a01b03160361186a576040517f42842e0e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038781166024830152604482018390528316906342842e0e90606401600060405180830381600087803b15801561180057600080fd5b505af1158015611814573d6000803e3d6000fd5b5050604080516001600160a01b0386811682526020820186905233828401528a16606082015290517ff95293742896ce3f4c604795d90622b92bc123c2e1643e3d633785bdaa6e58259350908190036080019150a15b5050808061187790613a82565b9150506116cb565b5061099a6001600255565b6118926120c3565b6109517f3a2f235c9daaf33349d300aadff2f15078a89df81bcfdd45ba11c8f816bddc6f825b6000828152602081905260409020600101546118d381611ffd565b61099a83836121a0565b6118e56120c3565b6109517ff41547b313a789295c7ff22c6b54c0b57eb90469de5b408222b32756c52fa3ed82610975565b6000600c600260ff168154811061192857611928613a53565b90600052602060002001544211156119405750600290565b600c8054600190811061195557611955613a53565b906000526020600020015442111561196d5750600190565b600c805460009061198057611980613a53565b90600052602060002001544211156119985750600090565b50606390565b6119a66120c3565b6001600160a01b038116611a225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a0d565b610951816123ff565b611a336120c3565b611a3b611c91565b60408051808201909152601681527f4d696e7465723a20496e76616c696420616d6f756e7400000000000000000000602082015281611a8d5760405162461bcd60e51b8152600401610a0d9190613a20565b506006546001600160a01b0316611b035760408051808201909152601a81527f4d696e7465723a204e6f7420656e6f7567682062616c616e6365000000000000602082015247821115611af35760405162461bcd60e51b8152600401610a0d9190613a20565b50611afe828261223d565b611bf7565b6006546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611b64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b889190613aba565b8111156040518060400160405280601a81526020017f4d696e7465723a204e6f7420656e6f7567682062616c616e636500000000000081525090611bdf5760405162461bcd60e51b8152600401610a0d9190613a20565b50600654611bf7906001600160a01b03168383612356565b600654604080516001600160a01b0392831681526020810184905233818301529184166060830152517f9dfef32f0f1af6520e7a4f8eff8cc6a3444943d083e156ae859ee6002c28b0299181900360800190a1610cc16001600255565b611c5c6120c3565b60078190556040518181527f582f3c400877ad84bb6c4d705a3308de5eaaf16c6e43e5e9d47489bd465d064f906020016111db565b6002805403611ce25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a0d565b60028055565b428160200151116040518060400160405280601881526020017f4d696e7465723a20446561646c696e652072656163686564000000000000000081525090611d435760405162461bcd60e51b8152600401610a0d9190613a20565b506000611d4e61190f565b60408051808201909152601581527f4d696e7465723a20496e76616c69642073746167650000000000000000000000602082015290915060ff8216606303611da95760405162461bcd60e51b8152600401610a0d9190613a20565b5060008260800151116040518060400160405280601681526020017f4d696e7465723a20496e76616c696420616d6f756e740000000000000000000081525090611e065760405162461bcd60e51b8152600401610a0d9190613a20565b506001600160a01b03831660009081526003602052604090205460ff1615611eff5734158015611e38575060a0820151155b6040518060400160405280601581526020017f4d696e7465723a20496e76616c6964207072696365000000000000000000000081525090611e8c5760405162461bcd60e51b8152600401610a0d9190613a20565b50611e9c83828460800151612469565b608082015160065460a0840151604080519384526001600160a01b03928316602085015283015260ff831691908516907fff3927a77d7b42c9912ce5b358fece792131a993de477208817aaa261ab75c55906060015b60405180910390a3505050565b8060ff16826040015160ff16146040518060400160405280601581526020017f4d696e7465723a20496e76616c6964207374616765000000000000000000000081525090611f605760405162461bcd60e51b8152600401610a0d9190613a20565b50611f74818360a001518460800151612553565b611f7e838361275c565b611f8883836128a2565b611f9b8383604001518460800151612469565b604080830151608084015160065460a086015184519283526001600160a01b0391821660208401529382019390935260ff909116918516907fff3927a77d7b42c9912ce5b358fece792131a993de477208817aaa261ab75c5590606001611ef2565b61095181336129b3565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610cc1576000828152602081815260408083206001600160a01b0385168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561207f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6001546001600160a01b031633146113c65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a0d565b600f546040517f43508b050000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260248201849052909116906343508b0590604401600060405180830381600087803b15801561218457600080fd5b505af1158015612198573d6000803e3d6000fd5b505050505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1615610cc1576000828152602081815260408083206001600160a01b038516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b8047101561228d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a0d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146122da576040519150601f19603f3d011682016040523d82523d6000602084013e6122df565b606091505b505090508061099a5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a0d565b6040516001600160a01b03831660248201526044810182905261099a9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612a26565b600180546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b612474838383612b0b565b60ff82166124e0576001600052600a6020527fbbc70db1b6c7afd11e79c0fb0051300458f1a3acb8ee9789d9b6b26c61ad9bc7546124b39082906139e9565b6001600052600a6020527fbbc70db1b6c7afd11e79c0fb0051300458f1a3acb8ee9789d9b6b26c61ad9bc7555b60ff821660021461099a576002600052600a6020527fbff4442b8ed600beeb8e26b1279a0f0d14c6edfaec26d968ee13c86f7d4c2ba8546125229082906139e9565b6002600052600a6020527fbff4442b8ed600beeb8e26b1279a0f0d14c6edfaec26d968ee13c86f7d4c2ba855505050565b6006546001600160a01b03166126835761256d8183613b34565b34146040518060400160405280601581526020017f4d696e7465723a20496e76616c69642070726963650000000000000000000000815250906125c35760405162461bcd60e51b8152600401610a0d9190613a20565b5060ff8084166000908152600e602052604090205416156126315760408051808201909152601581527f4d696e7465723a20496e76616c69642070726963650000000000000000000000602082015282156112a05760405162461bcd60e51b8152600401610a0d9190613a20565b60408051808201909152601581527f4d696e7465723a20496e76616c696420707269636500000000000000000000006020820152826112a05760405162461bcd60e51b8152600401610a0d9190613a20565b60408051808201909152601581527f4d696e7465723a20496e76616c69642070726963650000000000000000000000602082015234156126d65760405162461bcd60e51b8152600401610a0d9190613a20565b5060006126e38284613b34565b116040518060400160405280601581526020017f4d696e7465723a20496e76616c69642070726963650000000000000000000000815250906127385760405162461bcd60e51b8152600401610a0d9190613a20565b5061099a33306127488486613b34565b6006546001600160a01b0316929190612bb8565b6000816040015190506000600b8260ff168154811061277d5761277d613a53565b600091825260208083209091015460ff85168352600a8252604080842054600984528185206001600160a01b038a168652909352909220546060860151608087015193945091929091906127d29083906139e9565b11156040518060400160405280601981526020017f4d696e7465723a2055736572206d696e74206c696d6974656400000000000000815250906128285760405162461bcd60e51b8152600401610a0d9190613a20565b5082158061284557508282866080015161284291906139e9565b11155b6040518060400160405280601a81526020017f4d696e7465723a205374616765206d696e74206c696d69746564000000000000815250906128995760405162461bcd60e51b8152600401610a0d9190613a20565b50505050505050565b805160208083015160408085015160608087015160808089015160a0808b01518751998a019a909a52958801969096526001600160a01b038a169287019290925260ff909216908501529083015260c082015260e0810191909152600090610100016040516020818303038152906040528051906020012090506000612937828461010001518560c001518660e00151612c09565b6001600160a01b0381166000908152600d6020908152604091829020548251808401909352601783527f4d696e7465723a205369676e6174757265206572726f72000000000000000000918301919091529192509060ff166129ac5760405162461bcd60e51b8152600401610a0d9190613a20565b5050505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16610cc1576129e481612c33565b6129ef836020612c45565b604051602001612a00929190613b4b565b60408051601f198184030181529082905262461bcd60e51b8252610a0d91600401613a20565b6000612a7b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e759092919063ffffffff16565b80519091501561099a5780806020019051810190612a999190613bcc565b61099a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610a0d565b612b15838261211d565b8060086000828254612b2791906139e9565b909155505060ff821660009081526009602090815260408083206001600160a01b0387168452909152902054612b5e9082906139e9565b60ff831660008181526009602090815260408083206001600160a01b0389168452825280832094909455918152600a9091522054612b9d9082906139e9565b60ff9092166000908152600a60205260409020919091555050565b6040516001600160a01b03808516602483015283166044820152606481018290526112a09085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161239b565b6000806000612c1a87878787612e84565b91509150612c2781612f48565b5090505b949350505050565b606061092f6001600160a01b03831660145b60606000612c54836002613b34565b612c5f9060026139e9565b67ffffffffffffffff811115612c7757612c776132fd565b6040519080825280601f01601f191660200182016040528015612ca1576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612cd857612cd8613a53565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612d3b57612d3b613a53565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612d77846002613b34565b612d829060016139e9565b90505b6001811115612e1f577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110612dc357612dc3613a53565b1a60f81b828281518110612dd957612dd9613a53565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93612e1881613bee565b9050612d85565b508315612e6e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a0d565b9392505050565b6060612c2b84846000856130ad565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612ebb5750600090506003612f3f565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612f0f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612f3857600060019250925050612f3f565b9150600090505b94509492505050565b6000816004811115612f5c57612f5c613c23565b03612f645750565b6001816004811115612f7857612f78613c23565b03612fc55760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610a0d565b6002816004811115612fd957612fd9613c23565b036130265760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a0d565b600381600481111561303a5761303a613c23565b036109515760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610a0d565b6060824710156131255760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610a0d565b600080866001600160a01b031685876040516131419190613c52565b60006040518083038185875af1925050503d806000811461317e576040519150601f19603f3d011682016040523d82523d6000602084013e613183565b606091505b50915091506131948783838761319f565b979650505050505050565b6060831561320e578251600003613207576001600160a01b0385163b6132075760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a0d565b5081612c2b565b612c2b83838151156132235781518083602001fd5b8060405162461bcd60e51b8152600401610a0d9190613a20565b828054828255906000526020600020908101928215613278579160200282015b8281111561327857825182559160200191906001019061325d565b506132849291506132a6565b5090565b60405180606001604052806003906020820280368337509192915050565b5b8082111561328457600081556001016132a7565b6000602082840312156132cd57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114612e6e57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715613350576133506132fd565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561337f5761337f6132fd565b604052919050565b803560ff8116811461339857600080fd5b919050565b600061012082840312156133b057600080fd5b6133b861332c565b905081358152602082013560208201526133d460408301613387565b6040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e0820152610100613419818401613387565b9082015292915050565b6000610120828403121561343657600080fd5b612e6e838361339d565b60006020828403121561345257600080fd5b5035919050565b6001600160a01b038116811461095157600080fd5b6000806040838503121561348157600080fd5b82359150602083013561349381613459565b809150509250929050565b600080604083850312156134b157600080fd5b82356134bc81613459565b946020939093013593505050565b600067ffffffffffffffff8211156134e4576134e46132fd565b5060051b60200190565b600082601f8301126134ff57600080fd5b8135602061351461350f836134ca565b613356565b82815260059290921b8401810191818101908684111561353357600080fd5b8286015b8481101561355757803561354a81613459565b8352918301918301613537565b509695505050505050565b6000806040838503121561357557600080fd5b823567ffffffffffffffff8082111561358d57600080fd5b613599868387016134ee565b935060208501359150808211156135af57600080fd5b506135bc858286016134ee565b9150509250929050565b6000602082840312156135d857600080fd5b8135612e6e81613459565b600080604083850312156135f657600080fd5b823561360181613459565b915060208381013567ffffffffffffffff81111561361e57600080fd5b8401601f8101861361362f57600080fd5b803561363d61350f826134ca565b81815260059190911b8201830190838101908883111561365c57600080fd5b928401925b8284101561368357833561367481613459565b82529284019290840190613661565b80955050505050509250929050565b600082601f8301126136a357600080fd5b813560206136b361350f836134ca565b82815260059290921b840181019181810190868411156136d257600080fd5b8286015b84811015613557576136e781613387565b83529183019183016136d6565b6000806040838503121561370757600080fd5b823567ffffffffffffffff8082111561371f57600080fd5b61372b86838701613692565b9350602085013591508082111561374157600080fd5b506135bc85828601613692565b600082601f83011261375f57600080fd5b8135602061376f61350f836134ca565b82815260059290921b8401810191818101908684111561378e57600080fd5b8286015b848110156135575780358352918301918301613792565b6000602082840312156137bb57600080fd5b813567ffffffffffffffff8111156137d257600080fd5b612c2b8482850161374e565b6000602082840312156137f057600080fd5b612e6e82613387565b6000806000610160848603121561380f57600080fd5b833561381a81613459565b9250602084013561382a81613459565b9150613839856040860161339d565b90509250925092565b6000806040838503121561385557600080fd5b61385e83613387565b9150602083013561349381613459565b6000806040838503121561388157600080fd5b823561388c81613459565b915061389a60208401613387565b90509250929050565b838152602080820184905260a0820190604083018460005b60038110156138d8578151835291830191908301906001016138bb565b50505050949350505050565b6000806000606084860312156138f957600080fd5b833561390481613459565b925060208481013567ffffffffffffffff8082111561392257600080fd5b818701915087601f83011261393657600080fd5b813561394461350f826134ca565b81815260059190911b8301840190848101908a83111561396357600080fd5b938501935b8285101561398a57843561397b81613459565b82529385019390850190613968565b9650505060408701359250808311156139a257600080fd5b50506139b08682870161374e565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561092f5761092f6139ba565b60005b83811015613a175781810151838201526020016139ff565b50506000910152565b6020815260008251806020840152613a3f8160408501602087016139fc565b601f01601f19169190910160400192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613ab357613ab36139ba565b5060010190565b600060208284031215613acc57600080fd5b5051919050565b6020808252825182820181905260009190848201906040850190845b81811015613b0b57835183529284019291840191600101613aef565b50909695505050505050565b600060208284031215613b2957600080fd5b8151612e6e81613459565b808202811582820484141761092f5761092f6139ba565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613b838160178501602088016139fc565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613bc08160288401602088016139fc565b01602801949350505050565b600060208284031215613bde57600080fd5b81518015158114612e6e57600080fd5b600081613bfd57613bfd6139ba565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60008251613c648184602087016139fc565b919091019291505056fea2646970667358221220dbe00c08b97c11603cf336a80bf32f6191eab1764ce45190d1154aec3030d59864736f6c63430008120033000000000000000000000000f8e7400bb95a9ef09212b097fe164684d67a7233000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000006639d170000000000000000000000000000000000000000000000000000000006639d878000000000000000000000000000000000000000000000000000000006639df800000000000000000000000000000000000000000000000000000000000000000