ETH Price: $2,715.10 (+0.37%)

Token

LOOTaDOG Pass Card (LADT)
 

Overview

Max Total Supply

3,308 LADT

Holders

3,308

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
1 LADT
0x0899099d51474861dcf6f5b5070fa72ff7afe520
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
LOOTaDOG

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 18 : LOOTaDOG.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./ERC3525.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/security/Pausable.sol";
contract LOOTaDOG is ERC3525, Ownable, Pausable {
bool private _allow_transfer;
bool private _allow_transfer_value;
address private _signer;
mapping(uint256 => bool) private _order_ids;
string private _baseTokenURI;
uint256 private _token_count_limit;
/* Represents an un-minted NFT, which has not yet been recorded into the blockchain. A signed voucher can be redeemed for a real NFT using the
        redeem function. */
struct Voucher {
uint256 id;
/* The tokenId */
uint256 tokenId;
/* The amount */
uint256 amount;
/*expiration Time*/
uint256 expirationTime;
/*owner*/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 2 of 18 : Ownable.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 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.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 3 of 18 : Pausable.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 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);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 4 of 18 : Address.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (utils/Address.sol)
pragma solidity ^0.8.1;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 5 of 18 : Context.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 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;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 6 of 18 : Counters.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)
pragma solidity ^0.8.0;
/**
* @title Counters
* @author Matt Condon (@shrugs)
* @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number
* of elements in a mapping, issuing ERC721 ids, or counting request ids.
*
* Include with `using Counters for Counters.Counter;`
*/
library Counters {
struct Counter {
// This variable should never be directly accessed by users of the library: interactions must be restricted to
// the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add
// this feature: see https://github.com/ethereum/solidity/issues/4637
uint256 _value; // default: 0
}
function current(Counter storage counter) internal view returns (uint256) {
return counter._value;
}
function increment(Counter storage counter) internal {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 7 of 18 : ERC165.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)
pragma solidity ^0.8.0;
import "./IERC165.sol";
/**
* @dev Implementation of the {IERC165} interface.
*
* Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
* for the additional interface id that will be supported. For example:
*
* ```solidity
* function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
* return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
* }
* ```
*
* Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
*/
abstract contract ERC165 is IERC165 {
/**
* @dev See {IERC165-supportsInterface}.
*/
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 8 of 18 : IERC165.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC165 standard, as defined in the
* https://eips.ethereum.org/EIPS/eip-165[EIP].
*
* Implementers can declare support of contract interfaces, which can then be
* queried by others ({ERC165Checker}).
*
* For an implementation, see {ERC165}.
*/
interface IERC165 {
/**
* @dev Returns true if this contract implements the interface defined by
* `interfaceId`. See the corresponding
* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
* to learn more about how these ids are created.
*
* This function call must use less than 30 000 gas.
*/
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 9 of 18 : Strings.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 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.sol
if (value == 0) {
return "0";
}
uint256 temp = value;
uint256 digits;
while (temp != 0) {
digits++;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 10 of 18 : ERC3525.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/utils/Context.sol";
import "@openzeppelin/contracts/utils/introspection/ERC165.sol";
import "@openzeppelin/contracts/utils/Strings.sol";
import "@openzeppelin/contracts/utils/Address.sol";
import "@openzeppelin/contracts/utils/Counters.sol";
import "./IERC721.sol";
import "./IERC3525.sol";
import "./IERC721Receiver.sol";
import "./IERC3525Receiver.sol";
import "./extensions/IERC721Enumerable.sol";
import "./extensions/IERC721Metadata.sol";
import "./extensions/IERC3525Metadata.sol";
import "./periphery/interface/IERC3525MetadataDescriptor.sol";
contract ERC3525 is Context, IERC3525Metadata, IERC721Enumerable {
using Strings for address;
using Strings for uint256;
using Address for address;
using Counters for Counters.Counter;
event SetMetadataDescriptor(address indexed metadataDescriptor);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 11 of 18 : IERC3525Metadata.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../IERC3525.sol";
import "./IERC721Metadata.sol";
/**
* @title ERC-3525 Semi-Fungible Token Standard, optional extension for metadata
* @dev Interfaces for any contract that wants to support query of the Uniform Resource Identifier
* (URI) for the ERC3525 contract as well as a specified slot.
* Because of the higher reliability of data stored in smart contracts compared to data stored in
* centralized systems, it is recommended that metadata, including `contractURI`, `slotURI` and
* `tokenURI`, be directly returned in JSON format, instead of being returned with a url pointing
* to any resource stored in a centralized system.
* See https://eips.ethereum.org/EIPS/eip-3525
* Note: the ERC-165 identifier for this interface is 0xe1600902.
*/
interface IERC3525Metadata is IERC3525, IERC721Metadata {
/**
* @notice Returns the Uniform Resource Identifier (URI) for the current ERC3525 contract.
* @dev This function SHOULD return the URI for this contract in JSON format, starting with
* header `data:application/json;`.
* See https://eips.ethereum.org/EIPS/eip-3525 for the JSON schema for contract URI.
* @return The JSON formatted URI of the current ERC3525 contract
*/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 12 of 18 : IERC721Enumerable.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../IERC721.sol";
/**
* @title ERC-721 Non-Fungible Token Standard, optional enumeration extension
* @dev See https://eips.ethereum.org/EIPS/eip-721
* Note: the ERC-165 identifier for this interface is 0x780e9d63.
*/
interface IERC721Enumerable is IERC721 {
/**
* @notice Count NFTs tracked by this contract
* @return A count of valid NFTs tracked by this contract, where each one of
* them has an assigned and queryable owner not equal to the zero address
*/
function totalSupply() external view returns (uint256);
/**
* @notice Enumerate valid NFTs
* @dev Throws if `_index` >= `totalSupply()`.
* @param _index A counter less than `totalSupply()`
* @return The token identifier for the `_index`th NFT,
* (sort order not specified)
*/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 13 of 18 : IERC721Metadata.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../IERC721.sol";
/**
* @title ERC-721 Non-Fungible Token Standard, optional metadata extension
* @dev See https://eips.ethereum.org/EIPS/eip-721
* Note: the ERC-165 identifier for this interface is 0x5b5e139f.
*/
interface IERC721Metadata is IERC721 {
/**
* @notice A descriptive name for a collection of NFTs in this contract
*/
function name() external view returns (string memory);
/**
* @notice An abbreviated name for NFTs in this contract
*/
function symbol() external view returns (string memory);
/**
* @notice A distinct Uniform Resource Identifier (URI) for a given asset.
* @dev Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC
* 3986. The URI may point to a JSON file that conforms to the "ERC721
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 14 of 18 : IERC3525.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/utils/introspection/IERC165.sol";
import "./IERC721.sol";
/**
* @title ERC-3525 Semi-Fungible Token Standard
* @dev See https://eips.ethereum.org/EIPS/eip-3525
* Note: the ERC-165 identifier for this interface is 0xc97ae3d5.
*/
interface IERC3525 is IERC165, IERC721 {
/**
* @dev MUST emit when value of a token is transferred to another token with the same slot,
* including zero value transfers (_value == 0) as well as transfers when tokens are created
* (`_fromTokenId` == 0) or destroyed (`_toTokenId` == 0).
* @param _fromTokenId The token id to transfer value from
* @param _toTokenId The token id to transfer value to
* @param _value The transferred value
*/
event TransferValue(uint256 indexed _fromTokenId, uint256 indexed _toTokenId, uint256 _value);
/**
* @dev MUST emits when the approval value of a token is set or changed.
* @param _tokenId The token to approve
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 15 of 18 : IERC3525Receiver.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @title EIP-3525 token receiver interface
* @dev Interface for a smart contract that wants to be informed by EIP-3525 contracts when
* receiving values from ANY addresses or EIP-3525 tokens.
* Note: the EIP-165 identifier for this interface is 0x009ce20b.
*/
interface IERC3525Receiver {
/**
* @notice Handle the receipt of an EIP-3525 token value.
* @dev An EIP-3525 smart contract MUST check whether this function is implemented by the
* recipient contract, if the recipient contract implements this function, the EIP-3525
* contract MUST call this function after a value transfer (i.e. `transferFrom(uint256,
* uint256,uint256,bytes)`).
* MUST return 0x009ce20b (i.e. `bytes4(keccak256('onERC3525Received(address,uint256,uint256,
* uint256,bytes)'))`) if the transfer is accepted.
* MUST revert or return any value other than 0x009ce20b if the transfer is rejected.
* @param _operator The address which triggered the transfer
* @param _fromTokenId The token id to transfer value from
* @param _toTokenId The token id to transfer value to
* @param _value The transferred value
* @param _data Additional data with no specified format
* @return `bytes4(keccak256('onERC3525Received(address,uint256,uint256,uint256,bytes)'))`
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 16 of 18 : IERC721.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/utils/introspection/IERC165.sol";
/**
* @title ERC-721 Non-Fungible Token Standard
* @dev See https://eips.ethereum.org/EIPS/eip-721
* Note: the ERC-165 identifier for this interface is 0x80ac58cd.
*/
interface IERC721 is IERC165 {
/**
* @dev This emits when ownership of any NFT changes by any mechanism.
* This event emits when NFTs are created (`from` == 0) and destroyed
* (`to` == 0). Exception: during contract creation, any number of NFTs
* may be created and assigned without emitting Transfer. At the time of
* any transfer, the approved address for that NFT (if any) is reset to none.
*/
event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
/**
* @dev This emits when the approved address for an NFT is changed or
* reaffirmed. The zero address indicates there is no approved address.
* When a Transfer event emits, this also indicates that the approved
* address for that NFT (if any) is reset to none.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 17 of 18 : IERC721Receiver.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @title ERC721 token receiver interface
* @dev Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.
* Note: the ERC-165 identifier for this interface is 0x150b7a02.
*/
interface IERC721Receiver {
/**
* @notice Handle the receipt of an NFT
* @dev The ERC721 smart contract calls this function on the recipient
* after a `transfer`. This function MAY throw to revert and reject the
* transfer. Return of other than the magic value MUST result in the
* transaction being reverted.
* Note: the contract address is always the message sender.
* @param _operator The address which called `safeTransferFrom` function
* @param _from The address which previously owned the token
* @param _tokenId The NFT identifier which is being transferred
* @param _data Additional data with no specified format
* @return `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`
* unless throwing
*/
function onERC721Received(
address _operator,
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 18 of 18 : IERC3525MetadataDescriptor.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
interface IERC3525MetadataDescriptor {
function constructContractURI() external view returns (string memory);
function constructSlotURI(uint256 slot) external view returns (string memory);
function constructTokenURI(uint256 tokenId) external view returns (string memory);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Settings
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"_tokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"ApprovalValue","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":"metadataDescriptor","type":"address"}],"name":"SetMetadataDescriptor","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_oldSlot","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_newSlot","type":"uint256"}],"name":"SlotChanged","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":true,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_toTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"TransferValue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"uint256","name":"tokenId_","type":"uint256"},{"internalType":"address","name":"operator_","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId_","type":"uint256"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"value_","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"blockId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSigner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTokenCountLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"metadataDescriptor","outputs":[{"internalType":"contract IERC3525MetadataDescriptor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"expirationTime","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"mintToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"expirationTime","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"mintValue","outputs":[],"stateMutability":"payable","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":"owner_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"queryId","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":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"name":"setTokenCountLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"slotOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"slot_","type":"uint256"}],"name":"slotURI","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"index_","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"uint256","name":"index_","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"fromTokenId_","type":"uint256"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"value_","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","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":"uint256","name":"fromTokenId_","type":"uint256"},{"internalType":"uint256","name":"toTokenId_","type":"uint256"},{"internalType":"uint256","name":"value_","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":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"valueDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b50604051806040016040528060128152602001711313d3d5185113d1c814185cdcc810d85c9960721b815250604051806040016040528060048152602001631310511560e21b815250600282600090816200006d9190620001ca565b5060016200007c8382620001ca565b506002805460ff191660ff9290921691909117905550620000a69050620000a03390565b620000d3565b6009805462ffffff60a01b19169055600a80546001600160a01b031916331790556103e8600d5562000296565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200015057607f821691505b6020821081036200017157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001c557600081815260208120601f850160051c81016020861015620001a05750805b601f850160051c820191505b81811015620001c157828155600101620001ac565b5050505b505050565b81516001600160401b03811115620001e657620001e662000125565b620001fe81620001f784546200013b565b8462000177565b602080601f8311600181146200023657600084156200021d5750858301515b600019600386901b1c1916600185901b178555620001c1565b600085815260208120601f198616915b82811015620002675788860151825594840194600190910190840162000246565b5085821015620002865787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b613ad380620002a66000396000f3fe6080604052600436106102465760003560e01c80636352211e1161013957806395d89b41116100b6578063e345e0bc1161007a578063e345e0bc14610630578063e8a3d48514610650578063e985e9c514610665578063f2fde38b146106b2578063f7b6feab146106d2578063f7dba4d51461070257600080fd5b806395d89b41146105a85780639cc7f708146105bd578063a22cb465146105dd578063b88d4fde146105fd578063c87b56dd1461061057600080fd5b80637ac3c02f116100fd5780637ac3c02f14610524578063840f7113146105425780638456cb59146105625780638cb0a511146105775780638da5cb5b1461058a57600080fd5b80636352211e1461049a5780636c19e783146104ba57806370a08231146104da578063715018a6146104fa5780637789a00c1461050f57600080fd5b8063263f3e7e116101c757806342842e0e1161018b57806342842e0e146104155780634f6ccce71461042857806352c18f861461044857806355f804b31461045b5780635c975abb1461047b57600080fd5b8063263f3e7e1461038b5780632f745c59146103ab578063310ed7f0146103cb5780633e7e8669146103de5780633f4ba83a1461040057600080fd5b80630f485c021161020e5780630f485c021461030f578063168162d21461033057806318160ddd146103435780631d3e8c401461035857806323b872dd1461037857600080fd5b806301ffc9a71461024b57806306fdde0314610280578063081812fc146102a2578063095ea7b3146102da57806309c3dd87146102ef575b600080fd5b34801561025757600080fd5b5061026b61026636600461307e565b610738565b60405190151581526020015b60405180910390f35b34801561028c57600080fd5b506102956107db565b60405161027791906130f3565b3480156102ae57600080fd5b506102c26102bd366004613106565b61086d565b6040516001600160a01b039091168152602001610277565b6102ed6102e8366004613136565b6108bf565b005b3480156102fb57600080fd5b5061029561030a366004613106565b61094d565b61032261031d366004613160565b610a32565b604051908152602001610277565b6102ed61033e3660046131a6565b610aa8565b34801561034f57600080fd5b50600554610322565b34801561036457600080fd5b506102ed610373366004613106565b610c76565b6102ed610386366004613209565b610c83565b34801561039757600080fd5b506103226103a6366004613106565b610cbf565b3480156103b757600080fd5b506103226103c6366004613136565b610d07565b6102ed6103d9366004613235565b610da8565b3480156103ea57600080fd5b5060025460405160ff9091168152602001610277565b34801561040c57600080fd5b506102ed610dbb565b6102ed610423366004613209565b610dcd565b34801561043457600080fd5b50610322610443366004613106565b610e09565b6102ed610456366004613261565b610e9a565b34801561046757600080fd5b506102ed6104763660046132ce565b610fff565b34801561048757600080fd5b50600954600160a01b900460ff1661026b565b3480156104a657600080fd5b506102c26104b5366004613106565b611014565b3480156104c657600080fd5b506102ed6104d5366004613340565b6110b0565b3480156104e657600080fd5b506103226104f5366004613340565b6110da565b34801561050657600080fd5b506102ed611162565b34801561051b57600080fd5b50600d54610322565b34801561053057600080fd5b50600a546001600160a01b03166102c2565b34801561054e57600080fd5b506008546102c2906001600160a01b031681565b34801561056e57600080fd5b506102ed611174565b6102ed610585366004613160565b611184565b34801561059657600080fd5b506009546001600160a01b03166102c2565b3480156105b457600080fd5b5061029561120b565b3480156105c957600080fd5b506103226105d8366004613106565b61121a565b3480156105e957600080fd5b506102ed6105f8366004613369565b611262565b6102ed61060b36600461340f565b611271565b34801561061c57600080fd5b5061029561062b366004613106565b6112ae565b34801561063c57600080fd5b5061032261064b3660046134ba565b611340565b34801561065c57600080fd5b50610295611374565b34801561067157600080fd5b5061026b6106803660046134e6565b6001600160a01b0391821660009081526007602090815260408083209390941682526002909201909152205460ff1690565b3480156106be57600080fd5b506102ed6106cd366004613340565b611461565b3480156106de57600080fd5b5061026b6106ed366004613106565b6000908152600b602052604090205460ff1690565b34801561070e57600080fd5b506102ed61071d366004613106565b6000908152600b60205260409020805460ff19166001179055565b60006001600160e01b031982166301ffc9a760e01b148061076957506001600160e01b03198216630354d60560e61b145b8061078457506001600160e01b031982166380ac58cd60e01b145b8061079f57506001600160e01b031982166370b0048160e11b145b806107ba57506001600160e01b0319821663780e9d6360e01b145b806107d557506001600160e01b03198216635b5e139f60e01b145b92915050565b6060600080546107ea90613510565b80601f016020809104026020016040519081016040528092919081815260200182805461081690613510565b80156108635780601f1061083857610100808354040283529160200191610863565b820191906000526020600020905b81548152906001019060200180831161084657829003601f168201915b5050505050905090565b6000610878826114da565b60008281526006602052604090205460058054909190811061089c5761089c61354a565b60009182526020909120600460069092020101546001600160a01b031692915050565b60006108ca82611014565b9050806001600160a01b0316836001600160a01b0316036109065760405162461bcd60e51b81526004016108fd90613560565b60405180910390fd5b336001600160a01b038216148061092257506109228133610680565b61093e5760405162461bcd60e51b81526004016108fd906135a2565b610948838361152b565b505050565b606060006109596115c2565b6008549091506001600160a01b03166109b957600081511161098a5760405180602001604052806000815250610a2b565b80610994846115d1565b6040516020016109a59291906135ff565b604051602081830303815290604052610a2b565b600854604051633601bfc560e11b8152600481018590526001600160a01b0390911690636c037f8a906024015b600060405180830381865afa158015610a03573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a2b919081019061363f565b9392505050565b6000610a3c6116d2565b600954600160b01b900460ff16610a955760405162461bcd60e51b815260206004820152601d60248201527f56616c756520646f6573206e6f7420616c6c6f77207472616e7366657200000060448201526064016108fd565b610aa084848461171f565b949350505050565b610ab06116d2565b844210610af15760405162461bcd60e51b815260206004820152600f60248201526e22bc3834b932b2103b37bab1b432b960891b60448201526064016108fd565b600d5460055410610b2f5760405162461bcd60e51b815260206004820152600860248201526714dbdb19081bdd5d60c21b60448201526064016108fd565b610b38336110da565b15610b765760405162461bcd60e51b815260206004820152600e60248201526d105b1c9958591e481b5a5b9d195960921b60448201526064016108fd565b6000878152600b602052604090205460ff1615610bc45760405162461bcd60e51b815260206004820152600c60248201526b111d5c1b1a58d85d19481a5960a21b60448201526064016108fd565b6001600160a01b0384163314610c0c5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b60448201526064016108fd565b610c486040518060a0016040528089815260200160008152602001888152602001878152602001866001600160a01b0316815250848484611759565b610c5433600188611818565b50505060009485525050600b602052505060409020805460ff19166001179055565b610c7e611831565b600d55565b610c8b6116d2565b600954600160a81b900460ff16610cb45760405162461bcd60e51b81526004016108fd906136b6565b61094883838361188b565b6000610cca826114da565b600082815260066020526040902054600580549091908110610cee57610cee61354a565b9060005260206000209060060201600101549050919050565b6000610d12836110da565b8210610d6b5760405162461bcd60e51b815260206004820152602260248201527f455243333532353a206f776e657220696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016108fd565b6001600160a01b0383166000908152600760205260409020805483908110610d9557610d9561354a565b9060005260206000200154905092915050565b610db06116d2565b6109488383836118bc565b610dc3611831565b610dcb6118d2565b565b610dd56116d2565b600954600160a81b900460ff16610dfe5760405162461bcd60e51b81526004016108fd906136b6565b610948838383611927565b6000610e1460055490565b8210610e6e5760405162461bcd60e51b815260206004820152602360248201527f455243333532353a20676c6f62616c20696e646578206f7574206f6620626f756044820152626e647360e81b60648201526084016108fd565b60058281548110610e8157610e8161354a565b9060005260206000209060060201600001549050919050565b610ea26116d2565b844210610ee35760405162461bcd60e51b815260206004820152600f60248201526e22bc3834b932b2103b37bab1b432b960891b60448201526064016108fd565b6000888152600b602052604090205460ff1615610f315760405162461bcd60e51b815260206004820152600c60248201526b111d5c1b1a58d85d19481a5960a21b60448201526064016108fd565b6001600160a01b0384163314610f795760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b60448201526064016108fd565b60008611610fba5760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b60448201526064016108fd565b610ff56040518060a001604052808a8152602001898152602001888152602001878152602001866001600160a01b0316815250848484611759565b610c548787611942565b611007611831565b600c610948828483613733565b600061101f826114da565b6000828152600660205260409020546005805490919081106110435761104361354a565b60009182526020909120600360069092020101546001600160a01b03169050806110ab5760405162461bcd60e51b8152602060048201526019602482015278115490cccd4c8d4e881a5b9d985b1a59081d1bdad95b881251603a1b60448201526064016108fd565b919050565b6110b8611831565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0382166111465760405162461bcd60e51b815260206004820152602b60248201527f455243333532353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084016108fd565b506001600160a01b031660009081526007602052604090205490565b61116a611831565b610dcb6000611974565b61117c611831565b610dcb6119c6565b600061118f84611014565b9050806001600160a01b0316836001600160a01b0316036111c25760405162461bcd60e51b81526004016108fd90613560565b336001600160a01b03821614806111de57506111de8133610680565b6111fa5760405162461bcd60e51b81526004016108fd906135a2565b611205848484611a09565b50505050565b6060600180546107ea90613510565b6000611225826114da565b6000828152600660205260409020546005805490919081106112495761124961354a565b9060005260206000209060060201600201549050919050565b61126d338383611b41565b5050565b6112796116d2565b600954600160a81b900460ff166112a25760405162461bcd60e51b81526004016108fd906136b6565b61120584848484611c0b565b60606112b9826114da565b60006112c36115c2565b6008549091506001600160a01b031661130f5760008151116112f45760405180602001604052806000815250610a2b565b806112fe846115d1565b6040516020016109a59291906137f3565b6008546040516344a5a61760e11b8152600481018590526001600160a01b039091169063894b4c2e906024016109e6565b600061134b836114da565b5060009182526004602090815260408084206001600160a01b0393909316845291905290205490565b606060006113806115c2565b6008549091506001600160a01b03166113e05760008151116113b1576040518060200160405280600081525061145b565b806113bb30611c3d565b6040516020016113cc929190613822565b60405160208183030381529060405261145b565b600860009054906101000a90046001600160a01b03166001600160a01b031663725fa09c6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611433573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261145b919081019061363f565b91505090565b611469611831565b6001600160a01b0381166114ce5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108fd565b6114d781611974565b50565b6114e381611c53565b6114d75760405162461bcd60e51b8152602060048201526019602482015278115490cccd4c8d4e881a5b9d985b1a59081d1bdad95b881251603a1b60448201526064016108fd565b60008181526006602052604090205460058054849290811061154f5761154f61354a565b6000918252602090912060069091020160040180546001600160a01b0319166001600160a01b039283161790558190831661158982611014565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6060600c80546107ea90613510565b6060816000036115f85750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611622578061160c8161387c565b915061161b9050600a836138ab565b91506115fc565b60008167ffffffffffffffff81111561163d5761163d6133a0565b6040519080825280601f01601f191660200182016040528015611667576020820181803683370190505b5090505b8415610aa05761167c6001836138bf565b9150611689600a866138d6565b6116949060306138ea565b60f81b8183815181106116a9576116a961354a565b60200101906001600160f81b031916908160001a9053506116cb600a866138ab565b945061166b565b600954600160a01b900460ff1615610dcb5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108fd565b600061172c338584611c9f565b600061173785611d2f565b905061174e848261174788610cbf565b6000611d39565b610aa0858285611e5e565b6000600161176686612109565b6040805160008152602081018083529290925260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156117b4573d6000803e3d6000fd5b5050604051601f190151600a549092506001600160a01b0380841691161490506118115760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21039b4b3b732b960911b60448201526064016108fd565b5050505050565b60008061182361224d565b9050610aa085828686611d39565b6009546001600160a01b03163314610dcb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fd565b6118953382612264565b6118b15760405162461bcd60e51b81526004016108fd90613902565b6109488383836122cc565b6118c7338483611c9f565b610948838383611e5e565b6118da61242d565b6009805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b61094883838360405180602001604052806000815250611271565b61194b826114da565b600061195683611014565b9050600061196384610cbf565b905061196f8484612485565b611205565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6119ce6116d2565b6009805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861190a3390565b6001600160a01b038216611a725760405162461bcd60e51b815260206004820152602a60248201527f455243333532353a20617070726f76652076616c756520746f20746865207a65604482015269726f206164647265737360b01b60648201526084016108fd565b611a7c828461250a565b611ae257600083815260066020526040902054600580549091908110611aa457611aa461354a565b60009182526020808320600692909202909101600501805460018101825590835291200180546001600160a01b0319166001600160a01b0384161790555b60008381526004602090815260408083206001600160a01b038616808552908352928190208490555183815285917f621b050de0ad08b51d19b48b3e6df75348c4de6bdd93e81b252ca62e28265b1b91015b60405180910390a3505050565b816001600160a01b0316836001600160a01b031603611ba25760405162461bcd60e51b815260206004820152601a60248201527f455243333532353a20617070726f766520746f2063616c6c657200000000000060448201526064016108fd565b6001600160a01b0383811660008181526007602090815260408083209487168084526002909501825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611b34565b611c153383612264565b611c315760405162461bcd60e51b81526004016108fd90613902565b611205848484846125dd565b60606107d56001600160a01b0383166014612650565b600554600090158015906107d55750600082815260066020526040902054600580548492908110611c8657611c8661354a565b9060005260206000209060060201600001541492915050565b6000611cab8385611340565b9050611cb78484612264565b158015611cc657506000198114155b156112055781811015611d1b5760405162461bcd60e51b815260206004820152601f60248201527f455243333532353a20696e73756666696369656e7420616c6c6f77616e63650060448201526064016108fd565b6112058385611d2a85856138bf565b611a09565b60006107d561224d565b6001600160a01b038416611d995760405162461bcd60e51b815260206004820152602160248201527f455243333532353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016108fd565b82600003611df35760405162461bcd60e51b815260206004820152602160248201527f455243333532353a2063616e6e6f74206d696e74207a65726f20746f6b656e496044820152601960fa1b60648201526084016108fd565b611dfc83611c53565b15611e495760405162461bcd60e51b815260206004820152601d60248201527f455243333532353a20746f6b656e20616c7265616479206d696e74656400000060448201526064016108fd565b611e548484846127ec565b61196f8382612485565b611e6783611c53565b611ec35760405162461bcd60e51b815260206004820152602760248201527f455243333532353a207472616e736665722066726f6d20696e76616c696420746044820152661bdad95b88125160ca1b60648201526084016108fd565b611ecc82611c53565b611f265760405162461bcd60e51b815260206004820152602560248201527f455243333532353a207472616e7366657220746f20696e76616c696420746f6b604482015264195b88125160da1b60648201526084016108fd565b600083815260066020526040812054600580549091908110611f4a57611f4a61354a565b9060005260206000209060060201905060006005600660008681526020019081526020016000205481548110611f8257611f8261354a565b906000526020600020906006020190508282600201541015611ff95760405162461bcd60e51b815260206004820152602a60248201527f455243333532353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b60648201526084016108fd565b80600101548260010154146120675760405162461bcd60e51b815260206004820152602e60248201527f455243333532353a207472616e7366657220746f20746f6b656e20776974682060448201526d191a5999995c995b9d081cdb1bdd60921b60648201526084016108fd565b8282600201600082825461207b91906138bf565b925050819055508281600201600082825461209691906138ea565b9091555050604051838152849086907f0b2aac84f3ec956911fd78eae5311062972ff949f38412e8da39069d9f068cc69060200160405180910390a36120ed858585604051806020016040528060008152506128b2565b6118115760405162461bcd60e51b81526004016108fd90613954565b6000612208604080518082018252600d81526c04c4f4f5461444f47204461707609c1b6020918201528151808301835260018152603160f81b9082015281517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac56472818301527f7adf56923e686bb1b093759a744659a5bc83da4e64912930cd2c64f30774ef92818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a08201527ff2d857f4a3edcb9b78b4d503bfe733db1e3f6cdc2b7971ee739626c97e86a55860c0808301919091528351808303909101815260e0909101909252815191012090565b61221183612a36565b60405161190160f01b6020820152602281019290925260428201526062015b604051602081830303815290604052805190602001209050919050565b600061225d600380546001019055565b5060035490565b600061226f826114da565b600061227a83611014565b9050806001600160a01b0316846001600160a01b031614806122a157506122a18185610680565b80610aa05750836001600160a01b03166122ba8461086d565b6001600160a01b031614949350505050565b826001600160a01b03166122df82611014565b6001600160a01b0316146123415760405162461bcd60e51b8152602060048201526024808201527f455243333532353a207472616e736665722066726f6d20696e76616c6964206f6044820152633bb732b960e11b60648201526084016108fd565b6001600160a01b0382166123a55760405162461bcd60e51b815260206004820152602560248201527f455243333532353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016108fd565b60006123b082610cbf565b905060006123bd8361121a565b90506123ca60008461152b565b6123d383612ab1565b6123dd8584612b4d565b6123e78484612c6e565b82846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611811565b600954600160a01b900460ff16610dcb5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108fd565b505050505050565b6000828152600660205260409020546005805483929081106124a9576124a961354a565b906000526020600020906006020160020160008282546124c991906138ea565b909155505060405181815282906000907f0b2aac84f3ec956911fd78eae5311062972ff949f38412e8da39069d9f068cc69060200160405180910390a35050565b60008181526006602052604081205460058054839290811061252e5761252e61354a565b6000918252602082206005600690920201015491505b818110156125d257600084815260066020526040902054600580546001600160a01b038816929081106125795761257961354a565b9060005260206000209060060201600501828154811061259b5761259b61354a565b6000918252602090912001546001600160a01b0316036125c0576001925050506107d5565b806125ca8161387c565b915050612544565b506000949350505050565b6125e88484846122cc565b6125f484848484612cf7565b6112055760405162461bcd60e51b815260206004820152602760248201527f455243333532353a207472616e7366657220746f206e6f6e204552433732315260448201526632b1b2b4bb32b960c91b60648201526084016108fd565b6060600061265f83600261399c565b61266a9060026138ea565b67ffffffffffffffff811115612682576126826133a0565b6040519080825280601f01601f1916602001820160405280156126ac576020820181803683370190505b509050600360fc1b816000815181106126c7576126c761354a565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106126f6576126f661354a565b60200101906001600160f81b031916908160001a905350600061271a84600261399c565b6127259060016138ea565b90505b600181111561279d576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106127595761275961354a565b1a60f81b82828151811061276f5761276f61354a565b60200101906001600160f81b031916908160001a90535060049490941c93612796816139bb565b9050612728565b508315610a2b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108fd565b6040805160c081018252838152602080820184905260008284018190526001600160a01b038716606084015260808301819052835181815291820190935260a0820152905061283a81612ea4565b6128448484612c6e565b60405183906001600160a01b038616906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4816000847fe4f48c240d3b994948aa54f3e2f5fca59263dfe1d52b6e4cf39a5d249b5ccb6560405160405180910390a450505050565b6000806128be85611014565b90506001600160a01b0381163b1515801561294257506040516301ffc9a760e01b8152629ce20b60e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561291e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294291906139d2565b15612a2c57604051629ce20b60e01b81526001600160a01b03821690629ce20b906129799033908a908a908a908a906004016139ef565b6020604051808303816000875af19250505080156129b4575060408051601f3d908101601f191682019092526129b191810190613a2d565b60015b612a11573d8080156129e2576040519150601f19603f3d011682016040523d82523d6000602084013e6129e7565b606091505b508051600003612a095760405162461bcd60e51b81526004016108fd90613954565b805181602001fd5b6001600160e01b031916629ce20b60e01b149150610aa09050565b6001915050610aa0565b8051602080830151604080850151606086015160808701519251600096612230967f4bd317336ea30fdfa31168cda381dacdf9ed1dd92eda94108d28629b6cf9b8c7969195919493920195865260208601949094526040850192909252606084015260808301526001600160a01b031660a082015260c00190565b600081815260066020526040812054600580549091908110612ad557612ad561354a565b600091825260208220600560069092020190810154909250905b81811015611205576000836005018281548110612b0e57612b0e61354a565b60009182526020808320909101548783526004825260408084206001600160a01b03909216845291528120555080612b458161387c565b915050612aef565b600081815260066020526040812054600580549091908110612b7157612b7161354a565b6000918252602080832060069290920290910160030180546001600160a01b0319166001600160a01b0394851617905591841681526007909152604081208054909190612bc0906001906138bf565b90506000826000018281548110612bd957612bd961354a565b90600052602060002001549050600083600101600086815260200190815260200160002054905081846000018281548110612c1657612c1661354a565b60009182526020808320909101929092558381526001860190915260408082208390558682528120558354849080612c5057612c50613a4a565b60019003818190600052602060002001600090559055505050505050565b600081815260066020526040902054600580548492908110612c9257612c9261354a565b6000918252602080832060069290920290910160030180546001600160a01b0319166001600160a01b03948516179055939091168152600780845260408083208054858552600182810188529285208190559286529082018155825292902090910155565b60006001600160a01b0384163b15158015612d7c57506040516301ffc9a760e01b8152630a85bd0160e11b60048201526001600160a01b038516906301ffc9a790602401602060405180830381865afa158015612d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d7c91906139d2565b15612e9c57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612db3903390899088908890600401613a60565b6020604051808303816000875af1925050508015612dee575060408051601f3d908101601f19168201909252612deb91810190613a2d565b60015b612e82573d808015612e1c576040519150601f19603f3d011682016040523d82523d6000602084013e612e21565b606091505b508051600003612a095760405162461bcd60e51b815260206004820152602660248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201526531b2b4bb32b960d11b60648201526084016108fd565b6001600160e01b031916630a85bd0160e11b149050610aa0565b506001610aa0565b600580548251600090815260066020818152604080842085905560018501865594909252845192027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db08101928355818501517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db1820155928401517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db284015560608401517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db3840180546001600160a01b039283166001600160a01b03199182161790915560808601517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db48601805491909316911617905560a084015180518594611205937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db5909101920190828054828255906000526020600020908101928215613043579160200282015b8281111561304357825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061300e565b5061304f929150613053565b5090565b5b8082111561304f5760008155600101613054565b6001600160e01b0319811681146114d757600080fd5b60006020828403121561309057600080fd5b8135610a2b81613068565b60005b838110156130b657818101518382015260200161309e565b838111156112055750506000910152565b600081518084526130df81602086016020860161309b565b601f01601f19169290920160200192915050565b602081526000610a2b60208301846130c7565b60006020828403121561311857600080fd5b5035919050565b80356001600160a01b03811681146110ab57600080fd5b6000806040838503121561314957600080fd5b6131528361311f565b946020939093013593505050565b60008060006060848603121561317557600080fd5b833592506131856020850161311f565b9150604084013590509250925092565b803560ff811681146110ab57600080fd5b600080600080600080600060e0888a0312156131c157600080fd5b8735965060208801359550604088013594506131df6060890161311f565b93506131ed60808901613195565b925060a0880135915060c0880135905092959891949750929550565b60008060006060848603121561321e57600080fd5b6132278461311f565b92506131856020850161311f565b60008060006060848603121561324a57600080fd5b505081359360208301359350604090920135919050565b600080600080600080600080610100898b03121561327e57600080fd5b883597506020890135965060408901359550606089013594506132a360808a0161311f565b93506132b160a08a01613195565b925060c0890135915060e089013590509295985092959890939650565b600080602083850312156132e157600080fd5b823567ffffffffffffffff808211156132f957600080fd5b818501915085601f83011261330d57600080fd5b81358181111561331c57600080fd5b86602082850101111561332e57600080fd5b60209290920196919550909350505050565b60006020828403121561335257600080fd5b610a2b8261311f565b80151581146114d757600080fd5b6000806040838503121561337c57600080fd5b6133858361311f565b915060208301356133958161335b565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156133df576133df6133a0565b604052919050565b600067ffffffffffffffff821115613401576134016133a0565b50601f01601f191660200190565b6000806000806080858703121561342557600080fd5b61342e8561311f565b935061343c6020860161311f565b925060408501359150606085013567ffffffffffffffff81111561345f57600080fd5b8501601f8101871361347057600080fd5b803561348361347e826133e7565b6133b6565b81815288602083850101111561349857600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b600080604083850312156134cd57600080fd5b823591506134dd6020840161311f565b90509250929050565b600080604083850312156134f957600080fd5b6135028361311f565b91506134dd6020840161311f565b600181811c9082168061352457607f821691505b60208210810361354457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60208082526022908201527f455243333532353a20617070726f76616c20746f2063757272656e74206f776e60408201526132b960f11b606082015260800190565b60208082526039908201527f455243333532353a20617070726f76652063616c6c6572206973206e6f74206f60408201527f776e6572206e6f7220617070726f76656420666f7220616c6c00000000000000606082015260800190565b6000835161361181846020880161309b565b64736c6f742f60d81b908301908152835161363381600584016020880161309b565b01600501949350505050565b60006020828403121561365157600080fd5b815167ffffffffffffffff81111561366857600080fd5b8201601f8101841361367957600080fd5b805161368761347e826133e7565b81815285602083850101111561369c57600080fd5b6136ad82602083016020860161309b565b95945050505050565b6020808252601d908201527f546f6b656e20646f6573206e6f7420616c6c6f77207472616e73666572000000604082015260600190565b601f82111561094857600081815260208120601f850160051c810160208610156137145750805b601f850160051c820191505b8181101561247d57828155600101613720565b67ffffffffffffffff83111561374b5761374b6133a0565b61375f836137598354613510565b836136ed565b6000601f841160018114613793576000851561377b5750838201355b600019600387901b1c1916600186901b178355611811565b600083815260209020601f19861690835b828110156137c457868501358255602094850194600190920191016137a4565b50868210156137e15760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000835161380581846020880161309b565b83519083019061381981836020880161309b565b01949350505050565b6000835161383481846020880161309b565b68636f6e74726163742f60b81b908301908152835161385a81600984016020880161309b565b01600901949350505050565b634e487b7160e01b600052601160045260246000fd5b60006001820161388e5761388e613866565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826138ba576138ba613895565b500490565b6000828210156138d1576138d1613866565b500390565b6000826138e5576138e5613895565b500690565b600082198211156138fd576138fd613866565b500190565b60208082526032908201527f455243333532353a207472616e736665722063616c6c6572206973206e6f74206040820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b606082015260800190565b60208082526028908201527f455243333532353a207472616e7366657220746f206e6f6e20455243333532356040820152672932b1b2b4bb32b960c11b606082015260800190565b60008160001904831182151516156139b6576139b6613866565b500290565b6000816139ca576139ca613866565b506000190190565b6000602082840312156139e457600080fd5b8151610a2b8161335b565b60018060a01b038616815284602082015283604082015282606082015260a060808201526000613a2260a08301846130c7565b979650505050505050565b600060208284031215613a3f57600080fd5b8151610a2b81613068565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613a93908301846130c7565b969550505050505056fea2646970667358221220e2ad52a24bcfe504f6e72a3537011dff23006983c70992647239373d09abd19664736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106102465760003560e01c80636352211e1161013957806395d89b41116100b6578063e345e0bc1161007a578063e345e0bc14610630578063e8a3d48514610650578063e985e9c514610665578063f2fde38b146106b2578063f7b6feab146106d2578063f7dba4d51461070257600080fd5b806395d89b41146105a85780639cc7f708146105bd578063a22cb465146105dd578063b88d4fde146105fd578063c87b56dd1461061057600080fd5b80637ac3c02f116100fd5780637ac3c02f14610524578063840f7113146105425780638456cb59146105625780638cb0a511146105775780638da5cb5b1461058a57600080fd5b80636352211e1461049a5780636c19e783146104ba57806370a08231146104da578063715018a6146104fa5780637789a00c1461050f57600080fd5b8063263f3e7e116101c757806342842e0e1161018b57806342842e0e146104155780634f6ccce71461042857806352c18f861461044857806355f804b31461045b5780635c975abb1461047b57600080fd5b8063263f3e7e1461038b5780632f745c59146103ab578063310ed7f0146103cb5780633e7e8669146103de5780633f4ba83a1461040057600080fd5b80630f485c021161020e5780630f485c021461030f578063168162d21461033057806318160ddd146103435780631d3e8c401461035857806323b872dd1461037857600080fd5b806301ffc9a71461024b57806306fdde0314610280578063081812fc146102a2578063095ea7b3146102da57806309c3dd87146102ef575b600080fd5b34801561025757600080fd5b5061026b61026636600461307e565b610738565b60405190151581526020015b60405180910390f35b34801561028c57600080fd5b506102956107db565b60405161027791906130f3565b3480156102ae57600080fd5b506102c26102bd366004613106565b61086d565b6040516001600160a01b039091168152602001610277565b6102ed6102e8366004613136565b6108bf565b005b3480156102fb57600080fd5b5061029561030a366004613106565b61094d565b61032261031d366004613160565b610a32565b604051908152602001610277565b6102ed61033e3660046131a6565b610aa8565b34801561034f57600080fd5b50600554610322565b34801561036457600080fd5b506102ed610373366004613106565b610c76565b6102ed610386366004613209565b610c83565b34801561039757600080fd5b506103226103a6366004613106565b610cbf565b3480156103b757600080fd5b506103226103c6366004613136565b610d07565b6102ed6103d9366004613235565b610da8565b3480156103ea57600080fd5b5060025460405160ff9091168152602001610277565b34801561040c57600080fd5b506102ed610dbb565b6102ed610423366004613209565b610dcd565b34801561043457600080fd5b50610322610443366004613106565b610e09565b6102ed610456366004613261565b610e9a565b34801561046757600080fd5b506102ed6104763660046132ce565b610fff565b34801561048757600080fd5b50600954600160a01b900460ff1661026b565b3480156104a657600080fd5b506102c26104b5366004613106565b611014565b3480156104c657600080fd5b506102ed6104d5366004613340565b6110b0565b3480156104e657600080fd5b506103226104f5366004613340565b6110da565b34801561050657600080fd5b506102ed611162565b34801561051b57600080fd5b50600d54610322565b34801561053057600080fd5b50600a546001600160a01b03166102c2565b34801561054e57600080fd5b506008546102c2906001600160a01b031681565b34801561056e57600080fd5b506102ed611174565b6102ed610585366004613160565b611184565b34801561059657600080fd5b506009546001600160a01b03166102c2565b3480156105b457600080fd5b5061029561120b565b3480156105c957600080fd5b506103226105d8366004613106565b61121a565b3480156105e957600080fd5b506102ed6105f8366004613369565b611262565b6102ed61060b36600461340f565b611271565b34801561061c57600080fd5b5061029561062b366004613106565b6112ae565b34801561063c57600080fd5b5061032261064b3660046134ba565b611340565b34801561065c57600080fd5b50610295611374565b34801561067157600080fd5b5061026b6106803660046134e6565b6001600160a01b0391821660009081526007602090815260408083209390941682526002909201909152205460ff1690565b3480156106be57600080fd5b506102ed6106cd366004613340565b611461565b3480156106de57600080fd5b5061026b6106ed366004613106565b6000908152600b602052604090205460ff1690565b34801561070e57600080fd5b506102ed61071d366004613106565b6000908152600b60205260409020805460ff19166001179055565b60006001600160e01b031982166301ffc9a760e01b148061076957506001600160e01b03198216630354d60560e61b145b8061078457506001600160e01b031982166380ac58cd60e01b145b8061079f57506001600160e01b031982166370b0048160e11b145b806107ba57506001600160e01b0319821663780e9d6360e01b145b806107d557506001600160e01b03198216635b5e139f60e01b145b92915050565b6060600080546107ea90613510565b80601f016020809104026020016040519081016040528092919081815260200182805461081690613510565b80156108635780601f1061083857610100808354040283529160200191610863565b820191906000526020600020905b81548152906001019060200180831161084657829003601f168201915b5050505050905090565b6000610878826114da565b60008281526006602052604090205460058054909190811061089c5761089c61354a565b60009182526020909120600460069092020101546001600160a01b031692915050565b60006108ca82611014565b9050806001600160a01b0316836001600160a01b0316036109065760405162461bcd60e51b81526004016108fd90613560565b60405180910390fd5b336001600160a01b038216148061092257506109228133610680565b61093e5760405162461bcd60e51b81526004016108fd906135a2565b610948838361152b565b505050565b606060006109596115c2565b6008549091506001600160a01b03166109b957600081511161098a5760405180602001604052806000815250610a2b565b80610994846115d1565b6040516020016109a59291906135ff565b604051602081830303815290604052610a2b565b600854604051633601bfc560e11b8152600481018590526001600160a01b0390911690636c037f8a906024015b600060405180830381865afa158015610a03573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a2b919081019061363f565b9392505050565b6000610a3c6116d2565b600954600160b01b900460ff16610a955760405162461bcd60e51b815260206004820152601d60248201527f56616c756520646f6573206e6f7420616c6c6f77207472616e7366657200000060448201526064016108fd565b610aa084848461171f565b949350505050565b610ab06116d2565b844210610af15760405162461bcd60e51b815260206004820152600f60248201526e22bc3834b932b2103b37bab1b432b960891b60448201526064016108fd565b600d5460055410610b2f5760405162461bcd60e51b815260206004820152600860248201526714dbdb19081bdd5d60c21b60448201526064016108fd565b610b38336110da565b15610b765760405162461bcd60e51b815260206004820152600e60248201526d105b1c9958591e481b5a5b9d195960921b60448201526064016108fd565b6000878152600b602052604090205460ff1615610bc45760405162461bcd60e51b815260206004820152600c60248201526b111d5c1b1a58d85d19481a5960a21b60448201526064016108fd565b6001600160a01b0384163314610c0c5760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b60448201526064016108fd565b610c486040518060a0016040528089815260200160008152602001888152602001878152602001866001600160a01b0316815250848484611759565b610c5433600188611818565b50505060009485525050600b602052505060409020805460ff19166001179055565b610c7e611831565b600d55565b610c8b6116d2565b600954600160a81b900460ff16610cb45760405162461bcd60e51b81526004016108fd906136b6565b61094883838361188b565b6000610cca826114da565b600082815260066020526040902054600580549091908110610cee57610cee61354a565b9060005260206000209060060201600101549050919050565b6000610d12836110da565b8210610d6b5760405162461bcd60e51b815260206004820152602260248201527f455243333532353a206f776e657220696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016108fd565b6001600160a01b0383166000908152600760205260409020805483908110610d9557610d9561354a565b9060005260206000200154905092915050565b610db06116d2565b6109488383836118bc565b610dc3611831565b610dcb6118d2565b565b610dd56116d2565b600954600160a81b900460ff16610dfe5760405162461bcd60e51b81526004016108fd906136b6565b610948838383611927565b6000610e1460055490565b8210610e6e5760405162461bcd60e51b815260206004820152602360248201527f455243333532353a20676c6f62616c20696e646578206f7574206f6620626f756044820152626e647360e81b60648201526084016108fd565b60058281548110610e8157610e8161354a565b9060005260206000209060060201600001549050919050565b610ea26116d2565b844210610ee35760405162461bcd60e51b815260206004820152600f60248201526e22bc3834b932b2103b37bab1b432b960891b60448201526064016108fd565b6000888152600b602052604090205460ff1615610f315760405162461bcd60e51b815260206004820152600c60248201526b111d5c1b1a58d85d19481a5960a21b60448201526064016108fd565b6001600160a01b0384163314610f795760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037bbb732b960991b60448201526064016108fd565b60008611610fba5760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b60448201526064016108fd565b610ff56040518060a001604052808a8152602001898152602001888152602001878152602001866001600160a01b0316815250848484611759565b610c548787611942565b611007611831565b600c610948828483613733565b600061101f826114da565b6000828152600660205260409020546005805490919081106110435761104361354a565b60009182526020909120600360069092020101546001600160a01b03169050806110ab5760405162461bcd60e51b8152602060048201526019602482015278115490cccd4c8d4e881a5b9d985b1a59081d1bdad95b881251603a1b60448201526064016108fd565b919050565b6110b8611831565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0382166111465760405162461bcd60e51b815260206004820152602b60248201527f455243333532353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084016108fd565b506001600160a01b031660009081526007602052604090205490565b61116a611831565b610dcb6000611974565b61117c611831565b610dcb6119c6565b600061118f84611014565b9050806001600160a01b0316836001600160a01b0316036111c25760405162461bcd60e51b81526004016108fd90613560565b336001600160a01b03821614806111de57506111de8133610680565b6111fa5760405162461bcd60e51b81526004016108fd906135a2565b611205848484611a09565b50505050565b6060600180546107ea90613510565b6000611225826114da565b6000828152600660205260409020546005805490919081106112495761124961354a565b9060005260206000209060060201600201549050919050565b61126d338383611b41565b5050565b6112796116d2565b600954600160a81b900460ff166112a25760405162461bcd60e51b81526004016108fd906136b6565b61120584848484611c0b565b60606112b9826114da565b60006112c36115c2565b6008549091506001600160a01b031661130f5760008151116112f45760405180602001604052806000815250610a2b565b806112fe846115d1565b6040516020016109a59291906137f3565b6008546040516344a5a61760e11b8152600481018590526001600160a01b039091169063894b4c2e906024016109e6565b600061134b836114da565b5060009182526004602090815260408084206001600160a01b0393909316845291905290205490565b606060006113806115c2565b6008549091506001600160a01b03166113e05760008151116113b1576040518060200160405280600081525061145b565b806113bb30611c3d565b6040516020016113cc929190613822565b60405160208183030381529060405261145b565b600860009054906101000a90046001600160a01b03166001600160a01b031663725fa09c6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611433573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261145b919081019061363f565b91505090565b611469611831565b6001600160a01b0381166114ce5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108fd565b6114d781611974565b50565b6114e381611c53565b6114d75760405162461bcd60e51b8152602060048201526019602482015278115490cccd4c8d4e881a5b9d985b1a59081d1bdad95b881251603a1b60448201526064016108fd565b60008181526006602052604090205460058054849290811061154f5761154f61354a565b6000918252602090912060069091020160040180546001600160a01b0319166001600160a01b039283161790558190831661158982611014565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6060600c80546107ea90613510565b6060816000036115f85750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611622578061160c8161387c565b915061161b9050600a836138ab565b91506115fc565b60008167ffffffffffffffff81111561163d5761163d6133a0565b6040519080825280601f01601f191660200182016040528015611667576020820181803683370190505b5090505b8415610aa05761167c6001836138bf565b9150611689600a866138d6565b6116949060306138ea565b60f81b8183815181106116a9576116a961354a565b60200101906001600160f81b031916908160001a9053506116cb600a866138ab565b945061166b565b600954600160a01b900460ff1615610dcb5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108fd565b600061172c338584611c9f565b600061173785611d2f565b905061174e848261174788610cbf565b6000611d39565b610aa0858285611e5e565b6000600161176686612109565b6040805160008152602081018083529290925260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156117b4573d6000803e3d6000fd5b5050604051601f190151600a549092506001600160a01b0380841691161490506118115760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b21039b4b3b732b960911b60448201526064016108fd565b5050505050565b60008061182361224d565b9050610aa085828686611d39565b6009546001600160a01b03163314610dcb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108fd565b6118953382612264565b6118b15760405162461bcd60e51b81526004016108fd90613902565b6109488383836122cc565b6118c7338483611c9f565b610948838383611e5e565b6118da61242d565b6009805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b61094883838360405180602001604052806000815250611271565b61194b826114da565b600061195683611014565b9050600061196384610cbf565b905061196f8484612485565b611205565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6119ce6116d2565b6009805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861190a3390565b6001600160a01b038216611a725760405162461bcd60e51b815260206004820152602a60248201527f455243333532353a20617070726f76652076616c756520746f20746865207a65604482015269726f206164647265737360b01b60648201526084016108fd565b611a7c828461250a565b611ae257600083815260066020526040902054600580549091908110611aa457611aa461354a565b60009182526020808320600692909202909101600501805460018101825590835291200180546001600160a01b0319166001600160a01b0384161790555b60008381526004602090815260408083206001600160a01b038616808552908352928190208490555183815285917f621b050de0ad08b51d19b48b3e6df75348c4de6bdd93e81b252ca62e28265b1b91015b60405180910390a3505050565b816001600160a01b0316836001600160a01b031603611ba25760405162461bcd60e51b815260206004820152601a60248201527f455243333532353a20617070726f766520746f2063616c6c657200000000000060448201526064016108fd565b6001600160a01b0383811660008181526007602090815260408083209487168084526002909501825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101611b34565b611c153383612264565b611c315760405162461bcd60e51b81526004016108fd90613902565b611205848484846125dd565b60606107d56001600160a01b0383166014612650565b600554600090158015906107d55750600082815260066020526040902054600580548492908110611c8657611c8661354a565b9060005260206000209060060201600001541492915050565b6000611cab8385611340565b9050611cb78484612264565b158015611cc657506000198114155b156112055781811015611d1b5760405162461bcd60e51b815260206004820152601f60248201527f455243333532353a20696e73756666696369656e7420616c6c6f77616e63650060448201526064016108fd565b6112058385611d2a85856138bf565b611a09565b60006107d561224d565b6001600160a01b038416611d995760405162461bcd60e51b815260206004820152602160248201527f455243333532353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b60648201526084016108fd565b82600003611df35760405162461bcd60e51b815260206004820152602160248201527f455243333532353a2063616e6e6f74206d696e74207a65726f20746f6b656e496044820152601960fa1b60648201526084016108fd565b611dfc83611c53565b15611e495760405162461bcd60e51b815260206004820152601d60248201527f455243333532353a20746f6b656e20616c7265616479206d696e74656400000060448201526064016108fd565b611e548484846127ec565b61196f8382612485565b611e6783611c53565b611ec35760405162461bcd60e51b815260206004820152602760248201527f455243333532353a207472616e736665722066726f6d20696e76616c696420746044820152661bdad95b88125160ca1b60648201526084016108fd565b611ecc82611c53565b611f265760405162461bcd60e51b815260206004820152602560248201527f455243333532353a207472616e7366657220746f20696e76616c696420746f6b604482015264195b88125160da1b60648201526084016108fd565b600083815260066020526040812054600580549091908110611f4a57611f4a61354a565b9060005260206000209060060201905060006005600660008681526020019081526020016000205481548110611f8257611f8261354a565b906000526020600020906006020190508282600201541015611ff95760405162461bcd60e51b815260206004820152602a60248201527f455243333532353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b60648201526084016108fd565b80600101548260010154146120675760405162461bcd60e51b815260206004820152602e60248201527f455243333532353a207472616e7366657220746f20746f6b656e20776974682060448201526d191a5999995c995b9d081cdb1bdd60921b60648201526084016108fd565b8282600201600082825461207b91906138bf565b925050819055508281600201600082825461209691906138ea565b9091555050604051838152849086907f0b2aac84f3ec956911fd78eae5311062972ff949f38412e8da39069d9f068cc69060200160405180910390a36120ed858585604051806020016040528060008152506128b2565b6118115760405162461bcd60e51b81526004016108fd90613954565b6000612208604080518082018252600d81526c04c4f4f5461444f47204461707609c1b6020918201528151808301835260018152603160f81b9082015281517fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac56472818301527f7adf56923e686bb1b093759a744659a5bc83da4e64912930cd2c64f30774ef92818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a08201527ff2d857f4a3edcb9b78b4d503bfe733db1e3f6cdc2b7971ee739626c97e86a55860c0808301919091528351808303909101815260e0909101909252815191012090565b61221183612a36565b60405161190160f01b6020820152602281019290925260428201526062015b604051602081830303815290604052805190602001209050919050565b600061225d600380546001019055565b5060035490565b600061226f826114da565b600061227a83611014565b9050806001600160a01b0316846001600160a01b031614806122a157506122a18185610680565b80610aa05750836001600160a01b03166122ba8461086d565b6001600160a01b031614949350505050565b826001600160a01b03166122df82611014565b6001600160a01b0316146123415760405162461bcd60e51b8152602060048201526024808201527f455243333532353a207472616e736665722066726f6d20696e76616c6964206f6044820152633bb732b960e11b60648201526084016108fd565b6001600160a01b0382166123a55760405162461bcd60e51b815260206004820152602560248201527f455243333532353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b60648201526084016108fd565b60006123b082610cbf565b905060006123bd8361121a565b90506123ca60008461152b565b6123d383612ab1565b6123dd8584612b4d565b6123e78484612c6e565b82846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611811565b600954600160a01b900460ff16610dcb5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108fd565b505050505050565b6000828152600660205260409020546005805483929081106124a9576124a961354a565b906000526020600020906006020160020160008282546124c991906138ea565b909155505060405181815282906000907f0b2aac84f3ec956911fd78eae5311062972ff949f38412e8da39069d9f068cc69060200160405180910390a35050565b60008181526006602052604081205460058054839290811061252e5761252e61354a565b6000918252602082206005600690920201015491505b818110156125d257600084815260066020526040902054600580546001600160a01b038816929081106125795761257961354a565b9060005260206000209060060201600501828154811061259b5761259b61354a565b6000918252602090912001546001600160a01b0316036125c0576001925050506107d5565b806125ca8161387c565b915050612544565b506000949350505050565b6125e88484846122cc565b6125f484848484612cf7565b6112055760405162461bcd60e51b815260206004820152602760248201527f455243333532353a207472616e7366657220746f206e6f6e204552433732315260448201526632b1b2b4bb32b960c91b60648201526084016108fd565b6060600061265f83600261399c565b61266a9060026138ea565b67ffffffffffffffff811115612682576126826133a0565b6040519080825280601f01601f1916602001820160405280156126ac576020820181803683370190505b509050600360fc1b816000815181106126c7576126c761354a565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106126f6576126f661354a565b60200101906001600160f81b031916908160001a905350600061271a84600261399c565b6127259060016138ea565b90505b600181111561279d576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106127595761275961354a565b1a60f81b82828151811061276f5761276f61354a565b60200101906001600160f81b031916908160001a90535060049490941c93612796816139bb565b9050612728565b508315610a2b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108fd565b6040805160c081018252838152602080820184905260008284018190526001600160a01b038716606084015260808301819052835181815291820190935260a0820152905061283a81612ea4565b6128448484612c6e565b60405183906001600160a01b038616906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4816000847fe4f48c240d3b994948aa54f3e2f5fca59263dfe1d52b6e4cf39a5d249b5ccb6560405160405180910390a450505050565b6000806128be85611014565b90506001600160a01b0381163b1515801561294257506040516301ffc9a760e01b8152629ce20b60e01b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa15801561291e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294291906139d2565b15612a2c57604051629ce20b60e01b81526001600160a01b03821690629ce20b906129799033908a908a908a908a906004016139ef565b6020604051808303816000875af19250505080156129b4575060408051601f3d908101601f191682019092526129b191810190613a2d565b60015b612a11573d8080156129e2576040519150601f19603f3d011682016040523d82523d6000602084013e6129e7565b606091505b508051600003612a095760405162461bcd60e51b81526004016108fd90613954565b805181602001fd5b6001600160e01b031916629ce20b60e01b149150610aa09050565b6001915050610aa0565b8051602080830151604080850151606086015160808701519251600096612230967f4bd317336ea30fdfa31168cda381dacdf9ed1dd92eda94108d28629b6cf9b8c7969195919493920195865260208601949094526040850192909252606084015260808301526001600160a01b031660a082015260c00190565b600081815260066020526040812054600580549091908110612ad557612ad561354a565b600091825260208220600560069092020190810154909250905b81811015611205576000836005018281548110612b0e57612b0e61354a565b60009182526020808320909101548783526004825260408084206001600160a01b03909216845291528120555080612b458161387c565b915050612aef565b600081815260066020526040812054600580549091908110612b7157612b7161354a565b6000918252602080832060069290920290910160030180546001600160a01b0319166001600160a01b0394851617905591841681526007909152604081208054909190612bc0906001906138bf565b90506000826000018281548110612bd957612bd961354a565b90600052602060002001549050600083600101600086815260200190815260200160002054905081846000018281548110612c1657612c1661354a565b60009182526020808320909101929092558381526001860190915260408082208390558682528120558354849080612c5057612c50613a4a565b60019003818190600052602060002001600090559055505050505050565b600081815260066020526040902054600580548492908110612c9257612c9261354a565b6000918252602080832060069290920290910160030180546001600160a01b0319166001600160a01b03948516179055939091168152600780845260408083208054858552600182810188529285208190559286529082018155825292902090910155565b60006001600160a01b0384163b15158015612d7c57506040516301ffc9a760e01b8152630a85bd0160e11b60048201526001600160a01b038516906301ffc9a790602401602060405180830381865afa158015612d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d7c91906139d2565b15612e9c57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612db3903390899088908890600401613a60565b6020604051808303816000875af1925050508015612dee575060408051601f3d908101601f19168201909252612deb91810190613a2d565b60015b612e82573d808015612e1c576040519150601f19603f3d011682016040523d82523d6000602084013e612e21565b606091505b508051600003612a095760405162461bcd60e51b815260206004820152602660248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201526531b2b4bb32b960d11b60648201526084016108fd565b6001600160e01b031916630a85bd0160e11b149050610aa0565b506001610aa0565b600580548251600090815260066020818152604080842085905560018501865594909252845192027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db08101928355818501517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db1820155928401517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db284015560608401517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db3840180546001600160a01b039283166001600160a01b03199182161790915560808601517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db48601805491909316911617905560a084015180518594611205937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db5909101920190828054828255906000526020600020908101928215613043579160200282015b8281111561304357825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061300e565b5061304f929150613053565b5090565b5b8082111561304f5760008155600101613054565b6001600160e01b0319811681146114d757600080fd5b60006020828403121561309057600080fd5b8135610a2b81613068565b60005b838110156130b657818101518382015260200161309e565b838111156112055750506000910152565b600081518084526130df81602086016020860161309b565b601f01601f19169290920160200192915050565b602081526000610a2b60208301846130c7565b60006020828403121561311857600080fd5b5035919050565b80356001600160a01b03811681146110ab57600080fd5b6000806040838503121561314957600080fd5b6131528361311f565b946020939093013593505050565b60008060006060848603121561317557600080fd5b833592506131856020850161311f565b9150604084013590509250925092565b803560ff811681146110ab57600080fd5b600080600080600080600060e0888a0312156131c157600080fd5b8735965060208801359550604088013594506131df6060890161311f565b93506131ed60808901613195565b925060a0880135915060c0880135905092959891949750929550565b60008060006060848603121561321e57600080fd5b6132278461311f565b92506131856020850161311f565b60008060006060848603121561324a57600080fd5b505081359360208301359350604090920135919050565b600080600080600080600080610100898b03121561327e57600080fd5b883597506020890135965060408901359550606089013594506132a360808a0161311f565b93506132b160a08a01613195565b925060c0890135915060e089013590509295985092959890939650565b600080602083850312156132e157600080fd5b823567ffffffffffffffff808211156132f957600080fd5b818501915085601f83011261330d57600080fd5b81358181111561331c57600080fd5b86602082850101111561332e57600080fd5b60209290920196919550909350505050565b60006020828403121561335257600080fd5b610a2b8261311f565b80151581146114d757600080fd5b6000806040838503121561337c57600080fd5b6133858361311f565b915060208301356133958161335b565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156133df576133df6133a0565b604052919050565b600067ffffffffffffffff821115613401576134016133a0565b50601f01601f191660200190565b6000806000806080858703121561342557600080fd5b61342e8561311f565b935061343c6020860161311f565b925060408501359150606085013567ffffffffffffffff81111561345f57600080fd5b8501601f8101871361347057600080fd5b803561348361347e826133e7565b6133b6565b81815288602083850101111561349857600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b600080604083850312156134cd57600080fd5b823591506134dd6020840161311f565b90509250929050565b600080604083850312156134f957600080fd5b6135028361311f565b91506134dd6020840161311f565b600181811c9082168061352457607f821691505b60208210810361354457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60208082526022908201527f455243333532353a20617070726f76616c20746f2063757272656e74206f776e60408201526132b960f11b606082015260800190565b60208082526039908201527f455243333532353a20617070726f76652063616c6c6572206973206e6f74206f60408201527f776e6572206e6f7220617070726f76656420666f7220616c6c00000000000000606082015260800190565b6000835161361181846020880161309b565b64736c6f742f60d81b908301908152835161363381600584016020880161309b565b01600501949350505050565b60006020828403121561365157600080fd5b815167ffffffffffffffff81111561366857600080fd5b8201601f8101841361367957600080fd5b805161368761347e826133e7565b81815285602083850101111561369c57600080fd5b6136ad82602083016020860161309b565b95945050505050565b6020808252601d908201527f546f6b656e20646f6573206e6f7420616c6c6f77207472616e73666572000000604082015260600190565b601f82111561094857600081815260208120601f850160051c810160208610156137145750805b601f850160051c820191505b8181101561247d57828155600101613720565b67ffffffffffffffff83111561374b5761374b6133a0565b61375f836137598354613510565b836136ed565b6000601f841160018114613793576000851561377b5750838201355b600019600387901b1c1916600186901b178355611811565b600083815260209020601f19861690835b828110156137c457868501358255602094850194600190920191016137a4565b50868210156137e15760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000835161380581846020880161309b565b83519083019061381981836020880161309b565b01949350505050565b6000835161383481846020880161309b565b68636f6e74726163742f60b81b908301908152835161385a81600984016020880161309b565b01600901949350505050565b634e487b7160e01b600052601160045260246000fd5b60006001820161388e5761388e613866565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826138ba576138ba613895565b500490565b6000828210156138d1576138d1613866565b500390565b6000826138e5576138e5613895565b500690565b600082198211156138fd576138fd613866565b500190565b60208082526032908201527f455243333532353a207472616e736665722063616c6c6572206973206e6f74206040820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b606082015260800190565b60208082526028908201527f455243333532353a207472616e7366657220746f206e6f6e20455243333532356040820152672932b1b2b4bb32b960c11b606082015260800190565b60008160001904831182151516156139b6576139b6613866565b500290565b6000816139ca576139ca613866565b506000190190565b6000602082840312156139e457600080fd5b8151610a2b8161335b565b60018060a01b038616815284602082015283604082015282606082015260a060808201526000613a2260a08301846130c7565b979650505050505050565b600060208284031215613a3f57600080fd5b8151610a2b81613068565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613a93908301846130c7565b969550505050505056fea2646970667358221220e2ad52a24bcfe504f6e72a3537011dff23006983c70992647239373d09abd19664736f6c634300080f0033

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.