Overview
TokenID
4117
Total Transfers
1
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
MAMF
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 1000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// (()__(()// / \// ( / \ \// \ o o /// (_()_)__/ \// / _,==.____ \// ( |--| )// /\_.|__|'-.__/\_// / ( / \// \ \ ( /// ) '._____) /// (((____.--(((____/// ME AND MY FRIENDpragma solidity >=0.8.9 <0.9.0;import 'erc721a/contracts/extensions/ERC721AQueryable.sol';import '@openzeppelin/contracts/access/Ownable.sol';import '@openzeppelin/contracts/utils/cryptography/MerkleProof.sol';import '@openzeppelin/contracts/security/ReentrancyGuard.sol';import '@openzeppelin/contracts/utils/Strings.sol';import '@openzeppelin/contracts/utils/math/SafeMath.sol';contract MAMF is ERC721AQueryable, Ownable, ReentrancyGuard {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol)pragma solidity ^0.8.0;// CAUTION// This version of SafeMath should only be used with Solidity 0.8 or later,// because it relies on the compiler's built in overflow checks./*** @dev Wrappers over Solidity's arithmetic operations.** NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler* now has built in overflow checking.*/library SafeMath {/*** @dev Returns the addition of two unsigned integers, with an overflow flag.** _Available since v3.4._*/function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {unchecked {uint256 c = a + b;if (c < a) return (false, 0);return (true, c);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol)pragma solidity ^0.8.0;/*** @dev String operations.*/library Strings {bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";uint8 private constant _ADDRESS_LENGTH = 20;/*** @dev Converts a `uint256` to its ASCII `string` decimal representation.*/function toString(uint256 value) internal pure returns (string memory) {// Inspired by OraclizeAPI's implementation - MIT licence// https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.solif (value == 0) {return "0";}uint256 temp = value;uint256 digits;while (temp != 0) {digits++;
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) (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.*/
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.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.3// Creator: Chiru Labspragma solidity ^0.8.4;import './IERC721AQueryable.sol';import '../ERC721A.sol';/*** @title ERC721AQueryable.** @dev ERC721A subclass with convenience query functions.*/abstract contract ERC721AQueryable is ERC721A, IERC721AQueryable {/*** @dev Returns the `TokenOwnership` struct at `tokenId` without reverting.** If the `tokenId` is out of bounds:** - `addr = address(0)`* - `startTimestamp = 0`* - `burned = false`* - `extraData = 0`** If the `tokenId` is burned:
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.3// 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// ERC721A Contracts v4.2.3// Creator: Chiru Labspragma solidity ^0.8.4;import '../IERC721A.sol';/*** @dev Interface of ERC721AQueryable.*/interface IERC721AQueryable is IERC721A {/*** Invalid query range (`start` >= `stop`).*/error InvalidQueryRange();/*** @dev Returns the `TokenOwnership` struct at `tokenId` without reverting.** If the `tokenId` is out of bounds:** - `addr = address(0)`* - `startTimestamp = 0`* - `burned = false`* - `extraData = 0`
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// ERC721A Contracts v4.2.3// 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();/*** Cannot query the balance for the zero address.*/error BalanceQueryForZeroAddress();/**
123456789101112131415161718{"optimizer": {"enabled": true,"runs": 1000},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"InvalidQueryRange","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":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"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"calculateTrainingPointsToClaim","outputs":[{"internalType":"uint256","name":"points","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_strength","type":"uint256"},{"internalType":"uint256","name":"_stamina","type":"uint256"},{"internalType":"uint256","name":"_agility","type":"uint256"},{"internalType":"uint256","name":"_iq","type":"uint256"},{"internalType":"uint256","name":"_trainingPoints","type":"uint256"}],"name":"changeFriend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"claimTrainingPoints","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"explicitOwnershipOf","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint64","name":"startTimestamp","type":"uint64"},{"internalType":"bool","name":"burned","type":"bool"},{"internalType":"uint24","name":"extraData","type":"uint24"}],"internalType":"struct IERC721A.TokenOwnership","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"explicitOwnershipsOf","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint64","name":"startTimestamp","type":"uint64"},{"internalType":"bool","name":"burned","type":"bool"},{"internalType":"uint24","name":"extraData","type":"uint24"}],"internalType":"struct IERC721A.TokenOwnership[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"friends","outputs":[{"internalType":"uint256","name":"trainingPoints","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"stamina","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"iq","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"friendsTraining","outputs":[{"internalType":"uint256","name":"startTime","type":"uint256"}],"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":"uint256","name":"_tokenId","type":"uint256"}],"name":"getFriendByTokenId","outputs":[{"components":[{"internalType":"uint256","name":"trainingPoints","type":"uint256"},{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"stamina","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"iq","type":"uint256"}],"internalType":"struct MAMF.Friend","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getTrainingByTokenId","outputs":[{"components":[{"internalType":"uint256","name":"startTime","type":"uint256"}],"internalType":"struct MAMF.Training","name":"","type":"tuple"}],"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":[],"name":"maxMintAmountPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWhitelistMintAmountPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mintedByOwner","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"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":[],"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":"payable","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":"payable","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":"a","type":"string"}],"name":"setBaseMetadataUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cost","type":"uint256"}],"name":"setCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxMintAmountPerTx","type":"uint256"}],"name":"setMaxMintAmountPerTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxPerWallet","type":"uint256"}],"name":"setMaxPerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxSupply","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_merkleRoot","type":"bytes32"}],"name":"setMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWhitelistMintAmountPerTx","type":"uint256"}],"name":"setMxWhitelistMintAmountPerTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_uriSuffix","type":"string"}],"name":"setUriSuffix","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"setWhitelistMintEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_strength","type":"uint256"},{"internalType":"uint256","name":"_stamina","type":"uint256"},{"internalType":"uint256","name":"_agility","type":"uint256"},{"internalType":"uint256","name":"_iq","type":"uint256"}],"name":"spendTrainingPoints","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"startTrainingFriend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"stopAndClaimTrainingFriend","outputs":[],"stateMutability":"nonpayable","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":"_teamAmount","type":"uint256"}],"name":"teamMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"stop","type":"uint256"}],"name":"tokensOfOwnerIn","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":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uriSuffix","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintAmount","type":"uint256"},{"internalType":"bytes32[]","name":"_merkleProof","type":"bytes32[]"}],"name":"whitelistMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistMintEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
661772aa3f848000600e55611388600f55600560108190556001601181905560646012556013805461ffff1916909117905560c0604052608090815264173539b7b760d91b60a052601490620000569082620001e0565b503480156200006457600080fd5b506040518060400160405280601081526020016f1351481053910813564811949251539160821b8152506040518060400160405280600481526020016326a0a6a360e11b8152508160029081620000bc9190620001e0565b506003620000cb8282620001e0565b5050600160005550620000de33620000e9565b6001600955620002ac565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200016657607f821691505b6020821081036200018757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001db57600081815260208120601f850160051c81016020861015620001b65750805b601f850160051c820191505b81811015620001d757828155600101620001c2565b5050505b505050565b81516001600160401b03811115620001fc57620001fc6200013b565b62000214816200020d845462000151565b846200018d565b602080601f8311600181146200024c5760008415620002335750858301515b600019600386901b1c1916600185901b178555620001d7565b600085815260208120601f198616915b828110156200027d578886015182559484019460019091019084016200025c565b50858210156200029c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6134a180620002bc6000396000f3fe60806040526004361061036a5760003560e01c80637cb64759116101c6578063c23dc68f116100f7578063d9ba28c811610095578063e268e4d31161006f578063e268e4d314610a91578063e985e9c514610ab1578063f2fde38b14610afa578063f918845e14610b1a57600080fd5b8063d9ba28c814610a21578063db4bec4414610a41578063dcf1b12514610a7157600080fd5b8063ce146828116100d1578063ce14682814610959578063d2cab056146109cb578063d4bd22ea146109eb578063d5abeb0114610a0b57600080fd5b8063c23dc68f146108ec578063c73ed16414610919578063c87b56dd1461093957600080fd5b806395d89b4111610164578063a22cb4651161013e578063a22cb46514610879578063b071401b14610899578063b767a098146108b9578063b88d4fde146108d957600080fd5b806395d89b411461083157806399a2557a14610846578063a0712d681461086657600080fd5b80638da5cb5b116101a05780638da5cb5b1461077b5780638e48ece41461079957806393abd4d5146107b957806394354fd01461081b57600080fd5b80637cb647591461070e5780638462151c1461072e57806387503e191461075b57600080fd5b80632fbba115116102a05780635c975abb1161023e5780636caede3d116102185780636caede3d1461069a5780636f8b44b0146106b957806370a08231146106d9578063715018a6146106f957600080fd5b80635c975abb146106335780635f50664d1461064d5780636352211e1461067a57600080fd5b806344a0d68a1161027a57806344a0d68a146105bb578063453c2310146105db5780635503a0e8146105f15780635bbb21771461060657600080fd5b80632fbba115146105735780633ccfd60b1461059357806342842e0e146105a857600080fd5b806316c38b3c1161030d5780631cb7b757116102e75780631cb7b757146104e15780632116e3941461053457806323b872dd1461054a5780632eb4a7ab1461055d57600080fd5b806316c38b3c1461047757806318160ddd146104975780631a71b1d5146104b457600080fd5b8063081812fc11610349578063081812fc146103e8578063095ea7b31461042057806313faede61461043357806316ba10e01461045757600080fd5b8062d71cf81461036f57806301ffc9a71461039157806306fdde03146103c6575b600080fd5b34801561037b57600080fd5b5061038f61038a366004612c54565b610b3a565b005b34801561039d57600080fd5b506103b16103ac366004612cb3565b610b52565b60405190151581526020015b60405180910390f35b3480156103d257600080fd5b506103db610bef565b6040516103bd9190612d20565b3480156103f457600080fd5b50610408610403366004612d33565b610c81565b6040516001600160a01b0390911681526020016103bd565b61038f61042e366004612d68565b610cde565b34801561043f57600080fd5b50610449600e5481565b6040519081526020016103bd565b34801561046357600080fd5b5061038f610472366004612c54565b610da4565b34801561048357600080fd5b5061038f610492366004612da2565b610db8565b3480156104a357600080fd5b506001546000540360001901610449565b3480156104c057600080fd5b506104496104cf366004612dbd565b600c6020526000908152604090205481565b3480156104ed57600080fd5b506105256104fc366004612d33565b604080516020808201835260009182905292815260168352819020815192830190915254815290565b604051905181526020016103bd565b34801561054057600080fd5b5061044960115481565b61038f610558366004612dd8565b610dd3565b34801561056957600080fd5b50610449600a5481565b34801561057f57600080fd5b5061038f61058e366004612d33565b610dff565b34801561059f57600080fd5b5061038f610e83565b61038f6105b6366004612dd8565b610f5b565b3480156105c757600080fd5b5061038f6105d6366004612d33565b610f7b565b3480156105e757600080fd5b5061044960125481565b3480156105fd57600080fd5b506103db610f88565b34801561061257600080fd5b50610626610621366004612e60565b611016565b6040516103bd9190612ea2565b34801561063f57600080fd5b506013546103b19060ff1681565b34801561065957600080fd5b50610449610668366004612d33565b60166020526000908152604090205481565b34801561068657600080fd5b50610408610695366004612d33565b6110e2565b3480156106a657600080fd5b506013546103b190610100900460ff1681565b3480156106c557600080fd5b5061038f6106d4366004612d33565b6110ed565b3480156106e557600080fd5b506104496106f4366004612dbd565b6110fa565b34801561070557600080fd5b5061038f611162565b34801561071a57600080fd5b5061038f610729366004612d33565b611176565b34801561073a57600080fd5b5061074e610749366004612dbd565b611183565b6040516103bd9190612f1f565b34801561076757600080fd5b5061038f610776366004612d33565b611287565b34801561078757600080fd5b506008546001600160a01b0316610408565b3480156107a557600080fd5b5061038f6107b4366004612d33565b611294565b3480156107c557600080fd5b506107d96107d4366004612d33565b611307565b6040516103bd9190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b34801561082757600080fd5b5061044960105481565b34801561083d57600080fd5b506103db611388565b34801561085257600080fd5b5061074e610861366004612f57565b611397565b61038f610874366004612d33565b611538565b34801561088557600080fd5b5061038f610894366004612f8a565b6116f9565b3480156108a557600080fd5b5061038f6108b4366004612d33565b611765565b3480156108c557600080fd5b5061038f6108d4366004612da2565b611772565b61038f6108e7366004612fbd565b611794565b3480156108f857600080fd5b5061090c610907366004612d33565b6117de565b6040516103bd9190613039565b34801561092557600080fd5b5061038f61093436600461307e565b611866565b34801561094557600080fd5b506103db610954366004612d33565b61189d565b34801561096557600080fd5b506109a3610974366004612d33565b601560205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a0016103bd565b3480156109d757600080fd5b5061038f6109e63660046130c1565b611978565b3480156109f757600080fd5b50610449610a06366004612d33565b611c12565b348015610a1757600080fd5b50610449600f5481565b348015610a2d57600080fd5b5061038f610a3c36600461310d565b611c5a565b348015610a4d57600080fd5b506103b1610a5c366004612dbd565b600b6020526000908152604090205460ff1681565b348015610a7d57600080fd5b5061038f610a8c366004612d33565b611fe0565b348015610a9d57600080fd5b5061038f610aac366004612d33565b612055565b348015610abd57600080fd5b506103b1610acc366004613148565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b348015610b0657600080fd5b5061038f610b15366004612dbd565b612062565b348015610b2657600080fd5b5061038f610b35366004612d33565b6120ef565b610b4261216b565b600d610b4e82826131f2565b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b031983161480610bb557507f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b80610be957507f5b5e139f000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b606060028054610bfe90613172565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2a90613172565b8015610c775780601f10610c4c57610100808354040283529160200191610c77565b820191906000526020600020905b815481529060010190602001808311610c5a57829003601f168201915b5050505050905090565b6000610c8c826121c5565b610cc2576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b6000610ce9826110e2565b9050336001600160a01b03821614610d3b57610d058133610acc565b610d3b576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260066020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b610dac61216b565b6014610b4e82826131f2565b610dc061216b565b6013805460ff1916911515919091179055565b610dde8383836121fa565b60408051602080820183526000808352938452601690529120905190555050565b610e0761216b565b600f546001546000548391900360001901610e2291906132c8565b1115610e755760405162461bcd60e51b815260206004820152601460248201527f4d617820737570706c792065786365656465642100000000000000000000000060448201526064015b60405180910390fd5b610e808160016123df565b50565b610e8b61216b565b600260095403610edd5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610e6c565b60026009556000610ef66008546001600160a01b031690565b6001600160a01b03164760405160006040518083038185875af1925050503d8060008114610f40576040519150601f19603f3d011682016040523d82523d6000602084013e610f45565b606091505b5050905080610f5357600080fd5b506001600955565b610f7683838360405180602001604052806000815250611794565b505050565b610f8361216b565b600e55565b60148054610f9590613172565b80601f0160208091040260200160405190810160405280929190818152602001828054610fc190613172565b801561100e5780601f10610fe35761010080835404028352916020019161100e565b820191906000526020600020905b815481529060010190602001808311610ff157829003601f168201915b505050505081565b60608160008167ffffffffffffffff81111561103457611034612bc8565b60405190808252806020026020018201604052801561108657816020015b6040805160808101825260008082526020808301829052928201819052606082015282526000199092019101816110525790505b50905060005b8281146110d9576110b48686838181106110a8576110a86132db565b905060200201356117de565b8282815181106110c6576110c66132db565b602090810291909101015260010161108c565b50949350505050565b6000610be982612530565b6110f561216b565b600f55565b60006001600160a01b03821661113c576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b61116a61216b565b61117460006125b8565b565b61117e61216b565b600a55565b60606000806000611193856110fa565b905060008167ffffffffffffffff8111156111b0576111b0612bc8565b6040519080825280602002602001820160405280156111d9578160200160208202803683370190505b5060408051608081018252600080825260208201819052918101829052606081019190915290915060015b83861461127b5761121481612617565b915081604001516112735781516001600160a01b03161561123457815194505b876001600160a01b0316856001600160a01b0316036112735780838780600101985081518110611266576112666132db565b6020026020010181815250505b600101611204565b50909695505050505050565b61128f61216b565b601155565b803361129f826110e2565b6001600160a01b0316146112f55760405162461bcd60e51b815260206004820152601b60248201527f596f7520646f206e6f74206f776e207468697320667269656e642e00000000006044820152606401610e6c565b6112fe82612696565b610b4e82611fe0565b6113396040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b50600090815260156020908152604091829020825160a0810184528154815260018201549281019290925260028101549282019290925260038201546060820152600490910154608082015290565b606060038054610bfe90613172565b60608183106113d2576040517f32c1995a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806113de60005490565b905060018510156113ee57600194505b808411156113fa578093505b6000611405876110fa565b905084861015611424578585038181101561141e578091505b50611428565b5060005b60008167ffffffffffffffff81111561144357611443612bc8565b60405190808252806020026020018201604052801561146c578160200160208202803683370190505b5090508160000361148257935061153192505050565b600061148d886117de565b90506000816040015161149e575080515b885b8881141580156114b05750848714155b15611525576114be81612617565b9250826040015161151d5782516001600160a01b0316156114de57825191505b8a6001600160a01b0316826001600160a01b03160361151d5780848880600101995081518110611510576115106132db565b6020026020010181815250505b6001016114a0565b50505092835250909150505b9392505050565b80601254600c60006115473390565b6001600160a01b0316815260208101919091526040016000205461156b90836132c8565b111561157657600080fd5b60008111801561158857506010548111155b6115d45760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964206d696e7420616d6f756e74210000000000000000000000006044820152606401610e6c565b600f5460015460005483919003600019016115ef91906132c8565b111561163d5760405162461bcd60e51b815260206004820152601460248201527f4d617820737570706c79206578636565646564210000000000000000000000006044820152606401610e6c565b8180600e5461164c91906132f1565b34101561169b5760405162461bcd60e51b815260206004820152601360248201527f496e73756666696369656e742066756e647321000000000000000000000000006044820152606401610e6c565b60135460ff16156116ee5760405162461bcd60e51b815260206004820152601760248201527f54686520636f6e747261637420697320706175736564210000000000000000006044820152606401610e6c565b610f768360006123df565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61176d61216b565b601055565b61177a61216b565b601380549115156101000261ff0019909216919091179055565b61179f848484610dd3565b6001600160a01b0383163b156117d8576117bb848484846126c5565b6117d8576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b604080516080810182526000808252602082018190529181018290526060810191909152604080516080810182526000808252602082018190529181018290526060810191909152600183108061183757506000548310155b156118425792915050565b61184b83612617565b905080604001511561185d5792915050565b611531836127b1565b61186e61216b565b600095865260156020526040909520948555600185019390935560028401919091556003830155600490910155565b60606118a8826121c5565b61191a5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610e6c565b6000611924612829565b905060008151116119445760405180602001604052806000815250611531565b8061194e84612838565b601460405160200161196293929190613308565b6040516020818303038152906040529392505050565b8260008111801561198b57506011548111155b6119d75760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964206d696e7420616d6f756e74210000000000000000000000006044820152606401610e6c565b600f5460015460005483919003600019016119f291906132c8565b1115611a405760405162461bcd60e51b815260206004820152601460248201527f4d617820737570706c79206578636565646564210000000000000000000000006044820152606401610e6c565b601354610100900460ff16611abd5760405162461bcd60e51b815260206004820152602260248201527f5468652077686974656c6973742073616c65206973206e6f7420656e61626c6560448201527f64210000000000000000000000000000000000000000000000000000000000006064820152608401610e6c565b336000908152600b602052604090205460ff1615611b1d5760405162461bcd60e51b815260206004820152601860248201527f4164647265737320616c726561647920636c61696d65642100000000000000006044820152606401610e6c565b6040516bffffffffffffffffffffffff193360601b166020820152600090603401604051602081830303815290604052805190602001209050611b9784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050600a54915084905061296d565b611be35760405162461bcd60e51b815260206004820152600e60248201527f496e76616c69642070726f6f66210000000000000000000000000000000000006044820152606401610e6c565b336000908152600b60205260409020805460ff19166001908117909155611c0b9086906123df565b5050505050565b6000818152601660205260408120548103611c2f57506000919050565b600082815260166020526040902054610be990603c90611c5490829082904290612983565b9061298f565b8433611c65826110e2565b6001600160a01b031614611cbb5760405162461bcd60e51b815260206004820152601b60248201527f596f7520646f206e6f74206f776e207468697320667269656e642e00000000006044820152606401610e6c565b60008284611cc987896132c8565b611cd391906132c8565b611cdd91906132c8565b600088815260156020526040902054909150811115611d645760405162461bcd60e51b815260206004820152602760248201527f596f7520646f206e6f74206861766520656e6f75676820747261696e696e672060448201527f706f696e74732e000000000000000000000000000000000000000000000000006064820152608401610e6c565b600087815260156020526040902060010154606490611d849088906132c8565b1115611dd25760405162461bcd60e51b815260206004820181905260248201527f596f752063616e206e6f74206578636565642031303020737472656e6774682e6044820152606401610e6c565b600087815260156020526040902060020154606490611df29087906132c8565b1115611e405760405162461bcd60e51b815260206004820152601f60248201527f596f752063616e206e6f742065786365656420313030207374616d696e612e006044820152606401610e6c565b600087815260156020526040902060030154606490611e609086906132c8565b1115611eae5760405162461bcd60e51b815260206004820152601f60248201527f596f752063616e206e6f742065786365656420313030206167696c6974792e006044820152606401610e6c565b600087815260156020526040902060040154606490611ece9085906132c8565b1115611f1c5760405162461bcd60e51b815260206004820152601a60248201527f596f752063616e206e6f7420657863656564203130302069712e0000000000006044820152606401610e6c565b60008781526015602052604081206001018054889290611f3d9084906132c8565b909155505060008781526015602052604081206002018054879290611f639084906132c8565b909155505060008781526015602052604081206003018054869290611f899084906132c8565b909155505060008781526015602052604081206004018054859290611faf9084906132c8565b909155505060008781526015602052604081208054839290611fd29084906133a8565b909155505050505050505050565b8033611feb826110e2565b6001600160a01b0316146120415760405162461bcd60e51b815260206004820152601b60248201527f596f7520646f206e6f74206f776e207468697320667269656e642e00000000006044820152606401610e6c565b506000908152601660205260409020429055565b61205d61216b565b601255565b61206a61216b565b6001600160a01b0381166120e65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610e6c565b610e80816125b8565b80336120fa826110e2565b6001600160a01b0316146121505760405162461bcd60e51b815260206004820152601b60248201527f596f7520646f206e6f74206f776e207468697320667269656e642e00000000006044820152606401610e6c565b61215982612696565b50600090815260166020526040812055565b6008546001600160a01b031633146111745760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e6c565b6000816001111580156121d9575060005482105b8015610be9575050600090815260046020526040902054600160e01b161590565b600061220582612530565b9050836001600160a01b0316816001600160a01b031614612252576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b038816909114176122b8576122828633610acc565b6122b8576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0385166122f8576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801561230357600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003612395576001840160008181526004602052604081205490036123935760005481146123935760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b60008054600019016123f29060016132c8565b905060005b838110156125005760006109c4826124126000546000190190565b61241c91906132c8565b111561242957600561242c565b600a5b60ff169050831561243b5750600a5b6040518060a00160405280828152602001600081526020016000815260200160008152602001600081525060156000848661247691906132c8565b81526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040155905050604051806020016040528060008152506016600084866124d991906132c8565b815260208101919091526040016000209051905550806124f8816133bb565b9150506123f7565b50336000908152600c6020526040812080548592906125209084906132c8565b90915550610f769050338461299b565b60008180600111612586576000548110156125865760008181526004602052604081205490600160e01b82169003612584575b80600003611531575060001901600081815260046020526040902054612563565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600880546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516080810182526000808252602082018190529181018290526060810191909152600082815260046020526040902054610be990604080516080810182526001600160a01b038316815260a083901c67ffffffffffffffff166020820152600160e01b831615159181019190915260e89190911c606082015290565b61269f81611c12565b600082815260156020526040812080549091906126bd9084906132c8565b909155505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906126fa9033908990889088906004016133d4565b6020604051808303816000875af1925050508015612735575060408051601f3d908101601f1916820190925261273291810190613410565b60015b612793573d808015612763576040519150601f19603f3d011682016040523d82523d6000602084013e612768565b606091505b50805160000361278b576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b604080516080810182526000808252602082018190529181018290526060810191909152610be96127e183612530565b604080516080810182526001600160a01b038316815260a083901c67ffffffffffffffff166020820152600160e01b831615159181019190915260e89190911c606082015290565b6060600d8054610bfe90613172565b60608160000361287b57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156128a5578061288f816133bb565b915061289e9050600a83613443565b915061287f565b60008167ffffffffffffffff8111156128c0576128c0612bc8565b6040519080825280601f01601f1916602001820160405280156128ea576020820181803683370190505b5090505b84156127a9576128ff6001836133a8565b915061290c600a86613457565b6129179060306132c8565b60f81b81838151811061292c5761292c6132db565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612966600a86613443565b94506128ee565b60008261297a85846129b5565b14949350505050565b600061153182846133a8565b60006115318284613443565b610b4e828260405180602001604052806000815250612a02565b600081815b84518110156129fa576129e6828683815181106129d9576129d96132db565b6020026020010151612a68565b9150806129f2816133bb565b9150506129ba565b509392505050565b612a0c8383612a97565b6001600160a01b0383163b15610f76576000548281035b612a3660008683806001019450866126c5565b612a53576040516368d2bf6b60e11b815260040160405180910390fd5b818110612a23578160005414611c0b57600080fd5b6000818310612a84576000828152602084905260409020611531565b6000838152602083905260409020611531565b6000805490829003612ad5576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b818114612b8457808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101612b4c565b5081600003612bbf576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115612bf957612bf9612bc8565b604051601f8501601f19908116603f01168101908282118183101715612c2157612c21612bc8565b81604052809350858152868686011115612c3a57600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215612c6657600080fd5b813567ffffffffffffffff811115612c7d57600080fd5b8201601f81018413612c8e57600080fd5b6127a984823560208401612bde565b6001600160e01b031981168114610e8057600080fd5b600060208284031215612cc557600080fd5b813561153181612c9d565b60005b83811015612ceb578181015183820152602001612cd3565b50506000910152565b60008151808452612d0c816020860160208601612cd0565b601f01601f19169290920160200192915050565b6020815260006115316020830184612cf4565b600060208284031215612d4557600080fd5b5035919050565b80356001600160a01b0381168114612d6357600080fd5b919050565b60008060408385031215612d7b57600080fd5b612d8483612d4c565b946020939093013593505050565b80358015158114612d6357600080fd5b600060208284031215612db457600080fd5b61153182612d92565b600060208284031215612dcf57600080fd5b61153182612d4c565b600080600060608486031215612ded57600080fd5b612df684612d4c565b9250612e0460208501612d4c565b9150604084013590509250925092565b60008083601f840112612e2657600080fd5b50813567ffffffffffffffff811115612e3e57600080fd5b6020830191508360208260051b8501011115612e5957600080fd5b9250929050565b60008060208385031215612e7357600080fd5b823567ffffffffffffffff811115612e8a57600080fd5b612e9685828601612e14565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b8181101561127b57612f0c8385516001600160a01b03815116825267ffffffffffffffff602082015116602083015260408101511515604083015262ffffff60608201511660608301525050565b9284019260809290920191600101612ebe565b6020808252825182820181905260009190848201906040850190845b8181101561127b57835183529284019291840191600101612f3b565b600080600060608486031215612f6c57600080fd5b612f7584612d4c565b95602085013595506040909401359392505050565b60008060408385031215612f9d57600080fd5b612fa683612d4c565b9150612fb460208401612d92565b90509250929050565b60008060008060808587031215612fd357600080fd5b612fdc85612d4c565b9350612fea60208601612d4c565b925060408501359150606085013567ffffffffffffffff81111561300d57600080fd5b8501601f8101871361301e57600080fd5b61302d87823560208401612bde565b91505092959194509250565b81516001600160a01b0316815260208083015167ffffffffffffffff169082015260408083015115159082015260608083015162ffffff169082015260808101610be9565b60008060008060008060c0878903121561309757600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806000604084860312156130d657600080fd5b83359250602084013567ffffffffffffffff8111156130f457600080fd5b61310086828701612e14565b9497909650939450505050565b600080600080600060a0868803121561312557600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000806040838503121561315b57600080fd5b61316483612d4c565b9150612fb460208401612d4c565b600181811c9082168061318657607f821691505b6020821081036131a657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7657600081815260208120601f850160051c810160208610156131d35750805b601f850160051c820191505b818110156123d7578281556001016131df565b815167ffffffffffffffff81111561320c5761320c612bc8565b6132208161321a8454613172565b846131ac565b602080601f831160018114613255576000841561323d5750858301515b600019600386901b1c1916600185901b1785556123d7565b600085815260208120601f198616915b8281101561328457888601518255948401946001909101908401613265565b50858210156132a25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b80820180821115610be957610be96132b2565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610be957610be96132b2565b60008451602061331b8285838a01612cd0565b85519184019161332e8184848a01612cd0565b855492019160009061333f81613172565b60018281168015613357576001811461336c57613398565b60ff1984168752821515830287019450613398565b896000528560002060005b8481101561339057815489820152908301908701613377565b505082870194505b50929a9950505050505050505050565b81810381811115610be957610be96132b2565b6000600182016133cd576133cd6132b2565b5060010190565b60006001600160a01b038087168352808616602084015250836040830152608060608301526134066080830184612cf4565b9695505050505050565b60006020828403121561342257600080fd5b815161153181612c9d565b634e487b7160e01b600052601260045260246000fd5b6000826134525761345261342d565b500490565b6000826134665761346661342d565b50069056fea264697066735822122015c7f24d0a6e0bf66c757d1143f77fb727ccdfffff01f82c4abc2ff55ca447c264736f6c63430008110033
Deployed Bytecode
0x60806040526004361061036a5760003560e01c80637cb64759116101c6578063c23dc68f116100f7578063d9ba28c811610095578063e268e4d31161006f578063e268e4d314610a91578063e985e9c514610ab1578063f2fde38b14610afa578063f918845e14610b1a57600080fd5b8063d9ba28c814610a21578063db4bec4414610a41578063dcf1b12514610a7157600080fd5b8063ce146828116100d1578063ce14682814610959578063d2cab056146109cb578063d4bd22ea146109eb578063d5abeb0114610a0b57600080fd5b8063c23dc68f146108ec578063c73ed16414610919578063c87b56dd1461093957600080fd5b806395d89b4111610164578063a22cb4651161013e578063a22cb46514610879578063b071401b14610899578063b767a098146108b9578063b88d4fde146108d957600080fd5b806395d89b411461083157806399a2557a14610846578063a0712d681461086657600080fd5b80638da5cb5b116101a05780638da5cb5b1461077b5780638e48ece41461079957806393abd4d5146107b957806394354fd01461081b57600080fd5b80637cb647591461070e5780638462151c1461072e57806387503e191461075b57600080fd5b80632fbba115116102a05780635c975abb1161023e5780636caede3d116102185780636caede3d1461069a5780636f8b44b0146106b957806370a08231146106d9578063715018a6146106f957600080fd5b80635c975abb146106335780635f50664d1461064d5780636352211e1461067a57600080fd5b806344a0d68a1161027a57806344a0d68a146105bb578063453c2310146105db5780635503a0e8146105f15780635bbb21771461060657600080fd5b80632fbba115146105735780633ccfd60b1461059357806342842e0e146105a857600080fd5b806316c38b3c1161030d5780631cb7b757116102e75780631cb7b757146104e15780632116e3941461053457806323b872dd1461054a5780632eb4a7ab1461055d57600080fd5b806316c38b3c1461047757806318160ddd146104975780631a71b1d5146104b457600080fd5b8063081812fc11610349578063081812fc146103e8578063095ea7b31461042057806313faede61461043357806316ba10e01461045757600080fd5b8062d71cf81461036f57806301ffc9a71461039157806306fdde03146103c6575b600080fd5b34801561037b57600080fd5b5061038f61038a366004612c54565b610b3a565b005b34801561039d57600080fd5b506103b16103ac366004612cb3565b610b52565b60405190151581526020015b60405180910390f35b3480156103d257600080fd5b506103db610bef565b6040516103bd9190612d20565b3480156103f457600080fd5b50610408610403366004612d33565b610c81565b6040516001600160a01b0390911681526020016103bd565b61038f61042e366004612d68565b610cde565b34801561043f57600080fd5b50610449600e5481565b6040519081526020016103bd565b34801561046357600080fd5b5061038f610472366004612c54565b610da4565b34801561048357600080fd5b5061038f610492366004612da2565b610db8565b3480156104a357600080fd5b506001546000540360001901610449565b3480156104c057600080fd5b506104496104cf366004612dbd565b600c6020526000908152604090205481565b3480156104ed57600080fd5b506105256104fc366004612d33565b604080516020808201835260009182905292815260168352819020815192830190915254815290565b604051905181526020016103bd565b34801561054057600080fd5b5061044960115481565b61038f610558366004612dd8565b610dd3565b34801561056957600080fd5b50610449600a5481565b34801561057f57600080fd5b5061038f61058e366004612d33565b610dff565b34801561059f57600080fd5b5061038f610e83565b61038f6105b6366004612dd8565b610f5b565b3480156105c757600080fd5b5061038f6105d6366004612d33565b610f7b565b3480156105e757600080fd5b5061044960125481565b3480156105fd57600080fd5b506103db610f88565b34801561061257600080fd5b50610626610621366004612e60565b611016565b6040516103bd9190612ea2565b34801561063f57600080fd5b506013546103b19060ff1681565b34801561065957600080fd5b50610449610668366004612d33565b60166020526000908152604090205481565b34801561068657600080fd5b50610408610695366004612d33565b6110e2565b3480156106a657600080fd5b506013546103b190610100900460ff1681565b3480156106c557600080fd5b5061038f6106d4366004612d33565b6110ed565b3480156106e557600080fd5b506104496106f4366004612dbd565b6110fa565b34801561070557600080fd5b5061038f611162565b34801561071a57600080fd5b5061038f610729366004612d33565b611176565b34801561073a57600080fd5b5061074e610749366004612dbd565b611183565b6040516103bd9190612f1f565b34801561076757600080fd5b5061038f610776366004612d33565b611287565b34801561078757600080fd5b506008546001600160a01b0316610408565b3480156107a557600080fd5b5061038f6107b4366004612d33565b611294565b3480156107c557600080fd5b506107d96107d4366004612d33565b611307565b6040516103bd9190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b34801561082757600080fd5b5061044960105481565b34801561083d57600080fd5b506103db611388565b34801561085257600080fd5b5061074e610861366004612f57565b611397565b61038f610874366004612d33565b611538565b34801561088557600080fd5b5061038f610894366004612f8a565b6116f9565b3480156108a557600080fd5b5061038f6108b4366004612d33565b611765565b3480156108c557600080fd5b5061038f6108d4366004612da2565b611772565b61038f6108e7366004612fbd565b611794565b3480156108f857600080fd5b5061090c610907366004612d33565b6117de565b6040516103bd9190613039565b34801561092557600080fd5b5061038f61093436600461307e565b611866565b34801561094557600080fd5b506103db610954366004612d33565b61189d565b34801561096557600080fd5b506109a3610974366004612d33565b601560205260009081526040902080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a0016103bd565b3480156109d757600080fd5b5061038f6109e63660046130c1565b611978565b3480156109f757600080fd5b50610449610a06366004612d33565b611c12565b348015610a1757600080fd5b50610449600f5481565b348015610a2d57600080fd5b5061038f610a3c36600461310d565b611c5a565b348015610a4d57600080fd5b506103b1610a5c366004612dbd565b600b6020526000908152604090205460ff1681565b348015610a7d57600080fd5b5061038f610a8c366004612d33565b611fe0565b348015610a9d57600080fd5b5061038f610aac366004612d33565b612055565b348015610abd57600080fd5b506103b1610acc366004613148565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b348015610b0657600080fd5b5061038f610b15366004612dbd565b612062565b348015610b2657600080fd5b5061038f610b35366004612d33565b6120ef565b610b4261216b565b600d610b4e82826131f2565b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b031983161480610bb557507f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b80610be957507f5b5e139f000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b606060028054610bfe90613172565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2a90613172565b8015610c775780601f10610c4c57610100808354040283529160200191610c77565b820191906000526020600020905b815481529060010190602001808311610c5a57829003601f168201915b5050505050905090565b6000610c8c826121c5565b610cc2576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b6000610ce9826110e2565b9050336001600160a01b03821614610d3b57610d058133610acc565b610d3b576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260066020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b610dac61216b565b6014610b4e82826131f2565b610dc061216b565b6013805460ff1916911515919091179055565b610dde8383836121fa565b60408051602080820183526000808352938452601690529120905190555050565b610e0761216b565b600f546001546000548391900360001901610e2291906132c8565b1115610e755760405162461bcd60e51b815260206004820152601460248201527f4d617820737570706c792065786365656465642100000000000000000000000060448201526064015b60405180910390fd5b610e808160016123df565b50565b610e8b61216b565b600260095403610edd5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610e6c565b60026009556000610ef66008546001600160a01b031690565b6001600160a01b03164760405160006040518083038185875af1925050503d8060008114610f40576040519150601f19603f3d011682016040523d82523d6000602084013e610f45565b606091505b5050905080610f5357600080fd5b506001600955565b610f7683838360405180602001604052806000815250611794565b505050565b610f8361216b565b600e55565b60148054610f9590613172565b80601f0160208091040260200160405190810160405280929190818152602001828054610fc190613172565b801561100e5780601f10610fe35761010080835404028352916020019161100e565b820191906000526020600020905b815481529060010190602001808311610ff157829003601f168201915b505050505081565b60608160008167ffffffffffffffff81111561103457611034612bc8565b60405190808252806020026020018201604052801561108657816020015b6040805160808101825260008082526020808301829052928201819052606082015282526000199092019101816110525790505b50905060005b8281146110d9576110b48686838181106110a8576110a86132db565b905060200201356117de565b8282815181106110c6576110c66132db565b602090810291909101015260010161108c565b50949350505050565b6000610be982612530565b6110f561216b565b600f55565b60006001600160a01b03821661113c576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b61116a61216b565b61117460006125b8565b565b61117e61216b565b600a55565b60606000806000611193856110fa565b905060008167ffffffffffffffff8111156111b0576111b0612bc8565b6040519080825280602002602001820160405280156111d9578160200160208202803683370190505b5060408051608081018252600080825260208201819052918101829052606081019190915290915060015b83861461127b5761121481612617565b915081604001516112735781516001600160a01b03161561123457815194505b876001600160a01b0316856001600160a01b0316036112735780838780600101985081518110611266576112666132db565b6020026020010181815250505b600101611204565b50909695505050505050565b61128f61216b565b601155565b803361129f826110e2565b6001600160a01b0316146112f55760405162461bcd60e51b815260206004820152601b60248201527f596f7520646f206e6f74206f776e207468697320667269656e642e00000000006044820152606401610e6c565b6112fe82612696565b610b4e82611fe0565b6113396040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b50600090815260156020908152604091829020825160a0810184528154815260018201549281019290925260028101549282019290925260038201546060820152600490910154608082015290565b606060038054610bfe90613172565b60608183106113d2576040517f32c1995a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806113de60005490565b905060018510156113ee57600194505b808411156113fa578093505b6000611405876110fa565b905084861015611424578585038181101561141e578091505b50611428565b5060005b60008167ffffffffffffffff81111561144357611443612bc8565b60405190808252806020026020018201604052801561146c578160200160208202803683370190505b5090508160000361148257935061153192505050565b600061148d886117de565b90506000816040015161149e575080515b885b8881141580156114b05750848714155b15611525576114be81612617565b9250826040015161151d5782516001600160a01b0316156114de57825191505b8a6001600160a01b0316826001600160a01b03160361151d5780848880600101995081518110611510576115106132db565b6020026020010181815250505b6001016114a0565b50505092835250909150505b9392505050565b80601254600c60006115473390565b6001600160a01b0316815260208101919091526040016000205461156b90836132c8565b111561157657600080fd5b60008111801561158857506010548111155b6115d45760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964206d696e7420616d6f756e74210000000000000000000000006044820152606401610e6c565b600f5460015460005483919003600019016115ef91906132c8565b111561163d5760405162461bcd60e51b815260206004820152601460248201527f4d617820737570706c79206578636565646564210000000000000000000000006044820152606401610e6c565b8180600e5461164c91906132f1565b34101561169b5760405162461bcd60e51b815260206004820152601360248201527f496e73756666696369656e742066756e647321000000000000000000000000006044820152606401610e6c565b60135460ff16156116ee5760405162461bcd60e51b815260206004820152601760248201527f54686520636f6e747261637420697320706175736564210000000000000000006044820152606401610e6c565b610f768360006123df565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61176d61216b565b601055565b61177a61216b565b601380549115156101000261ff0019909216919091179055565b61179f848484610dd3565b6001600160a01b0383163b156117d8576117bb848484846126c5565b6117d8576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b604080516080810182526000808252602082018190529181018290526060810191909152604080516080810182526000808252602082018190529181018290526060810191909152600183108061183757506000548310155b156118425792915050565b61184b83612617565b905080604001511561185d5792915050565b611531836127b1565b61186e61216b565b600095865260156020526040909520948555600185019390935560028401919091556003830155600490910155565b60606118a8826121c5565b61191a5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610e6c565b6000611924612829565b905060008151116119445760405180602001604052806000815250611531565b8061194e84612838565b601460405160200161196293929190613308565b6040516020818303038152906040529392505050565b8260008111801561198b57506011548111155b6119d75760405162461bcd60e51b815260206004820152601460248201527f496e76616c6964206d696e7420616d6f756e74210000000000000000000000006044820152606401610e6c565b600f5460015460005483919003600019016119f291906132c8565b1115611a405760405162461bcd60e51b815260206004820152601460248201527f4d617820737570706c79206578636565646564210000000000000000000000006044820152606401610e6c565b601354610100900460ff16611abd5760405162461bcd60e51b815260206004820152602260248201527f5468652077686974656c6973742073616c65206973206e6f7420656e61626c6560448201527f64210000000000000000000000000000000000000000000000000000000000006064820152608401610e6c565b336000908152600b602052604090205460ff1615611b1d5760405162461bcd60e51b815260206004820152601860248201527f4164647265737320616c726561647920636c61696d65642100000000000000006044820152606401610e6c565b6040516bffffffffffffffffffffffff193360601b166020820152600090603401604051602081830303815290604052805190602001209050611b9784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050600a54915084905061296d565b611be35760405162461bcd60e51b815260206004820152600e60248201527f496e76616c69642070726f6f66210000000000000000000000000000000000006044820152606401610e6c565b336000908152600b60205260409020805460ff19166001908117909155611c0b9086906123df565b5050505050565b6000818152601660205260408120548103611c2f57506000919050565b600082815260166020526040902054610be990603c90611c5490829082904290612983565b9061298f565b8433611c65826110e2565b6001600160a01b031614611cbb5760405162461bcd60e51b815260206004820152601b60248201527f596f7520646f206e6f74206f776e207468697320667269656e642e00000000006044820152606401610e6c565b60008284611cc987896132c8565b611cd391906132c8565b611cdd91906132c8565b600088815260156020526040902054909150811115611d645760405162461bcd60e51b815260206004820152602760248201527f596f7520646f206e6f74206861766520656e6f75676820747261696e696e672060448201527f706f696e74732e000000000000000000000000000000000000000000000000006064820152608401610e6c565b600087815260156020526040902060010154606490611d849088906132c8565b1115611dd25760405162461bcd60e51b815260206004820181905260248201527f596f752063616e206e6f74206578636565642031303020737472656e6774682e6044820152606401610e6c565b600087815260156020526040902060020154606490611df29087906132c8565b1115611e405760405162461bcd60e51b815260206004820152601f60248201527f596f752063616e206e6f742065786365656420313030207374616d696e612e006044820152606401610e6c565b600087815260156020526040902060030154606490611e609086906132c8565b1115611eae5760405162461bcd60e51b815260206004820152601f60248201527f596f752063616e206e6f742065786365656420313030206167696c6974792e006044820152606401610e6c565b600087815260156020526040902060040154606490611ece9085906132c8565b1115611f1c5760405162461bcd60e51b815260206004820152601a60248201527f596f752063616e206e6f7420657863656564203130302069712e0000000000006044820152606401610e6c565b60008781526015602052604081206001018054889290611f3d9084906132c8565b909155505060008781526015602052604081206002018054879290611f639084906132c8565b909155505060008781526015602052604081206003018054869290611f899084906132c8565b909155505060008781526015602052604081206004018054859290611faf9084906132c8565b909155505060008781526015602052604081208054839290611fd29084906133a8565b909155505050505050505050565b8033611feb826110e2565b6001600160a01b0316146120415760405162461bcd60e51b815260206004820152601b60248201527f596f7520646f206e6f74206f776e207468697320667269656e642e00000000006044820152606401610e6c565b506000908152601660205260409020429055565b61205d61216b565b601255565b61206a61216b565b6001600160a01b0381166120e65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610e6c565b610e80816125b8565b80336120fa826110e2565b6001600160a01b0316146121505760405162461bcd60e51b815260206004820152601b60248201527f596f7520646f206e6f74206f776e207468697320667269656e642e00000000006044820152606401610e6c565b61215982612696565b50600090815260166020526040812055565b6008546001600160a01b031633146111745760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e6c565b6000816001111580156121d9575060005482105b8015610be9575050600090815260046020526040902054600160e01b161590565b600061220582612530565b9050836001600160a01b0316816001600160a01b031614612252576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b038816909114176122b8576122828633610acc565b6122b8576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0385166122f8576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801561230357600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003612395576001840160008181526004602052604081205490036123935760005481146123935760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b60008054600019016123f29060016132c8565b905060005b838110156125005760006109c4826124126000546000190190565b61241c91906132c8565b111561242957600561242c565b600a5b60ff169050831561243b5750600a5b6040518060a00160405280828152602001600081526020016000815260200160008152602001600081525060156000848661247691906132c8565b81526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040155905050604051806020016040528060008152506016600084866124d991906132c8565b815260208101919091526040016000209051905550806124f8816133bb565b9150506123f7565b50336000908152600c6020526040812080548592906125209084906132c8565b90915550610f769050338461299b565b60008180600111612586576000548110156125865760008181526004602052604081205490600160e01b82169003612584575b80600003611531575060001901600081815260046020526040902054612563565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600880546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604080516080810182526000808252602082018190529181018290526060810191909152600082815260046020526040902054610be990604080516080810182526001600160a01b038316815260a083901c67ffffffffffffffff166020820152600160e01b831615159181019190915260e89190911c606082015290565b61269f81611c12565b600082815260156020526040812080549091906126bd9084906132c8565b909155505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906126fa9033908990889088906004016133d4565b6020604051808303816000875af1925050508015612735575060408051601f3d908101601f1916820190925261273291810190613410565b60015b612793573d808015612763576040519150601f19603f3d011682016040523d82523d6000602084013e612768565b606091505b50805160000361278b576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b604080516080810182526000808252602082018190529181018290526060810191909152610be96127e183612530565b604080516080810182526001600160a01b038316815260a083901c67ffffffffffffffff166020820152600160e01b831615159181019190915260e89190911c606082015290565b6060600d8054610bfe90613172565b60608160000361287b57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156128a5578061288f816133bb565b915061289e9050600a83613443565b915061287f565b60008167ffffffffffffffff8111156128c0576128c0612bc8565b6040519080825280601f01601f1916602001820160405280156128ea576020820181803683370190505b5090505b84156127a9576128ff6001836133a8565b915061290c600a86613457565b6129179060306132c8565b60f81b81838151811061292c5761292c6132db565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612966600a86613443565b94506128ee565b60008261297a85846129b5565b14949350505050565b600061153182846133a8565b60006115318284613443565b610b4e828260405180602001604052806000815250612a02565b600081815b84518110156129fa576129e6828683815181106129d9576129d96132db565b6020026020010151612a68565b9150806129f2816133bb565b9150506129ba565b509392505050565b612a0c8383612a97565b6001600160a01b0383163b15610f76576000548281035b612a3660008683806001019450866126c5565b612a53576040516368d2bf6b60e11b815260040160405180910390fd5b818110612a23578160005414611c0b57600080fd5b6000818310612a84576000828152602084905260409020611531565b6000838152602083905260409020611531565b6000805490829003612ad5576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b818114612b8457808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101612b4c565b5081600003612bbf576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115612bf957612bf9612bc8565b604051601f8501601f19908116603f01168101908282118183101715612c2157612c21612bc8565b81604052809350858152868686011115612c3a57600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215612c6657600080fd5b813567ffffffffffffffff811115612c7d57600080fd5b8201601f81018413612c8e57600080fd5b6127a984823560208401612bde565b6001600160e01b031981168114610e8057600080fd5b600060208284031215612cc557600080fd5b813561153181612c9d565b60005b83811015612ceb578181015183820152602001612cd3565b50506000910152565b60008151808452612d0c816020860160208601612cd0565b601f01601f19169290920160200192915050565b6020815260006115316020830184612cf4565b600060208284031215612d4557600080fd5b5035919050565b80356001600160a01b0381168114612d6357600080fd5b919050565b60008060408385031215612d7b57600080fd5b612d8483612d4c565b946020939093013593505050565b80358015158114612d6357600080fd5b600060208284031215612db457600080fd5b61153182612d92565b600060208284031215612dcf57600080fd5b61153182612d4c565b600080600060608486031215612ded57600080fd5b612df684612d4c565b9250612e0460208501612d4c565b9150604084013590509250925092565b60008083601f840112612e2657600080fd5b50813567ffffffffffffffff811115612e3e57600080fd5b6020830191508360208260051b8501011115612e5957600080fd5b9250929050565b60008060208385031215612e7357600080fd5b823567ffffffffffffffff811115612e8a57600080fd5b612e9685828601612e14565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b8181101561127b57612f0c8385516001600160a01b03815116825267ffffffffffffffff602082015116602083015260408101511515604083015262ffffff60608201511660608301525050565b9284019260809290920191600101612ebe565b6020808252825182820181905260009190848201906040850190845b8181101561127b57835183529284019291840191600101612f3b565b600080600060608486031215612f6c57600080fd5b612f7584612d4c565b95602085013595506040909401359392505050565b60008060408385031215612f9d57600080fd5b612fa683612d4c565b9150612fb460208401612d92565b90509250929050565b60008060008060808587031215612fd357600080fd5b612fdc85612d4c565b9350612fea60208601612d4c565b925060408501359150606085013567ffffffffffffffff81111561300d57600080fd5b8501601f8101871361301e57600080fd5b61302d87823560208401612bde565b91505092959194509250565b81516001600160a01b0316815260208083015167ffffffffffffffff169082015260408083015115159082015260608083015162ffffff169082015260808101610be9565b60008060008060008060c0878903121561309757600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000806000604084860312156130d657600080fd5b83359250602084013567ffffffffffffffff8111156130f457600080fd5b61310086828701612e14565b9497909650939450505050565b600080600080600060a0868803121561312557600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000806040838503121561315b57600080fd5b61316483612d4c565b9150612fb460208401612d4c565b600181811c9082168061318657607f821691505b6020821081036131a657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7657600081815260208120601f850160051c810160208610156131d35750805b601f850160051c820191505b818110156123d7578281556001016131df565b815167ffffffffffffffff81111561320c5761320c612bc8565b6132208161321a8454613172565b846131ac565b602080601f831160018114613255576000841561323d5750858301515b600019600386901b1c1916600185901b1785556123d7565b600085815260208120601f198616915b8281101561328457888601518255948401946001909101908401613265565b50858210156132a25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b80820180821115610be957610be96132b2565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610be957610be96132b2565b60008451602061331b8285838a01612cd0565b85519184019161332e8184848a01612cd0565b855492019160009061333f81613172565b60018281168015613357576001811461336c57613398565b60ff1984168752821515830287019450613398565b896000528560002060005b8481101561339057815489820152908301908701613377565b505082870194505b50929a9950505050505050505050565b81810381811115610be957610be96132b2565b6000600182016133cd576133cd6132b2565b5060010190565b60006001600160a01b038087168352808616602084015250836040830152608060608301526134066080830184612cf4565b9695505050505050565b60006020828403121561342257600080fd5b815161153181612c9d565b634e487b7160e01b600052601260045260246000fd5b6000826134525761345261342d565b500490565b6000826134665761346661342d565b50069056fea264697066735822122015c7f24d0a6e0bf66c757d1143f77fb727ccdfffff01f82c4abc2ff55ca447c264736f6c63430008110033
Loading...
Loading
Loading...
Loading
[ 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.