Feature Tip: Add private address tag to any address under My Name Tag !
ERC-721
Overview
Max Total Supply
2,500 PUNK1859
Holders
705
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
1 PUNK1859Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x42C0941D...91f176890 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Punk1859
Compiler Version
v0.8.14+commit.80d49f37
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
12345678910111213141516171819202122// SPDX-License-Identifier: MITpragma solidity >=0.4.22 <0.9.0;import "./TradingCard.sol";contract Punk1859 is TradingCard {constructor(string memory name_,string memory symbol_,string memory metadataRoot_,string memory contractMetadata_) TradingCard(name_,symbol_,metadataRoot_,contractMetadata_){}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.4.22 <0.9.0;import 'erc721a/contracts/ERC721A.sol';import '@openzeppelin/contracts/access/Ownable.sol';import '@openzeppelin/contracts/utils/cryptography/MerkleProof.sol';import '@openzeppelin/contracts/security/ReentrancyGuard.sol';import '@openzeppelin/contracts/security/Pausable.sol';struct MintPhase {bytes32 merkleRoot;uint32 startTime;uint32 walletLimit;uint32 id;}contract TradingCard is ERC721A, Ownable, ReentrancyGuard, Pausable {string private _name;string private _symbol;string private _metadataRoot;string private _contractMetadata;mapping(uint => MintPhase) private _mintPhases;mapping(bytes32 => bool) private _usedLeaves;uint private _maxMintPhase = 0;bool private _mintStatus = false;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.2// Creator: Chiru Labspragma solidity ^0.8.4;/*** @dev Interface of ERC721A.*/interface IERC721A {/*** The caller must own the token or be an approved operator.*/error ApprovalCallerNotOwnerNorApproved();/*** The token does not exist.*/error ApprovalQueryForNonexistentToken();/*** The caller cannot approve to their own address.*/error ApproveToCaller();/**
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.2// Creator: Chiru Labspragma solidity ^0.8.4;import './IERC721A.sol';/*** @dev Interface of ERC721 token receiver.*/interface ERC721A__IERC721Receiver {function onERC721Received(address operator,address from,uint256 tokenId,bytes calldata data) external returns (bytes4);}/*** @title ERC721A** @dev Implementation of the [ERC721](https://eips.ethereum.org/EIPS/eip-721)* Non-Fungible Token Standard, including the Metadata extension.* Optimized for lower gas during batch mints.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (utils/cryptography/MerkleProof.sol)pragma solidity ^0.8.0;/*** @dev These functions deal with verification of Merkle Tree proofs.** The proofs can be generated using the JavaScript library* https://github.com/miguelmota/merkletreejs[merkletreejs].* Note: the hashing algorithm should be keccak256 and pair sorting should be enabled.** See `test/utils/cryptography/MerkleProof.test.js` for some examples.** WARNING: You should avoid using leaf values that are 64 bytes long prior to* hashing, or use a hash function other than keccak256 for hashing leaves.* This is because the concatenation of a sorted pair of internal nodes in* the merkle tree could be reinterpreted as a leaf value.*/library MerkleProof {/*** @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree* defined by `root`. For this, a `proof` must be provided, containing* sibling hashes on the branch from the leaf to the root of the tree. Each* pair of leaves and each pair of pre-images are assumed to be sorted.*/
123456789101112131415161718192021222324// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)pragma solidity ^0.8.0;/*** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/abstract contract Context {function _msgSender() internal view virtual returns (address) {return msg.sender;}function _msgData() internal view virtual returns (bytes calldata) {return msg.data;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol)pragma solidity ^0.8.0;/*** @dev Contract module that helps prevent reentrant calls to a function.** Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier* available, which can be applied to functions to make sure there are no nested* (reentrant) calls to them.** Note that because there is a single `nonReentrant` guard, functions marked as* `nonReentrant` may not call one another. This can be worked around by making* those functions `private`, and then adding `external` `nonReentrant` entry* points to them.** TIP: If you would like to learn more about reentrancy and alternative ways* to protect against it, check out our blog post* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].*/abstract contract ReentrancyGuard {// Booleans are more expensive than uint256 or any type that takes up a full// word because each write operation emits an extra SLOAD to first read the// slot's contents, replace the bits taken up by the boolean, and then write// back. This is the compiler's defense against contract upgrades and
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)pragma solidity ^0.8.0;import "../utils/Context.sol";/*** @dev Contract module which allows children to implement an emergency stop* mechanism that can be triggered by an authorized account.** This module is used through inheritance. It will make available the* modifiers `whenNotPaused` and `whenPaused`, which can be applied to* the functions of your contract. Note that they will not be pausable by* simply including this module, only once the modifiers are put in place.*/abstract contract Pausable is Context {/*** @dev Emitted when the pause is triggered by `account`.*/event Paused(address account);/*** @dev Emitted when the pause is lifted by `account`.*/event Unpaused(address account);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)pragma solidity ^0.8.0;import "../utils/Context.sol";/*** @dev Contract module which provides a basic access control mechanism, where* there is an account (an owner) that can be granted exclusive access to* specific functions.** By default, the owner account will be the one that deploys the contract. This* can later be changed with {transferOwnership}.** This module is used through inheritance. It will make available the modifier* `onlyOwner`, which can be applied to your functions to restrict their use to* the owner.*/abstract contract Ownable is Context {address private _owner;event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);/*** @dev Initializes the contract setting the deployer as the initial owner.
123456789101112131415161718192021{"remappings": [],"optimizer": {"enabled": false,"runs": 200},"evmVersion": "london","libraries": {},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"string","name":"metadataRoot_","type":"string"},{"internalType":"string","name":"contractMetadata_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"ApproveToCaller","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"OwnershipNotInitializedForExtraData","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint64[]","name":"quantities","type":"uint64[]"}],"name":"adminMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMintPhase","outputs":[{"components":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"walletLimit","type":"uint32"},{"internalType":"uint32","name":"id","type":"uint32"}],"internalType":"struct MintPhase","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"makeMerkleLeaf","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint64","name":"quantity","type":"uint64"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"quantity","type":"uint64"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"listID","type":"uint256"}],"name":"mintPhase","outputs":[{"components":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"uint32","name":"startTime","type":"uint32"},{"internalType":"uint32","name":"walletLimit","type":"uint32"},{"internalType":"uint32","name":"id","type":"uint32"}],"internalType":"struct MintPhase","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"numberMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"pause_","type":"bool"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"uri","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"uri","type":"string"}],"name":"setContractURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"listID","type":"uint256[]"},{"internalType":"bytes32[]","name":"root","type":"bytes32[]"},{"internalType":"uint32[]","name":"startTimes","type":"uint32[]"},{"internalType":"uint32[]","name":"walletLimits","type":"uint32[]"}],"name":"setMintPhases","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setMintStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"supplyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"string","name":"metadataRoot_","type":"string"},{"internalType":"string","name":"contractMetadata_","type":"string"}],"name":"updateTokenInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405260006011556000601260006101000a81548160ff0219169083151502179055506109c46013553480156200003757600080fd5b50604051620045273803806200452783398181016040528101906200005d919062000482565b83838383838381600290805190602001906200007b92919062000235565b5080600390805190602001906200009492919062000235565b50620000a56200016260201b60201c565b6000819055505050620000cd620000c16200016760201b60201c565b6200016f60201b60201c565b60016009819055506000600a60006101000a81548160ff02191690831515021790555083600b90805190602001906200010892919062000235565b5082600c90805190602001906200012192919062000235565b5081600d90805190602001906200013a92919062000235565b5080600e90805190602001906200015392919062000235565b505050505050505050620005d4565b600090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b82805462000243906200059f565b90600052602060002090601f016020900481019282620002675760008555620002b3565b82601f106200028257805160ff1916838001178555620002b3565b82800160010185558215620002b3579182015b82811115620002b257825182559160200191906001019062000295565b5b509050620002c29190620002c6565b5090565b5b80821115620002e1576000816000905550600101620002c7565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200034e8262000303565b810181811067ffffffffffffffff8211171562000370576200036f62000314565b5b80604052505050565b600062000385620002e5565b905062000393828262000343565b919050565b600067ffffffffffffffff821115620003b657620003b562000314565b5b620003c18262000303565b9050602081019050919050565b60005b83811015620003ee578082015181840152602081019050620003d1565b83811115620003fe576000848401525b50505050565b60006200041b620004158462000398565b62000379565b9050828152602081018484840111156200043a5762000439620002fe565b5b62000447848285620003ce565b509392505050565b600082601f830112620004675762000466620002f9565b5b81516200047984826020860162000404565b91505092915050565b600080600080608085870312156200049f576200049e620002ef565b5b600085015167ffffffffffffffff811115620004c057620004bf620002f4565b5b620004ce878288016200044f565b945050602085015167ffffffffffffffff811115620004f257620004f1620002f4565b5b62000500878288016200044f565b935050604085015167ffffffffffffffff811115620005245762000523620002f4565b5b62000532878288016200044f565b925050606085015167ffffffffffffffff811115620005565762000555620002f4565b5b62000564878288016200044f565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005b857607f821691505b602082108103620005ce57620005cd62000570565b5b50919050565b613f4380620005e46000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c8063938e3d7b11610125578063c87b56dd116100ad578063e78f04ad1161007c578063e78f04ad14610613578063e8a3d48514610643578063e985e9c514610661578063f2fde38b14610691578063fb9d09c8146106ad5761021c565b8063c87b56dd14610567578063d045586d14610597578063dc33e681146105c7578063dd1049ab146105f75761021c565b8063a22cb465116100f4578063a22cb465146104d9578063a2309ff8146104f5578063a875e4be14610513578063b88d4fde1461052f578063ba87bf921461054b5761021c565b8063938e3d7b1461046557806395d89b41146104815780639da3f8fd1461049f578063a2026e3d146104bd5761021c565b806323b872dd116101a85780635c975abb116101775780635c975abb146103bf5780636352211e146103dd57806370a082311461040d578063715018a61461043d5780638da5cb5b146104475761021c565b806323b872dd1461034d5780633c8463a11461036957806342842e0e1461038757806355f804b3146103a35761021c565b8063095ea7b3116101ef578063095ea7b3146102bb5780630dd250e1146102d757806318160ddd146102f557806319d1997a146103135780631f85e3ca146103315761021c565b806301ffc9a71461022157806302329a291461025157806306fdde031461026d578063081812fc1461028b575b600080fd5b61023b600480360381019061023691906128e9565b6106c9565b6040516102489190612931565b60405180910390f35b61026b60048036038101906102669190612978565b61075b565b005b610275610782565b6040516102829190612a3e565b60405180910390f35b6102a560048036038101906102a09190612a96565b610814565b6040516102b29190612b04565b60405180910390f35b6102d560048036038101906102d09190612b4b565b610893565b005b6102df6109d7565b6040516102ec9190612c18565b60405180910390f35b6102fd610b33565b60405161030a9190612c42565b60405180910390f35b61031b610b4a565b6040516103289190612c42565b60405180910390f35b61034b60048036038101906103469190612978565b610b50565b005b61036760048036038101906103629190612c5d565b610b75565b005b610371610e97565b60405161037e9190612c42565b60405180910390f35b6103a1600480360381019061039c9190612c5d565b610eb0565b005b6103bd60048036038101906103b89190612de5565b610ed0565b005b6103c7610ef2565b6040516103d49190612931565b60405180910390f35b6103f760048036038101906103f29190612a96565b610f09565b6040516104049190612b04565b60405180910390f35b61042760048036038101906104229190612e2e565b610f1b565b6040516104349190612c42565b60405180910390f35b610445610fd3565b005b61044f610fe7565b60405161045c9190612b04565b60405180910390f35b61047f600480360381019061047a9190612de5565b611011565b005b610489611033565b6040516104969190612a3e565b60405180910390f35b6104a76110c5565b6040516104b49190612931565b60405180910390f35b6104d760048036038101906104d29190612f8f565b6110dc565b005b6104f360048036038101906104ee9190612feb565b6113ba565b005b6104fd611531565b60405161050a9190612c42565b60405180910390f35b61052d6004803603810190610528919061302b565b611540565b005b610549600480360381019061054491906131a3565b6115aa565b005b610565600480360381019061056091906133d8565b61161d565b005b610581600480360381019061057c9190612a96565b61182c565b60405161058e9190612a3e565b60405180910390f35b6105b160048036038101906105ac9190612a96565b6118ca565b6040516105be9190612c18565b60405180910390f35b6105e160048036038101906105dc9190612e2e565b611973565b6040516105ee9190612c42565b60405180910390f35b610611600480360381019061060c9190613560565b611985565b005b61062d60048036038101906106289190612e2e565b611b3c565b60405161063a91906135f0565b60405180910390f35b61064b611b6c565b6040516106589190612a3e565b60405180910390f35b61067b6004803603810190610676919061360b565b611bfe565b6040516106889190612931565b60405180910390f35b6106ab60048036038101906106a69190612e2e565b611c92565b005b6106c760048036038101906106c2919061364b565b611d15565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061072457506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107545750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b610763611d25565b801561077657610771611da3565b61077f565b61077e611e06565b5b50565b6060600b8054610791906136a7565b80601f01602080910402602001604051908101604052809291908181526020018280546107bd906136a7565b801561080a5780601f106107df5761010080835404028352916020019161080a565b820191906000526020600020905b8154815290600101906020018083116107ed57829003601f168201915b5050505050905090565b600061081f82611e69565b610855576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061089e82610f09565b90508073ffffffffffffffffffffffffffffffffffffffff166108bf611ec8565b73ffffffffffffffffffffffffffffffffffffffff1614610922576108eb816108e6611ec8565b611bfe565b610921576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6109df61279d565b6109e761279d565b600060016011546109f89190613707565b90505b6000811115610af257600f6000600183610a15919061375d565b8152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160089054906101000a900463ffffffff1663ffffffff1663ffffffff168152505091506000826020015163ffffffff16118015610ad05750816020015163ffffffff164210155b15610adf578192505050610b30565b8080610aea90613791565b9150506109fb565b5060405180608001604052806000801b8152602001600063ffffffff168152602001600063ffffffff168152602001600063ffffffff168152509150505b90565b6000610b3d611ed0565b6001546000540303905090565b60135481565b610b58611d25565b80601260006101000a81548160ff02191690831515021790555050565b6000610b8082611ed5565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be7576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610bf384611fa1565b91509150610c098187610c04611ec8565b611fc8565b610c5557610c1e86610c19611ec8565b611bfe565b610c54576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610cbb576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cc8868686600161200c565b8015610cd357600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610da185610d7d888887612012565b7c02000000000000000000000000000000000000000000000000000000001761203a565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610e275760006001850190506000600460008381526020019081526020016000205403610e25576000548114610e24578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610e8f8686866001612065565b505050505050565b6000610ea16109d7565b6040015163ffffffff16905090565b610ecb838383604051806020016040528060008152506115aa565b505050565b610ed8611d25565b80600d9080519060200190610eee9291906127da565b5050565b6000600a60009054906101000a900460ff16905090565b6000610f1482611ed5565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f82576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b610fdb611d25565b610fe5600061206b565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611019611d25565b80600e908051906020019061102f9291906127da565b5050565b6060600c8054611042906136a7565b80601f016020809104026020016040519081016040528092919081815260200182805461106e906136a7565b80156110bb5780601f10611090576101008083540402835291602001916110bb565b820191906000526020600020905b81548152906001019060200180831161109e57829003601f168201915b5050505050905090565b6000601260009054906101000a900460ff16905090565b600260095403611121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111890613806565b60405180910390fd5b6002600981905550601260009054906101000a900460ff16611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116f90613872565b60405180910390fd5b60006111826109d7565b90506000816020015163ffffffff161180156111a8575042816020015163ffffffff1611155b6111e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111de906138de565b60405180910390fd5b6013548367ffffffffffffffff166111fd612131565b6112079190613707565b1115611248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123f9061394a565b60405180910390fd5b6000825114158061125f57506000801b8160000151145b61129e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611295906139b6565b60405180910390fd5b6000816040015163ffffffff1614806112e55750806040015163ffffffff168367ffffffffffffffff166112d86112d3612144565b61214c565b6112e29190613707565b11155b611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131b90613a22565b60405180910390fd5b6000801b81600001511480611353575061135282826000015161134d611348612144565b611b3c565b6121a3565b5b611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138990613a8e565b60405180910390fd5b6113ad61139d612144565b8467ffffffffffffffff166121ba565b5060016009819055505050565b6113c2611ec8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611426576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000611433611ec8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166114e0611ec8565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516115259190612931565b60405180910390a35050565b600061153b612131565b905090565b611548611d25565b83600b908051906020019061155e9291906127da565b5082600c90805190602001906115759291906127da565b5081600d908051906020019061158c9291906127da565b5080600e90805190602001906115a39291906127da565b5050505050565b6115b5848484610b75565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611617576115e0848484846121d8565b611616576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b611625611d25565b82518451148015611637575081518451145b611676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166d90613afa565b60405180910390fd5b60005b84518110156118255760405180608001604052808583815181106116a05761169f613b1a565b5b602002602001015181526020018483815181106116c0576116bf613b1a565b5b602002602001015163ffffffff1681526020018383815181106116e6576116e5613b1a565b5b602002602001015163ffffffff16815260200186838151811061170c5761170b613b1a565b5b602002602001015163ffffffff16815250600f600087848151811061173457611733613b1a565b5b602002602001015181526020019081526020016000206000820151816000015560208201518160010160006101000a81548163ffffffff021916908363ffffffff16021790555060408201518160010160046101000a81548163ffffffff021916908363ffffffff16021790555060608201518160010160086101000a81548163ffffffff021916908363ffffffff1602179055509050506011548582815181106117e2576117e1613b1a565b5b602002602001015111156118125784818151811061180357611802613b1a565b5b60200260200101516011819055505b808061181d90613b49565b915050611679565b5050505050565b606061183782611e69565b61186d576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611877612328565b9050600081510361189757604051806020016040528060008152506118c2565b806118a1846123ba565b6040516020016118b2929190613bcd565b6040516020818303038152906040525b915050919050565b6118d261279d565b600f6000838152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160089054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b600061197e8261214c565b9050919050565b6002600954036119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c190613806565b60405180910390fd5b60026009819055506119da611d25565b818190508484905014611a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1990613afa565b60405180910390fd5b60005b84849050811015611b2d57601354838383818110611a4657611a45613b1a565b5b9050602002016020810190611a5b919061364b565b67ffffffffffffffff16611a6d612131565b611a779190613707565b1115611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf9061394a565b60405180910390fd5b611b1a858583818110611ace57611acd613b1a565b5b9050602002016020810190611ae39190612e2e565b848484818110611af657611af5613b1a565b5b9050602002016020810190611b0b919061364b565b67ffffffffffffffff166121ba565b8080611b2590613b49565b915050611a25565b50600160098190555050505050565b600081604051602001611b4f9190613c39565b604051602081830303815290604052805190602001209050919050565b6060600e8054611b7b906136a7565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba7906136a7565b8015611bf45780601f10611bc957610100808354040283529160200191611bf4565b820191906000526020600020905b815481529060010190602001808311611bd757829003601f168201915b5050505050905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611c9a611d25565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0090613cc6565b60405180910390fd5b611d128161206b565b50565b6060611d2182826110dc565b5050565b611d2d612144565b73ffffffffffffffffffffffffffffffffffffffff16611d4b610fe7565b73ffffffffffffffffffffffffffffffffffffffff1614611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890613d32565b60405180910390fd5b565b611dab612401565b6001600a60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611def612144565b604051611dfc9190612b04565b60405180910390a1565b611e0e61244b565b6000600a60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611e52612144565b604051611e5f9190612b04565b60405180910390a1565b600081611e74611ed0565b11158015611e83575060005482105b8015611ec1575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b600090565b60008082905080611ee4611ed0565b11611f6a57600054811015611f695760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611f67575b60008103611f5d576004600083600190039350838152602001908152602001600020549050611f33565b8092505050611f9c565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8612029868684612494565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600061213b611ed0565b60005403905090565b600033905090565b600067ffffffffffffffff6040600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c169050919050565b6000826121b0858461249d565b1490509392505050565b6121d48282604051806020016040528060008152506124f3565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026121fe611ec8565b8786866040518563ffffffff1660e01b81526004016122209493929190613da7565b6020604051808303816000875af192505050801561225c57506040513d601f19601f820116820180604052508101906122599190613e08565b60015b6122d5573d806000811461228c576040519150601f19603f3d011682016040523d82523d6000602084013e612291565b606091505b5060008151036122cd576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600d8054612337906136a7565b80601f0160208091040260200160405190810160405280929190818152602001828054612363906136a7565b80156123b05780601f10612385576101008083540402835291602001916123b0565b820191906000526020600020905b81548152906001019060200180831161239357829003601f168201915b5050505050905090565b606060806040510190508060405280825b6001156123ed57600183039250600a81066030018353600a81049050806123cb575b508181036020830392508083525050919050565b612409610ef2565b15612449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244090613e81565b60405180910390fd5b565b612453610ef2565b612492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248990613eed565b60405180910390fd5b565b60009392505050565b60008082905060005b84518110156124e8576124d3828683815181106124c6576124c5613b1a565b5b6020026020010151612590565b915080806124e090613b49565b9150506124a6565b508091505092915050565b6124fd83836125bb565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461258b57600080549050600083820390505b61253d60008683806001019450866121d8565b612573576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81811061252a57816000541461258857600080fd5b50505b505050565b60008183106125a8576125a38284612776565b6125b3565b6125b28383612776565b5b905092915050565b600080549050600082036125fb576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612608600084838561200c565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061267f836126706000866000612012565b6126798561278d565b1761203a565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461272057808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001810190506126e5565b506000820361275b576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506127716000848385612065565b505050565b600082600052816020526040600020905092915050565b60006001821460e11b9050919050565b604051806080016040528060008019168152602001600063ffffffff168152602001600063ffffffff168152602001600063ffffffff1681525090565b8280546127e6906136a7565b90600052602060002090601f016020900481019282612808576000855561284f565b82601f1061282157805160ff191683800117855561284f565b8280016001018555821561284f579182015b8281111561284e578251825591602001919060010190612833565b5b50905061285c9190612860565b5090565b5b80821115612879576000816000905550600101612861565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6128c681612891565b81146128d157600080fd5b50565b6000813590506128e3816128bd565b92915050565b6000602082840312156128ff576128fe612887565b5b600061290d848285016128d4565b91505092915050565b60008115159050919050565b61292b81612916565b82525050565b60006020820190506129466000830184612922565b92915050565b61295581612916565b811461296057600080fd5b50565b6000813590506129728161294c565b92915050565b60006020828403121561298e5761298d612887565b5b600061299c84828501612963565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129df5780820151818401526020810190506129c4565b838111156129ee576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a10826129a5565b612a1a81856129b0565b9350612a2a8185602086016129c1565b612a33816129f4565b840191505092915050565b60006020820190508181036000830152612a588184612a05565b905092915050565b6000819050919050565b612a7381612a60565b8114612a7e57600080fd5b50565b600081359050612a9081612a6a565b92915050565b600060208284031215612aac57612aab612887565b5b6000612aba84828501612a81565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612aee82612ac3565b9050919050565b612afe81612ae3565b82525050565b6000602082019050612b196000830184612af5565b92915050565b612b2881612ae3565b8114612b3357600080fd5b50565b600081359050612b4581612b1f565b92915050565b60008060408385031215612b6257612b61612887565b5b6000612b7085828601612b36565b9250506020612b8185828601612a81565b9150509250929050565b6000819050919050565b612b9e81612b8b565b82525050565b600063ffffffff82169050919050565b612bbd81612ba4565b82525050565b608082016000820151612bd96000850182612b95565b506020820151612bec6020850182612bb4565b506040820151612bff6040850182612bb4565b506060820151612c126060850182612bb4565b50505050565b6000608082019050612c2d6000830184612bc3565b92915050565b612c3c81612a60565b82525050565b6000602082019050612c576000830184612c33565b92915050565b600080600060608486031215612c7657612c75612887565b5b6000612c8486828701612b36565b9350506020612c9586828701612b36565b9250506040612ca686828701612a81565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cf2826129f4565b810181811067ffffffffffffffff82111715612d1157612d10612cba565b5b80604052505050565b6000612d2461287d565b9050612d308282612ce9565b919050565b600067ffffffffffffffff821115612d5057612d4f612cba565b5b612d59826129f4565b9050602081019050919050565b82818337600083830152505050565b6000612d88612d8384612d35565b612d1a565b905082815260208101848484011115612da457612da3612cb5565b5b612daf848285612d66565b509392505050565b600082601f830112612dcc57612dcb612cb0565b5b8135612ddc848260208601612d75565b91505092915050565b600060208284031215612dfb57612dfa612887565b5b600082013567ffffffffffffffff811115612e1957612e1861288c565b5b612e2584828501612db7565b91505092915050565b600060208284031215612e4457612e43612887565b5b6000612e5284828501612b36565b91505092915050565b600067ffffffffffffffff82169050919050565b612e7881612e5b565b8114612e8357600080fd5b50565b600081359050612e9581612e6f565b92915050565b600067ffffffffffffffff821115612eb657612eb5612cba565b5b602082029050602081019050919050565b600080fd5b612ed581612b8b565b8114612ee057600080fd5b50565b600081359050612ef281612ecc565b92915050565b6000612f0b612f0684612e9b565b612d1a565b90508083825260208201905060208402830185811115612f2e57612f2d612ec7565b5b835b81811015612f575780612f438882612ee3565b845260208401935050602081019050612f30565b5050509392505050565b600082601f830112612f7657612f75612cb0565b5b8135612f86848260208601612ef8565b91505092915050565b60008060408385031215612fa657612fa5612887565b5b6000612fb485828601612e86565b925050602083013567ffffffffffffffff811115612fd557612fd461288c565b5b612fe185828601612f61565b9150509250929050565b6000806040838503121561300257613001612887565b5b600061301085828601612b36565b925050602061302185828601612963565b9150509250929050565b6000806000806080858703121561304557613044612887565b5b600085013567ffffffffffffffff8111156130635761306261288c565b5b61306f87828801612db7565b945050602085013567ffffffffffffffff8111156130905761308f61288c565b5b61309c87828801612db7565b935050604085013567ffffffffffffffff8111156130bd576130bc61288c565b5b6130c987828801612db7565b925050606085013567ffffffffffffffff8111156130ea576130e961288c565b5b6130f687828801612db7565b91505092959194509250565b600067ffffffffffffffff82111561311d5761311c612cba565b5b613126826129f4565b9050602081019050919050565b600061314661314184613102565b612d1a565b90508281526020810184848401111561316257613161612cb5565b5b61316d848285612d66565b509392505050565b600082601f83011261318a57613189612cb0565b5b813561319a848260208601613133565b91505092915050565b600080600080608085870312156131bd576131bc612887565b5b60006131cb87828801612b36565b94505060206131dc87828801612b36565b93505060406131ed87828801612a81565b925050606085013567ffffffffffffffff81111561320e5761320d61288c565b5b61321a87828801613175565b91505092959194509250565b600067ffffffffffffffff82111561324157613240612cba565b5b602082029050602081019050919050565b600061326561326084613226565b612d1a565b9050808382526020820190506020840283018581111561328857613287612ec7565b5b835b818110156132b1578061329d8882612a81565b84526020840193505060208101905061328a565b5050509392505050565b600082601f8301126132d0576132cf612cb0565b5b81356132e0848260208601613252565b91505092915050565b600067ffffffffffffffff82111561330457613303612cba565b5b602082029050602081019050919050565b61331e81612ba4565b811461332957600080fd5b50565b60008135905061333b81613315565b92915050565b600061335461334f846132e9565b612d1a565b9050808382526020820190506020840283018581111561337757613376612ec7565b5b835b818110156133a0578061338c888261332c565b845260208401935050602081019050613379565b5050509392505050565b600082601f8301126133bf576133be612cb0565b5b81356133cf848260208601613341565b91505092915050565b600080600080608085870312156133f2576133f1612887565b5b600085013567ffffffffffffffff8111156134105761340f61288c565b5b61341c878288016132bb565b945050602085013567ffffffffffffffff81111561343d5761343c61288c565b5b61344987828801612f61565b935050604085013567ffffffffffffffff81111561346a5761346961288c565b5b613476878288016133aa565b925050606085013567ffffffffffffffff8111156134975761349661288c565b5b6134a3878288016133aa565b91505092959194509250565b600080fd5b60008083601f8401126134ca576134c9612cb0565b5b8235905067ffffffffffffffff8111156134e7576134e66134af565b5b60208301915083602082028301111561350357613502612ec7565b5b9250929050565b60008083601f8401126135205761351f612cb0565b5b8235905067ffffffffffffffff81111561353d5761353c6134af565b5b60208301915083602082028301111561355957613558612ec7565b5b9250929050565b6000806000806040858703121561357a57613579612887565b5b600085013567ffffffffffffffff8111156135985761359761288c565b5b6135a4878288016134b4565b9450945050602085013567ffffffffffffffff8111156135c7576135c661288c565b5b6135d38782880161350a565b925092505092959194509250565b6135ea81612b8b565b82525050565b600060208201905061360560008301846135e1565b92915050565b6000806040838503121561362257613621612887565b5b600061363085828601612b36565b925050602061364185828601612b36565b9150509250929050565b60006020828403121561366157613660612887565b5b600061366f84828501612e86565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806136bf57607f821691505b6020821081036136d2576136d1613678565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061371282612a60565b915061371d83612a60565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613752576137516136d8565b5b828201905092915050565b600061376882612a60565b915061377383612a60565b925082821015613786576137856136d8565b5b828203905092915050565b600061379c82612a60565b9150600082036137af576137ae6136d8565b5b600182039050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006137f0601f836129b0565b91506137fb826137ba565b602082019050919050565b6000602082019050818103600083015261381f816137e3565b9050919050565b7f4d696e74696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b600061385c6010836129b0565b915061386782613826565b602082019050919050565b6000602082019050818103600083015261388b8161384f565b9050919050565b7f4f70656e207068617365206e6f7420666f756e64000000000000000000000000600082015250565b60006138c86014836129b0565b91506138d382613892565b602082019050919050565b600060208201905081810360008301526138f7816138bb565b9050919050565b7f537570706c792063617020726561636865640000000000000000000000000000600082015250565b60006139346012836129b0565b915061393f826138fe565b602082019050919050565b6000602082019050818103600083015261396381613927565b9050919050565b7f5075626c6963206d696e74696e67206e6f74206f70656e000000000000000000600082015250565b60006139a06017836129b0565b91506139ab8261396a565b602082019050919050565b600060208201905081810360008301526139cf81613993565b9050919050565b7f4d696e74206c696d697420726561636865640000000000000000000000000000600082015250565b6000613a0c6012836129b0565b9150613a17826139d6565b602082019050919050565b60006020820190508181036000830152613a3b816139ff565b9050919050565b7f4e6f74206f6e20616c6c6f77206c697374000000000000000000000000000000600082015250565b6000613a786011836129b0565b9150613a8382613a42565b602082019050919050565b60006020820190508181036000830152613aa781613a6b565b9050919050565b7f4172726179206d69736d61746368000000000000000000000000000000000000600082015250565b6000613ae4600e836129b0565b9150613aef82613aae565b602082019050919050565b60006020820190508181036000830152613b1381613ad7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613b5482612a60565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b8657613b856136d8565b5b600182019050919050565b600081905092915050565b6000613ba7826129a5565b613bb18185613b91565b9350613bc18185602086016129c1565b80840191505092915050565b6000613bd98285613b9c565b9150613be58284613b9c565b91508190509392505050565b60008160601b9050919050565b6000613c0982613bf1565b9050919050565b6000613c1b82613bfe565b9050919050565b613c33613c2e82612ae3565b613c10565b82525050565b6000613c458284613c22565b60148201915081905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613cb06026836129b0565b9150613cbb82613c54565b604082019050919050565b60006020820190508181036000830152613cdf81613ca3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613d1c6020836129b0565b9150613d2782613ce6565b602082019050919050565b60006020820190508181036000830152613d4b81613d0f565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613d7982613d52565b613d838185613d5d565b9350613d938185602086016129c1565b613d9c816129f4565b840191505092915050565b6000608082019050613dbc6000830187612af5565b613dc96020830186612af5565b613dd66040830185612c33565b8181036060830152613de88184613d6e565b905095945050505050565b600081519050613e02816128bd565b92915050565b600060208284031215613e1e57613e1d612887565b5b6000613e2c84828501613df3565b91505092915050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613e6b6010836129b0565b9150613e7682613e35565b602082019050919050565b60006020820190508181036000830152613e9a81613e5e565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613ed76014836129b0565b9150613ee282613ea1565b602082019050919050565b60006020820190508181036000830152613f0681613eca565b905091905056fea2646970667358221220ada82bd971549cbf0a95e6b77843b74f00252d41b7210c78969c87af35084a0e64736f6c634300080e0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000011425058205465737420436f6e7472616374000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c54455354434f4e54524143540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002668747470733a2f2f70756e6b313835392d67697665617761792e626c6f6b7061782e636f6d2f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003268747470733a2f2f70756e6b313835392d67697665617761792e626c6f6b7061782e636f6d2f6f70656e7365612e6a736f6e0000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061021c5760003560e01c8063938e3d7b11610125578063c87b56dd116100ad578063e78f04ad1161007c578063e78f04ad14610613578063e8a3d48514610643578063e985e9c514610661578063f2fde38b14610691578063fb9d09c8146106ad5761021c565b8063c87b56dd14610567578063d045586d14610597578063dc33e681146105c7578063dd1049ab146105f75761021c565b8063a22cb465116100f4578063a22cb465146104d9578063a2309ff8146104f5578063a875e4be14610513578063b88d4fde1461052f578063ba87bf921461054b5761021c565b8063938e3d7b1461046557806395d89b41146104815780639da3f8fd1461049f578063a2026e3d146104bd5761021c565b806323b872dd116101a85780635c975abb116101775780635c975abb146103bf5780636352211e146103dd57806370a082311461040d578063715018a61461043d5780638da5cb5b146104475761021c565b806323b872dd1461034d5780633c8463a11461036957806342842e0e1461038757806355f804b3146103a35761021c565b8063095ea7b3116101ef578063095ea7b3146102bb5780630dd250e1146102d757806318160ddd146102f557806319d1997a146103135780631f85e3ca146103315761021c565b806301ffc9a71461022157806302329a291461025157806306fdde031461026d578063081812fc1461028b575b600080fd5b61023b600480360381019061023691906128e9565b6106c9565b6040516102489190612931565b60405180910390f35b61026b60048036038101906102669190612978565b61075b565b005b610275610782565b6040516102829190612a3e565b60405180910390f35b6102a560048036038101906102a09190612a96565b610814565b6040516102b29190612b04565b60405180910390f35b6102d560048036038101906102d09190612b4b565b610893565b005b6102df6109d7565b6040516102ec9190612c18565b60405180910390f35b6102fd610b33565b60405161030a9190612c42565b60405180910390f35b61031b610b4a565b6040516103289190612c42565b60405180910390f35b61034b60048036038101906103469190612978565b610b50565b005b61036760048036038101906103629190612c5d565b610b75565b005b610371610e97565b60405161037e9190612c42565b60405180910390f35b6103a1600480360381019061039c9190612c5d565b610eb0565b005b6103bd60048036038101906103b89190612de5565b610ed0565b005b6103c7610ef2565b6040516103d49190612931565b60405180910390f35b6103f760048036038101906103f29190612a96565b610f09565b6040516104049190612b04565b60405180910390f35b61042760048036038101906104229190612e2e565b610f1b565b6040516104349190612c42565b60405180910390f35b610445610fd3565b005b61044f610fe7565b60405161045c9190612b04565b60405180910390f35b61047f600480360381019061047a9190612de5565b611011565b005b610489611033565b6040516104969190612a3e565b60405180910390f35b6104a76110c5565b6040516104b49190612931565b60405180910390f35b6104d760048036038101906104d29190612f8f565b6110dc565b005b6104f360048036038101906104ee9190612feb565b6113ba565b005b6104fd611531565b60405161050a9190612c42565b60405180910390f35b61052d6004803603810190610528919061302b565b611540565b005b610549600480360381019061054491906131a3565b6115aa565b005b610565600480360381019061056091906133d8565b61161d565b005b610581600480360381019061057c9190612a96565b61182c565b60405161058e9190612a3e565b60405180910390f35b6105b160048036038101906105ac9190612a96565b6118ca565b6040516105be9190612c18565b60405180910390f35b6105e160048036038101906105dc9190612e2e565b611973565b6040516105ee9190612c42565b60405180910390f35b610611600480360381019061060c9190613560565b611985565b005b61062d60048036038101906106289190612e2e565b611b3c565b60405161063a91906135f0565b60405180910390f35b61064b611b6c565b6040516106589190612a3e565b60405180910390f35b61067b6004803603810190610676919061360b565b611bfe565b6040516106889190612931565b60405180910390f35b6106ab60048036038101906106a69190612e2e565b611c92565b005b6106c760048036038101906106c2919061364b565b611d15565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061072457506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107545750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b610763611d25565b801561077657610771611da3565b61077f565b61077e611e06565b5b50565b6060600b8054610791906136a7565b80601f01602080910402602001604051908101604052809291908181526020018280546107bd906136a7565b801561080a5780601f106107df5761010080835404028352916020019161080a565b820191906000526020600020905b8154815290600101906020018083116107ed57829003601f168201915b5050505050905090565b600061081f82611e69565b610855576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061089e82610f09565b90508073ffffffffffffffffffffffffffffffffffffffff166108bf611ec8565b73ffffffffffffffffffffffffffffffffffffffff1614610922576108eb816108e6611ec8565b611bfe565b610921576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6109df61279d565b6109e761279d565b600060016011546109f89190613707565b90505b6000811115610af257600f6000600183610a15919061375d565b8152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160089054906101000a900463ffffffff1663ffffffff1663ffffffff168152505091506000826020015163ffffffff16118015610ad05750816020015163ffffffff164210155b15610adf578192505050610b30565b8080610aea90613791565b9150506109fb565b5060405180608001604052806000801b8152602001600063ffffffff168152602001600063ffffffff168152602001600063ffffffff168152509150505b90565b6000610b3d611ed0565b6001546000540303905090565b60135481565b610b58611d25565b80601260006101000a81548160ff02191690831515021790555050565b6000610b8082611ed5565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610be7576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610bf384611fa1565b91509150610c098187610c04611ec8565b611fc8565b610c5557610c1e86610c19611ec8565b611bfe565b610c54576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610cbb576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cc8868686600161200c565b8015610cd357600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610da185610d7d888887612012565b7c02000000000000000000000000000000000000000000000000000000001761203a565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610e275760006001850190506000600460008381526020019081526020016000205403610e25576000548114610e24578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610e8f8686866001612065565b505050505050565b6000610ea16109d7565b6040015163ffffffff16905090565b610ecb838383604051806020016040528060008152506115aa565b505050565b610ed8611d25565b80600d9080519060200190610eee9291906127da565b5050565b6000600a60009054906101000a900460ff16905090565b6000610f1482611ed5565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f82576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b610fdb611d25565b610fe5600061206b565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611019611d25565b80600e908051906020019061102f9291906127da565b5050565b6060600c8054611042906136a7565b80601f016020809104026020016040519081016040528092919081815260200182805461106e906136a7565b80156110bb5780601f10611090576101008083540402835291602001916110bb565b820191906000526020600020905b81548152906001019060200180831161109e57829003601f168201915b5050505050905090565b6000601260009054906101000a900460ff16905090565b600260095403611121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111890613806565b60405180910390fd5b6002600981905550601260009054906101000a900460ff16611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116f90613872565b60405180910390fd5b60006111826109d7565b90506000816020015163ffffffff161180156111a8575042816020015163ffffffff1611155b6111e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111de906138de565b60405180910390fd5b6013548367ffffffffffffffff166111fd612131565b6112079190613707565b1115611248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123f9061394a565b60405180910390fd5b6000825114158061125f57506000801b8160000151145b61129e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611295906139b6565b60405180910390fd5b6000816040015163ffffffff1614806112e55750806040015163ffffffff168367ffffffffffffffff166112d86112d3612144565b61214c565b6112e29190613707565b11155b611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131b90613a22565b60405180910390fd5b6000801b81600001511480611353575061135282826000015161134d611348612144565b611b3c565b6121a3565b5b611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138990613a8e565b60405180910390fd5b6113ad61139d612144565b8467ffffffffffffffff166121ba565b5060016009819055505050565b6113c2611ec8565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611426576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000611433611ec8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166114e0611ec8565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516115259190612931565b60405180910390a35050565b600061153b612131565b905090565b611548611d25565b83600b908051906020019061155e9291906127da565b5082600c90805190602001906115759291906127da565b5081600d908051906020019061158c9291906127da565b5080600e90805190602001906115a39291906127da565b5050505050565b6115b5848484610b75565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611617576115e0848484846121d8565b611616576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b611625611d25565b82518451148015611637575081518451145b611676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166d90613afa565b60405180910390fd5b60005b84518110156118255760405180608001604052808583815181106116a05761169f613b1a565b5b602002602001015181526020018483815181106116c0576116bf613b1a565b5b602002602001015163ffffffff1681526020018383815181106116e6576116e5613b1a565b5b602002602001015163ffffffff16815260200186838151811061170c5761170b613b1a565b5b602002602001015163ffffffff16815250600f600087848151811061173457611733613b1a565b5b602002602001015181526020019081526020016000206000820151816000015560208201518160010160006101000a81548163ffffffff021916908363ffffffff16021790555060408201518160010160046101000a81548163ffffffff021916908363ffffffff16021790555060608201518160010160086101000a81548163ffffffff021916908363ffffffff1602179055509050506011548582815181106117e2576117e1613b1a565b5b602002602001015111156118125784818151811061180357611802613b1a565b5b60200260200101516011819055505b808061181d90613b49565b915050611679565b5050505050565b606061183782611e69565b61186d576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611877612328565b9050600081510361189757604051806020016040528060008152506118c2565b806118a1846123ba565b6040516020016118b2929190613bcd565b6040516020818303038152906040525b915050919050565b6118d261279d565b600f6000838152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160089054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b600061197e8261214c565b9050919050565b6002600954036119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c190613806565b60405180910390fd5b60026009819055506119da611d25565b818190508484905014611a22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1990613afa565b60405180910390fd5b60005b84849050811015611b2d57601354838383818110611a4657611a45613b1a565b5b9050602002016020810190611a5b919061364b565b67ffffffffffffffff16611a6d612131565b611a779190613707565b1115611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf9061394a565b60405180910390fd5b611b1a858583818110611ace57611acd613b1a565b5b9050602002016020810190611ae39190612e2e565b848484818110611af657611af5613b1a565b5b9050602002016020810190611b0b919061364b565b67ffffffffffffffff166121ba565b8080611b2590613b49565b915050611a25565b50600160098190555050505050565b600081604051602001611b4f9190613c39565b604051602081830303815290604052805190602001209050919050565b6060600e8054611b7b906136a7565b80601f0160208091040260200160405190810160405280929190818152602001828054611ba7906136a7565b8015611bf45780601f10611bc957610100808354040283529160200191611bf4565b820191906000526020600020905b815481529060010190602001808311611bd757829003601f168201915b5050505050905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611c9a611d25565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0090613cc6565b60405180910390fd5b611d128161206b565b50565b6060611d2182826110dc565b5050565b611d2d612144565b73ffffffffffffffffffffffffffffffffffffffff16611d4b610fe7565b73ffffffffffffffffffffffffffffffffffffffff1614611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890613d32565b60405180910390fd5b565b611dab612401565b6001600a60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611def612144565b604051611dfc9190612b04565b60405180910390a1565b611e0e61244b565b6000600a60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611e52612144565b604051611e5f9190612b04565b60405180910390a1565b600081611e74611ed0565b11158015611e83575060005482105b8015611ec1575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b600090565b60008082905080611ee4611ed0565b11611f6a57600054811015611f695760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611f67575b60008103611f5d576004600083600190039350838152602001908152602001600020549050611f33565b8092505050611f9c565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8612029868684612494565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600061213b611ed0565b60005403905090565b600033905090565b600067ffffffffffffffff6040600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c169050919050565b6000826121b0858461249d565b1490509392505050565b6121d48282604051806020016040528060008152506124f3565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026121fe611ec8565b8786866040518563ffffffff1660e01b81526004016122209493929190613da7565b6020604051808303816000875af192505050801561225c57506040513d601f19601f820116820180604052508101906122599190613e08565b60015b6122d5573d806000811461228c576040519150601f19603f3d011682016040523d82523d6000602084013e612291565b606091505b5060008151036122cd576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600d8054612337906136a7565b80601f0160208091040260200160405190810160405280929190818152602001828054612363906136a7565b80156123b05780601f10612385576101008083540402835291602001916123b0565b820191906000526020600020905b81548152906001019060200180831161239357829003601f168201915b5050505050905090565b606060806040510190508060405280825b6001156123ed57600183039250600a81066030018353600a81049050806123cb575b508181036020830392508083525050919050565b612409610ef2565b15612449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244090613e81565b60405180910390fd5b565b612453610ef2565b612492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248990613eed565b60405180910390fd5b565b60009392505050565b60008082905060005b84518110156124e8576124d3828683815181106124c6576124c5613b1a565b5b6020026020010151612590565b915080806124e090613b49565b9150506124a6565b508091505092915050565b6124fd83836125bb565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461258b57600080549050600083820390505b61253d60008683806001019450866121d8565b612573576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81811061252a57816000541461258857600080fd5b50505b505050565b60008183106125a8576125a38284612776565b6125b3565b6125b28383612776565b5b905092915050565b600080549050600082036125fb576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612608600084838561200c565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061267f836126706000866000612012565b6126798561278d565b1761203a565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461272057808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001810190506126e5565b506000820361275b576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506127716000848385612065565b505050565b600082600052816020526040600020905092915050565b60006001821460e11b9050919050565b604051806080016040528060008019168152602001600063ffffffff168152602001600063ffffffff168152602001600063ffffffff1681525090565b8280546127e6906136a7565b90600052602060002090601f016020900481019282612808576000855561284f565b82601f1061282157805160ff191683800117855561284f565b8280016001018555821561284f579182015b8281111561284e578251825591602001919060010190612833565b5b50905061285c9190612860565b5090565b5b80821115612879576000816000905550600101612861565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6128c681612891565b81146128d157600080fd5b50565b6000813590506128e3816128bd565b92915050565b6000602082840312156128ff576128fe612887565b5b600061290d848285016128d4565b91505092915050565b60008115159050919050565b61292b81612916565b82525050565b60006020820190506129466000830184612922565b92915050565b61295581612916565b811461296057600080fd5b50565b6000813590506129728161294c565b92915050565b60006020828403121561298e5761298d612887565b5b600061299c84828501612963565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129df5780820151818401526020810190506129c4565b838111156129ee576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a10826129a5565b612a1a81856129b0565b9350612a2a8185602086016129c1565b612a33816129f4565b840191505092915050565b60006020820190508181036000830152612a588184612a05565b905092915050565b6000819050919050565b612a7381612a60565b8114612a7e57600080fd5b50565b600081359050612a9081612a6a565b92915050565b600060208284031215612aac57612aab612887565b5b6000612aba84828501612a81565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612aee82612ac3565b9050919050565b612afe81612ae3565b82525050565b6000602082019050612b196000830184612af5565b92915050565b612b2881612ae3565b8114612b3357600080fd5b50565b600081359050612b4581612b1f565b92915050565b60008060408385031215612b6257612b61612887565b5b6000612b7085828601612b36565b9250506020612b8185828601612a81565b9150509250929050565b6000819050919050565b612b9e81612b8b565b82525050565b600063ffffffff82169050919050565b612bbd81612ba4565b82525050565b608082016000820151612bd96000850182612b95565b506020820151612bec6020850182612bb4565b506040820151612bff6040850182612bb4565b506060820151612c126060850182612bb4565b50505050565b6000608082019050612c2d6000830184612bc3565b92915050565b612c3c81612a60565b82525050565b6000602082019050612c576000830184612c33565b92915050565b600080600060608486031215612c7657612c75612887565b5b6000612c8486828701612b36565b9350506020612c9586828701612b36565b9250506040612ca686828701612a81565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cf2826129f4565b810181811067ffffffffffffffff82111715612d1157612d10612cba565b5b80604052505050565b6000612d2461287d565b9050612d308282612ce9565b919050565b600067ffffffffffffffff821115612d5057612d4f612cba565b5b612d59826129f4565b9050602081019050919050565b82818337600083830152505050565b6000612d88612d8384612d35565b612d1a565b905082815260208101848484011115612da457612da3612cb5565b5b612daf848285612d66565b509392505050565b600082601f830112612dcc57612dcb612cb0565b5b8135612ddc848260208601612d75565b91505092915050565b600060208284031215612dfb57612dfa612887565b5b600082013567ffffffffffffffff811115612e1957612e1861288c565b5b612e2584828501612db7565b91505092915050565b600060208284031215612e4457612e43612887565b5b6000612e5284828501612b36565b91505092915050565b600067ffffffffffffffff82169050919050565b612e7881612e5b565b8114612e8357600080fd5b50565b600081359050612e9581612e6f565b92915050565b600067ffffffffffffffff821115612eb657612eb5612cba565b5b602082029050602081019050919050565b600080fd5b612ed581612b8b565b8114612ee057600080fd5b50565b600081359050612ef281612ecc565b92915050565b6000612f0b612f0684612e9b565b612d1a565b90508083825260208201905060208402830185811115612f2e57612f2d612ec7565b5b835b81811015612f575780612f438882612ee3565b845260208401935050602081019050612f30565b5050509392505050565b600082601f830112612f7657612f75612cb0565b5b8135612f86848260208601612ef8565b91505092915050565b60008060408385031215612fa657612fa5612887565b5b6000612fb485828601612e86565b925050602083013567ffffffffffffffff811115612fd557612fd461288c565b5b612fe185828601612f61565b9150509250929050565b6000806040838503121561300257613001612887565b5b600061301085828601612b36565b925050602061302185828601612963565b9150509250929050565b6000806000806080858703121561304557613044612887565b5b600085013567ffffffffffffffff8111156130635761306261288c565b5b61306f87828801612db7565b945050602085013567ffffffffffffffff8111156130905761308f61288c565b5b61309c87828801612db7565b935050604085013567ffffffffffffffff8111156130bd576130bc61288c565b5b6130c987828801612db7565b925050606085013567ffffffffffffffff8111156130ea576130e961288c565b5b6130f687828801612db7565b91505092959194509250565b600067ffffffffffffffff82111561311d5761311c612cba565b5b613126826129f4565b9050602081019050919050565b600061314661314184613102565b612d1a565b90508281526020810184848401111561316257613161612cb5565b5b61316d848285612d66565b509392505050565b600082601f83011261318a57613189612cb0565b5b813561319a848260208601613133565b91505092915050565b600080600080608085870312156131bd576131bc612887565b5b60006131cb87828801612b36565b94505060206131dc87828801612b36565b93505060406131ed87828801612a81565b925050606085013567ffffffffffffffff81111561320e5761320d61288c565b5b61321a87828801613175565b91505092959194509250565b600067ffffffffffffffff82111561324157613240612cba565b5b602082029050602081019050919050565b600061326561326084613226565b612d1a565b9050808382526020820190506020840283018581111561328857613287612ec7565b5b835b818110156132b1578061329d8882612a81565b84526020840193505060208101905061328a565b5050509392505050565b600082601f8301126132d0576132cf612cb0565b5b81356132e0848260208601613252565b91505092915050565b600067ffffffffffffffff82111561330457613303612cba565b5b602082029050602081019050919050565b61331e81612ba4565b811461332957600080fd5b50565b60008135905061333b81613315565b92915050565b600061335461334f846132e9565b612d1a565b9050808382526020820190506020840283018581111561337757613376612ec7565b5b835b818110156133a0578061338c888261332c565b845260208401935050602081019050613379565b5050509392505050565b600082601f8301126133bf576133be612cb0565b5b81356133cf848260208601613341565b91505092915050565b600080600080608085870312156133f2576133f1612887565b5b600085013567ffffffffffffffff8111156134105761340f61288c565b5b61341c878288016132bb565b945050602085013567ffffffffffffffff81111561343d5761343c61288c565b5b61344987828801612f61565b935050604085013567ffffffffffffffff81111561346a5761346961288c565b5b613476878288016133aa565b925050606085013567ffffffffffffffff8111156134975761349661288c565b5b6134a3878288016133aa565b91505092959194509250565b600080fd5b60008083601f8401126134ca576134c9612cb0565b5b8235905067ffffffffffffffff8111156134e7576134e66134af565b5b60208301915083602082028301111561350357613502612ec7565b5b9250929050565b60008083601f8401126135205761351f612cb0565b5b8235905067ffffffffffffffff81111561353d5761353c6134af565b5b60208301915083602082028301111561355957613558612ec7565b5b9250929050565b6000806000806040858703121561357a57613579612887565b5b600085013567ffffffffffffffff8111156135985761359761288c565b5b6135a4878288016134b4565b9450945050602085013567ffffffffffffffff8111156135c7576135c661288c565b5b6135d38782880161350a565b925092505092959194509250565b6135ea81612b8b565b82525050565b600060208201905061360560008301846135e1565b92915050565b6000806040838503121561362257613621612887565b5b600061363085828601612b36565b925050602061364185828601612b36565b9150509250929050565b60006020828403121561366157613660612887565b5b600061366f84828501612e86565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806136bf57607f821691505b6020821081036136d2576136d1613678565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061371282612a60565b915061371d83612a60565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613752576137516136d8565b5b828201905092915050565b600061376882612a60565b915061377383612a60565b925082821015613786576137856136d8565b5b828203905092915050565b600061379c82612a60565b9150600082036137af576137ae6136d8565b5b600182039050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006137f0601f836129b0565b91506137fb826137ba565b602082019050919050565b6000602082019050818103600083015261381f816137e3565b9050919050565b7f4d696e74696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b600061385c6010836129b0565b915061386782613826565b602082019050919050565b6000602082019050818103600083015261388b8161384f565b9050919050565b7f4f70656e207068617365206e6f7420666f756e64000000000000000000000000600082015250565b60006138c86014836129b0565b91506138d382613892565b602082019050919050565b600060208201905081810360008301526138f7816138bb565b9050919050565b7f537570706c792063617020726561636865640000000000000000000000000000600082015250565b60006139346012836129b0565b915061393f826138fe565b602082019050919050565b6000602082019050818103600083015261396381613927565b9050919050565b7f5075626c6963206d696e74696e67206e6f74206f70656e000000000000000000600082015250565b60006139a06017836129b0565b91506139ab8261396a565b602082019050919050565b600060208201905081810360008301526139cf81613993565b9050919050565b7f4d696e74206c696d697420726561636865640000000000000000000000000000600082015250565b6000613a0c6012836129b0565b9150613a17826139d6565b602082019050919050565b60006020820190508181036000830152613a3b816139ff565b9050919050565b7f4e6f74206f6e20616c6c6f77206c697374000000000000000000000000000000600082015250565b6000613a786011836129b0565b9150613a8382613a42565b602082019050919050565b60006020820190508181036000830152613aa781613a6b565b9050919050565b7f4172726179206d69736d61746368000000000000000000000000000000000000600082015250565b6000613ae4600e836129b0565b9150613aef82613aae565b602082019050919050565b60006020820190508181036000830152613b1381613ad7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613b5482612a60565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b8657613b856136d8565b5b600182019050919050565b600081905092915050565b6000613ba7826129a5565b613bb18185613b91565b9350613bc18185602086016129c1565b80840191505092915050565b6000613bd98285613b9c565b9150613be58284613b9c565b91508190509392505050565b60008160601b9050919050565b6000613c0982613bf1565b9050919050565b6000613c1b82613bfe565b9050919050565b613c33613c2e82612ae3565b613c10565b82525050565b6000613c458284613c22565b60148201915081905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613cb06026836129b0565b9150613cbb82613c54565b604082019050919050565b60006020820190508181036000830152613cdf81613ca3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613d1c6020836129b0565b9150613d2782613ce6565b602082019050919050565b60006020820190508181036000830152613d4b81613d0f565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613d7982613d52565b613d838185613d5d565b9350613d938185602086016129c1565b613d9c816129f4565b840191505092915050565b6000608082019050613dbc6000830187612af5565b613dc96020830186612af5565b613dd66040830185612c33565b8181036060830152613de88184613d6e565b905095945050505050565b600081519050613e02816128bd565b92915050565b600060208284031215613e1e57613e1d612887565b5b6000613e2c84828501613df3565b91505092915050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613e6b6010836129b0565b9150613e7682613e35565b602082019050919050565b60006020820190508181036000830152613e9a81613e5e565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613ed76014836129b0565b9150613ee282613ea1565b602082019050919050565b60006020820190508181036000830152613f0681613eca565b905091905056fea2646970667358221220ada82bd971549cbf0a95e6b77843b74f00252d41b7210c78969c87af35084a0e64736f6c634300080e0033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.