241 txs
149 calls
constructor
constructor(address royaltyReceiver_, uint96 royaltyFeeNumerator_, string name_, string symbol_)
functions
aliveAndNotHiddenPepes
viewfunction aliveAndNotHiddenPepes() view returns (uint256[] tokenIds, uint256[] types, uint256[] hps, uint256[] timestamps, uint256[] attacks, uint256[] defenses, uint256[] maxHps)
autoApproveTransfersFromValidator
viewfunction autoApproveTransfersFromValidator() view returns (bool)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
CID
viewfunction CID() view returns (string)
collect
viewfunction collect() view returns (uint256)
coolDown
viewfunction coolDown() view returns (uint256)
DEFAULT_TRANSFER_VALIDATOR
viewfunction DEFAULT_TRANSFER_VALIDATOR() view returns (address)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getOwnedPepurges
viewfunction getOwnedPepurges(address owner) view returns (uint256[] tokenIds, uint256[] types, uint256[] hps, bool[] hiddenStatus, uint256[] timestamps, uint256[] attacks, uint256[] defenses, uint256[] maxHps)
getTransferValidationFunction
purefunction getTransferValidationFunction() pure returns (bytes4 functionSignature, bool isViewFunction)
getTransferValidator
viewfunction getTransferValidator() view returns (address validator)
hidden
viewfunction hidden(uint256) view returns (bool)
HP
viewfunction HP(uint256) view returns (uint256)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool isApproved)
mintPrice
viewfunction mintPrice() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
pepeType
viewfunction pepeType(uint256) view returns (uint256)
royaltyInfo
viewfunction royaltyInfo(uint256 tokenId, uint256 salePrice) view returns (address receiver, uint256 amount)
supply
viewfunction supply() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
timestamp
viewfunction timestamp(uint256) view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalMinted
viewfunction totalMinted() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256 result)
whenCollect
viewfunction whenCollect() view returns (uint256)
approve
payablefunction approve(address to, uint256 tokenId) payable
Attack
nonpayablefunction Attack(uint256 yourTokenId, uint256 victimTokenID)
cashIn
nonpayablefunction cashIn(uint256 _tokenID)
Hide
nonpayablefunction Hide(uint256 yourTokenId)
mint
payablefunction mint() payable
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
payablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) payable
safeTransferFrom
payablefunction safeTransferFrom(address from, address to, uint256 tokenId) payable
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setAutomaticApprovalOfTransfersFromValidator
nonpayablefunction setAutomaticApprovalOfTransfersFromValidator(bool autoApprove)
setCon
nonpayablefunction setCon(address _stats)
setting1
nonpayablefunction setting1(uint256 _supply, uint256 _mintPrice, string _CID, uint256 _coolDown, uint256 _whenColl, uint256 _collect)
setTransferValidator
nonpayablefunction setTransferValidator(address transferValidator_)
transferFrom
payablefunction transferFrom(address from, address to, uint256 tokenId) payable
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(uint256 _amount)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
AttackResult
event AttackResult(uint256 indexed attackerTokenId, uint256 indexed victimTokenId, address indexed attacker, uint256 damage, uint256 victimHPBefore, uint256 victimHPAfter, bool killed)
AutomaticApprovalOfTransferValidatorSet
event AutomaticApprovalOfTransferValidatorSet(bool autoApproved)
ConsecutiveTransfer
event ConsecutiveTransfer(uint256 indexed fromTokenId, uint256 toTokenId, address indexed from, address indexed to)
DefaultRoyaltySet
event DefaultRoyaltySet(address indexed receiver, uint96 feeNumerator)
HideAttempt
event HideAttempt(uint256 indexed tokenId, address indexed owner, bool success)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
TokenMinted
event TokenMinted(uint256 indexed tokenId, uint256 indexed pepeType, uint256 attack, uint256 defense, uint256 maxHP)
TokenRoyaltySet
event TokenRoyaltySet(uint256 indexed tokenId, address indexed receiver, uint96 feeNumerator)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
TransferValidatorUpdated
event TransferValidatorUpdated(address oldValidator, address newValidator)
errors
ApprovalCallerNotOwnerNorApproved
error ApprovalCallerNotOwnerNorApproved()
ApprovalQueryForNonexistentToken
error ApprovalQueryForNonexistentToken()
BalanceQueryForZeroAddress
error BalanceQueryForZeroAddress()
CreatorTokenBase__InvalidTransferValidatorContract
error CreatorTokenBase__InvalidTransferValidatorContract()
ERC2981InvalidDefaultRoyalty
error ERC2981InvalidDefaultRoyalty(uint256 numerator, uint256 denominator)
ERC2981InvalidDefaultRoyaltyReceiver
error ERC2981InvalidDefaultRoyaltyReceiver(address receiver)
ERC2981InvalidTokenRoyalty
error ERC2981InvalidTokenRoyalty(uint256 tokenId, uint256 numerator, uint256 denominator)
ERC2981InvalidTokenRoyaltyReceiver
error ERC2981InvalidTokenRoyaltyReceiver(uint256 tokenId, address receiver)
MintERC2309QuantityExceedsLimit
error MintERC2309QuantityExceedsLimit()
MintToZeroAddress
error MintToZeroAddress()
MintZeroQuantity
error MintZeroQuantity()
NotCompatibleWithSpotMints
error NotCompatibleWithSpotMints()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
OwnerQueryForNonexistentToken
error OwnerQueryForNonexistentToken()
OwnershipNotInitializedForExtraData
error OwnershipNotInitializedForExtraData()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SequentialMintExceedsLimit
error SequentialMintExceedsLimit()
SequentialUpToTooSmall
error SequentialUpToTooSmall()
ShouldNotMintToBurnAddress
error ShouldNotMintToBurnAddress()
SpotMintTokenIdTooSmall
error SpotMintTokenIdTooSmall()
TokenAlreadyExists
error TokenAlreadyExists()
TransferCallerNotOwnerNorApproved
error TransferCallerNotOwnerNorApproved()
TransferFromIncorrectOwner
error TransferFromIncorrectOwner()
TransferToNonERC721ReceiverImplementer
error TransferToNonERC721ReceiverImplementer()
TransferToZeroAddress
error TransferToZeroAddress()
URIQueryForNonexistentToken
error URIQueryForNonexistentToken()
creation bytecode
0x6080604052346100a557613faa803803809161001a826100c0565b608039608081810191126100a5576080516001600160a01b03811681036100a55760a0516001600160601b03811681036100a55760c0516001600160401b0381116100a5578361006c9160800161010e565b60e0519091906001600160401b0381116100a557610096946100909160800161010e565b92610358565b6040516137d890816107b28239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b6080601f91909101601f19168101906001600160401b038211908210176100e657604052565b6100aa565b601f909101601f19168101906001600160401b038211908210176100e657604052565b81601f820112156100a5578051906001600160401b0382116100e65760405192610142601f8401601f1916602001856100eb565b828452602083830101116100a55760005b82811061016857505060206000918301015290565b80602080928401015182828701015201610153565b90600182811c921680156101ad575b602083101461019757565b634e487b7160e01b600052602260045260246000fd5b91607f169161018c565b8181106101c2575050565b600081556001016101b7565b90601f82116101db575050565b6102099160026000526020600020906020601f840160051c8301931061020b575b601f0160051c01906101b7565b565b90915081906101fc565b9190601f811161022457505050565b610209926000526020600020906020601f840160051c8301931061020b57601f0160051c01906101b7565b61025a60115461017d565b601f811161030d575b50608760119081556000527f697066733a2f2f626166796265696862736f356e35336a626c6169616e657778600080516020613f8a833981519152557f6c77747967373563737a79356171626675376661336f747675727a627a7072647f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6955626d692f60e81b7f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6a55565b601160005261035290601f0160051c600080516020613f8a833981519152017f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6b6101b7565b38610263565b8251909391926001600160401b0382116100e6576103808261037b60025461017d565b6101ce565b602090601f83116001146104575791806103b6926103be959460009261044c575b50508160011b916000199060031b1c19161790565b6002556104e1565b600080553315610436576103ea916103d533610768565b6103dd610694565b6103e56106da565b6105bf565b6103f46001600d55565b6103ff612710600f55565b61040e65e35fa931a000601055565b61041661024f565b610421612710601255565b61042c61a8c0601355565b610209600a601455565b631e4fbdf760e01b600090815260045260246000fd5b0151905038806103a1565b6002600052601f19831691907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9260005b8181106104c957509160019391856103be979694106104b0575b505050811b016002556104e1565b015160001960f88460031b161c191690553880806104a2565b92936020600181928786015181550195019301610488565b80519091906001600160401b0381116100e65761050a8161050360035461017d565b6003610215565b602092601f82116001146105405761053b9293829160009261044c5750508160011b916000199060031b1c19161790565b600355565b6003600052601f198216937fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9160005b8681106105a7575083600195961061058e575b505050811b01600355565b015160001960f88460031b161c19169055388080610583565b91926020600181928685015181550194019201610570565b6001600160601b03821691906127108311610679576001600160a01b0316918215610663577f8a8bae378cb731c5c40b632330c6836c2f916f48edb967699c86736f9a6a76ef9161064461065e926040519061061c6040836100eb565b868252602090910181905260a01b6001600160a01b0319166001600160a01b03861617600b55565b6040516001600160601b0390911681529081906020820190565b0390a2565b635b6cc80560e11b600052600060045260246000fd5b82636f483d0960e01b60005260045261271060245260446000fd5b7fcc5dc080ff977b3c3a211fa63ab74f90f658f5ba9d3236e92c8f59570f442aac604080516000815273721c008fdff27bf06e7e123956e2fe03b63342e36020820152a1565b73721c008fdff27bf06e7e123956e2fe03b63342e33b6106f657565b6102d173721c008fdff27bf06e7e123956e2fe03b63342e33b156100a5576040519063fb2de5d760e01b825230600483015260248201526000816044818373721c008fdff27bf06e7e123956e2fe03b63342e35af16107525750565b8061075f600080936100eb565b8003126100a557565b600980546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a356fe6080604052600436101561001257600080fd5b60003560e01c806301463546146102d757806301ffc9a7146102d2578063029d77c8146102cd578063047fc9aa146102c857806306fdde03146102c3578063081812fc146102be578063095ea7b3146102b9578063098144d4146102b45780630d705df6146102af5780631249c58b146102aa5780631386dc12146102a557806318160ddd146102a057806323b872dd1461029b5780632a55205a146102965780632e1a7d4d1461029157806342842e0e1461028c5780634d056f6d146102875780635938ab1a146102825780636221d13c1461027d5780636352211e146102785780636817c76c1461027357806370a082311461026e578063715018a614610269578063722bf24914610264578063828a089c1461025f5780638da5cb5b1461025a57806395d89b41146102555780639745c6e9146102505780639e05d2401461024b578063a066a52f14610246578063a22cb46514610241578063a2309ff81461023c578063a9fc664e14610237578063aba68c5d14610232578063af94384e1461022d578063b192380c14610228578063b88d4fde14610223578063c098004c1461021e578063c329667314610219578063c7fce85814610214578063c87b56dd1461020f578063e52253811461020a578063e985e9c5146102055763f2fde38b1461020057600080fd5b611da4565b611d6e565b611d50565b611972565b6118d2565b6117ff565b611757565b6116c2565b611691565b61164e565b6115ec565b61148c565b61146e565b6113e0565b6113b4565b611348565b6111a5565b6110fd565b6110d4565b610fed565b610c1d565b610bc0565b610b95565b610b77565b610b48565b610b22565b610b04565b610ae6565b610ac1565b610a7b565b6109ee565b6109dc565b61097f565b610953565b610680565b610658565b61062b565b610585565b610506565b610429565b6103af565b610383565b61032d565b6102ec565b60009103126102e757565b600080fd5b346102e75760003660031901126102e757602060405173721c008fdff27bf06e7e123956e2fe03b63342e38152f35b6001600160e01b03198116036102e757565b346102e75760203660031901126102e757602060043561034c8161031b565b63ffffffff60e01b1663152a902d60e11b8114908115610372575b506040519015158152f35b6301ffc9a760e01b14905038610367565b346102e75760203660031901126102e75760043560005260186020526020604060002054604051908152f35b346102e75760003660031901126102e7576020601254604051908152f35b60005b8381106103e05750506000910152565b81810151838201526020016103d0565b90602091610409815180928185528580860191016103cd565b601f01601f1916010190565b9060206104269281815201906103f0565b90565b346102e75760003660031901126102e757604051600060025461044b8161171d565b80845290600181169081156104e25750600114610483575b61047f8361047381850382611572565b60405191829182610415565b0390f35b600260009081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b8082106104c857509091508101602001610473610463565b9192600181602092548385880101520191019092916104b0565b60ff191660208086019190915291151560051b840190910191506104739050610463565b346102e75760203660031901126102e75760043561052381612ca0565b15610548576000526006602052602060018060a01b0360406000205416604051908152f35b6333d1c03960e21b60005260046000fd5b600435906001600160a01b03821682036102e757565b602435906001600160a01b03821682036102e757565b60403660031901126102e757610599610559565b602435906001600160a01b036105ae83612ed3565b169081330361060c575b600083815260066020526040812080546001600160a01b0319166001600160a01b039390931692831790559091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259080a4005b6106163383612c37565b6105b8576367d9dca160e11b60005260046000fd5b346102e75760003660031901126102e7576020610646611e2e565b6040516001600160a01b039091168152f35b346102e75760003660031901126102e7576040805163657711f560e11b815260016020820152f35b60003660031901126102e757610694612d37565b6106a2601054341015611e6d565b6107276016546106b56012548210611eae565b6106be33612d59565b6106d16106cc601654611ecb565b601655565b6000818152601a602052604081205560206106ea612e8c565b600e54610707906001600160a01b03165b6001600160a01b031690565b6040518080968194632a2136ad60e11b8352600483019190602083019252565b03915afa9182156108ce57600092610932575b5081610750826000526017602052604060002090565b55600e54610766906001600160a01b03166106fb565b604051631d6c8c3160e11b81526004810184905290602090829060249082905afa9081156108ce57600091610913575b506107ab826000526018602052604060002090565b55600e546107c1906001600160a01b03166106fb565b6040516363665c4360e11b815260048101849052602081602481855afa9081156108ce576000916108f4575b50604051635eb0ec2d60e01b81526004810185905290602082602481865afa9182156108ce576000926108d3575b50604051631d6c8c3160e11b81526004810186905292602090849060249082905afa9283156108ce577f59977a1f727b74fa1d27f172f341eaf4b580d22ee4846dda97782943cfbb9fe9936108909160009161089f575b50604051938493846040919493926060820195825260208201520152565b0390a361089d6001600d55565b005b6108c1915060203d6020116108c7575b6108b98183611572565b810190611eec565b38610872565b503d6108af565b611efb565b6108ed91925060203d6020116108c7576108b98183611572565b903861081b565b61090d915060203d6020116108c7576108b98183611572565b386107ed565b61092c915060203d6020116108c7576108b98183611572565b38610796565b61094c91925060203d6020116108c7576108b98183611572565b903861073a565b346102e75760203660031901126102e757600435600052601a6020526020604060002054604051908152f35b346102e75760003660031901126102e75760206000546001549003604051908152f35b60609060031901126102e7576004356001600160a01b03811681036102e757906024356001600160a01b03811681036102e7579060443590565b61089d6109e8366109a2565b91611f07565b346102e75760403660031901126102e7576004356000908152600c60205260409020546001600160a01b038116906024359060a01c8215610a63575b612710916bffffffffffffffffffffffff610a469216906120c4565b604080516001600160a01b03949094168452919004602083015290f35b50600b546001600160a01b038116925060a01c610a2a565b346102e75760203660031901126102e7576000808080600435610a9c6130b8565b6009546001600160a01b0316828215610ab8575bf1156108ce57005b506108fc610ab0565b61089d610acd366109a2565b9060405192610add602085611572565b600084526127fa565b346102e75760003660031901126102e7576020601354604051908152f35b346102e75760003660031901126102e7576020601454604051908152f35b346102e75760003660031901126102e757602060ff600a5460a01c166040519015158152f35b346102e75760203660031901126102e75760206001600160a01b03610b6e600435612ed3565b16604051908152f35b346102e75760003660031901126102e7576020601054604051908152f35b346102e75760203660031901126102e7576020610bb8610bb3610559565b6120ec565b604051908152f35b346102e75760003660031901126102e757610bd96130b8565b600980546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346102e75760403660031901126102e757600435602435610c3c612d37565b610c5e610c4e6106fb6106fb85612ed3565b6001600160a01b03163314612127565b610c6e6016546012541115612166565b610c793233146121b2565b610c89600f5460145411156121f3565b610ca8610ca0826000526018602052604060002090565b54151561222e565b610cf9610cbf82600052601a602052604060002090565b5460135490610cce8242612282565b11610f8d575b610cf3610ceb85600052601a602052604060002090565b549142612282565b116122ce565b610d0d816000526018602052604060002090565b54600e54909290610d6090610d2a906001600160a01b03166106fb565b6020610d40846000526017602052604060002090565b54604051809481926363665c4360e11b8352600483019190602083019252565b0381845afa9081156108ce57610db292600092610f6b575b50602090610d90866000526017602052604060002090565b54906040518080968194635eb0ec2d60e01b8352600483019190602083019252565b03915afa9182156108ce57600092610f4a575b5081811115610f3e57610de091610ddb91612282565b611ecb565b92600084610df8856000526018602052604060002090565b5411610ecb57506000838152601860205260408120556000600191610e1c856134aa565b610e2f610e2a600f54612273565b600f55565b6000808080610e4060105460011c90565b818115610ec2575b3390f1156108ce57610eb57fcd730d7468a89ba67bdfcea78cb70218570f5d71edbfd8343643a0553928bcbf935b42610e8b87600052601a602052604060002090565b55604051938493339985926060929594919560808501968552602085015260408401521515910152565b0390a461089d6001600d55565b506108fc610e48565b7fcd730d7468a89ba67bdfcea78cb70218570f5d71edbfd8343643a0553928bcbf91610f0b86610f05876000526018602052604060002090565b54612282565b610f1f866000526018602052604060002090565b55610eb5610f37866000526018602052604060002090565b5492610e76565b5050610de06000611ecb565b610f6491925060203d6020116108c7576108b98183611572565b9038610dc5565b6020919250610f8690823d84116108c7576108b98183611572565b9190610d78565b610fb4610fae610fa7856000526019602052604060002090565b5460ff1690565b1561228f565b610cd4565b906020808351928381520192019060005b818110610fd75750505090565b8251845260209384019390920191600101610fca565b346102e75760203660031901126102e75761104361105161101461100f610559565b6123b9565b96979293989095611035604096939651996101008b526101008b0190610fb9565b9089820360208b0152610fb9565b908782036040890152610fb9565b85810360608701526020808851928381520197019060005b8181106110bc57505050916110a06110ae926110928861047f979689809b0360808b0152610fb9565b9087820360a0890152610fb9565b9085820360c0870152610fb9565b9083820360e0850152610fb9565b82511515895260209889019890920191600101611069565b346102e75760003660031901126102e7576009546040516001600160a01b039091168152602090f35b346102e75760003660031901126102e757604051600060035461111f8161171d565b80845290600181169081156104e257506001146111465761047f8361047381850382611572565b600360009081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b80821061118b57509091508101602001610473610463565b919260018160209254838588010152019101909291611173565b346102e75760203660031901126102e7576004356111c1612d37565b6111d3610c4e6106fb6106fb84612ed3565b6111e360165460125411156121f3565b6111ee3233146121b2565b4261120382600052601a602052604060002090565b5561138861120f612e8c565b10156113135761123961122c826000526019602052604060002090565b805460ff19166001179055565b600e5461128b90602090611255906001600160a01b03166106fb565b611269846000526017602052604060002090565b54906040518080958194631d6c8c3160e11b8352600483019190602083019252565b03915afa9081156108ce576000916112f4575b506112b3826000526018602052604060002090565b55604051600181523391907fe6a2f5e6e79b7e883c95fbee8f686aa103e26e4e618db4953b03e9a747736def908060208101610890565b61089d6001600d55565b61130d915060203d6020116108c7576108b98183611572565b3861129e565b604051600081523391907fe6a2f5e6e79b7e883c95fbee8f686aa103e26e4e618db4953b03e9a747736def90602090a36112ea565b346102e75760203660031901126102e7576004358015158091036102e75760207f6787c7f9a80aa0f5ceddab2c54f1f5169c0b88e75dd5e19d5e858a64144c7dbc916113926130b8565b600a805460ff60a01b191660a083901b60ff60a01b16179055604051908152a1005b346102e75760203660031901126102e75760043560005260176020526020604060002054604051908152f35b346102e75760403660031901126102e7576113f9610559565b602435908115158092036102e7573360009081526007602090815260408083206001600160a01b0385168452909152902060ff1981541660ff841617905560405191825260018060a01b0316907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b346102e75760003660031901126102e7576020601654604051908152f35b346102e75760203660031901126102e7576114a5610559565b6114ad6130b8565b6001600160a01b03811690811515813b1581611554575b50611543577fcc5dc080ff977b3c3a211fa63ab74f90f658f5ba9d3236e92c8f59570f442aac604061089d936114f8611e2e565b82516001600160a01b0390911681526020810191909152a16009805460ff60a01b1916600160a01b179055600a80546001600160a01b0319166001600160a01b0383161790556130e1565b6332483afb60e01b60005260046000fd5b9050386114c4565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761159457604052565b61155c565b67ffffffffffffffff811161159457601f01601f191660200190565b9291926115c182611599565b916115cf6040519384611572565b8294818452818301116102e7578281602093846000960137010152565b346102e75760c03660031901126102e75760443560043560243567ffffffffffffffff83116102e757366023840112156102e75761163761089d9336906024816004013591016115b5565b606435906084359261164860a43590565b9461268b565b346102e75760203660031901126102e757611667610559565b61166f6130b8565b600e80546001600160a01b0319166001600160a01b0392909216919091179055005b346102e75760203660031901126102e7576004356000526019602052602060ff604060002054166040519015158152f35b60803660031901126102e7576116d6610559565b6116de61056f565b906044356064359267ffffffffffffffff84116102e757366023850112156102e75761171761089d9436906024816004013591016115b5565b926127fa565b90600182811c9216801561174d575b602083101461173757565b634e487b7160e01b600052602260045260246000fd5b91607f169161172c565b346102e75760003660031901126102e75760405160006011546117798161171d565b80845290600181169081156104e257506001146117a05761047f8361047381850382611572565b601160009081527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68939250905b8082106117e557509091508101602001610473610463565b9192600181602092548385880101520191019092916117cd565b346102e75760203660031901126102e75760043561181b612d37565b600f54601454106118955761184261183b6106fb6106fb6106fb85612ed3565b331461283d565b61184d3233146121b2565b600080808061187361186c611867601054601254906120c4565b612096565b6064900490565b81811561188c575b3390f1156108ce576112ea906134aa565b506108fc61187b565b60405162461bcd60e51b815260206004820152601560248201527447616d65206973207374696c6c2072756e6e696e6760581b6044820152606490fd5b346102e75760003660031901126102e75761193a60e061047f61194861196461192c6119566118ff61287b565b999461191e60409e949593979e999299519e8f9e8f8181520190610fb9565b8d810360208f015290610fb9565b908b820360408d0152610fb9565b9089820360608b0152610fb9565b908782036080890152610fb9565b9085820360a0870152610fb9565b9083820360c0850152610fb9565b346102e75760203660031901126102e75760043561198f816132b0565b6119ac6119a6836000526017602052604060002090565b546132b0565b916119c46119a6826000526017602052604060002090565b906119dc6119a6826000526018602052604060002090565b600e546119f1906001600160a01b03166106fb565b90611a2b6020611a0b856000526017602052604060002090565b54604051809381926363665c4360e11b8352600483019190602083019252565b0381865afa80156108ce57611a4891600091611d1a575b506132b0565b91611a826020611a62866000526017602052604060002090565b5460405180938192635eb0ec2d60e01b8352600483019190602083019252565b0381855afa9182156108ce57611269611aa8611ab994602094600091611d3957506132b0565b966000526017602052604060002090565b03915afa80156108ce57611ad491600091611d1a57506132b0565b604051607b60f81b60208201529687969195916021880171226e616d65223a202250657075726765202360701b8152601201611b0f91612b97565b61088b60f21b81526002017f226465736372697074696f6e223a20224b696c6c2065766572796f6e65222c008152601f01691134b6b0b3b2911d101160b11b8152600a01611b5c90612bae565b611b6591612b97565b650b9c1b99c88b60d21b81526006017f202261747472696275746573223a205b7b2274726169745f74797065223a202281526f3a3cb8329116113b30b63ab2911d101160811b6020820152603001611bbc91612b97565b7f227d2c7b2274726169745f74797065223a20224850222c2276616c7565223a208152601160f91b6020820152602101611bf591612b97565b7f227d2c7b2274726169745f74797065223a202241747461636b222c2276616c7581526432911d101160d91b6020820152602501611c3291612b97565b7f227d2c7b2274726169745f74797065223a2022446566656e7365222c2276616c8152653ab2911d101160d11b6020820152602601611c7091612b97565b7f227d2c7b2274726169745f74797065223a20224d6178204850222c2276616c7581526432911d101160d91b6020820152602501611cad91612b97565b64227d205d7d60d81b815260050103601f1981018252611ccd9082611572565b611cd690613408565b611cde61346f565b60405191829160208301611cf191612b97565b611cfa91612b97565b03601f1981018252611d0c9082611572565b60405161047f819282610415565b611d33915060203d6020116108c7576108b98183611572565b38611a42565b611d339150853d87116108c7576108b98183611572565b346102e75760003660031901126102e7576020600f54604051908152f35b346102e75760403660031901126102e7576020611d9a611d8c610559565b611d9461056f565b90612c37565b6040519015158152f35b346102e75760203660031901126102e757611dbd610559565b611dc56130b8565b6001600160a01b03168015611e1857600980546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b631e4fbdf760e01b600052600060045260246000fd5b600a546001600160a01b0316908115611e44575b565b60ff60095460a01c1615611e5457565b73721c008fdff27bf06e7e123956e2fe03b63342e39150565b15611e7457565b60405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606490fd5b156102e757565b634e487b7160e01b600052601160045260246000fd5b9060018201809211611ed957565b611eb5565b9060028201809211611ed957565b908160209103126102e7575190565b6040513d6000823e3d90fd5b9190611f1282612ed3565b6001600160a01b039384169381168490036120915760008381526006602052604090208054611f546001600160a01b03871633908114908314171590565b1590565b61207a575b611f64858588612f4a565b612070575b506001600160a01b038416600090815260056020526040902080546000190190556001600160a01b0382166000908152600560205260409020805460010190556001600160a01b0382164260a01b17600160e11b17611fd2846000526004602052604060002090565b55600160e11b811615612026575b506001600160a01b0381168281857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a41561202157611e429261300e565b612d05565b6001830161203e816000526004602052604060002090565b541561204b575b50611fe0565b600054811461204557612068906000526004602052604060002090565b553880612045565b6000905538611f69565b612087611f503388612c37565b15611f5957612cf4565b612ce4565b908160021b9180830460041490151715611ed957565b600281901b91906001600160fe1b03811603611ed957565b81810292918115918404141715611ed957565b604051906120e6602083611572565b60008252565b6001600160a01b0316801561211657600052600560205267ffffffffffffffff6040600020541690565b6323d3ad8160e21b60005260046000fd5b1561212e57565b60405162461bcd60e51b815260206004820152601060248201526f4e6f7420796f7572205065707572676560801b6044820152606490fd5b1561216d57565b60405162461bcd60e51b815260206004820152601860248201527f436f6c6c656374696f6e207374696c6c206d696e74696e6700000000000000006044820152606490fd5b156121b957565b60405162461bcd60e51b81526020600482015260126024820152714e6f20736d61727420636f6e74726163747360701b6044820152606490fd5b156121fa57565b60405162461bcd60e51b815260206004820152600c60248201526b23b0b6b29034b99037bb32b960a11b6044820152606490fd5b1561223557565b60405162461bcd60e51b8152602060048201526016602482015275159a58dd1a5b481a5cc8185b1c9958591e481919585960521b6044820152606490fd5b600019810191908211611ed957565b91908203918211611ed957565b1561229657565b60405162461bcd60e51b815260206004820152601060248201526f2b34b1ba34b69034b9903434b23232b760811b6044820152606490fd5b156122d557565b60405162461bcd60e51b815260206004820152601b60248201527f596f75722050657075726765206973206f6e20636f6f6c646f776e00000000006044820152606490fd5b67ffffffffffffffff81116115945760051b60200190565b60405190612341602083611572565b6000808352366020840137565b906123588261231a565b6123656040519182611572565b8281528092612376601f199161231a565b0190602036910137565b80518210156123945760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6000198114611ed95760010190565b6123c2816120ec565b908115612637576123d28261234e565b926123dc8361234e565b936123e68461234e565b936123f08161234e565b936123fa8261234e565b936124048361234e565b936124176124118561234e565b9461234e565b9260008091601654925b83811061243657505050509796959493929190565b61243f81612ca0565b80612614575b612452575b600101612421565b918261245e8287612380565b528c61247f82612478866000526017602052604060002090565b5492612380565b528b61249982612478866000526018602052604060002090565b526124c68b6124bf836124b9610fa7886000526019602052604060002090565b92612380565b9015159052565b6124da83600052601a602052604060002090565b546124e5828c612380565b52600e546124fb906001600160a01b03166106fb565b6125146020611a0b866000526017602052604060002090565b0381855afa9081156108ce576000916125f6575b50612533838c612380565b5261254d6020611a62866000526017602052604060002090565b0381855afa9182156108ce57612588926020926000916125d9575b50612573858d612380565b52611269866000526017602052604060002090565b03915afa9182156108ce576001926125b3926000916125bb575b506125ad828b612380565b526123aa565b92905061244a565b6125d3915060203d81116108c7576108b98183611572565b386125a2565b6125f09150833d81116108c7576108b98183611572565b38612568565b61260e915060203d81116108c7576108b98183611572565b38612528565b506126246106fb6106fb83612ed3565b6001600160a01b03838116911614612445565b5050612641612332565b9061264a612332565b91612653612332565b9161265c612332565b91612665612332565b9161266e612332565b91612677612332565b91612680612332565b919796959493929190565b6126936130b8565b60125560105580519067ffffffffffffffff8211611594576126bf826126ba60115461171d565b6127a7565b602090601f831160011461271557926126fd83611e4297969461270594610e2a9760009261270a575b50508160011b916000199060031b1c19161790565b601155601355565b601455565b0151905038806126e8565b6011600052601f19831691907f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c689260005b81811061278f57509361270593610e2a969360019383611e429b9a9810612776575b505050811b01601155601355565b015160001960f88460031b161c19169055388080612768565b92936020600181928786015181550195019301612746565b601f81116127b3575050565b60116000526020600020906020601f840160051c830193106127f0575b601f0160051c01905b8181106127e4575050565b600081556001016127d9565b90915081906127d0565b929190612808828286611f07565b803b612815575b50505050565b61281e9361325f565b1561282c573880808061280f565b6368d2bf6b60e11b60005260046000fd5b1561284457565b60405162461bcd60e51b815260206004820152600f60248201526e2737ba103a37b5b2b71037bbb732b960891b6044820152606490fd5b601654600091825b828110612b2457508215612ada5761289a8361234e565b6128a38461234e565b936128ad8161234e565b936128b78261234e565b936128c18361234e565b936128ce6124118561234e565b926000805b8281106128e65750505096959493929190565b6128ef81612ca0565b80612abd575b80612a9d575b612908575b6001016128d3565b90816129148286612380565b52612929826000526017602052604060002090565b54612934828d612380565b52612949826000526018602052604060002090565b54612954828c612380565b5261296982600052601a602052604060002090565b54612974828b612380565b52600e5461298a906001600160a01b03166106fb565b6129a36020611a0b856000526017602052604060002090565b0381855afa9081156108ce57600091612a7f575b506129c2838b612380565b526129dc6020611a62856000526017602052604060002090565b0381855afa9182156108ce57612a1792602092600091612a62575b50612a02858c612380565b52611269856000526017602052604060002090565b03915afa9182156108ce57600192612a3c92600091612a44575b506125ad828a612380565b919050612900565b612a5c915060203d81116108c7576108b98183611572565b38612a31565b612a799150833d81116108c7576108b98183611572565b386129f7565b612a97915060203d81116108c7576108b98183611572565b386129b7565b50612ab8611f50610fa7836000526019602052604060002090565b6128fb565b50612ad2816000526018602052604060002090565b5415156128f5565b915050612ae5612332565b612aed612332565b91612af6612332565b91612aff612332565b91612b08612332565b91612b11612332565b91612b1a612332565b9196959493929190565b612b2d81612ca0565b80612b7a575b80612b5a575b612b46575b600101612883565b92612b526001916123aa565b939050612b3e565b50612b75611f50610fa7836000526019602052604060002090565b612b39565b50612b8f816000526018602052604060002090565b541515612b33565b90612baa602092828151948592016103cd565b0190565b60115460009291612bbe8261171d565b9160018116908115612c255750600114612bd6575050565b6011600090815292935090917f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c685b838210612c115750500190565b600181602092548486015201910190612c04565b60ff1916825250811515909102019150565b6001600160a01b0390811660009081526007602090815260408083209385168352929052205460ff1691908215612c6c575b50565b60ff600a5460a01c16612c7c5750565b9091506001600160a01b03612c8f611e2e565b6001600160a01b0390921691161490565b906000916000548110612cb05750565b9091505b80600052600460205260406000205480612cd857508015611ed95760001901612cb4565b600160e01b1615919050565b62a1148160e81b60005260046000fd5b632ce44b5f60e11b60005260046000fd5b633a954ecd60e21b60005260046000fd5b622e076360e81b60005260046000fd5b636f96cda160e11b60005260046000fd5b6002600d5414612d48576002600d55565b633ee5aeb560e01b60005260046000fd5b90600091604051612d6b602082611572565b838152925492612d7d60018584612fcd565b6001600160a01b0382164260a01b17600160e11b17612da6856000526004602052604060002090565b556001600160a01b0382166000818152600560205260409020805468010000000000000001019055928315612e875760018501928560015b15612e12575b60008787827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4612dde565b9560010195848703612de4579093612e34939650600192955060005583612fcd565b803b612e3f57509050565b6000546000198101929060015b15612e71575b6000612e66611f50876001880197876131be565b15612e4c575b61282c565b808410612e52579250925050600054036102e757565b612d16565b612710612e9a6015546123aa565b8060155560405160208101914283524460408301523360601b6060830152607482015260748152612ecc609482611572565b5190200690565b612ee7816000526004602052604060002090565b54908115612efe5750600160e01b8116612d265790565b9050600054811015612d26575b60001901600081815260046020526040902054908115612f435750600160e01b81161561042657636f96cda160e11b60005260046000fd5b9050612f0b565b91909160005b60018110612f5e5750505050565b80830190818411611ed9576001600160a01b038381161592908616158380612fc6575b15612f9757635cbd944160e01b60005260046000fd5b60019315612fa8575b505001612f50565b15612fb4575b80612fa0565b612fc090868533613703565b38612fae565b5080612f81565b9060005b838110612fde5750505050565b8082018211611ed9576001600160a01b03831661300657635cbd944160e01b60005260046000fd5b600101612fd1565b60005b6001811061301f5750505050565b8084018411611ed9576001600160a01b0382161580613057575b1561304f57635cbd944160e01b60005260046000fd5b600101613011565b506001600160a01b03831615613039565b60005b6001811061307857505050565b8083018311611ed9576001600160a01b03821615806130b0575b156130a857635cbd944160e01b60005260046000fd5b60010161306b565b506001613092565b6009546001600160a01b031633036130cc57565b63118cdaa760e01b6000523360045260246000fd5b6001600160a01b03811690816130f5575050565b3b6130fd5750565b6102d1813b156102e75760009160448392604051948593849263fb2de5d760e01b845230600485015260248401525af115612c69578061313f60008093611572565b8003126102e757565b908160209103126102e757516104268161031b565b6001600160a01b039182168152911660208201526040810191909152608060608201819052610426929101906103f0565b3d156131b9573d9061319f82611599565b916131ad6040519384611572565b82523d6000602084013e565b606090565b916131e6926020926000604051809681958294630a85bd0160e11b845284336004860161315d565b03926001600160a01b03165af16000918161322e575b506132185761320961318e565b805115612e6c57805190602001fd5b6001600160e01b031916630a85bd0160e11b1490565b61325191925060203d602011613258575b6132498183611572565b810190613148565b90386131fc565b503d61323f565b9060209260006131e6959360405196879586948593630a85bd0160e11b8552336004860161315d565b9061329282611599565b61329f6040519182611572565b8281528092612376601f1991611599565b8060009172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8210156133e5575b806d04ee2d6d415b85acef8100000000600a9210156133c9575b662386f26fc100008110156133b4575b6305f5e1008110156133a2575b612710811015613392575b6064811015613383575b1015613378575b613363602161333760018501613288565b938401015b60001901916f181899199a1a9b1b9c1cb0b131b232b360811b600a82061a8353600a900490565b801561337357613363909161333c565b505090565b600190910190613326565b6002906064900493019261331f565b6004906127109004930192613315565b6008906305f5e100900493019261330a565b601090662386f26fc1000090049301926132fd565b6020906d04ee2d6d415b85acef810000000090049301926132ed565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b81046132d3565b6040516104269161341a606083611572565b604082527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208301527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f604083015261361f565b6040519061347e604083611572565b601d82527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020830152565b906134b482612ed3565b600083815260066020526040812080546001600160a01b038416801596949093909291905b600181106135e957506135819596506135df575b506001600160a01b038216600090815260056020526040902080546fffffffffffffffffffffffffffffffff0190556001600160a01b0382164260a01b17600360e01b17613545846000526004602052604060002090565b55600160e11b811615613595575b50816000827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a4613068565b611e4261359060015460010190565b600155565b600183016135ad816000526004602052604060002090565b54156135ba575b50613553565b60005481146135b4576135d7906000526004602052604060002090565b5538806135b4565b60009055386134ed565b8086018611611ed9578780613617575b1561360f57635cbd944160e01b60005260046000fd5b6001016134d9565b5060016135f9565b9190918051156136f85761364d61364861364361363c8451611ede565b6003900490565b6120ac565b613288565b9060208201908081518201956020870190815192600083525b8881106136aa57505060039394959650525106806001146136975760021461368c575090565b603d90600019015390565b50603d9081600019820153600119015390565b600360049199969901986001603f8b5182828260121c16870101518453828282600c1c16870101518385015382828260061c1687010151600285015316840101516003820153019497613666565b5090506104266120d7565b91926001600160a01b03613715611e2e565b169283613724575b5050505050565b83331461371d57833b156102e75760405163657711f560e11b81526001600160a01b039182166004820152928116602484015290931660448201526064810192909252600090829060849082905afa80156108ce57613787575b8080808061371d565b80613796600061379c93611572565b806102dc565b3861377e56fea26469706673582212204cbba63243c025bd94e09425ea5e7fd2f10d06ffa93e06ec5f9665f4cd364b2364736f6c634300081e003331ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680000000000000000000000000da2080fcd563e8d337ea92873b7f9a4a75c714900000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000007506570757267650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035050470000000000000000000000000000000000000000000000000000000000