368 txs
370 calls
constructor
constructor(address _nft, address _token, uint256 _tokenPrice, uint256 _tokenDecimals)
functions
getPresaleData
viewfunction getPresaleData(address _user) view returns (tuple)
getPurchaseEligibility
viewfunction getPurchaseEligibility(address _user) view returns (uint256 availableTokens)
getRedeemableTokens
viewfunction getRedeemableTokens(address _user) view returns (bool canRedeem, uint256 redeemableAmount)
nft
viewfunction nft() view returns (address)
nftInitialized
viewfunction nftInitialized(uint256) view returns (bool)
nftRemainingAllowance
viewfunction nftRemainingAllowance(uint256) view returns (uint256)
owner
viewfunction owner() view returns (address)
rarityToMaxTokens
viewfunction rarityToMaxTokens(uint256) view returns (uint256)
redeemable
viewfunction redeemable() view returns (bool)
saleActive
viewfunction saleActive() view returns (bool)
saleFinalized
viewfunction saleFinalized() view returns (bool)
token
viewfunction token() view returns (address)
tokenDecimals
viewfunction tokenDecimals() view returns (uint256)
tokenPrice
viewfunction tokenPrice() view returns (uint256)
tokensPurchased
viewfunction tokensPurchased(address) view returns (uint256)
tokensSold
viewfunction tokensSold() view returns (uint256)
totalTokensForSale
viewfunction totalTokensForSale() view returns (uint256)
whitelist
viewfunction whitelist(address) view returns (bool isWhitelisted, uint256 amount)
buy
payablefunction buy(uint256 _tokenAmount, uint256[] _tokenIds) payable
endSale
nonpayablefunction endSale()
redeemTokens
nonpayablefunction redeemTokens()
renounceOwnership
nonpayablefunction renounceOwnership()
setRedeemable
nonpayablefunction setRedeemable()
startSale
nonpayablefunction startSale(uint256 _totalTokensForSale)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateWhitelist
nonpayablefunction updateWhitelist(address[] _users, bool[] _statuses, uint256[] _amounts)
withdrawETH
nonpayablefunction withdrawETH()
withdrawTokens
nonpayablefunction withdrawTokens()
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RarityMaxTokensUpdated
event RarityMaxTokensUpdated(uint256 rarity, uint256 maxTokens)
SaleEnded
event SaleEnded()
SaleRedeemable
event SaleRedeemable()
SaleStarted
event SaleStarted(address token, uint256 totalTokens)
TokensPurchased
event TokensPurchased(address indexed buyer, uint256 amount, uint256[] nftIds)
TokensRedeemed
event TokensRedeemed(address indexed user, uint256 amount)
WhitelistUpdated
event WhitelistUpdated(address indexed user, bool status, uint256 amount)
errors
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x60806040525f6007556008805462ffffff1916905534801561001f575f5ffd5b506040516128fd3803806128fd83398101604081905261003e916102c3565b338061006457604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006d81610259565b50600180556001600160a01b0383166100c85760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420746f6b656e20616464726573730000000000000000000000604482015260640161005b565b5f811161010a5760405162461bcd60e51b815260206004820152601060248201526f496e76616c696420646563696d616c7360801b604482015260640161005b565b600380546001600160a01b038087166001600160a01b03199283161790925560048490556002805492861692909116919091179055600581905561014f81600a6103fc565b61015c90620cf85061040e565b5f805260096020527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b5561019181600a6103fc565b61019e906219f0a061040e565b60015f5260096020527f92e85d02570a8092d09a6e3a57665bc3815a2699a4074001bf1ccabf660f5a36556101d481600a6103fc565b6101e1906233e14061040e565b60025f5260096020527f6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c35561021781600a6103fc565b610224906267c28061040e565b60035f5260096020527fc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e7555061042592505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146102be575f5ffd5b919050565b5f5f5f5f608085870312156102d6575f5ffd5b6102df856102a8565b93506102ed602086016102a8565b6040860151606090960151949790965092505050565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156103525780850481111561033657610336610303565b600184161561034457908102905b60019390931c92800261031b565b935093915050565b5f82610368575060016103f6565b8161037457505f6103f6565b816001811461038a5760028114610394576103b0565b60019150506103f6565b60ff8411156103a5576103a5610303565b50506001821b6103f6565b5060208310610133831016604e8410600b84101617156103d3575081810a6103f6565b6103df5f198484610317565b805f19048211156103f2576103f2610303565b0290505b92915050565b5f610407838361035a565b9392505050565b80820281158282048414176103f6576103f6610303565b6124cb806104325f395ff3fe6080604052600436106101af575f3560e01c806360219c7b116100e75780639b19251a11610087578063e6320a0a11610062578063e6320a0a146104e3578063e9a9c50c146104f6578063f2fde38b1461050a578063fc0c546a14610529575f5ffd5b80639b19251a14610479578063a5f0dea2146104b1578063e086e5ec146104cf575f5ffd5b8063715018a6116100c2578063715018a6146104205780637ff9b596146104345780638d8f2adb146104495780638da5cb5b1461045d575f5ffd5b806360219c7b146103d3578063630c9940146103e857806368428a1b14610407575f5ffd5b80632d7ecd111161015257806344dba2591161012d57806344dba2591461033d57806347ccca021461035c5780635152ab6c14610393578063518ab2a8146103be575f5ffd5b80632d7ecd11146102f5578063380d831b146103145780633b97e85614610328575f5ffd5b80631ede17351161018d5780631ede17351461024257806326a95330146102785780632a578cc1146102b65780632ad92740146102ca575f5ffd5b80630e3ab61d146101b3578063119caa2f146101d457806318437e2214610209575b5f5ffd5b3480156101be575f5ffd5b506101d26101cd366004611c90565b610548565b005b3480156101df575f5ffd5b506101f36101ee366004611cbb565b610724565b6040516102009190611d91565b60405180910390f35b348015610214575f5ffd5b50610234610223366004611c90565b60096020525f908152604090205481565b604051908152602001610200565b34801561024d575f5ffd5b5061026161025c366004611cbb565b610bf8565b604080519215158352602083019190915201610200565b348015610283575f5ffd5b506102a6610292366004611c90565b600d6020525f908152604090205460ff1681565b6040519015158152602001610200565b3480156102c1575f5ffd5b506101d2610c5d565b3480156102d5575f5ffd5b506102346102e4366004611cbb565b600b6020525f908152604090205481565b348015610300575f5ffd5b506008546102a69062010000900460ff1681565b34801561031f575f5ffd5b506101d2610cea565b348015610333575f5ffd5b5061023460055481565b348015610348575f5ffd5b506101d2610357366004611ef5565b610d4d565b348015610367575f5ffd5b5060035461037b906001600160a01b031681565b6040516001600160a01b039091168152602001610200565b34801561039e575f5ffd5b506102346103ad366004611c90565b600c6020525f908152604090205481565b3480156103c9575f5ffd5b5061023460075481565b3480156103de575f5ffd5b5061023460065481565b3480156103f3575f5ffd5b50610234610402366004611cbb565b610f37565b348015610412575f5ffd5b506008546102a69060ff1681565b34801561042b575f5ffd5b506101d2611113565b34801561043f575f5ffd5b5061023460045481565b348015610454575f5ffd5b506101d2611126565b348015610468575f5ffd5b505f546001600160a01b031661037b565b348015610484575f5ffd5b50610261610493366004611cbb565b600a6020525f90815260409020805460019091015460ff9091169082565b3480156104bc575f5ffd5b506008546102a690610100900460ff1681565b3480156104da575f5ffd5b506101d2611218565b6101d26104f1366004611ff7565b61127e565b348015610501575f5ffd5b506101d26119d0565b348015610515575f5ffd5b506101d2610524366004611cbb565b611b82565b348015610534575f5ffd5b5060025461037b906001600160a01b031681565b610550611bbc565b60085460ff161561059e5760405162461bcd60e51b815260206004820152601360248201527253616c6520616c72656164792061637469766560681b60448201526064015b60405180910390fd5b600854610100900460ff16156105ef5760405162461bcd60e51b815260206004820152601660248201527514d85b1948185b1c9958591e48199a5b985b1a5e995960521b6044820152606401610595565b5f81116106355760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a59081d1bdad95b88185b5bdd5b9d60621b6044820152606401610595565b60068190556002546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303815f875af115801561068e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b291906120a5565b6106ce5760405162461bcd60e51b8152600401610595906120c0565b6008805460ff19166001179055600254604080516001600160a01b039092168252602082018390527f93b49cdc93b4aac9ef5dddba39b2cba1a9e793599d6d493b381a8ec0a43ec59a910160405180910390a150565b61079d604051806101e001604052805f151581526020015f151581526020015f151581526020015f81526020015f81526020015f81526020015f151581526020015f81526020015f151581526020015f81526020016060815260200160608152602001606081526020015f81526020015f151581525090565b60035460405162438b6360e81b81526001600160a01b0384811660048301525f92169063438b6300906024015f60405180830381865afa1580156107e3573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261080a91908101906120ef565b90505f81516001600160401b0381111561082657610826611f91565b60405190808252806020026020018201604052801561084f578160200160208202803683370190505b5090505f82516001600160401b0381111561086c5761086c611f91565b604051908082528060200260200182016040528015610895578160200160208202803683370190505b5090505f83516001600160401b038111156108b2576108b2611f91565b6040519080825280602002602001820160405280156108e557816020015b60608152602001906001900390816108d05790505b506001600160a01b0387165f908152600a602090815260408083208151808301909252805460ff1615158083526001909101549282019290925292935061092c575f610932565b81602001515b90505f825f0151610943575f610946565b82515b90505f5b8751811015610aef575f88828151811061096657610966612175565b602002602001015190508088838151811061098357610983612175565b6020908102919091018101919091525f828152600c8252604080822054600d90935290205460ff16610a3d5760035460405163288f410760e11b8152600481018490525f916001600160a01b03169063511e820e90602401602060405180830381865afa1580156109f6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1a9190612189565b6003811115610a2b57610a2b6121a7565b5f908152600960205260409020549150505b80888481518110610a5057610a50612175565b602090810291909101015260035460405163c87b56dd60e01b8152600481018490526001600160a01b039091169063c87b56dd906024015f60405180830381865afa158015610aa1573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ac891908101906121bb565b878481518110610ada57610ada612175565b6020908102919091010152505060010161094a565b506008545f90610100900460ff168015610b11575060085462010000900460ff165b8015610b3357506001600160a01b038a165f908152600b602052604090205415155b6001600160a01b038b165f908152600b6020526040812054919250610b578c610f37565b604080516101e08101825260085460ff8082161515835261010080830482161515602085015262010000909204161515928201929092526004546060820152600654608082015260075460a082015282151560c082015260e08101929092529315159381019390935250610120820152610140810196909652610160860194909452610180850192909252506101a083015215156101c08201529392505050565b6008545f908190610100900460ff168015610c1b575060085462010000900460ff165b8015610c3d57506001600160a01b0383165f908152600b602052604090205415155b6001600160a01b039093165f908152600b60205260409020549293915050565b610c65611bbc565b60085460ff1615610c885760405162461bcd60e51b81526004016105959061224d565b600854610100900460ff16610caf5760405162461bcd60e51b815260040161059590612276565b6008805462ff00001916620100001790556040517f79c90f2deb8aec72206f067af4408738768c3a23fdad59542065f808433c3715905f90a1565b610cf2611bbc565b60085460ff16610d145760405162461bcd60e51b81526004016105959061224d565b6008805461ffff19166101001790556040517f0bd8a3eb532e5fbcd3f5b00335f0fb42fdc11969e9af0fab7c9e71a36ae0d31a905f90a1565b610d55611bbc565b8483148015610d6357508481145b610dbb5760405162461bcd60e51b815260206004820152602360248201527f496e70757420617272617973206d757374206861766520657175616c206c656e6044820152620cee8d60eb1b6064820152608401610595565b5f5b85811015610f2e576040518060400160405280868684818110610de257610de2612175565b9050602002016020810190610df791906122a2565b15158152602001848484818110610e1057610e10612175565b90506020020135815250600a5f898985818110610e2f57610e2f612175565b9050602002016020810190610e449190611cbb565b6001600160a01b031681526020808201929092526040015f208251815460ff1916901515178155910151600190910155868682818110610e8657610e86612175565b9050602002016020810190610e9b9190611cbb565b6001600160a01b03167f0f2ab3269df45d41960fdf14c84cd22dfb81c269985eecc7ee6b93764639ae45868684818110610ed757610ed7612175565b9050602002016020810190610eec91906122a2565b858585818110610efe57610efe612175565b90506020020135604051610f1e9291909115158252602082015260400190565b60405180910390a2600101610dbd565b50505050505050565b6001600160a01b0381165f908152600a602090815260408083208151808301909252805460ff16158015835260019091015492820192909252908290610f89576020820151610f8690826122d1565b90505b60035460405162438b6360e81b81526001600160a01b0386811660048301525f92169063438b6300906024015f60405180830381865afa158015610fcf573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ff691908101906120ef565b90505f5b81518110156110e6575f82828151811061101657611016612175565b6020908102919091018101515f818152600c8352604080822054600d90945290205490925060ff166110d05760035460405163288f410760e11b8152600481018490525f916001600160a01b03169063511e820e90602401602060405180830381865afa158015611089573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ad9190612189565b60038111156110be576110be6121a7565b5f908152600960205260409020549150505b6110da81866122d1565b94505050600101610ffa565b505f6007546006546110f891906122ea565b90508083116111075782611109565b805b9695505050505050565b61111b611bbc565b6111245f611be8565b565b61112e611bbc565b600854610100900460ff166111555760405162461bcd60e51b815260040161059590612276565b5f60075460065461116691906122ea565b6002549091506001600160a01b031663a9059cbb61118b5f546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af11580156111d5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f991906120a5565b6112155760405162461bcd60e51b8152600401610595906120c0565b50565b611220611bbc565b600854610100900460ff166112475760405162461bcd60e51b815260040161059590612276565b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015611215573d5f5f3e3d5ffd5b611286611c37565b60085460ff166112a85760405162461bcd60e51b81526004016105959061224d565b600654826007546112b991906122d1565b11156113075760405162461bcd60e51b815260206004820152601860248201527f4578636565647320617661696c61626c6520746f6b656e7300000000000000006044820152606401610595565b5f82116113565760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610595565b5f600554600a61136691906123e0565b61137090846123eb565b90505f60045482611381919061240a565b9050803410156113cb5760405162461bcd60e51b8152602060048201526015602482015274125b9cdd59999a58da595b9d08115512081cd95b9d605a1b6044820152606401610595565b5f83516001600160401b038111156113e5576113e5611f91565b60405190808252806020026020018201604052801561140e578160200160208202803683370190505b5090508461141b33610f37565b8611156114745760405162461bcd60e51b815260206004820152602160248201527f4578636565647320617661696c61626c6520707572636861736520616d6f756e6044820152601d60fa1b6064820152608401610595565b335f908152600a602090815260408083208151808301909252805460ff16158015808452600190920154938301939093529092916114b157505f83115b1561155257828260200151106115215750335f908152600a60205260408120600101805484928392916114e59084906122ea565b9091555050335f908152600a6020526040812060010154900361151957335f908152600a60205260409020805460ff191690555b5f9250611552565b50602081015161153181846122ea565b335f908152600a602052604081206001810191909155805460ff1916905592505b8215611902575f5b87518110801561156957505f84115b156118b357600354885133916001600160a01b031690636352211e908b908590811061159757611597612175565b60200260200101516040518263ffffffff1660e01b81526004016115bd91815260200190565b602060405180830381865afa1580156115d8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115fc9190612421565b6001600160a01b0316146116525760405162461bcd60e51b815260206004820152601760248201527f596f7520646f206e6f74206f776e2074686973204e46540000000000000000006044820152606401610595565b87818151811061166457611664612175565b602002602001015185828151811061167e5761167e612175565b6020026020010181815250505f600c5f8a84815181106116a0576116a0612175565b602002602001015181526020019081526020015f20549050600d5f8a84815181106116cd576116cd612175565b60209081029190910181015182528101919091526040015f205460ff166118165760035489515f916001600160a01b03169063511e820e908c908690811061171757611717612175565b60200260200101516040518263ffffffff1660e01b815260040161173d91815260200190565b602060405180830381865afa158015611758573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061177c9190612189565b600381111561178d5761178d6121a7565b905060095f8281526020019081526020015f2054915081600c5f8c86815181106117b9576117b9612175565b602002602001015181526020019081526020015f20819055506001600d5f8c86815181106117e9576117e9612175565b602002602001015181526020019081526020015f205f6101000a81548160ff021916908315150217905550505b8481106118645784600c5f8b858151811061183357611833612175565b602002602001015181526020019081526020015f205f82825461185691906122ea565b909155505f95506118a09050565b61186e81866122ea565b94505f600c5f8b858151811061188657611886612175565b602002602001015181526020019081526020015f20819055505b50806118ab8161243c565b91505061155a565b5082156119025760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e74204e465420616c6c6f77616e63650000000000006044820152606401610595565b335f908152600b6020526040812080548a92906119209084906122d1565b925050819055508760075f82825461193891906122d1565b90915550503485101561197a57336108fc61195387346122ea565b6040518115909202915f818181858888f19350505050158015611978573d5f5f3e3d5ffd5b505b336001600160a01b03167fcefb340322ad7644993816237a964ff8bcef32df3f2087076d528a1b0b45269589866040516119b5929190612454565b60405180910390a25050505050506119cc60018055565b5050565b6119d8611c37565b600854610100900460ff166119ff5760405162461bcd60e51b815260040161059590612276565b60085462010000900460ff16611a4d5760405162461bcd60e51b815260206004820152601360248201527253616c65206e6f742072656465656d61626c6560681b6044820152606401610595565b335f908152600b6020526040902054611a9e5760405162461bcd60e51b81526020600482015260136024820152724e6f20746f6b656e7320746f2072656465656d60681b6044820152606401610595565b335f818152600b60205260408082208054929055600254905163a9059cbb60e01b815260048101939093526024830182905290916001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015611b03573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b2791906120a5565b611b435760405162461bcd60e51b8152600401610595906120c0565b60405181815233907fcdd4c59de26b3f8623e6012ab9bc32a995eda3452d89c941fc8af6b74276ad389060200160405180910390a25061112460018055565b611b8a611bbc565b6001600160a01b038116611bb357604051631e4fbdf760e01b81525f6004820152602401610595565b61121581611be8565b5f546001600160a01b031633146111245760405163118cdaa760e01b8152336004820152602401610595565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600260015403611c895760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610595565b6002600155565b5f60208284031215611ca0575f5ffd5b5035919050565b6001600160a01b0381168114611215575f5ffd5b5f60208284031215611ccb575f5ffd5b8135611cd681611ca7565b9392505050565b5f8151808452602084019350602083015f5b82811015611d0d578151865260209586019590910190600101611cef565b5093949350505050565b5f82825180855260208501945060208160051b830101602085015f5b83811015611d8557601f19858403018852815180518085528060208301602087015e5f602082870101526020601f19601f83011686010194505050602082019150602088019750600181019050611d33565b50909695505050505050565b60208152611da460208201835115159052565b5f6020830151611db8604084018215159052565b50604083015180151560608401525060608301516080830152608083015160a083015260a083015160c083015260c0830151611df860e084018215159052565b5060e0830151610100830152610100830151611e1961012084018215159052565b506101208301516101408301526101408301516101e0610160840152611e43610200840182611cdd565b9050610160840151601f1984830301610180850152611e628282611cdd565b915050610180840151601f19848303016101a0850152611e828282611d17565b9150506101a08401516101c08401526101c0840151611ea66101e085018215159052565b509392505050565b5f5f83601f840112611ebe575f5ffd5b5081356001600160401b03811115611ed4575f5ffd5b6020830191508360208260051b8501011115611eee575f5ffd5b9250929050565b5f5f5f5f5f5f60608789031215611f0a575f5ffd5b86356001600160401b03811115611f1f575f5ffd5b611f2b89828a01611eae565b90975095505060208701356001600160401b03811115611f49575f5ffd5b611f5589828a01611eae565b90955093505060408701356001600160401b03811115611f73575f5ffd5b611f7f89828a01611eae565b979a9699509497509295939492505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715611fcd57611fcd611f91565b604052919050565b5f6001600160401b03821115611fed57611fed611f91565b5060051b60200190565b5f5f60408385031215612008575f5ffd5b8235915060208301356001600160401b03811115612024575f5ffd5b8301601f81018513612034575f5ffd5b803561204761204282611fd5565b611fa5565b8082825260208201915060208360051b850101925087831115612068575f5ffd5b6020840193505b8284101561208a57833582526020938401939091019061206f565b809450505050509250929050565b8015158114611215575f5ffd5b5f602082840312156120b5575f5ffd5b8151611cd681612098565b602080825260159082015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b604082015260600190565b5f602082840312156120ff575f5ffd5b81516001600160401b03811115612114575f5ffd5b8201601f81018413612124575f5ffd5b805161213261204282611fd5565b8082825260208201915060208360051b850101925086831115612153575f5ffd5b6020840193505b8284101561110957835182526020938401939091019061215a565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612199575f5ffd5b815160048110611cd6575f5ffd5b634e487b7160e01b5f52602160045260245ffd5b5f602082840312156121cb575f5ffd5b81516001600160401b038111156121e0575f5ffd5b8201601f810184136121f0575f5ffd5b80516001600160401b0381111561220957612209611f91565b61221c601f8201601f1916602001611fa5565b818152856020838501011115612230575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b6020808252600f908201526e53616c65206e6f742061637469766560881b604082015260600190565b60208082526012908201527114d85b19481b9bdd08199a5b985b1a5e995960721b604082015260600190565b5f602082840312156122b2575f5ffd5b8135611cd681612098565b634e487b7160e01b5f52601160045260245ffd5b808201808211156122e4576122e46122bd565b92915050565b818103818111156122e4576122e46122bd565b6001815b60018411156123385780850481111561231c5761231c6122bd565b600184161561232a57908102905b60019390931c928002612301565b935093915050565b5f8261234e575060016122e4565b8161235a57505f6122e4565b8160018114612370576002811461237a57612396565b60019150506122e4565b60ff84111561238b5761238b6122bd565b50506001821b6122e4565b5060208310610133831016604e8410600b84101617156123b9575081810a6122e4565b6123c55f1984846122fd565b805f19048211156123d8576123d86122bd565b029392505050565b5f611cd68383612340565b5f8261240557634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176122e4576122e46122bd565b5f60208284031215612431575f5ffd5b8151611cd681611ca7565b5f6001820161244d5761244d6122bd565b5060010190565b5f60408201848352604060208401528084518083526060850191506020860192505f5b81811015611d8557835183526020938401939092019160010161247756fea2646970667358221220962cc1a0a03c7c14cac238b467250de823afb909e29f2519b9e52aa2cc6d105e64736f6c634300081e0033000000000000000000000000a95d41805ef6a7116aceb450f24415567f65be5e0000000000000000000000003425b06b5b93b23603b2c166922dfa91f2f4909e0000000000000000000000000000000000000000000000000000002380a0be5c0000000000000000000000000000000000000000000000000000000000000012