Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 310 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18310893 | 433 days ago | IN | 0 ETH | 0.00024419 | ||||
Set Approval For... | 16587272 | 676 days ago | IN | 0 ETH | 0.00136247 | ||||
Set Approval For... | 16587209 | 676 days ago | IN | 0 ETH | 0.00138352 | ||||
Set Approval For... | 16440973 | 696 days ago | IN | 0 ETH | 0.00072799 | ||||
Set Approval For... | 16262233 | 721 days ago | IN | 0 ETH | 0.00059277 | ||||
Set Approval For... | 16209767 | 728 days ago | IN | 0 ETH | 0.00061426 | ||||
Safe Transfer Fr... | 16163318 | 735 days ago | IN | 0 ETH | 0.00117697 | ||||
Set Approval For... | 16083297 | 746 days ago | IN | 0 ETH | 0.00057709 | ||||
Transfer Ownersh... | 15942733 | 766 days ago | IN | 0 ETH | 0.00057805 | ||||
Safe Transfer Fr... | 15779179 | 789 days ago | IN | 0 ETH | 0.00141245 | ||||
Set Approval For... | 15778742 | 789 days ago | IN | 0 ETH | 0.00080488 | ||||
Set Approval For... | 15734148 | 795 days ago | IN | 0 ETH | 0.00080763 | ||||
Set Approval For... | 15590485 | 815 days ago | IN | 0 ETH | 0.00079345 | ||||
Transfer From | 15590360 | 815 days ago | IN | 0 ETH | 0.00104937 | ||||
Transfer From | 15449409 | 837 days ago | IN | 0 ETH | 0.00146534 | ||||
Set Approval For... | 15211260 | 874 days ago | IN | 0 ETH | 0.00029603 | ||||
Set Approval For... | 15199658 | 876 days ago | IN | 0 ETH | 0.00074902 | ||||
Transfer From | 15135243 | 886 days ago | IN | 0 ETH | 0.00318067 | ||||
Set Approval For... | 15089469 | 893 days ago | IN | 0 ETH | 0.00165829 | ||||
Set Approval For... | 15050692 | 899 days ago | IN | 0 ETH | 0.0019979 | ||||
Transfer From | 15035422 | 902 days ago | IN | 0 ETH | 0.00687837 | ||||
Set Approval For... | 15010692 | 907 days ago | IN | 0 ETH | 0.00072787 | ||||
Set Approval For... | 15010337 | 907 days ago | IN | 0 ETH | 0.00147386 | ||||
Set Approval For... | 15010281 | 907 days ago | IN | 0 ETH | 0.00088998 | ||||
Set Approval For... | 15010279 | 907 days ago | IN | 0 ETH | 0.00085361 |
Loading...
Loading
Contract Name:
TheKingDome
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-23 */ // SPDX-License-Identifier: MIT // File @openzeppelin/contracts/utils/introspection/[email protected] // 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); } // File @openzeppelin/contracts/token/ERC721/[email protected] // OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } // File @openzeppelin/contracts/token/ERC721/[email protected] // OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721Receiver.sol) pragma solidity ^0.8.0; /** * @title ERC721 token receiver interface * @dev Interface for any contract that wants to support safeTransfers * from ERC721 asset contracts. */ interface IERC721Receiver { /** * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} * by `operator` from `from`, this function is called. * * It must return its Solidity selector to confirm the token transfer. * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. * * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`. */ function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } // File @openzeppelin/contracts/token/ERC721/extensions/[email protected] // OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol) pragma solidity ^0.8.0; /** * @title ERC-721 Non-Fungible Token Standard, optional metadata extension * @dev See https://eips.ethereum.org/EIPS/eip-721 */ interface IERC721Metadata is IERC721 { /** * @dev Returns the token collection name. */ function name() external view returns (string memory); /** * @dev Returns the token collection symbol. */ function symbol() external view returns (string memory); /** * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ function tokenURI(uint256 tokenId) external view returns (string memory); } // File @openzeppelin/contracts/utils/[email protected] // OpenZeppelin Contracts (last updated v4.5.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 * ==== * * [IMPORTANT] * ==== * You shouldn't rely on `isContract` to protect against flash loan attacks! * * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract * constructor. * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize/address.code.length, which returns 0 // for contracts in construction, since the code is only stored at the end // of the constructor execution. return account.code.length > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } // File @openzeppelin/contracts/utils/[email protected] // 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; } } // File @openzeppelin/contracts/utils/[email protected] // OpenZeppelin Contracts v4.4.1 (utils/Strings.sol) pragma solidity ^0.8.0; /** * @dev String operations. */ library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; /** * @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++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. */ function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. */ function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } // File @openzeppelin/contracts/utils/introspection/[email protected] // OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol) pragma solidity ^0.8.0; /** * @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) { return interfaceId == type(IERC165).interfaceId; } } // File @openzeppelin/contracts/token/ERC721/[email protected] // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/ERC721.sol) pragma solidity ^0.8.0; /** * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including * the Metadata extension, but not including the Enumerable extension, which is available separately as * {ERC721Enumerable}. */ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { using Address for address; using Strings for uint256; // Token name string private _name; // Token symbol string private _symbol; // Mapping from token ID to owner address mapping(uint256 => address) private _owners; // Mapping owner address to token count mapping(address => uint256) private _balances; // Mapping from token ID to approved address mapping(uint256 => address) private _tokenApprovals; // Mapping from owner to operator approvals mapping(address => mapping(address => bool)) private _operatorApprovals; /** * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } /** * @dev See {IERC721-balanceOf}. */ function balanceOf(address owner) public view virtual override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _balances[owner]; } /** * @dev See {IERC721-ownerOf}. */ function ownerOf(uint256 tokenId) public view virtual override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: owner query for nonexistent token"); return owner; } /** * @dev See {IERC721Metadata-name}. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev See {IERC721Metadata-symbol}. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev See {IERC721Metadata-tokenURI}. */ function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); string memory baseURI = _baseURI(); return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : ""; } /** * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each * token will be the concatenation of the `baseURI` and the `tokenId`. Empty * by default, can be overriden in child contracts. */ function _baseURI() internal view virtual returns (string memory) { return ""; } /** * @dev See {IERC721-approve}. */ function approve(address to, uint256 tokenId) public virtual override { address owner = ERC721.ownerOf(tokenId); require(to != owner, "ERC721: approval to current owner"); require( _msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: approve caller is not owner nor approved for all" ); _approve(to, tokenId); } /** * @dev See {IERC721-getApproved}. */ function getApproved(uint256 tokenId) public view virtual override returns (address) { require(_exists(tokenId), "ERC721: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } /** * @dev See {IERC721-setApprovalForAll}. */ function setApprovalForAll(address operator, bool approved) public virtual override { _setApprovalForAll(_msgSender(), operator, approved); } /** * @dev See {IERC721-isApprovedForAll}. */ function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { return _operatorApprovals[owner][operator]; } /** * @dev See {IERC721-transferFrom}. */ function transferFrom( address from, address to, uint256 tokenId ) public virtual override { //solhint-disable-next-line max-line-length require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } /** * @dev See {IERC721-safeTransferFrom}. */ function safeTransferFrom( address from, address to, uint256 tokenId ) public virtual override { safeTransferFrom(from, to, tokenId, ""); } /** * @dev See {IERC721-safeTransferFrom}. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * `_data` is additional data, it has no specified format and it is sent in call to `to`. * * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g. * implement alternative mechanisms to perform token transfer, such as signature-based. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function _safeTransfer( address from, address to, uint256 tokenId, bytes memory _data ) internal virtual { _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); } /** * @dev Returns whether `tokenId` exists. * * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}. * * Tokens start existing when they are minted (`_mint`), * and stop existing when they are burned (`_burn`). */ function _exists(uint256 tokenId) internal view virtual returns (bool) { return _owners[tokenId] != address(0); } /** * @dev Returns whether `spender` is allowed to manage `tokenId`. * * Requirements: * * - `tokenId` must exist. */ function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = ERC721.ownerOf(tokenId); return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); } /** * @dev Safely mints `tokenId` and transfers it to `to`. * * Requirements: * * - `tokenId` must not exist. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function _safeMint(address to, uint256 tokenId) internal virtual { _safeMint(to, tokenId, ""); } /** * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is * forwarded in {IERC721Receiver-onERC721Received} to contract recipients. */ function _safeMint( address to, uint256 tokenId, bytes memory _data ) internal virtual { _mint(to, tokenId); require( _checkOnERC721Received(address(0), to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer" ); } /** * @dev Mints `tokenId` and transfers it to `to`. * * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible * * Requirements: * * - `tokenId` must not exist. * - `to` cannot be the zero address. * * Emits a {Transfer} event. */ function _mint(address to, uint256 tokenId) internal virtual { require(to != address(0), "ERC721: mint to the zero address"); require(!_exists(tokenId), "ERC721: token already minted"); _beforeTokenTransfer(address(0), to, tokenId); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); _afterTokenTransfer(address(0), to, tokenId); } /** * @dev Destroys `tokenId`. * The approval is cleared when the token is burned. * * Requirements: * * - `tokenId` must exist. * * Emits a {Transfer} event. */ function _burn(uint256 tokenId) internal virtual { address owner = ERC721.ownerOf(tokenId); _beforeTokenTransfer(owner, address(0), tokenId); // Clear approvals _approve(address(0), tokenId); _balances[owner] -= 1; delete _owners[tokenId]; emit Transfer(owner, address(0), tokenId); _afterTokenTransfer(owner, address(0), tokenId); } /** * @dev Transfers `tokenId` from `from` to `to`. * As opposed to {transferFrom}, this imposes no restrictions on msg.sender. * * Requirements: * * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * * Emits a {Transfer} event. */ function _transfer( address from, address to, uint256 tokenId ) internal virtual { require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer from incorrect owner"); require(to != address(0), "ERC721: transfer to the zero address"); _beforeTokenTransfer(from, to, tokenId); // Clear approvals from the previous owner _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); _afterTokenTransfer(from, to, tokenId); } /** * @dev Approve `to` to operate on `tokenId` * * Emits a {Approval} event. */ function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ERC721.ownerOf(tokenId), to, tokenId); } /** * @dev Approve `operator` to operate on all of `owner` tokens * * Emits a {ApprovalForAll} event. */ function _setApprovalForAll( address owner, address operator, bool approved ) internal virtual { require(owner != operator, "ERC721: approve to caller"); _operatorApprovals[owner][operator] = approved; emit ApprovalForAll(owner, operator, approved); } /** * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address. * The call is not executed if the target address is not a contract. * * @param from address representing the previous owner of the given token ID * @param to target address that will receive the tokens * @param tokenId uint256 ID of the token to be transferred * @param _data bytes optional data to send along with the call * @return bool whether the call correctly returned the expected magic value */ function _checkOnERC721Received( address from, address to, uint256 tokenId, bytes memory _data ) private returns (bool) { if (to.isContract()) { try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { return retval == IERC721Receiver.onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); } else { assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } /** * @dev Hook that is called before any token transfer. This includes minting * and burning. * * Calling conditions: * * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be * transferred to `to`. * - When `from` is zero, `tokenId` will be minted for `to`. * - When `to` is zero, ``from``'s `tokenId` will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 tokenId ) internal virtual {} } // File @openzeppelin/contracts/token/ERC721/extensions/[email protected] // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/extensions/IERC721Enumerable.sol) pragma solidity ^0.8.0; /** * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension * @dev See https://eips.ethereum.org/EIPS/eip-721 */ interface IERC721Enumerable is IERC721 { /** * @dev Returns the total amount of tokens stored by the contract. */ function totalSupply() external view returns (uint256); /** * @dev Returns a token ID owned by `owner` at a given `index` of its token list. * Use along with {balanceOf} to enumerate all of ``owner``'s tokens. */ function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256); /** * @dev Returns a token ID at a given `index` of all the tokens stored by the contract. * Use along with {totalSupply} to enumerate all tokens. */ function tokenByIndex(uint256 index) external view returns (uint256); } // File @openzeppelin/contracts/token/ERC721/extensions/[email protected] // OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/ERC721Enumerable.sol) pragma solidity ^0.8.0; /** * @dev This implements an optional extension of {ERC721} defined in the EIP that adds * enumerability of all the token ids in the contract as well as all token ids owned by each * account. */ abstract contract ERC721Enumerable is ERC721, IERC721Enumerable { // Mapping from owner to list of owned token IDs mapping(address => mapping(uint256 => uint256)) private _ownedTokens; // Mapping from token ID to index of the owner tokens list mapping(uint256 => uint256) private _ownedTokensIndex; // Array with all token ids, used for enumeration uint256[] private _allTokens; // Mapping from token id to position in the allTokens array mapping(uint256 => uint256) private _allTokensIndex; /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) { return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId); } /** * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}. */ function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) { require(index < ERC721.balanceOf(owner), "ERC721Enumerable: owner index out of bounds"); return _ownedTokens[owner][index]; } /** * @dev See {IERC721Enumerable-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _allTokens.length; } /** * @dev See {IERC721Enumerable-tokenByIndex}. */ function tokenByIndex(uint256 index) public view virtual override returns (uint256) { require(index < ERC721Enumerable.totalSupply(), "ERC721Enumerable: global index out of bounds"); return _allTokens[index]; } /** * @dev Hook that is called before any token transfer. This includes minting * and burning. * * Calling conditions: * * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be * transferred to `to`. * - When `from` is zero, `tokenId` will be minted for `to`. * - When `to` is zero, ``from``'s `tokenId` will be burned. * - `from` cannot be the zero address. * - `to` cannot be the zero address. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual override { super._beforeTokenTransfer(from, to, tokenId); if (from == address(0)) { _addTokenToAllTokensEnumeration(tokenId); } else if (from != to) { _removeTokenFromOwnerEnumeration(from, tokenId); } if (to == address(0)) { _removeTokenFromAllTokensEnumeration(tokenId); } else if (to != from) { _addTokenToOwnerEnumeration(to, tokenId); } } /** * @dev Private function to add a token to this extension's ownership-tracking data structures. * @param to address representing the new owner of the given token ID * @param tokenId uint256 ID of the token to be added to the tokens list of the given address */ function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private { uint256 length = ERC721.balanceOf(to); _ownedTokens[to][length] = tokenId; _ownedTokensIndex[tokenId] = length; } /** * @dev Private function to add a token to this extension's token tracking data structures. * @param tokenId uint256 ID of the token to be added to the tokens list */ function _addTokenToAllTokensEnumeration(uint256 tokenId) private { _allTokensIndex[tokenId] = _allTokens.length; _allTokens.push(tokenId); } /** * @dev Private function to remove a token from this extension's ownership-tracking data structures. Note that * while the token is not assigned a new owner, the `_ownedTokensIndex` mapping is _not_ updated: this allows for * gas optimizations e.g. when performing a transfer operation (avoiding double writes). * This has O(1) time complexity, but alters the order of the _ownedTokens array. * @param from address representing the previous owner of the given token ID * @param tokenId uint256 ID of the token to be removed from the tokens list of the given address */ function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private { // To prevent a gap in from's tokens array, we store the last token in the index of the token to delete, and // then delete the last slot (swap and pop). uint256 lastTokenIndex = ERC721.balanceOf(from) - 1; uint256 tokenIndex = _ownedTokensIndex[tokenId]; // When the token to delete is the last token, the swap operation is unnecessary if (tokenIndex != lastTokenIndex) { uint256 lastTokenId = _ownedTokens[from][lastTokenIndex]; _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index } // This also deletes the contents at the last position of the array delete _ownedTokensIndex[tokenId]; delete _ownedTokens[from][lastTokenIndex]; } /** * @dev Private function to remove a token from this extension's token tracking data structures. * This has O(1) time complexity, but alters the order of the _allTokens array. * @param tokenId uint256 ID of the token to be removed from the tokens list */ function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private { // To prevent a gap in the tokens array, we store the last token in the index of the token to delete, and // then delete the last slot (swap and pop). uint256 lastTokenIndex = _allTokens.length - 1; uint256 tokenIndex = _allTokensIndex[tokenId]; // When the token to delete is the last token, the swap operation is unnecessary. However, since this occurs so // rarely (when the last minted token is burnt) that we still do the swap here to avoid the gas cost of adding // an 'if' statement (like in _removeTokenFromOwnerEnumeration) uint256 lastTokenId = _allTokens[lastTokenIndex]; _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index // This also deletes the contents at the last position of the array delete _allTokensIndex[tokenId]; _allTokens.pop(); } } // File @openzeppelin/contracts/access/[email protected] // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; /** * @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. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File TheKingDome.sol // The KingDome // Mint your KingDome Jersey NFT and join us to redefine live events in the Metaverse pragma solidity >=0.7.0 <0.9.0; contract TheKingDome is ERC721Enumerable, Ownable { using Strings for uint256; string public baseURI; string public baseExtension = ".json"; string public notRevealedUri; uint256 public cost = 0.15 ether; uint256 public maxSupply = 8888; uint256 public maxMintAmount = 10; uint256 public nftPerAddressLimit = 10; bool public paused = true; bool public revealed = false; bool public onlyWhitelisted = true; bool public metadataIsFrozen = false; mapping(address => bool) public whitelistedAddresses; mapping(address => uint256) public addressMintedBalance; constructor( string memory _name, string memory _symbol, string memory _initBaseURI, string memory _initNotRevealedUri ) ERC721(_name, _symbol) { setBaseURI(_initBaseURI); setNotRevealedURI(_initNotRevealedUri); } // internal function _baseURI() internal view virtual override returns (string memory) { return baseURI; } // public function mint(uint256 _mintAmount) public payable { require(!paused, "The contract is paused"); uint256 supply = totalSupply(); require(_mintAmount > 0, "Need to mint at least 1 NFT"); require(_mintAmount <= maxMintAmount, "Max mint amount per session exceeded"); require(supply + _mintAmount <= maxSupply, "Max NFT limit exceeded"); if (msg.sender != owner()) { if(onlyWhitelisted == true) { require(whitelistedAddresses[msg.sender] == true, "User is not whitelisted"); } uint256 ownerMintedCount = addressMintedBalance[msg.sender]; require(ownerMintedCount + _mintAmount <= nftPerAddressLimit, "Max NFT per address exceeded"); require(msg.value >= cost * _mintAmount, "Insufficient funds"); } for (uint256 i = 1; i <= _mintAmount; i++) { addressMintedBalance[msg.sender]++; _safeMint(msg.sender, supply + i); } } function walletOfOwner(address _owner) public view returns (uint256[] memory) { uint256 ownerTokenCount = balanceOf(_owner); uint256[] memory tokenIds = new uint256[](ownerTokenCount); for (uint256 i; i < ownerTokenCount; i++) { tokenIds[i] = tokenOfOwnerByIndex(_owner, i); } return tokenIds; } function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); if(revealed == false) { return notRevealedUri; } string memory currentBaseURI = _baseURI(); return bytes(currentBaseURI).length > 0 ? string(abi.encodePacked(currentBaseURI, tokenId.toString(), baseExtension)) : ""; } //only owner function reveal() public onlyOwner { revealed = true; } function setNftPerAddressLimit(uint256 _limit) public onlyOwner { nftPerAddressLimit = _limit; } function setCost(uint256 _newCost) public onlyOwner { cost = _newCost; } function setmaxMintAmount(uint256 _newmaxMintAmount) public onlyOwner { maxMintAmount = _newmaxMintAmount; } function setBaseURI(string memory _newBaseURI) public onlyOwner { require(!metadataIsFrozen, "Metadata is permanently frozen"); baseURI = _newBaseURI; } function freezeMetadata() external onlyOwner { require(!metadataIsFrozen, "Metadata is already frozen"); metadataIsFrozen = true; } function setBaseExtension(string memory _newBaseExtension) public onlyOwner { require(!metadataIsFrozen, "Metadata is permanently frozen"); baseExtension = _newBaseExtension; } function setNotRevealedURI(string memory _notRevealedURI) public onlyOwner { notRevealedUri = _notRevealedURI; } function pause(bool _state) public onlyOwner { paused = _state; } function setOnlyWhitelisted(bool _state) public onlyOwner { onlyWhitelisted = _state; } function initWhitelistUsers(address[] calldata _users) public onlyOwner { for (uint i = 0; i < _users.length; i++) { whitelistedAddresses[_users[i]] = true; } } function editWhitelistUsers(address _user, bool _state) public onlyOwner { whitelistedAddresses[_user] = _state; } function withdraw() public payable onlyOwner { (bool success, ) = payable(owner()).call{value: address(this).balance}(""); require(success); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string","name":"_initBaseURI","type":"string"},{"internalType":"string","name":"_initNotRevealedUri","type":"string"}],"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":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"addressMintedBalance","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":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseExtension","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_state","type":"bool"}],"name":"editWhitelistUsers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"freezeMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_users","type":"address[]"}],"name":"initWhitelistUsers","outputs":[],"stateMutability":"nonpayable","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":"maxMintAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"metadataIsFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftPerAddressLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notRevealedUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"onlyWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseExtension","type":"string"}],"name":"setBaseExtension","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newCost","type":"uint256"}],"name":"setCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"setNftPerAddressLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_notRevealedURI","type":"string"}],"name":"setNotRevealedURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"setOnlyWhitelisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newmaxMintAmount","type":"uint256"}],"name":"setmaxMintAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"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":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedAddresses","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}]
Contract Creation Code
60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600c90805190602001906200005192919062000430565b50670214e8348c4f0000600e556122b8600f55600a601055600a6011556001601260006101000a81548160ff0219169083151502179055506000601260016101000a81548160ff0219169083151502179055506001601260026101000a81548160ff0219169083151502179055506000601260036101000a81548160ff021916908315150217905550348015620000e757600080fd5b5060405162005c2138038062005c2183398181016040528101906200010d91906200055e565b838381600090805190602001906200012792919062000430565b5080600190805190602001906200014092919062000430565b50505062000163620001576200018f60201b60201c565b6200019760201b60201c565b62000174826200025d60201b60201c565b62000185816200035b60201b60201c565b50505050620008c5565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200026d6200018f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002936200040660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620002ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002e3906200069a565b60405180910390fd5b601260039054906101000a900460ff16156200033f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200033690620006bc565b60405180910390fd5b80600b90805190602001906200035792919062000430565b5050565b6200036b6200018f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620003916200040660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620003ea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003e1906200069a565b60405180910390fd5b80600d90805190602001906200040292919062000430565b5050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8280546200043e9062000784565b90600052602060002090601f016020900481019282620004625760008555620004ae565b82601f106200047d57805160ff1916838001178555620004ae565b82800160010185558215620004ae579182015b82811115620004ad57825182559160200191906001019062000490565b5b509050620004bd9190620004c1565b5090565b5b80821115620004dc576000816000905550600101620004c2565b5090565b6000620004f7620004f18462000707565b620006de565b90508281526020810184848401111562000516576200051562000853565b5b620005238482856200074e565b509392505050565b600082601f8301126200054357620005426200084e565b5b815162000555848260208601620004e0565b91505092915050565b600080600080608085870312156200057b576200057a6200085d565b5b600085015167ffffffffffffffff8111156200059c576200059b62000858565b5b620005aa878288016200052b565b945050602085015167ffffffffffffffff811115620005ce57620005cd62000858565b5b620005dc878288016200052b565b935050604085015167ffffffffffffffff8111156200060057620005ff62000858565b5b6200060e878288016200052b565b925050606085015167ffffffffffffffff81111562000632576200063162000858565b5b62000640878288016200052b565b91505092959194509250565b60006200065b6020836200073d565b9150620006688262000873565b602082019050919050565b600062000682601e836200073d565b91506200068f826200089c565b602082019050919050565b60006020820190508181036000830152620006b5816200064c565b9050919050565b60006020820190508181036000830152620006d78162000673565b9050919050565b6000620006ea620006fd565b9050620006f88282620007ba565b919050565b6000604051905090565b600067ffffffffffffffff8211156200072557620007246200081f565b5b620007308262000862565b9050602081019050919050565b600082825260208201905092915050565b60005b838110156200076e57808201518184015260208101905062000751565b838111156200077e576000848401525b50505050565b600060028204905060018216806200079d57607f821691505b60208210811415620007b457620007b3620007f0565b5b50919050565b620007c58262000862565b810181811067ffffffffffffffff82111715620007e757620007e66200081f565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d65746164617461206973207065726d616e656e746c792066726f7a656e0000600082015250565b61534c80620008d56000396000f3fe6080604052600436106102885760003560e01c80636c0360eb1161015a578063ba7d2c76116100c1578063d111515d1161007a578063d111515d146109b2578063d5abeb01146109c9578063da3ef23f146109f4578063e985e9c514610a1d578063f2c4ce1e14610a5a578063f2fde38b14610a8357610288565b8063ba7d2c76146108a2578063c0815c90146108cd578063c6682862146108f6578063c87b56dd14610921578063cf880fea1461095e578063d0eb26b01461098957610288565b80639c70b512116101135780639c70b512146107c9578063a0712d68146107f4578063a22cb46514610810578063a475b5dd14610839578063b88d4fde14610850578063b8c365731461087957610288565b80636c0360eb146106cb57806370a08231146106f6578063715018a6146107335780637f00c7a61461074a5780638da5cb5b1461077357806395d89b411461079e57610288565b806323b872dd116101fe57806344a0d68a116101b757806344a0d68a146105a95780634f6ccce7146105d2578063518302271461060f57806355f804b31461063a5780635c975abb146106635780636352211e1461068e57610288565b806323b872dd146104aa5780632f745c59146104d35780633c952764146105105780633ccfd60b1461053957806342842e0e14610543578063438b63001461056c57610288565b8063081c8c4411610250578063081c8c4414610398578063095ea7b3146103c357806313faede6146103ec57806318160ddd1461041757806318cae26914610442578063239c70ae1461047f57610288565b806301ffc9a71461028d57806302329a29146102ca57806306c933d8146102f357806306fdde0314610330578063081812fc1461035b575b600080fd5b34801561029957600080fd5b506102b460048036038101906102af9190613c17565b610aac565b6040516102c1919061435e565b60405180910390f35b3480156102d657600080fd5b506102f160048036038101906102ec9190613bea565b610b26565b005b3480156102ff57600080fd5b5061031a600480360381019061031591906139da565b610bbf565b604051610327919061435e565b60405180910390f35b34801561033c57600080fd5b50610345610bdf565b6040516103529190614379565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190613cba565b610c71565b60405161038f91906142d5565b60405180910390f35b3480156103a457600080fd5b506103ad610cf6565b6040516103ba9190614379565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e59190613b5d565b610d84565b005b3480156103f857600080fd5b50610401610e9c565b60405161040e91906146fb565b60405180910390f35b34801561042357600080fd5b5061042c610ea2565b60405161043991906146fb565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906139da565b610eaf565b60405161047691906146fb565b60405180910390f35b34801561048b57600080fd5b50610494610ec7565b6040516104a191906146fb565b60405180910390f35b3480156104b657600080fd5b506104d160048036038101906104cc9190613a47565b610ecd565b005b3480156104df57600080fd5b506104fa60048036038101906104f59190613b5d565b610f2d565b60405161050791906146fb565b60405180910390f35b34801561051c57600080fd5b5061053760048036038101906105329190613bea565b610fd2565b005b61054161106b565b005b34801561054f57600080fd5b5061056a60048036038101906105659190613a47565b611167565b005b34801561057857600080fd5b50610593600480360381019061058e91906139da565b611187565b6040516105a0919061433c565b60405180910390f35b3480156105b557600080fd5b506105d060048036038101906105cb9190613cba565b611235565b005b3480156105de57600080fd5b506105f960048036038101906105f49190613cba565b6112bb565b60405161060691906146fb565b60405180910390f35b34801561061b57600080fd5b5061062461132c565b604051610631919061435e565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190613c71565b61133f565b005b34801561066f57600080fd5b50610678611425565b604051610685919061435e565b60405180910390f35b34801561069a57600080fd5b506106b560048036038101906106b09190613cba565b611438565b6040516106c291906142d5565b60405180910390f35b3480156106d757600080fd5b506106e06114ea565b6040516106ed9190614379565b60405180910390f35b34801561070257600080fd5b5061071d600480360381019061071891906139da565b611578565b60405161072a91906146fb565b60405180910390f35b34801561073f57600080fd5b50610748611630565b005b34801561075657600080fd5b50610771600480360381019061076c9190613cba565b6116b8565b005b34801561077f57600080fd5b5061078861173e565b60405161079591906142d5565b60405180910390f35b3480156107aa57600080fd5b506107b3611768565b6040516107c09190614379565b60405180910390f35b3480156107d557600080fd5b506107de6117fa565b6040516107eb919061435e565b60405180910390f35b61080e60048036038101906108099190613cba565b61180d565b005b34801561081c57600080fd5b5061083760048036038101906108329190613b1d565b611ba1565b005b34801561084557600080fd5b5061084e611bb7565b005b34801561085c57600080fd5b5061087760048036038101906108729190613a9a565b611c50565b005b34801561088557600080fd5b506108a0600480360381019061089b9190613b1d565b611cb2565b005b3480156108ae57600080fd5b506108b7611d89565b6040516108c491906146fb565b60405180910390f35b3480156108d957600080fd5b506108f460048036038101906108ef9190613b9d565b611d8f565b005b34801561090257600080fd5b5061090b611eb0565b6040516109189190614379565b60405180910390f35b34801561092d57600080fd5b5061094860048036038101906109439190613cba565b611f3e565b6040516109559190614379565b60405180910390f35b34801561096a57600080fd5b50610973612097565b604051610980919061435e565b60405180910390f35b34801561099557600080fd5b506109b060048036038101906109ab9190613cba565b6120aa565b005b3480156109be57600080fd5b506109c7612130565b005b3480156109d557600080fd5b506109de612219565b6040516109eb91906146fb565b60405180910390f35b348015610a0057600080fd5b50610a1b6004803603810190610a169190613c71565b61221f565b005b348015610a2957600080fd5b50610a446004803603810190610a3f9190613a07565b612305565b604051610a51919061435e565b60405180910390f35b348015610a6657600080fd5b50610a816004803603810190610a7c9190613c71565b612399565b005b348015610a8f57600080fd5b50610aaa6004803603810190610aa591906139da565b61242f565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b1f5750610b1e82612527565b5b9050919050565b610b2e612609565b73ffffffffffffffffffffffffffffffffffffffff16610b4c61173e565b73ffffffffffffffffffffffffffffffffffffffff1614610ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b99906145db565b60405180910390fd5b80601260006101000a81548160ff02191690831515021790555050565b60136020528060005260406000206000915054906101000a900460ff1681565b606060008054610bee90614a04565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1a90614a04565b8015610c675780601f10610c3c57610100808354040283529160200191610c67565b820191906000526020600020905b815481529060010190602001808311610c4a57829003601f168201915b5050505050905090565b6000610c7c82612611565b610cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb2906145bb565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600d8054610d0390614a04565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2f90614a04565b8015610d7c5780601f10610d5157610100808354040283529160200191610d7c565b820191906000526020600020905b815481529060010190602001808311610d5f57829003601f168201915b505050505081565b6000610d8f82611438565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df79061463b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610e1f612609565b73ffffffffffffffffffffffffffffffffffffffff161480610e4e5750610e4d81610e48612609565b612305565b5b610e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e849061451b565b60405180910390fd5b610e97838361267d565b505050565b600e5481565b6000600880549050905090565b60146020528060005260406000206000915090505481565b60105481565b610ede610ed8612609565b82612736565b610f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f149061465b565b60405180910390fd5b610f28838383612814565b505050565b6000610f3883611578565b8210610f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f709061439b565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610fda612609565b73ffffffffffffffffffffffffffffffffffffffff16610ff861173e565b73ffffffffffffffffffffffffffffffffffffffff161461104e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611045906145db565b60405180910390fd5b80601260026101000a81548160ff02191690831515021790555050565b611073612609565b73ffffffffffffffffffffffffffffffffffffffff1661109161173e565b73ffffffffffffffffffffffffffffffffffffffff16146110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de906145db565b60405180910390fd5b60006110f161173e565b73ffffffffffffffffffffffffffffffffffffffff1647604051611114906142c0565b60006040518083038185875af1925050503d8060008114611151576040519150601f19603f3d011682016040523d82523d6000602084013e611156565b606091505b505090508061116457600080fd5b50565b61118283838360405180602001604052806000815250611c50565b505050565b6060600061119483611578565b905060008167ffffffffffffffff8111156111b2576111b1614bcc565b5b6040519080825280602002602001820160405280156111e05781602001602082028036833780820191505090505b50905060005b8281101561122a576111f88582610f2d565b82828151811061120b5761120a614b9d565b5b602002602001018181525050808061122290614a67565b9150506111e6565b508092505050919050565b61123d612609565b73ffffffffffffffffffffffffffffffffffffffff1661125b61173e565b73ffffffffffffffffffffffffffffffffffffffff16146112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a8906145db565b60405180910390fd5b80600e8190555050565b60006112c5610ea2565b8210611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd9061469b565b60405180910390fd5b6008828154811061131a57611319614b9d565b5b90600052602060002001549050919050565b601260019054906101000a900460ff1681565b611347612609565b73ffffffffffffffffffffffffffffffffffffffff1661136561173e565b73ffffffffffffffffffffffffffffffffffffffff16146113bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b2906145db565b60405180910390fd5b601260039054906101000a900460ff161561140b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114029061467b565b60405180910390fd5b80600b9080519060200190611421929190613798565b5050565b601260009054906101000a900460ff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d89061455b565b60405180910390fd5b80915050919050565b600b80546114f790614a04565b80601f016020809104026020016040519081016040528092919081815260200182805461152390614a04565b80156115705780601f1061154557610100808354040283529160200191611570565b820191906000526020600020905b81548152906001019060200180831161155357829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e09061453b565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611638612609565b73ffffffffffffffffffffffffffffffffffffffff1661165661173e565b73ffffffffffffffffffffffffffffffffffffffff16146116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a3906145db565b60405180910390fd5b6116b66000612a7b565b565b6116c0612609565b73ffffffffffffffffffffffffffffffffffffffff166116de61173e565b73ffffffffffffffffffffffffffffffffffffffff1614611734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172b906145db565b60405180910390fd5b8060108190555050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461177790614a04565b80601f01602080910402602001604051908101604052809291908181526020018280546117a390614a04565b80156117f05780601f106117c5576101008083540402835291602001916117f0565b820191906000526020600020905b8154815290600101906020018083116117d357829003601f168201915b5050505050905090565b601260029054906101000a900460ff1681565b601260009054906101000a900460ff161561185d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611854906143db565b60405180910390fd5b6000611867610ea2565b9050600082116118ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a3906146bb565b60405180910390fd5b6010548211156118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e8906144bb565b60405180910390fd5b600f5482826119009190614839565b1115611941576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119389061457b565b60405180910390fd5b61194961173e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b115760011515601260029054906101000a900460ff1615151415611a2b5760011515601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a21906144fb565b60405180910390fd5b5b6000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506011548382611a7e9190614839565b1115611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab69061461b565b60405180910390fd5b82600e54611acd91906148c0565b341015611b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b06906144db565b60405180910390fd5b505b6000600190505b828111611b9c57601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611b6f90614a67565b9190505550611b89338284611b849190614839565b612b41565b8080611b9490614a67565b915050611b18565b505050565b611bb3611bac612609565b8383612b5f565b5050565b611bbf612609565b73ffffffffffffffffffffffffffffffffffffffff16611bdd61173e565b73ffffffffffffffffffffffffffffffffffffffff1614611c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2a906145db565b60405180910390fd5b6001601260016101000a81548160ff021916908315150217905550565b611c61611c5b612609565b83612736565b611ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c979061465b565b60405180910390fd5b611cac84848484612ccc565b50505050565b611cba612609565b73ffffffffffffffffffffffffffffffffffffffff16611cd861173e565b73ffffffffffffffffffffffffffffffffffffffff1614611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d25906145db565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60115481565b611d97612609565b73ffffffffffffffffffffffffffffffffffffffff16611db561173e565b73ffffffffffffffffffffffffffffffffffffffff1614611e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e02906145db565b60405180910390fd5b60005b82829050811015611eab57600160136000858585818110611e3257611e31614b9d565b5b9050602002016020810190611e4791906139da565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611ea390614a67565b915050611e0e565b505050565b600c8054611ebd90614a04565b80601f0160208091040260200160405190810160405280929190818152602001828054611ee990614a04565b8015611f365780601f10611f0b57610100808354040283529160200191611f36565b820191906000526020600020905b815481529060010190602001808311611f1957829003601f168201915b505050505081565b6060611f4982612611565b611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f906145fb565b60405180910390fd5b60001515601260019054906101000a900460ff161515141561203657600d8054611fb190614a04565b80601f0160208091040260200160405190810160405280929190818152602001828054611fdd90614a04565b801561202a5780601f10611fff5761010080835404028352916020019161202a565b820191906000526020600020905b81548152906001019060200180831161200d57829003601f168201915b50505050509050612092565b6000612040612d28565b90506000815111612060576040518060200160405280600081525061208e565b8061206a84612dba565b600c60405160200161207e9392919061428f565b6040516020818303038152906040525b9150505b919050565b601260039054906101000a900460ff1681565b6120b2612609565b73ffffffffffffffffffffffffffffffffffffffff166120d061173e565b73ffffffffffffffffffffffffffffffffffffffff1614612126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211d906145db565b60405180910390fd5b8060118190555050565b612138612609565b73ffffffffffffffffffffffffffffffffffffffff1661215661173e565b73ffffffffffffffffffffffffffffffffffffffff16146121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a3906145db565b60405180910390fd5b601260039054906101000a900460ff16156121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f3906146db565b60405180910390fd5b6001601260036101000a81548160ff021916908315150217905550565b600f5481565b612227612609565b73ffffffffffffffffffffffffffffffffffffffff1661224561173e565b73ffffffffffffffffffffffffffffffffffffffff161461229b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612292906145db565b60405180910390fd5b601260039054906101000a900460ff16156122eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e29061467b565b60405180910390fd5b80600c9080519060200190612301929190613798565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6123a1612609565b73ffffffffffffffffffffffffffffffffffffffff166123bf61173e565b73ffffffffffffffffffffffffffffffffffffffff1614612415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240c906145db565b60405180910390fd5b80600d908051906020019061242b929190613798565b5050565b612437612609565b73ffffffffffffffffffffffffffffffffffffffff1661245561173e565b73ffffffffffffffffffffffffffffffffffffffff16146124ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a2906145db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561251b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612512906143fb565b60405180910390fd5b61252481612a7b565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806125f257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612602575061260182612f1b565b5b9050919050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166126f083611438565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061274182612611565b612780576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127779061449b565b60405180910390fd5b600061278b83611438565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806127fa57508373ffffffffffffffffffffffffffffffffffffffff166127e284610c71565b73ffffffffffffffffffffffffffffffffffffffff16145b8061280b575061280a8185612305565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661283482611438565b73ffffffffffffffffffffffffffffffffffffffff161461288a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128819061441b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156128fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f19061445b565b60405180910390fd5b612905838383612f85565b61291060008261267d565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612960919061491a565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129b79190614839565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612a76838383613099565b505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612b5b82826040518060200160405280600081525061309e565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc59061447b565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612cbf919061435e565b60405180910390a3505050565b612cd7848484612814565b612ce3848484846130f9565b612d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d19906143bb565b60405180910390fd5b50505050565b6060600b8054612d3790614a04565b80601f0160208091040260200160405190810160405280929190818152602001828054612d6390614a04565b8015612db05780601f10612d8557610100808354040283529160200191612db0565b820191906000526020600020905b815481529060010190602001808311612d9357829003601f168201915b5050505050905090565b60606000821415612e02576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612f16565b600082905060005b60008214612e34578080612e1d90614a67565b915050600a82612e2d919061488f565b9150612e0a565b60008167ffffffffffffffff811115612e5057612e4f614bcc565b5b6040519080825280601f01601f191660200182016040528015612e825781602001600182028036833780820191505090505b5090505b60008514612f0f57600182612e9b919061491a565b9150600a85612eaa9190614ab0565b6030612eb69190614839565b60f81b818381518110612ecc57612ecb614b9d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612f08919061488f565b9450612e86565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612f90838383613290565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612fd357612fce81613295565b613012565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146130115761301083826132de565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613055576130508161344b565b613094565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461309357613092828261351c565b5b5b505050565b505050565b6130a8838361359b565b6130b560008484846130f9565b6130f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130eb906143bb565b60405180910390fd5b505050565b600061311a8473ffffffffffffffffffffffffffffffffffffffff16613775565b15613283578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02613143612609565b8786866040518563ffffffff1660e01b815260040161316594939291906142f0565b602060405180830381600087803b15801561317f57600080fd5b505af19250505080156131b057506040513d601f19601f820116820180604052508101906131ad9190613c44565b60015b613233573d80600081146131e0576040519150601f19603f3d011682016040523d82523d6000602084013e6131e5565b606091505b5060008151141561322b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613222906143bb565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050613288565b600190505b949350505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016132eb84611578565b6132f5919061491a565b90506000600760008481526020019081526020016000205490508181146133da576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160088054905061345f919061491a565b905060006009600084815260200190815260200160002054905060006008838154811061348f5761348e614b9d565b5b9060005260206000200154905080600883815481106134b1576134b0614b9d565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480613500576134ff614b6e565b5b6001900381819060005260206000200160009055905550505050565b600061352783611578565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561360b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136029061459b565b60405180910390fd5b61361481612611565b15613654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161364b9061443b565b60405180910390fd5b61366060008383612f85565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546136b09190614839565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461377160008383613099565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b8280546137a490614a04565b90600052602060002090601f0160209004810192826137c6576000855561380d565b82601f106137df57805160ff191683800117855561380d565b8280016001018555821561380d579182015b8281111561380c5782518255916020019190600101906137f1565b5b50905061381a919061381e565b5090565b5b8082111561383757600081600090555060010161381f565b5090565b600061384e6138498461473b565b614716565b90508281526020810184848401111561386a57613869614c0a565b5b6138758482856149c2565b509392505050565b600061389061388b8461476c565b614716565b9050828152602081018484840111156138ac576138ab614c0a565b5b6138b78482856149c2565b509392505050565b6000813590506138ce816152ba565b92915050565b60008083601f8401126138ea576138e9614c00565b5b8235905067ffffffffffffffff81111561390757613906614bfb565b5b60208301915083602082028301111561392357613922614c05565b5b9250929050565b600081359050613939816152d1565b92915050565b60008135905061394e816152e8565b92915050565b600081519050613963816152e8565b92915050565b600082601f83011261397e5761397d614c00565b5b813561398e84826020860161383b565b91505092915050565b600082601f8301126139ac576139ab614c00565b5b81356139bc84826020860161387d565b91505092915050565b6000813590506139d4816152ff565b92915050565b6000602082840312156139f0576139ef614c14565b5b60006139fe848285016138bf565b91505092915050565b60008060408385031215613a1e57613a1d614c14565b5b6000613a2c858286016138bf565b9250506020613a3d858286016138bf565b9150509250929050565b600080600060608486031215613a6057613a5f614c14565b5b6000613a6e868287016138bf565b9350506020613a7f868287016138bf565b9250506040613a90868287016139c5565b9150509250925092565b60008060008060808587031215613ab457613ab3614c14565b5b6000613ac2878288016138bf565b9450506020613ad3878288016138bf565b9350506040613ae4878288016139c5565b925050606085013567ffffffffffffffff811115613b0557613b04614c0f565b5b613b1187828801613969565b91505092959194509250565b60008060408385031215613b3457613b33614c14565b5b6000613b42858286016138bf565b9250506020613b538582860161392a565b9150509250929050565b60008060408385031215613b7457613b73614c14565b5b6000613b82858286016138bf565b9250506020613b93858286016139c5565b9150509250929050565b60008060208385031215613bb457613bb3614c14565b5b600083013567ffffffffffffffff811115613bd257613bd1614c0f565b5b613bde858286016138d4565b92509250509250929050565b600060208284031215613c0057613bff614c14565b5b6000613c0e8482850161392a565b91505092915050565b600060208284031215613c2d57613c2c614c14565b5b6000613c3b8482850161393f565b91505092915050565b600060208284031215613c5a57613c59614c14565b5b6000613c6884828501613954565b91505092915050565b600060208284031215613c8757613c86614c14565b5b600082013567ffffffffffffffff811115613ca557613ca4614c0f565b5b613cb184828501613997565b91505092915050565b600060208284031215613cd057613ccf614c14565b5b6000613cde848285016139c5565b91505092915050565b6000613cf38383614271565b60208301905092915050565b613d088161494e565b82525050565b6000613d19826147c2565b613d2381856147f0565b9350613d2e8361479d565b8060005b83811015613d5f578151613d468882613ce7565b9750613d51836147e3565b925050600181019050613d32565b5085935050505092915050565b613d7581614960565b82525050565b6000613d86826147cd565b613d908185614801565b9350613da08185602086016149d1565b613da981614c19565b840191505092915050565b6000613dbf826147d8565b613dc9818561481d565b9350613dd98185602086016149d1565b613de281614c19565b840191505092915050565b6000613df8826147d8565b613e02818561482e565b9350613e128185602086016149d1565b80840191505092915050565b60008154613e2b81614a04565b613e35818661482e565b94506001821660008114613e505760018114613e6157613e94565b60ff19831686528186019350613e94565b613e6a856147ad565b60005b83811015613e8c57815481890152600182019150602081019050613e6d565b838801955050505b50505092915050565b6000613eaa602b8361481d565b9150613eb582614c2a565b604082019050919050565b6000613ecd60328361481d565b9150613ed882614c79565b604082019050919050565b6000613ef060168361481d565b9150613efb82614cc8565b602082019050919050565b6000613f1360268361481d565b9150613f1e82614cf1565b604082019050919050565b6000613f3660258361481d565b9150613f4182614d40565b604082019050919050565b6000613f59601c8361481d565b9150613f6482614d8f565b602082019050919050565b6000613f7c60248361481d565b9150613f8782614db8565b604082019050919050565b6000613f9f60198361481d565b9150613faa82614e07565b602082019050919050565b6000613fc2602c8361481d565b9150613fcd82614e30565b604082019050919050565b6000613fe560248361481d565b9150613ff082614e7f565b604082019050919050565b600061400860128361481d565b915061401382614ece565b602082019050919050565b600061402b60178361481d565b915061403682614ef7565b602082019050919050565b600061404e60388361481d565b915061405982614f20565b604082019050919050565b6000614071602a8361481d565b915061407c82614f6f565b604082019050919050565b600061409460298361481d565b915061409f82614fbe565b604082019050919050565b60006140b760168361481d565b91506140c28261500d565b602082019050919050565b60006140da60208361481d565b91506140e582615036565b602082019050919050565b60006140fd602c8361481d565b91506141088261505f565b604082019050919050565b600061412060208361481d565b915061412b826150ae565b602082019050919050565b6000614143602f8361481d565b915061414e826150d7565b604082019050919050565b6000614166601c8361481d565b915061417182615126565b602082019050919050565b600061418960218361481d565b91506141948261514f565b604082019050919050565b60006141ac600083614812565b91506141b78261519e565b600082019050919050565b60006141cf60318361481d565b91506141da826151a1565b604082019050919050565b60006141f2601e8361481d565b91506141fd826151f0565b602082019050919050565b6000614215602c8361481d565b915061422082615219565b604082019050919050565b6000614238601b8361481d565b915061424382615268565b602082019050919050565b600061425b601a8361481d565b915061426682615291565b602082019050919050565b61427a816149b8565b82525050565b614289816149b8565b82525050565b600061429b8286613ded565b91506142a78285613ded565b91506142b38284613e1e565b9150819050949350505050565b60006142cb8261419f565b9150819050919050565b60006020820190506142ea6000830184613cff565b92915050565b60006080820190506143056000830187613cff565b6143126020830186613cff565b61431f6040830185614280565b81810360608301526143318184613d7b565b905095945050505050565b600060208201905081810360008301526143568184613d0e565b905092915050565b60006020820190506143736000830184613d6c565b92915050565b600060208201905081810360008301526143938184613db4565b905092915050565b600060208201905081810360008301526143b481613e9d565b9050919050565b600060208201905081810360008301526143d481613ec0565b9050919050565b600060208201905081810360008301526143f481613ee3565b9050919050565b6000602082019050818103600083015261441481613f06565b9050919050565b6000602082019050818103600083015261443481613f29565b9050919050565b6000602082019050818103600083015261445481613f4c565b9050919050565b6000602082019050818103600083015261447481613f6f565b9050919050565b6000602082019050818103600083015261449481613f92565b9050919050565b600060208201905081810360008301526144b481613fb5565b9050919050565b600060208201905081810360008301526144d481613fd8565b9050919050565b600060208201905081810360008301526144f481613ffb565b9050919050565b600060208201905081810360008301526145148161401e565b9050919050565b6000602082019050818103600083015261453481614041565b9050919050565b6000602082019050818103600083015261455481614064565b9050919050565b6000602082019050818103600083015261457481614087565b9050919050565b60006020820190508181036000830152614594816140aa565b9050919050565b600060208201905081810360008301526145b4816140cd565b9050919050565b600060208201905081810360008301526145d4816140f0565b9050919050565b600060208201905081810360008301526145f481614113565b9050919050565b6000602082019050818103600083015261461481614136565b9050919050565b6000602082019050818103600083015261463481614159565b9050919050565b600060208201905081810360008301526146548161417c565b9050919050565b60006020820190508181036000830152614674816141c2565b9050919050565b60006020820190508181036000830152614694816141e5565b9050919050565b600060208201905081810360008301526146b481614208565b9050919050565b600060208201905081810360008301526146d48161422b565b9050919050565b600060208201905081810360008301526146f48161424e565b9050919050565b60006020820190506147106000830184614280565b92915050565b6000614720614731565b905061472c8282614a36565b919050565b6000604051905090565b600067ffffffffffffffff82111561475657614755614bcc565b5b61475f82614c19565b9050602081019050919050565b600067ffffffffffffffff82111561478757614786614bcc565b5b61479082614c19565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614844826149b8565b915061484f836149b8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561488457614883614ae1565b5b828201905092915050565b600061489a826149b8565b91506148a5836149b8565b9250826148b5576148b4614b10565b5b828204905092915050565b60006148cb826149b8565b91506148d6836149b8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561490f5761490e614ae1565b5b828202905092915050565b6000614925826149b8565b9150614930836149b8565b92508282101561494357614942614ae1565b5b828203905092915050565b600061495982614998565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156149ef5780820151818401526020810190506149d4565b838111156149fe576000848401525b50505050565b60006002820490506001821680614a1c57607f821691505b60208210811415614a3057614a2f614b3f565b5b50919050565b614a3f82614c19565b810181811067ffffffffffffffff82111715614a5e57614a5d614bcc565b5b80604052505050565b6000614a72826149b8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614aa557614aa4614ae1565b5b600182019050919050565b6000614abb826149b8565b9150614ac6836149b8565b925082614ad657614ad5614b10565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f54686520636f6e74726163742069732070617573656400000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4d6178206d696e7420616d6f756e74207065722073657373696f6e206578636560008201527f6564656400000000000000000000000000000000000000000000000000000000602082015250565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b7f55736572206973206e6f742077686974656c6973746564000000000000000000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4d6178204e4654206c696d697420657863656564656400000000000000000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4d6178204e465420706572206164647265737320657863656564656400000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f4d65746164617461206973207065726d616e656e746c792066726f7a656e0000600082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f4e65656420746f206d696e74206174206c656173742031204e46540000000000600082015250565b7f4d6574616461746120697320616c72656164792066726f7a656e000000000000600082015250565b6152c38161494e565b81146152ce57600080fd5b50565b6152da81614960565b81146152e557600080fd5b50565b6152f18161496c565b81146152fc57600080fd5b50565b615308816149b8565b811461531357600080fd5b5056fea26469706673582212206a39aec3f84fb78b03a56bee448f85423fb72533aa9806ce85e8b288bf3aea3964736f6c63430008070033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000b5468654b696e67446f6d6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024b44000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002068747470733a2f2f6e66742e7468656b696e67646f6d652e696f2f697066732f000000000000000000000000000000000000000000000000000000000000002f68747470733a2f2f7468656b696e67646f6d652e696f2f70726573616c652f636f6d696e672d736f6f6e2e6a736f6e0000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106102885760003560e01c80636c0360eb1161015a578063ba7d2c76116100c1578063d111515d1161007a578063d111515d146109b2578063d5abeb01146109c9578063da3ef23f146109f4578063e985e9c514610a1d578063f2c4ce1e14610a5a578063f2fde38b14610a8357610288565b8063ba7d2c76146108a2578063c0815c90146108cd578063c6682862146108f6578063c87b56dd14610921578063cf880fea1461095e578063d0eb26b01461098957610288565b80639c70b512116101135780639c70b512146107c9578063a0712d68146107f4578063a22cb46514610810578063a475b5dd14610839578063b88d4fde14610850578063b8c365731461087957610288565b80636c0360eb146106cb57806370a08231146106f6578063715018a6146107335780637f00c7a61461074a5780638da5cb5b1461077357806395d89b411461079e57610288565b806323b872dd116101fe57806344a0d68a116101b757806344a0d68a146105a95780634f6ccce7146105d2578063518302271461060f57806355f804b31461063a5780635c975abb146106635780636352211e1461068e57610288565b806323b872dd146104aa5780632f745c59146104d35780633c952764146105105780633ccfd60b1461053957806342842e0e14610543578063438b63001461056c57610288565b8063081c8c4411610250578063081c8c4414610398578063095ea7b3146103c357806313faede6146103ec57806318160ddd1461041757806318cae26914610442578063239c70ae1461047f57610288565b806301ffc9a71461028d57806302329a29146102ca57806306c933d8146102f357806306fdde0314610330578063081812fc1461035b575b600080fd5b34801561029957600080fd5b506102b460048036038101906102af9190613c17565b610aac565b6040516102c1919061435e565b60405180910390f35b3480156102d657600080fd5b506102f160048036038101906102ec9190613bea565b610b26565b005b3480156102ff57600080fd5b5061031a600480360381019061031591906139da565b610bbf565b604051610327919061435e565b60405180910390f35b34801561033c57600080fd5b50610345610bdf565b6040516103529190614379565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190613cba565b610c71565b60405161038f91906142d5565b60405180910390f35b3480156103a457600080fd5b506103ad610cf6565b6040516103ba9190614379565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e59190613b5d565b610d84565b005b3480156103f857600080fd5b50610401610e9c565b60405161040e91906146fb565b60405180910390f35b34801561042357600080fd5b5061042c610ea2565b60405161043991906146fb565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906139da565b610eaf565b60405161047691906146fb565b60405180910390f35b34801561048b57600080fd5b50610494610ec7565b6040516104a191906146fb565b60405180910390f35b3480156104b657600080fd5b506104d160048036038101906104cc9190613a47565b610ecd565b005b3480156104df57600080fd5b506104fa60048036038101906104f59190613b5d565b610f2d565b60405161050791906146fb565b60405180910390f35b34801561051c57600080fd5b5061053760048036038101906105329190613bea565b610fd2565b005b61054161106b565b005b34801561054f57600080fd5b5061056a60048036038101906105659190613a47565b611167565b005b34801561057857600080fd5b50610593600480360381019061058e91906139da565b611187565b6040516105a0919061433c565b60405180910390f35b3480156105b557600080fd5b506105d060048036038101906105cb9190613cba565b611235565b005b3480156105de57600080fd5b506105f960048036038101906105f49190613cba565b6112bb565b60405161060691906146fb565b60405180910390f35b34801561061b57600080fd5b5061062461132c565b604051610631919061435e565b60405180910390f35b34801561064657600080fd5b50610661600480360381019061065c9190613c71565b61133f565b005b34801561066f57600080fd5b50610678611425565b604051610685919061435e565b60405180910390f35b34801561069a57600080fd5b506106b560048036038101906106b09190613cba565b611438565b6040516106c291906142d5565b60405180910390f35b3480156106d757600080fd5b506106e06114ea565b6040516106ed9190614379565b60405180910390f35b34801561070257600080fd5b5061071d600480360381019061071891906139da565b611578565b60405161072a91906146fb565b60405180910390f35b34801561073f57600080fd5b50610748611630565b005b34801561075657600080fd5b50610771600480360381019061076c9190613cba565b6116b8565b005b34801561077f57600080fd5b5061078861173e565b60405161079591906142d5565b60405180910390f35b3480156107aa57600080fd5b506107b3611768565b6040516107c09190614379565b60405180910390f35b3480156107d557600080fd5b506107de6117fa565b6040516107eb919061435e565b60405180910390f35b61080e60048036038101906108099190613cba565b61180d565b005b34801561081c57600080fd5b5061083760048036038101906108329190613b1d565b611ba1565b005b34801561084557600080fd5b5061084e611bb7565b005b34801561085c57600080fd5b5061087760048036038101906108729190613a9a565b611c50565b005b34801561088557600080fd5b506108a0600480360381019061089b9190613b1d565b611cb2565b005b3480156108ae57600080fd5b506108b7611d89565b6040516108c491906146fb565b60405180910390f35b3480156108d957600080fd5b506108f460048036038101906108ef9190613b9d565b611d8f565b005b34801561090257600080fd5b5061090b611eb0565b6040516109189190614379565b60405180910390f35b34801561092d57600080fd5b5061094860048036038101906109439190613cba565b611f3e565b6040516109559190614379565b60405180910390f35b34801561096a57600080fd5b50610973612097565b604051610980919061435e565b60405180910390f35b34801561099557600080fd5b506109b060048036038101906109ab9190613cba565b6120aa565b005b3480156109be57600080fd5b506109c7612130565b005b3480156109d557600080fd5b506109de612219565b6040516109eb91906146fb565b60405180910390f35b348015610a0057600080fd5b50610a1b6004803603810190610a169190613c71565b61221f565b005b348015610a2957600080fd5b50610a446004803603810190610a3f9190613a07565b612305565b604051610a51919061435e565b60405180910390f35b348015610a6657600080fd5b50610a816004803603810190610a7c9190613c71565b612399565b005b348015610a8f57600080fd5b50610aaa6004803603810190610aa591906139da565b61242f565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b1f5750610b1e82612527565b5b9050919050565b610b2e612609565b73ffffffffffffffffffffffffffffffffffffffff16610b4c61173e565b73ffffffffffffffffffffffffffffffffffffffff1614610ba2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b99906145db565b60405180910390fd5b80601260006101000a81548160ff02191690831515021790555050565b60136020528060005260406000206000915054906101000a900460ff1681565b606060008054610bee90614a04565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1a90614a04565b8015610c675780601f10610c3c57610100808354040283529160200191610c67565b820191906000526020600020905b815481529060010190602001808311610c4a57829003601f168201915b5050505050905090565b6000610c7c82612611565b610cbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb2906145bb565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600d8054610d0390614a04565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2f90614a04565b8015610d7c5780601f10610d5157610100808354040283529160200191610d7c565b820191906000526020600020905b815481529060010190602001808311610d5f57829003601f168201915b505050505081565b6000610d8f82611438565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df79061463b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610e1f612609565b73ffffffffffffffffffffffffffffffffffffffff161480610e4e5750610e4d81610e48612609565b612305565b5b610e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e849061451b565b60405180910390fd5b610e97838361267d565b505050565b600e5481565b6000600880549050905090565b60146020528060005260406000206000915090505481565b60105481565b610ede610ed8612609565b82612736565b610f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f149061465b565b60405180910390fd5b610f28838383612814565b505050565b6000610f3883611578565b8210610f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f709061439b565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610fda612609565b73ffffffffffffffffffffffffffffffffffffffff16610ff861173e565b73ffffffffffffffffffffffffffffffffffffffff161461104e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611045906145db565b60405180910390fd5b80601260026101000a81548160ff02191690831515021790555050565b611073612609565b73ffffffffffffffffffffffffffffffffffffffff1661109161173e565b73ffffffffffffffffffffffffffffffffffffffff16146110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de906145db565b60405180910390fd5b60006110f161173e565b73ffffffffffffffffffffffffffffffffffffffff1647604051611114906142c0565b60006040518083038185875af1925050503d8060008114611151576040519150601f19603f3d011682016040523d82523d6000602084013e611156565b606091505b505090508061116457600080fd5b50565b61118283838360405180602001604052806000815250611c50565b505050565b6060600061119483611578565b905060008167ffffffffffffffff8111156111b2576111b1614bcc565b5b6040519080825280602002602001820160405280156111e05781602001602082028036833780820191505090505b50905060005b8281101561122a576111f88582610f2d565b82828151811061120b5761120a614b9d565b5b602002602001018181525050808061122290614a67565b9150506111e6565b508092505050919050565b61123d612609565b73ffffffffffffffffffffffffffffffffffffffff1661125b61173e565b73ffffffffffffffffffffffffffffffffffffffff16146112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a8906145db565b60405180910390fd5b80600e8190555050565b60006112c5610ea2565b8210611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd9061469b565b60405180910390fd5b6008828154811061131a57611319614b9d565b5b90600052602060002001549050919050565b601260019054906101000a900460ff1681565b611347612609565b73ffffffffffffffffffffffffffffffffffffffff1661136561173e565b73ffffffffffffffffffffffffffffffffffffffff16146113bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b2906145db565b60405180910390fd5b601260039054906101000a900460ff161561140b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114029061467b565b60405180910390fd5b80600b9080519060200190611421929190613798565b5050565b601260009054906101000a900460ff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d89061455b565b60405180910390fd5b80915050919050565b600b80546114f790614a04565b80601f016020809104026020016040519081016040528092919081815260200182805461152390614a04565b80156115705780601f1061154557610100808354040283529160200191611570565b820191906000526020600020905b81548152906001019060200180831161155357829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e09061453b565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611638612609565b73ffffffffffffffffffffffffffffffffffffffff1661165661173e565b73ffffffffffffffffffffffffffffffffffffffff16146116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a3906145db565b60405180910390fd5b6116b66000612a7b565b565b6116c0612609565b73ffffffffffffffffffffffffffffffffffffffff166116de61173e565b73ffffffffffffffffffffffffffffffffffffffff1614611734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172b906145db565b60405180910390fd5b8060108190555050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461177790614a04565b80601f01602080910402602001604051908101604052809291908181526020018280546117a390614a04565b80156117f05780601f106117c5576101008083540402835291602001916117f0565b820191906000526020600020905b8154815290600101906020018083116117d357829003601f168201915b5050505050905090565b601260029054906101000a900460ff1681565b601260009054906101000a900460ff161561185d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611854906143db565b60405180910390fd5b6000611867610ea2565b9050600082116118ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a3906146bb565b60405180910390fd5b6010548211156118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e8906144bb565b60405180910390fd5b600f5482826119009190614839565b1115611941576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119389061457b565b60405180910390fd5b61194961173e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b115760011515601260029054906101000a900460ff1615151415611a2b5760011515601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a21906144fb565b60405180910390fd5b5b6000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506011548382611a7e9190614839565b1115611abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab69061461b565b60405180910390fd5b82600e54611acd91906148c0565b341015611b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b06906144db565b60405180910390fd5b505b6000600190505b828111611b9c57601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611b6f90614a67565b9190505550611b89338284611b849190614839565b612b41565b8080611b9490614a67565b915050611b18565b505050565b611bb3611bac612609565b8383612b5f565b5050565b611bbf612609565b73ffffffffffffffffffffffffffffffffffffffff16611bdd61173e565b73ffffffffffffffffffffffffffffffffffffffff1614611c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2a906145db565b60405180910390fd5b6001601260016101000a81548160ff021916908315150217905550565b611c61611c5b612609565b83612736565b611ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c979061465b565b60405180910390fd5b611cac84848484612ccc565b50505050565b611cba612609565b73ffffffffffffffffffffffffffffffffffffffff16611cd861173e565b73ffffffffffffffffffffffffffffffffffffffff1614611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d25906145db565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60115481565b611d97612609565b73ffffffffffffffffffffffffffffffffffffffff16611db561173e565b73ffffffffffffffffffffffffffffffffffffffff1614611e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e02906145db565b60405180910390fd5b60005b82829050811015611eab57600160136000858585818110611e3257611e31614b9d565b5b9050602002016020810190611e4791906139da565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611ea390614a67565b915050611e0e565b505050565b600c8054611ebd90614a04565b80601f0160208091040260200160405190810160405280929190818152602001828054611ee990614a04565b8015611f365780601f10611f0b57610100808354040283529160200191611f36565b820191906000526020600020905b815481529060010190602001808311611f1957829003601f168201915b505050505081565b6060611f4982612611565b611f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7f906145fb565b60405180910390fd5b60001515601260019054906101000a900460ff161515141561203657600d8054611fb190614a04565b80601f0160208091040260200160405190810160405280929190818152602001828054611fdd90614a04565b801561202a5780601f10611fff5761010080835404028352916020019161202a565b820191906000526020600020905b81548152906001019060200180831161200d57829003601f168201915b50505050509050612092565b6000612040612d28565b90506000815111612060576040518060200160405280600081525061208e565b8061206a84612dba565b600c60405160200161207e9392919061428f565b6040516020818303038152906040525b9150505b919050565b601260039054906101000a900460ff1681565b6120b2612609565b73ffffffffffffffffffffffffffffffffffffffff166120d061173e565b73ffffffffffffffffffffffffffffffffffffffff1614612126576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211d906145db565b60405180910390fd5b8060118190555050565b612138612609565b73ffffffffffffffffffffffffffffffffffffffff1661215661173e565b73ffffffffffffffffffffffffffffffffffffffff16146121ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a3906145db565b60405180910390fd5b601260039054906101000a900460ff16156121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f3906146db565b60405180910390fd5b6001601260036101000a81548160ff021916908315150217905550565b600f5481565b612227612609565b73ffffffffffffffffffffffffffffffffffffffff1661224561173e565b73ffffffffffffffffffffffffffffffffffffffff161461229b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612292906145db565b60405180910390fd5b601260039054906101000a900460ff16156122eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e29061467b565b60405180910390fd5b80600c9080519060200190612301929190613798565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6123a1612609565b73ffffffffffffffffffffffffffffffffffffffff166123bf61173e565b73ffffffffffffffffffffffffffffffffffffffff1614612415576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240c906145db565b60405180910390fd5b80600d908051906020019061242b929190613798565b5050565b612437612609565b73ffffffffffffffffffffffffffffffffffffffff1661245561173e565b73ffffffffffffffffffffffffffffffffffffffff16146124ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a2906145db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561251b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612512906143fb565b60405180910390fd5b61252481612a7b565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806125f257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612602575061260182612f1b565b5b9050919050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166126f083611438565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061274182612611565b612780576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127779061449b565b60405180910390fd5b600061278b83611438565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806127fa57508373ffffffffffffffffffffffffffffffffffffffff166127e284610c71565b73ffffffffffffffffffffffffffffffffffffffff16145b8061280b575061280a8185612305565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661283482611438565b73ffffffffffffffffffffffffffffffffffffffff161461288a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128819061441b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156128fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f19061445b565b60405180910390fd5b612905838383612f85565b61291060008261267d565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612960919061491a565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129b79190614839565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612a76838383613099565b505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612b5b82826040518060200160405280600081525061309e565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc59061447b565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612cbf919061435e565b60405180910390a3505050565b612cd7848484612814565b612ce3848484846130f9565b612d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d19906143bb565b60405180910390fd5b50505050565b6060600b8054612d3790614a04565b80601f0160208091040260200160405190810160405280929190818152602001828054612d6390614a04565b8015612db05780601f10612d8557610100808354040283529160200191612db0565b820191906000526020600020905b815481529060010190602001808311612d9357829003601f168201915b5050505050905090565b60606000821415612e02576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612f16565b600082905060005b60008214612e34578080612e1d90614a67565b915050600a82612e2d919061488f565b9150612e0a565b60008167ffffffffffffffff811115612e5057612e4f614bcc565b5b6040519080825280601f01601f191660200182016040528015612e825781602001600182028036833780820191505090505b5090505b60008514612f0f57600182612e9b919061491a565b9150600a85612eaa9190614ab0565b6030612eb69190614839565b60f81b818381518110612ecc57612ecb614b9d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612f08919061488f565b9450612e86565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612f90838383613290565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612fd357612fce81613295565b613012565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146130115761301083826132de565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613055576130508161344b565b613094565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461309357613092828261351c565b5b5b505050565b505050565b6130a8838361359b565b6130b560008484846130f9565b6130f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130eb906143bb565b60405180910390fd5b505050565b600061311a8473ffffffffffffffffffffffffffffffffffffffff16613775565b15613283578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02613143612609565b8786866040518563ffffffff1660e01b815260040161316594939291906142f0565b602060405180830381600087803b15801561317f57600080fd5b505af19250505080156131b057506040513d601f19601f820116820180604052508101906131ad9190613c44565b60015b613233573d80600081146131e0576040519150601f19603f3d011682016040523d82523d6000602084013e6131e5565b606091505b5060008151141561322b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613222906143bb565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050613288565b600190505b949350505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016132eb84611578565b6132f5919061491a565b90506000600760008481526020019081526020016000205490508181146133da576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160088054905061345f919061491a565b905060006009600084815260200190815260200160002054905060006008838154811061348f5761348e614b9d565b5b9060005260206000200154905080600883815481106134b1576134b0614b9d565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480613500576134ff614b6e565b5b6001900381819060005260206000200160009055905550505050565b600061352783611578565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561360b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136029061459b565b60405180910390fd5b61361481612611565b15613654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161364b9061443b565b60405180910390fd5b61366060008383612f85565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546136b09190614839565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461377160008383613099565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b8280546137a490614a04565b90600052602060002090601f0160209004810192826137c6576000855561380d565b82601f106137df57805160ff191683800117855561380d565b8280016001018555821561380d579182015b8281111561380c5782518255916020019190600101906137f1565b5b50905061381a919061381e565b5090565b5b8082111561383757600081600090555060010161381f565b5090565b600061384e6138498461473b565b614716565b90508281526020810184848401111561386a57613869614c0a565b5b6138758482856149c2565b509392505050565b600061389061388b8461476c565b614716565b9050828152602081018484840111156138ac576138ab614c0a565b5b6138b78482856149c2565b509392505050565b6000813590506138ce816152ba565b92915050565b60008083601f8401126138ea576138e9614c00565b5b8235905067ffffffffffffffff81111561390757613906614bfb565b5b60208301915083602082028301111561392357613922614c05565b5b9250929050565b600081359050613939816152d1565b92915050565b60008135905061394e816152e8565b92915050565b600081519050613963816152e8565b92915050565b600082601f83011261397e5761397d614c00565b5b813561398e84826020860161383b565b91505092915050565b600082601f8301126139ac576139ab614c00565b5b81356139bc84826020860161387d565b91505092915050565b6000813590506139d4816152ff565b92915050565b6000602082840312156139f0576139ef614c14565b5b60006139fe848285016138bf565b91505092915050565b60008060408385031215613a1e57613a1d614c14565b5b6000613a2c858286016138bf565b9250506020613a3d858286016138bf565b9150509250929050565b600080600060608486031215613a6057613a5f614c14565b5b6000613a6e868287016138bf565b9350506020613a7f868287016138bf565b9250506040613a90868287016139c5565b9150509250925092565b60008060008060808587031215613ab457613ab3614c14565b5b6000613ac2878288016138bf565b9450506020613ad3878288016138bf565b9350506040613ae4878288016139c5565b925050606085013567ffffffffffffffff811115613b0557613b04614c0f565b5b613b1187828801613969565b91505092959194509250565b60008060408385031215613b3457613b33614c14565b5b6000613b42858286016138bf565b9250506020613b538582860161392a565b9150509250929050565b60008060408385031215613b7457613b73614c14565b5b6000613b82858286016138bf565b9250506020613b93858286016139c5565b9150509250929050565b60008060208385031215613bb457613bb3614c14565b5b600083013567ffffffffffffffff811115613bd257613bd1614c0f565b5b613bde858286016138d4565b92509250509250929050565b600060208284031215613c0057613bff614c14565b5b6000613c0e8482850161392a565b91505092915050565b600060208284031215613c2d57613c2c614c14565b5b6000613c3b8482850161393f565b91505092915050565b600060208284031215613c5a57613c59614c14565b5b6000613c6884828501613954565b91505092915050565b600060208284031215613c8757613c86614c14565b5b600082013567ffffffffffffffff811115613ca557613ca4614c0f565b5b613cb184828501613997565b91505092915050565b600060208284031215613cd057613ccf614c14565b5b6000613cde848285016139c5565b91505092915050565b6000613cf38383614271565b60208301905092915050565b613d088161494e565b82525050565b6000613d19826147c2565b613d2381856147f0565b9350613d2e8361479d565b8060005b83811015613d5f578151613d468882613ce7565b9750613d51836147e3565b925050600181019050613d32565b5085935050505092915050565b613d7581614960565b82525050565b6000613d86826147cd565b613d908185614801565b9350613da08185602086016149d1565b613da981614c19565b840191505092915050565b6000613dbf826147d8565b613dc9818561481d565b9350613dd98185602086016149d1565b613de281614c19565b840191505092915050565b6000613df8826147d8565b613e02818561482e565b9350613e128185602086016149d1565b80840191505092915050565b60008154613e2b81614a04565b613e35818661482e565b94506001821660008114613e505760018114613e6157613e94565b60ff19831686528186019350613e94565b613e6a856147ad565b60005b83811015613e8c57815481890152600182019150602081019050613e6d565b838801955050505b50505092915050565b6000613eaa602b8361481d565b9150613eb582614c2a565b604082019050919050565b6000613ecd60328361481d565b9150613ed882614c79565b604082019050919050565b6000613ef060168361481d565b9150613efb82614cc8565b602082019050919050565b6000613f1360268361481d565b9150613f1e82614cf1565b604082019050919050565b6000613f3660258361481d565b9150613f4182614d40565b604082019050919050565b6000613f59601c8361481d565b9150613f6482614d8f565b602082019050919050565b6000613f7c60248361481d565b9150613f8782614db8565b604082019050919050565b6000613f9f60198361481d565b9150613faa82614e07565b602082019050919050565b6000613fc2602c8361481d565b9150613fcd82614e30565b604082019050919050565b6000613fe560248361481d565b9150613ff082614e7f565b604082019050919050565b600061400860128361481d565b915061401382614ece565b602082019050919050565b600061402b60178361481d565b915061403682614ef7565b602082019050919050565b600061404e60388361481d565b915061405982614f20565b604082019050919050565b6000614071602a8361481d565b915061407c82614f6f565b604082019050919050565b600061409460298361481d565b915061409f82614fbe565b604082019050919050565b60006140b760168361481d565b91506140c28261500d565b602082019050919050565b60006140da60208361481d565b91506140e582615036565b602082019050919050565b60006140fd602c8361481d565b91506141088261505f565b604082019050919050565b600061412060208361481d565b915061412b826150ae565b602082019050919050565b6000614143602f8361481d565b915061414e826150d7565b604082019050919050565b6000614166601c8361481d565b915061417182615126565b602082019050919050565b600061418960218361481d565b91506141948261514f565b604082019050919050565b60006141ac600083614812565b91506141b78261519e565b600082019050919050565b60006141cf60318361481d565b91506141da826151a1565b604082019050919050565b60006141f2601e8361481d565b91506141fd826151f0565b602082019050919050565b6000614215602c8361481d565b915061422082615219565b604082019050919050565b6000614238601b8361481d565b915061424382615268565b602082019050919050565b600061425b601a8361481d565b915061426682615291565b602082019050919050565b61427a816149b8565b82525050565b614289816149b8565b82525050565b600061429b8286613ded565b91506142a78285613ded565b91506142b38284613e1e565b9150819050949350505050565b60006142cb8261419f565b9150819050919050565b60006020820190506142ea6000830184613cff565b92915050565b60006080820190506143056000830187613cff565b6143126020830186613cff565b61431f6040830185614280565b81810360608301526143318184613d7b565b905095945050505050565b600060208201905081810360008301526143568184613d0e565b905092915050565b60006020820190506143736000830184613d6c565b92915050565b600060208201905081810360008301526143938184613db4565b905092915050565b600060208201905081810360008301526143b481613e9d565b9050919050565b600060208201905081810360008301526143d481613ec0565b9050919050565b600060208201905081810360008301526143f481613ee3565b9050919050565b6000602082019050818103600083015261441481613f06565b9050919050565b6000602082019050818103600083015261443481613f29565b9050919050565b6000602082019050818103600083015261445481613f4c565b9050919050565b6000602082019050818103600083015261447481613f6f565b9050919050565b6000602082019050818103600083015261449481613f92565b9050919050565b600060208201905081810360008301526144b481613fb5565b9050919050565b600060208201905081810360008301526144d481613fd8565b9050919050565b600060208201905081810360008301526144f481613ffb565b9050919050565b600060208201905081810360008301526145148161401e565b9050919050565b6000602082019050818103600083015261453481614041565b9050919050565b6000602082019050818103600083015261455481614064565b9050919050565b6000602082019050818103600083015261457481614087565b9050919050565b60006020820190508181036000830152614594816140aa565b9050919050565b600060208201905081810360008301526145b4816140cd565b9050919050565b600060208201905081810360008301526145d4816140f0565b9050919050565b600060208201905081810360008301526145f481614113565b9050919050565b6000602082019050818103600083015261461481614136565b9050919050565b6000602082019050818103600083015261463481614159565b9050919050565b600060208201905081810360008301526146548161417c565b9050919050565b60006020820190508181036000830152614674816141c2565b9050919050565b60006020820190508181036000830152614694816141e5565b9050919050565b600060208201905081810360008301526146b481614208565b9050919050565b600060208201905081810360008301526146d48161422b565b9050919050565b600060208201905081810360008301526146f48161424e565b9050919050565b60006020820190506147106000830184614280565b92915050565b6000614720614731565b905061472c8282614a36565b919050565b6000604051905090565b600067ffffffffffffffff82111561475657614755614bcc565b5b61475f82614c19565b9050602081019050919050565b600067ffffffffffffffff82111561478757614786614bcc565b5b61479082614c19565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614844826149b8565b915061484f836149b8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561488457614883614ae1565b5b828201905092915050565b600061489a826149b8565b91506148a5836149b8565b9250826148b5576148b4614b10565b5b828204905092915050565b60006148cb826149b8565b91506148d6836149b8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561490f5761490e614ae1565b5b828202905092915050565b6000614925826149b8565b9150614930836149b8565b92508282101561494357614942614ae1565b5b828203905092915050565b600061495982614998565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156149ef5780820151818401526020810190506149d4565b838111156149fe576000848401525b50505050565b60006002820490506001821680614a1c57607f821691505b60208210811415614a3057614a2f614b3f565b5b50919050565b614a3f82614c19565b810181811067ffffffffffffffff82111715614a5e57614a5d614bcc565b5b80604052505050565b6000614a72826149b8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614aa557614aa4614ae1565b5b600182019050919050565b6000614abb826149b8565b9150614ac6836149b8565b925082614ad657614ad5614b10565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f54686520636f6e74726163742069732070617573656400000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4d6178206d696e7420616d6f756e74207065722073657373696f6e206578636560008201527f6564656400000000000000000000000000000000000000000000000000000000602082015250565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b7f55736572206973206e6f742077686974656c6973746564000000000000000000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4d6178204e4654206c696d697420657863656564656400000000000000000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4d6178204e465420706572206164647265737320657863656564656400000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f4d65746164617461206973207065726d616e656e746c792066726f7a656e0000600082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f4e65656420746f206d696e74206174206c656173742031204e46540000000000600082015250565b7f4d6574616461746120697320616c72656164792066726f7a656e000000000000600082015250565b6152c38161494e565b81146152ce57600080fd5b50565b6152da81614960565b81146152e557600080fd5b50565b6152f18161496c565b81146152fc57600080fd5b50565b615308816149b8565b811461531357600080fd5b5056fea26469706673582212206a39aec3f84fb78b03a56bee448f85423fb72533aa9806ce85e8b288bf3aea3964736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000b5468654b696e67446f6d6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024b44000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002068747470733a2f2f6e66742e7468656b696e67646f6d652e696f2f697066732f000000000000000000000000000000000000000000000000000000000000002f68747470733a2f2f7468656b696e67646f6d652e696f2f70726573616c652f636f6d696e672d736f6f6e2e6a736f6e0000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): TheKingDome
Arg [1] : _symbol (string): KD
Arg [2] : _initBaseURI (string): https://nft.thekingdome.io/ipfs/
Arg [3] : _initNotRevealedUri (string): https://thekingdome.io/presale/coming-soon.json
-----Encoded View---------------
13 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [5] : 5468654b696e67446f6d65000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [7] : 4b44000000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [9] : 68747470733a2f2f6e66742e7468656b696e67646f6d652e696f2f697066732f
Arg [10] : 000000000000000000000000000000000000000000000000000000000000002f
Arg [11] : 68747470733a2f2f7468656b696e67646f6d652e696f2f70726573616c652f63
Arg [12] : 6f6d696e672d736f6f6e2e6a736f6e0000000000000000000000000000000000
Deployed Bytecode Sourcemap
45749:4461:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36889:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;49554:73;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;46234:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22617:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24176:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;45904:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23699:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;45937:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;37529:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46291:55;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46010:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24926:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;37197:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;49635:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;50052:155;;;:::i;:::-;;25336:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;47674:348;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;48707:80;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;37719:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46121:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;48915:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;46091:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22311:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;45836:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22041:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;44756:103;;;;;;;;;;;;;:::i;:::-;;48793:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;44105:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22786:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46154:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46744:924;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24469:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;48524:63;;;;;;;;;;;;;:::i;:::-;;25592:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;49924:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;46048:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;49738:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;45862:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;48028:474;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46193:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;48595:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;49086:139;;;;;;;;;;;;;:::i;:::-;;45974:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;49231:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24695:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;49428:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;45014:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;36889:224;36991:4;37030:35;37015:50;;;:11;:50;;;;:90;;;;37069:36;37093:11;37069:23;:36::i;:::-;37015:90;37008:97;;36889:224;;;:::o;49554:73::-;44336:12;:10;:12::i;:::-;44325:23;;:7;:5;:7::i;:::-;:23;;;44317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;49615:6:::1;49606;;:15;;;;;;;;;;;;;;;;;;49554:73:::0;:::o;46234:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;22617:100::-;22671:13;22704:5;22697:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22617:100;:::o;24176:221::-;24252:7;24280:16;24288:7;24280;:16::i;:::-;24272:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;24365:15;:24;24381:7;24365:24;;;;;;;;;;;;;;;;;;;;;24358:31;;24176:221;;;:::o;45904:28::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;23699:411::-;23780:13;23796:23;23811:7;23796:14;:23::i;:::-;23780:39;;23844:5;23838:11;;:2;:11;;;;23830:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;23938:5;23922:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;23947:37;23964:5;23971:12;:10;:12::i;:::-;23947:16;:37::i;:::-;23922:62;23900:168;;;;;;;;;;;;:::i;:::-;;;;;;;;;24081:21;24090:2;24094:7;24081:8;:21::i;:::-;23769:341;23699:411;;:::o;45937:32::-;;;;:::o;37529:113::-;37590:7;37617:10;:17;;;;37610:24;;37529:113;:::o;46291:55::-;;;;;;;;;;;;;;;;;:::o;46010:33::-;;;;:::o;24926:339::-;25121:41;25140:12;:10;:12::i;:::-;25154:7;25121:18;:41::i;:::-;25113:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;25229:28;25239:4;25245:2;25249:7;25229:9;:28::i;:::-;24926:339;;;:::o;37197:256::-;37294:7;37330:23;37347:5;37330:16;:23::i;:::-;37322:5;:31;37314:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;37419:12;:19;37432:5;37419:19;;;;;;;;;;;;;;;:26;37439:5;37419:26;;;;;;;;;;;;37412:33;;37197:256;;;;:::o;49635:95::-;44336:12;:10;:12::i;:::-;44325:23;;:7;:5;:7::i;:::-;:23;;;44317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;49718:6:::1;49700:15;;:24;;;;;;;;;;;;;;;;;;49635:95:::0;:::o;50052:155::-;44336:12;:10;:12::i;:::-;44325:23;;:7;:5;:7::i;:::-;:23;;;44317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;50105:12:::1;50131:7;:5;:7::i;:::-;50123:21;;50152;50123:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50104:74;;;50193:7;50185:16;;;::::0;::::1;;50097:110;50052:155::o:0;25336:185::-;25474:39;25491:4;25497:2;25501:7;25474:39;;;;;;;;;;;;:16;:39::i;:::-;25336:185;;;:::o;47674:348::-;47749:16;47777:23;47803:17;47813:6;47803:9;:17::i;:::-;47777:43;;47827:25;47869:15;47855:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;47827:58;;47897:9;47892:103;47912:15;47908:1;:19;47892:103;;;47957:30;47977:6;47985:1;47957:19;:30::i;:::-;47943:8;47952:1;47943:11;;;;;;;;:::i;:::-;;;;;;;:44;;;;;47929:3;;;;;:::i;:::-;;;;47892:103;;;;48008:8;48001:15;;;;47674:348;;;:::o;48707:80::-;44336:12;:10;:12::i;:::-;44325:23;;:7;:5;:7::i;:::-;:23;;;44317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;48773:8:::1;48766:4;:15;;;;48707:80:::0;:::o;37719:233::-;37794:7;37830:30;:28;:30::i;:::-;37822:5;:38;37814:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;37927:10;37938:5;37927:17;;;;;;;;:::i;:::-;;;;;;;;;;37920:24;;37719:233;;;:::o;46121:28::-;;;;;;;;;;;;;:::o;48915:165::-;44336:12;:10;:12::i;:::-;44325:23;;:7;:5;:7::i;:::-;:23;;;44317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;48995:16:::1;;;;;;;;;;;48994:17;48986:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;49063:11;49053:7;:21;;;;;;;;;;;;:::i;:::-;;48915:165:::0;:::o;46091:25::-;;;;;;;;;;;;;:::o;22311:239::-;22383:7;22403:13;22419:7;:16;22427:7;22419:16;;;;;;;;;;;;;;;;;;;;;22403:32;;22471:1;22454:19;;:5;:19;;;;22446:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;22537:5;22530:12;;;22311:239;;;:::o;45836:21::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22041:208::-;22113:7;22158:1;22141:19;;:5;:19;;;;22133:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;22225:9;:16;22235:5;22225:16;;;;;;;;;;;;;;;;22218:23;;22041:208;;;:::o;44756:103::-;44336:12;:10;:12::i;:::-;44325:23;;:7;:5;:7::i;:::-;:23;;;44317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;44821:30:::1;44848:1;44821:18;:30::i;:::-;44756:103::o:0;48793:116::-;44336:12;:10;:12::i;:::-;44325:23;;:7;:5;:7::i;:::-;:23;;;44317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;48886:17:::1;48870:13;:33;;;;48793:116:::0;:::o;44105:87::-;44151:7;44178:6;;;;;;;;;;;44171:13;;44105:87;:::o;22786:104::-;22842:13;22875:7;22868:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22786:104;:::o;46154:34::-;;;;;;;;;;;;;:::o;46744:924::-;46810:6;;;;;;;;;;;46809:7;46801:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;46850:14;46867:13;:11;:13::i;:::-;46850:30;;46909:1;46895:11;:15;46887:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;46972:13;;46957:11;:28;;46949:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;47065:9;;47050:11;47041:6;:20;;;;:::i;:::-;:33;;47033:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;47128:7;:5;:7::i;:::-;47114:21;;:10;:21;;;47110:409;;47168:4;47149:23;;:15;;;;;;;;;;;:23;;;47146:125;;;47229:4;47193:40;;:20;:32;47214:10;47193:32;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;47185:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;47146:125;47279:24;47306:20;:32;47327:10;47306:32;;;;;;;;;;;;;;;;47279:59;;47389:18;;47374:11;47355:16;:30;;;;:::i;:::-;:52;;47347:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;47477:11;47470:4;;:18;;;;:::i;:::-;47457:9;:31;;47449:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;47137:382;47110:409;47532:9;47544:1;47532:13;;47527:136;47552:11;47547:1;:16;47527:136;;47579:20;:32;47600:10;47579:32;;;;;;;;;;;;;;;;:34;;;;;;;;;:::i;:::-;;;;;;47622:33;47632:10;47653:1;47644:6;:10;;;;:::i;:::-;47622:9;:33::i;:::-;47565:3;;;;;:::i;:::-;;;;47527:136;;;;46794:874;46744:924;:::o;24469:155::-;24564:52;24583:12;:10;:12::i;:::-;24597:8;24607;24564:18;:52::i;:::-;24469:155;;:::o;48524:63::-;44336:12;:10;:12::i;:::-;44325:23;;:7;:5;:7::i;:::-;:23;;;44317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;48577:4:::1;48566:8;;:15;;;;;;;;;;;;;;;;;;48524:63::o:0;25592:328::-;25767:41;25786:12;:10;:12::i;:::-;25800:7;25767:18;:41::i;:::-;25759:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;25873:39;25887:4;25893:2;25897:7;25906:5;25873:13;:39::i;:::-;25592:328;;;;:::o;49924:122::-;44336:12;:10;:12::i;:::-;44325:23;;:7;:5;:7::i;:::-;:23;;;44317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;50034:6:::1;50004:20;:27;50025:5;50004:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;49924:122:::0;;:::o;46048:38::-;;;;:::o;49738:180::-;44336:12;:10;:12::i;:::-;44325:23;;:7;:5;:7::i;:::-;:23;;;44317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;49822:6:::1;49817:96;49838:6;;:13;;49834:1;:17;49817:96;;;49901:4;49867:20;:31;49888:6;;49895:1;49888:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;49867:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;49853:3;;;;;:::i;:::-;;;;49817:96;;;;49738:180:::0;;:::o;45862:37::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;48028:474::-;48126:13;48159:16;48167:7;48159;:16::i;:::-;48151:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;48255:5;48243:17;;:8;;;;;;;;;;;:17;;;48240:60;;;48278:14;48271:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;48240:60;48308:28;48339:10;:8;:10::i;:::-;48308:41;;48394:1;48369:14;48363:28;:32;:133;;;;;;;;;;;;;;;;;48431:14;48447:18;:7;:16;:18::i;:::-;48467:13;48414:67;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;48363:133;48356:140;;;48028:474;;;;:::o;46193:36::-;;;;;;;;;;;;;:::o;48595:104::-;44336:12;:10;:12::i;:::-;44325:23;;:7;:5;:7::i;:::-;:23;;;44317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;48687:6:::1;48666:18;:27;;;;48595:104:::0;:::o;49086:139::-;44336:12;:10;:12::i;:::-;44325:23;;:7;:5;:7::i;:::-;:23;;;44317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;49145:16:::1;;;;;;;;;;;49144:17;49136:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;49216:4;49197:16;;:23;;;;;;;;;;;;;;;;;;49086:139::o:0;45974:31::-;;;;:::o;49231:189::-;44336:12;:10;:12::i;:::-;44325:23;;:7;:5;:7::i;:::-;:23;;;44317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;49323:16:::1;;;;;;;;;;;49322:17;49314:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;49397:17;49381:13;:33;;;;;;;;;;;;:::i;:::-;;49231:189:::0;:::o;24695:164::-;24792:4;24816:18;:25;24835:5;24816:25;;;;;;;;;;;;;;;:35;24842:8;24816:35;;;;;;;;;;;;;;;;;;;;;;;;;24809:42;;24695:164;;;;:::o;49428:120::-;44336:12;:10;:12::i;:::-;44325:23;;:7;:5;:7::i;:::-;:23;;;44317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;49527:15:::1;49510:14;:32;;;;;;;;;;;;:::i;:::-;;49428:120:::0;:::o;45014:201::-;44336:12;:10;:12::i;:::-;44325:23;;:7;:5;:7::i;:::-;:23;;;44317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;45123:1:::1;45103:22;;:8;:22;;;;45095:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;45179:28;45198:8;45179:18;:28::i;:::-;45014:201:::0;:::o;21672:305::-;21774:4;21826:25;21811:40;;;:11;:40;;;;:105;;;;21883:33;21868:48;;;:11;:48;;;;21811:105;:158;;;;21933:36;21957:11;21933:23;:36::i;:::-;21811:158;21791:178;;21672:305;;;:::o;16878:98::-;16931:7;16958:10;16951:17;;16878:98;:::o;27430:127::-;27495:4;27547:1;27519:30;;:7;:16;27527:7;27519:16;;;;;;;;;;;;;;;;;;;;;:30;;;;27512:37;;27430:127;;;:::o;31576:174::-;31678:2;31651:15;:24;31667:7;31651:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;31734:7;31730:2;31696:46;;31705:23;31720:7;31705:14;:23::i;:::-;31696:46;;;;;;;;;;;;31576:174;;:::o;27724:348::-;27817:4;27842:16;27850:7;27842;:16::i;:::-;27834:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;27918:13;27934:23;27949:7;27934:14;:23::i;:::-;27918:39;;27987:5;27976:16;;:7;:16;;;:51;;;;28020:7;27996:31;;:20;28008:7;27996:11;:20::i;:::-;:31;;;27976:51;:87;;;;28031:32;28048:5;28055:7;28031:16;:32::i;:::-;27976:87;27968:96;;;27724:348;;;;:::o;30833:625::-;30992:4;30965:31;;:23;30980:7;30965:14;:23::i;:::-;:31;;;30957:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;31071:1;31057:16;;:2;:16;;;;31049:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;31127:39;31148:4;31154:2;31158:7;31127:20;:39::i;:::-;31231:29;31248:1;31252:7;31231:8;:29::i;:::-;31292:1;31273:9;:15;31283:4;31273:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;31321:1;31304:9;:13;31314:2;31304:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;31352:2;31333:7;:16;31341:7;31333:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;31391:7;31387:2;31372:27;;31381:4;31372:27;;;;;;;;;;;;31412:38;31432:4;31438:2;31442:7;31412:19;:38::i;:::-;30833:625;;;:::o;45375:191::-;45449:16;45468:6;;;;;;;;;;;45449:25;;45494:8;45485:6;;:17;;;;;;;;;;;;;;;;;;45549:8;45518:40;;45539:8;45518:40;;;;;;;;;;;;45438:128;45375:191;:::o;28414:110::-;28490:26;28500:2;28504:7;28490:26;;;;;;;;;;;;:9;:26::i;:::-;28414:110;;:::o;31892:315::-;32047:8;32038:17;;:5;:17;;;;32030:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;32134:8;32096:18;:25;32115:5;32096:25;;;;;;;;;;;;;;;:35;32122:8;32096:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;32180:8;32158:41;;32173:5;32158:41;;;32190:8;32158:41;;;;;;:::i;:::-;;;;;;;;31892:315;;;:::o;26802:::-;26959:28;26969:4;26975:2;26979:7;26959:9;:28::i;:::-;27006:48;27029:4;27035:2;27039:7;27048:5;27006:22;:48::i;:::-;26998:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;26802:315;;;;:::o;46623:102::-;46683:13;46712:7;46705:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46623:102;:::o;17465:723::-;17521:13;17751:1;17742:5;:10;17738:53;;;17769:10;;;;;;;;;;;;;;;;;;;;;17738:53;17801:12;17816:5;17801:20;;17832:14;17857:78;17872:1;17864:4;:9;17857:78;;17890:8;;;;;:::i;:::-;;;;17921:2;17913:10;;;;;:::i;:::-;;;17857:78;;;17945:19;17977:6;17967:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17945:39;;17995:154;18011:1;18002:5;:10;17995:154;;18039:1;18029:11;;;;;:::i;:::-;;;18106:2;18098:5;:10;;;;:::i;:::-;18085:2;:24;;;;:::i;:::-;18072:39;;18055:6;18062;18055:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;18135:2;18126:11;;;;;:::i;:::-;;;17995:154;;;18173:6;18159:21;;;;;17465:723;;;;:::o;20095:157::-;20180:4;20219:25;20204:40;;;:11;:40;;;;20197:47;;20095:157;;;:::o;38565:589::-;38709:45;38736:4;38742:2;38746:7;38709:26;:45::i;:::-;38787:1;38771:18;;:4;:18;;;38767:187;;;38806:40;38838:7;38806:31;:40::i;:::-;38767:187;;;38876:2;38868:10;;:4;:10;;;38864:90;;38895:47;38928:4;38934:7;38895:32;:47::i;:::-;38864:90;38767:187;38982:1;38968:16;;:2;:16;;;38964:183;;;39001:45;39038:7;39001:36;:45::i;:::-;38964:183;;;39074:4;39068:10;;:2;:10;;;39064:83;;39095:40;39123:2;39127:7;39095:27;:40::i;:::-;39064:83;38964:183;38565:589;;;:::o;34654:125::-;;;;:::o;28751:321::-;28881:18;28887:2;28891:7;28881:5;:18::i;:::-;28932:54;28963:1;28967:2;28971:7;28980:5;28932:22;:54::i;:::-;28910:154;;;;;;;;;;;;:::i;:::-;;;;;;;;;28751:321;;;:::o;32772:799::-;32927:4;32948:15;:2;:13;;;:15::i;:::-;32944:620;;;33000:2;32984:36;;;33021:12;:10;:12::i;:::-;33035:4;33041:7;33050:5;32984:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;32980:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33243:1;33226:6;:13;:18;33222:272;;;33269:60;;;;;;;;;;:::i;:::-;;;;;;;;33222:272;33444:6;33438:13;33429:6;33425:2;33421:15;33414:38;32980:529;33117:41;;;33107:51;;;:6;:51;;;;33100:58;;;;;32944:620;33548:4;33541:11;;32772:799;;;;;;;:::o;34143:126::-;;;;:::o;39877:164::-;39981:10;:17;;;;39954:15;:24;39970:7;39954:24;;;;;;;;;;;:44;;;;40009:10;40025:7;40009:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39877:164;:::o;40668:988::-;40934:22;40984:1;40959:22;40976:4;40959:16;:22::i;:::-;:26;;;;:::i;:::-;40934:51;;40996:18;41017:17;:26;41035:7;41017:26;;;;;;;;;;;;40996:47;;41164:14;41150:10;:28;41146:328;;41195:19;41217:12;:18;41230:4;41217:18;;;;;;;;;;;;;;;:34;41236:14;41217:34;;;;;;;;;;;;41195:56;;41301:11;41268:12;:18;41281:4;41268:18;;;;;;;;;;;;;;;:30;41287:10;41268:30;;;;;;;;;;;:44;;;;41418:10;41385:17;:30;41403:11;41385:30;;;;;;;;;;;:43;;;;41180:294;41146:328;41570:17;:26;41588:7;41570:26;;;;;;;;;;;41563:33;;;41614:12;:18;41627:4;41614:18;;;;;;;;;;;;;;;:34;41633:14;41614:34;;;;;;;;;;;41607:41;;;40749:907;;40668:988;;:::o;41951:1079::-;42204:22;42249:1;42229:10;:17;;;;:21;;;;:::i;:::-;42204:46;;42261:18;42282:15;:24;42298:7;42282:24;;;;;;;;;;;;42261:45;;42633:19;42655:10;42666:14;42655:26;;;;;;;;:::i;:::-;;;;;;;;;;42633:48;;42719:11;42694:10;42705;42694:22;;;;;;;;:::i;:::-;;;;;;;;;:36;;;;42830:10;42799:15;:28;42815:11;42799:28;;;;;;;;;;;:41;;;;42971:15;:24;42987:7;42971:24;;;;;;;;;;;42964:31;;;43006:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;42022:1008;;;41951:1079;:::o;39455:221::-;39540:14;39557:20;39574:2;39557:16;:20::i;:::-;39540:37;;39615:7;39588:12;:16;39601:2;39588:16;;;;;;;;;;;;;;;:24;39605:6;39588:24;;;;;;;;;;;:34;;;;39662:6;39633:17;:26;39651:7;39633:26;;;;;;;;;;;:35;;;;39529:147;39455:221;;:::o;29408:439::-;29502:1;29488:16;;:2;:16;;;;29480:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;29561:16;29569:7;29561;:16::i;:::-;29560:17;29552:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;29623:45;29652:1;29656:2;29660:7;29623:20;:45::i;:::-;29698:1;29681:9;:13;29691:2;29681:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;29729:2;29710:7;:16;29718:7;29710:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;29774:7;29770:2;29749:33;;29766:1;29749:33;;;;;;;;;;;;29795:44;29823:1;29827:2;29831:7;29795:19;:44::i;:::-;29408:439;;:::o;8921:326::-;8981:4;9238:1;9216:7;:19;;;:23;9209:30;;8921:326;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:410:1:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:112;;;280:79;;:::i;:::-;249:112;370:41;404:6;399:3;394;370:41;:::i;:::-;90:327;7:410;;;;;:::o;423:412::-;501:5;526:66;542:49;584:6;542:49;:::i;:::-;526:66;:::i;:::-;517:75;;615:6;608:5;601:21;653:4;646:5;642:16;691:3;682:6;677:3;673:16;670:25;667:112;;;698:79;;:::i;:::-;667:112;788:41;822:6;817:3;812;788:41;:::i;:::-;507:328;423:412;;;;;:::o;841:139::-;887:5;925:6;912:20;903:29;;941:33;968:5;941:33;:::i;:::-;841:139;;;;:::o;1003:568::-;1076:8;1086:6;1136:3;1129:4;1121:6;1117:17;1113:27;1103:122;;1144:79;;:::i;:::-;1103:122;1257:6;1244:20;1234:30;;1287:18;1279:6;1276:30;1273:117;;;1309:79;;:::i;:::-;1273:117;1423:4;1415:6;1411:17;1399:29;;1477:3;1469:4;1461:6;1457:17;1447:8;1443:32;1440:41;1437:128;;;1484:79;;:::i;:::-;1437:128;1003:568;;;;;:::o;1577:133::-;1620:5;1658:6;1645:20;1636:29;;1674:30;1698:5;1674:30;:::i;:::-;1577:133;;;;:::o;1716:137::-;1761:5;1799:6;1786:20;1777:29;;1815:32;1841:5;1815:32;:::i;:::-;1716:137;;;;:::o;1859:141::-;1915:5;1946:6;1940:13;1931:22;;1962:32;1988:5;1962:32;:::i;:::-;1859:141;;;;:::o;2019:338::-;2074:5;2123:3;2116:4;2108:6;2104:17;2100:27;2090:122;;2131:79;;:::i;:::-;2090:122;2248:6;2235:20;2273:78;2347:3;2339:6;2332:4;2324:6;2320:17;2273:78;:::i;:::-;2264:87;;2080:277;2019:338;;;;:::o;2377:340::-;2433:5;2482:3;2475:4;2467:6;2463:17;2459:27;2449:122;;2490:79;;:::i;:::-;2449:122;2607:6;2594:20;2632:79;2707:3;2699:6;2692:4;2684:6;2680:17;2632:79;:::i;:::-;2623:88;;2439:278;2377:340;;;;:::o;2723:139::-;2769:5;2807:6;2794:20;2785:29;;2823:33;2850:5;2823:33;:::i;:::-;2723:139;;;;:::o;2868:329::-;2927:6;2976:2;2964:9;2955:7;2951:23;2947:32;2944:119;;;2982:79;;:::i;:::-;2944:119;3102:1;3127:53;3172:7;3163:6;3152:9;3148:22;3127:53;:::i;:::-;3117:63;;3073:117;2868:329;;;;:::o;3203:474::-;3271:6;3279;3328:2;3316:9;3307:7;3303:23;3299:32;3296:119;;;3334:79;;:::i;:::-;3296:119;3454:1;3479:53;3524:7;3515:6;3504:9;3500:22;3479:53;:::i;:::-;3469:63;;3425:117;3581:2;3607:53;3652:7;3643:6;3632:9;3628:22;3607:53;:::i;:::-;3597:63;;3552:118;3203:474;;;;;:::o;3683:619::-;3760:6;3768;3776;3825:2;3813:9;3804:7;3800:23;3796:32;3793:119;;;3831:79;;:::i;:::-;3793:119;3951:1;3976:53;4021:7;4012:6;4001:9;3997:22;3976:53;:::i;:::-;3966:63;;3922:117;4078:2;4104:53;4149:7;4140:6;4129:9;4125:22;4104:53;:::i;:::-;4094:63;;4049:118;4206:2;4232:53;4277:7;4268:6;4257:9;4253:22;4232:53;:::i;:::-;4222:63;;4177:118;3683:619;;;;;:::o;4308:943::-;4403:6;4411;4419;4427;4476:3;4464:9;4455:7;4451:23;4447:33;4444:120;;;4483:79;;:::i;:::-;4444:120;4603:1;4628:53;4673:7;4664:6;4653:9;4649:22;4628:53;:::i;:::-;4618:63;;4574:117;4730:2;4756:53;4801:7;4792:6;4781:9;4777:22;4756:53;:::i;:::-;4746:63;;4701:118;4858:2;4884:53;4929:7;4920:6;4909:9;4905:22;4884:53;:::i;:::-;4874:63;;4829:118;5014:2;5003:9;4999:18;4986:32;5045:18;5037:6;5034:30;5031:117;;;5067:79;;:::i;:::-;5031:117;5172:62;5226:7;5217:6;5206:9;5202:22;5172:62;:::i;:::-;5162:72;;4957:287;4308:943;;;;;;;:::o;5257:468::-;5322:6;5330;5379:2;5367:9;5358:7;5354:23;5350:32;5347:119;;;5385:79;;:::i;:::-;5347:119;5505:1;5530:53;5575:7;5566:6;5555:9;5551:22;5530:53;:::i;:::-;5520:63;;5476:117;5632:2;5658:50;5700:7;5691:6;5680:9;5676:22;5658:50;:::i;:::-;5648:60;;5603:115;5257:468;;;;;:::o;5731:474::-;5799:6;5807;5856:2;5844:9;5835:7;5831:23;5827:32;5824:119;;;5862:79;;:::i;:::-;5824:119;5982:1;6007:53;6052:7;6043:6;6032:9;6028:22;6007:53;:::i;:::-;5997:63;;5953:117;6109:2;6135:53;6180:7;6171:6;6160:9;6156:22;6135:53;:::i;:::-;6125:63;;6080:118;5731:474;;;;;:::o;6211:559::-;6297:6;6305;6354:2;6342:9;6333:7;6329:23;6325:32;6322:119;;;6360:79;;:::i;:::-;6322:119;6508:1;6497:9;6493:17;6480:31;6538:18;6530:6;6527:30;6524:117;;;6560:79;;:::i;:::-;6524:117;6673:80;6745:7;6736:6;6725:9;6721:22;6673:80;:::i;:::-;6655:98;;;;6451:312;6211:559;;;;;:::o;6776:323::-;6832:6;6881:2;6869:9;6860:7;6856:23;6852:32;6849:119;;;6887:79;;:::i;:::-;6849:119;7007:1;7032:50;7074:7;7065:6;7054:9;7050:22;7032:50;:::i;:::-;7022:60;;6978:114;6776:323;;;;:::o;7105:327::-;7163:6;7212:2;7200:9;7191:7;7187:23;7183:32;7180:119;;;7218:79;;:::i;:::-;7180:119;7338:1;7363:52;7407:7;7398:6;7387:9;7383:22;7363:52;:::i;:::-;7353:62;;7309:116;7105:327;;;;:::o;7438:349::-;7507:6;7556:2;7544:9;7535:7;7531:23;7527:32;7524:119;;;7562:79;;:::i;:::-;7524:119;7682:1;7707:63;7762:7;7753:6;7742:9;7738:22;7707:63;:::i;:::-;7697:73;;7653:127;7438:349;;;;:::o;7793:509::-;7862:6;7911:2;7899:9;7890:7;7886:23;7882:32;7879:119;;;7917:79;;:::i;:::-;7879:119;8065:1;8054:9;8050:17;8037:31;8095:18;8087:6;8084:30;8081:117;;;8117:79;;:::i;:::-;8081:117;8222:63;8277:7;8268:6;8257:9;8253:22;8222:63;:::i;:::-;8212:73;;8008:287;7793:509;;;;:::o;8308:329::-;8367:6;8416:2;8404:9;8395:7;8391:23;8387:32;8384:119;;;8422:79;;:::i;:::-;8384:119;8542:1;8567:53;8612:7;8603:6;8592:9;8588:22;8567:53;:::i;:::-;8557:63;;8513:117;8308:329;;;;:::o;8643:179::-;8712:10;8733:46;8775:3;8767:6;8733:46;:::i;:::-;8811:4;8806:3;8802:14;8788:28;;8643:179;;;;:::o;8828:118::-;8915:24;8933:5;8915:24;:::i;:::-;8910:3;8903:37;8828:118;;:::o;8982:732::-;9101:3;9130:54;9178:5;9130:54;:::i;:::-;9200:86;9279:6;9274:3;9200:86;:::i;:::-;9193:93;;9310:56;9360:5;9310:56;:::i;:::-;9389:7;9420:1;9405:284;9430:6;9427:1;9424:13;9405:284;;;9506:6;9500:13;9533:63;9592:3;9577:13;9533:63;:::i;:::-;9526:70;;9619:60;9672:6;9619:60;:::i;:::-;9609:70;;9465:224;9452:1;9449;9445:9;9440:14;;9405:284;;;9409:14;9705:3;9698:10;;9106:608;;;8982:732;;;;:::o;9720:109::-;9801:21;9816:5;9801:21;:::i;:::-;9796:3;9789:34;9720:109;;:::o;9835:360::-;9921:3;9949:38;9981:5;9949:38;:::i;:::-;10003:70;10066:6;10061:3;10003:70;:::i;:::-;9996:77;;10082:52;10127:6;10122:3;10115:4;10108:5;10104:16;10082:52;:::i;:::-;10159:29;10181:6;10159:29;:::i;:::-;10154:3;10150:39;10143:46;;9925:270;9835:360;;;;:::o;10201:364::-;10289:3;10317:39;10350:5;10317:39;:::i;:::-;10372:71;10436:6;10431:3;10372:71;:::i;:::-;10365:78;;10452:52;10497:6;10492:3;10485:4;10478:5;10474:16;10452:52;:::i;:::-;10529:29;10551:6;10529:29;:::i;:::-;10524:3;10520:39;10513:46;;10293:272;10201:364;;;;:::o;10571:377::-;10677:3;10705:39;10738:5;10705:39;:::i;:::-;10760:89;10842:6;10837:3;10760:89;:::i;:::-;10753:96;;10858:52;10903:6;10898:3;10891:4;10884:5;10880:16;10858:52;:::i;:::-;10935:6;10930:3;10926:16;10919:23;;10681:267;10571:377;;;;:::o;10978:845::-;11081:3;11118:5;11112:12;11147:36;11173:9;11147:36;:::i;:::-;11199:89;11281:6;11276:3;11199:89;:::i;:::-;11192:96;;11319:1;11308:9;11304:17;11335:1;11330:137;;;;11481:1;11476:341;;;;11297:520;;11330:137;11414:4;11410:9;11399;11395:25;11390:3;11383:38;11450:6;11445:3;11441:16;11434:23;;11330:137;;11476:341;11543:38;11575:5;11543:38;:::i;:::-;11603:1;11617:154;11631:6;11628:1;11625:13;11617:154;;;11705:7;11699:14;11695:1;11690:3;11686:11;11679:35;11755:1;11746:7;11742:15;11731:26;;11653:4;11650:1;11646:12;11641:17;;11617:154;;;11800:6;11795:3;11791:16;11784:23;;11483:334;;11297:520;;11085:738;;10978:845;;;;:::o;11829:366::-;11971:3;11992:67;12056:2;12051:3;11992:67;:::i;:::-;11985:74;;12068:93;12157:3;12068:93;:::i;:::-;12186:2;12181:3;12177:12;12170:19;;11829:366;;;:::o;12201:::-;12343:3;12364:67;12428:2;12423:3;12364:67;:::i;:::-;12357:74;;12440:93;12529:3;12440:93;:::i;:::-;12558:2;12553:3;12549:12;12542:19;;12201:366;;;:::o;12573:::-;12715:3;12736:67;12800:2;12795:3;12736:67;:::i;:::-;12729:74;;12812:93;12901:3;12812:93;:::i;:::-;12930:2;12925:3;12921:12;12914:19;;12573:366;;;:::o;12945:::-;13087:3;13108:67;13172:2;13167:3;13108:67;:::i;:::-;13101:74;;13184:93;13273:3;13184:93;:::i;:::-;13302:2;13297:3;13293:12;13286:19;;12945:366;;;:::o;13317:::-;13459:3;13480:67;13544:2;13539:3;13480:67;:::i;:::-;13473:74;;13556:93;13645:3;13556:93;:::i;:::-;13674:2;13669:3;13665:12;13658:19;;13317:366;;;:::o;13689:::-;13831:3;13852:67;13916:2;13911:3;13852:67;:::i;:::-;13845:74;;13928:93;14017:3;13928:93;:::i;:::-;14046:2;14041:3;14037:12;14030:19;;13689:366;;;:::o;14061:::-;14203:3;14224:67;14288:2;14283:3;14224:67;:::i;:::-;14217:74;;14300:93;14389:3;14300:93;:::i;:::-;14418:2;14413:3;14409:12;14402:19;;14061:366;;;:::o;14433:::-;14575:3;14596:67;14660:2;14655:3;14596:67;:::i;:::-;14589:74;;14672:93;14761:3;14672:93;:::i;:::-;14790:2;14785:3;14781:12;14774:19;;14433:366;;;:::o;14805:::-;14947:3;14968:67;15032:2;15027:3;14968:67;:::i;:::-;14961:74;;15044:93;15133:3;15044:93;:::i;:::-;15162:2;15157:3;15153:12;15146:19;;14805:366;;;:::o;15177:::-;15319:3;15340:67;15404:2;15399:3;15340:67;:::i;:::-;15333:74;;15416:93;15505:3;15416:93;:::i;:::-;15534:2;15529:3;15525:12;15518:19;;15177:366;;;:::o;15549:::-;15691:3;15712:67;15776:2;15771:3;15712:67;:::i;:::-;15705:74;;15788:93;15877:3;15788:93;:::i;:::-;15906:2;15901:3;15897:12;15890:19;;15549:366;;;:::o;15921:::-;16063:3;16084:67;16148:2;16143:3;16084:67;:::i;:::-;16077:74;;16160:93;16249:3;16160:93;:::i;:::-;16278:2;16273:3;16269:12;16262:19;;15921:366;;;:::o;16293:::-;16435:3;16456:67;16520:2;16515:3;16456:67;:::i;:::-;16449:74;;16532:93;16621:3;16532:93;:::i;:::-;16650:2;16645:3;16641:12;16634:19;;16293:366;;;:::o;16665:::-;16807:3;16828:67;16892:2;16887:3;16828:67;:::i;:::-;16821:74;;16904:93;16993:3;16904:93;:::i;:::-;17022:2;17017:3;17013:12;17006:19;;16665:366;;;:::o;17037:::-;17179:3;17200:67;17264:2;17259:3;17200:67;:::i;:::-;17193:74;;17276:93;17365:3;17276:93;:::i;:::-;17394:2;17389:3;17385:12;17378:19;;17037:366;;;:::o;17409:::-;17551:3;17572:67;17636:2;17631:3;17572:67;:::i;:::-;17565:74;;17648:93;17737:3;17648:93;:::i;:::-;17766:2;17761:3;17757:12;17750:19;;17409:366;;;:::o;17781:::-;17923:3;17944:67;18008:2;18003:3;17944:67;:::i;:::-;17937:74;;18020:93;18109:3;18020:93;:::i;:::-;18138:2;18133:3;18129:12;18122:19;;17781:366;;;:::o;18153:::-;18295:3;18316:67;18380:2;18375:3;18316:67;:::i;:::-;18309:74;;18392:93;18481:3;18392:93;:::i;:::-;18510:2;18505:3;18501:12;18494:19;;18153:366;;;:::o;18525:::-;18667:3;18688:67;18752:2;18747:3;18688:67;:::i;:::-;18681:74;;18764:93;18853:3;18764:93;:::i;:::-;18882:2;18877:3;18873:12;18866:19;;18525:366;;;:::o;18897:::-;19039:3;19060:67;19124:2;19119:3;19060:67;:::i;:::-;19053:74;;19136:93;19225:3;19136:93;:::i;:::-;19254:2;19249:3;19245:12;19238:19;;18897:366;;;:::o;19269:::-;19411:3;19432:67;19496:2;19491:3;19432:67;:::i;:::-;19425:74;;19508:93;19597:3;19508:93;:::i;:::-;19626:2;19621:3;19617:12;19610:19;;19269:366;;;:::o;19641:::-;19783:3;19804:67;19868:2;19863:3;19804:67;:::i;:::-;19797:74;;19880:93;19969:3;19880:93;:::i;:::-;19998:2;19993:3;19989:12;19982:19;;19641:366;;;:::o;20013:398::-;20172:3;20193:83;20274:1;20269:3;20193:83;:::i;:::-;20186:90;;20285:93;20374:3;20285:93;:::i;:::-;20403:1;20398:3;20394:11;20387:18;;20013:398;;;:::o;20417:366::-;20559:3;20580:67;20644:2;20639:3;20580:67;:::i;:::-;20573:74;;20656:93;20745:3;20656:93;:::i;:::-;20774:2;20769:3;20765:12;20758:19;;20417:366;;;:::o;20789:::-;20931:3;20952:67;21016:2;21011:3;20952:67;:::i;:::-;20945:74;;21028:93;21117:3;21028:93;:::i;:::-;21146:2;21141:3;21137:12;21130:19;;20789:366;;;:::o;21161:::-;21303:3;21324:67;21388:2;21383:3;21324:67;:::i;:::-;21317:74;;21400:93;21489:3;21400:93;:::i;:::-;21518:2;21513:3;21509:12;21502:19;;21161:366;;;:::o;21533:::-;21675:3;21696:67;21760:2;21755:3;21696:67;:::i;:::-;21689:74;;21772:93;21861:3;21772:93;:::i;:::-;21890:2;21885:3;21881:12;21874:19;;21533:366;;;:::o;21905:::-;22047:3;22068:67;22132:2;22127:3;22068:67;:::i;:::-;22061:74;;22144:93;22233:3;22144:93;:::i;:::-;22262:2;22257:3;22253:12;22246:19;;21905:366;;;:::o;22277:108::-;22354:24;22372:5;22354:24;:::i;:::-;22349:3;22342:37;22277:108;;:::o;22391:118::-;22478:24;22496:5;22478:24;:::i;:::-;22473:3;22466:37;22391:118;;:::o;22515:589::-;22740:3;22762:95;22853:3;22844:6;22762:95;:::i;:::-;22755:102;;22874:95;22965:3;22956:6;22874:95;:::i;:::-;22867:102;;22986:92;23074:3;23065:6;22986:92;:::i;:::-;22979:99;;23095:3;23088:10;;22515:589;;;;;;:::o;23110:379::-;23294:3;23316:147;23459:3;23316:147;:::i;:::-;23309:154;;23480:3;23473:10;;23110:379;;;:::o;23495:222::-;23588:4;23626:2;23615:9;23611:18;23603:26;;23639:71;23707:1;23696:9;23692:17;23683:6;23639:71;:::i;:::-;23495:222;;;;:::o;23723:640::-;23918:4;23956:3;23945:9;23941:19;23933:27;;23970:71;24038:1;24027:9;24023:17;24014:6;23970:71;:::i;:::-;24051:72;24119:2;24108:9;24104:18;24095:6;24051:72;:::i;:::-;24133;24201:2;24190:9;24186:18;24177:6;24133:72;:::i;:::-;24252:9;24246:4;24242:20;24237:2;24226:9;24222:18;24215:48;24280:76;24351:4;24342:6;24280:76;:::i;:::-;24272:84;;23723:640;;;;;;;:::o;24369:373::-;24512:4;24550:2;24539:9;24535:18;24527:26;;24599:9;24593:4;24589:20;24585:1;24574:9;24570:17;24563:47;24627:108;24730:4;24721:6;24627:108;:::i;:::-;24619:116;;24369:373;;;;:::o;24748:210::-;24835:4;24873:2;24862:9;24858:18;24850:26;;24886:65;24948:1;24937:9;24933:17;24924:6;24886:65;:::i;:::-;24748:210;;;;:::o;24964:313::-;25077:4;25115:2;25104:9;25100:18;25092:26;;25164:9;25158:4;25154:20;25150:1;25139:9;25135:17;25128:47;25192:78;25265:4;25256:6;25192:78;:::i;:::-;25184:86;;24964:313;;;;:::o;25283:419::-;25449:4;25487:2;25476:9;25472:18;25464:26;;25536:9;25530:4;25526:20;25522:1;25511:9;25507:17;25500:47;25564:131;25690:4;25564:131;:::i;:::-;25556:139;;25283:419;;;:::o;25708:::-;25874:4;25912:2;25901:9;25897:18;25889:26;;25961:9;25955:4;25951:20;25947:1;25936:9;25932:17;25925:47;25989:131;26115:4;25989:131;:::i;:::-;25981:139;;25708:419;;;:::o;26133:::-;26299:4;26337:2;26326:9;26322:18;26314:26;;26386:9;26380:4;26376:20;26372:1;26361:9;26357:17;26350:47;26414:131;26540:4;26414:131;:::i;:::-;26406:139;;26133:419;;;:::o;26558:::-;26724:4;26762:2;26751:9;26747:18;26739:26;;26811:9;26805:4;26801:20;26797:1;26786:9;26782:17;26775:47;26839:131;26965:4;26839:131;:::i;:::-;26831:139;;26558:419;;;:::o;26983:::-;27149:4;27187:2;27176:9;27172:18;27164:26;;27236:9;27230:4;27226:20;27222:1;27211:9;27207:17;27200:47;27264:131;27390:4;27264:131;:::i;:::-;27256:139;;26983:419;;;:::o;27408:::-;27574:4;27612:2;27601:9;27597:18;27589:26;;27661:9;27655:4;27651:20;27647:1;27636:9;27632:17;27625:47;27689:131;27815:4;27689:131;:::i;:::-;27681:139;;27408:419;;;:::o;27833:::-;27999:4;28037:2;28026:9;28022:18;28014:26;;28086:9;28080:4;28076:20;28072:1;28061:9;28057:17;28050:47;28114:131;28240:4;28114:131;:::i;:::-;28106:139;;27833:419;;;:::o;28258:::-;28424:4;28462:2;28451:9;28447:18;28439:26;;28511:9;28505:4;28501:20;28497:1;28486:9;28482:17;28475:47;28539:131;28665:4;28539:131;:::i;:::-;28531:139;;28258:419;;;:::o;28683:::-;28849:4;28887:2;28876:9;28872:18;28864:26;;28936:9;28930:4;28926:20;28922:1;28911:9;28907:17;28900:47;28964:131;29090:4;28964:131;:::i;:::-;28956:139;;28683:419;;;:::o;29108:::-;29274:4;29312:2;29301:9;29297:18;29289:26;;29361:9;29355:4;29351:20;29347:1;29336:9;29332:17;29325:47;29389:131;29515:4;29389:131;:::i;:::-;29381:139;;29108:419;;;:::o;29533:::-;29699:4;29737:2;29726:9;29722:18;29714:26;;29786:9;29780:4;29776:20;29772:1;29761:9;29757:17;29750:47;29814:131;29940:4;29814:131;:::i;:::-;29806:139;;29533:419;;;:::o;29958:::-;30124:4;30162:2;30151:9;30147:18;30139:26;;30211:9;30205:4;30201:20;30197:1;30186:9;30182:17;30175:47;30239:131;30365:4;30239:131;:::i;:::-;30231:139;;29958:419;;;:::o;30383:::-;30549:4;30587:2;30576:9;30572:18;30564:26;;30636:9;30630:4;30626:20;30622:1;30611:9;30607:17;30600:47;30664:131;30790:4;30664:131;:::i;:::-;30656:139;;30383:419;;;:::o;30808:::-;30974:4;31012:2;31001:9;30997:18;30989:26;;31061:9;31055:4;31051:20;31047:1;31036:9;31032:17;31025:47;31089:131;31215:4;31089:131;:::i;:::-;31081:139;;30808:419;;;:::o;31233:::-;31399:4;31437:2;31426:9;31422:18;31414:26;;31486:9;31480:4;31476:20;31472:1;31461:9;31457:17;31450:47;31514:131;31640:4;31514:131;:::i;:::-;31506:139;;31233:419;;;:::o;31658:::-;31824:4;31862:2;31851:9;31847:18;31839:26;;31911:9;31905:4;31901:20;31897:1;31886:9;31882:17;31875:47;31939:131;32065:4;31939:131;:::i;:::-;31931:139;;31658:419;;;:::o;32083:::-;32249:4;32287:2;32276:9;32272:18;32264:26;;32336:9;32330:4;32326:20;32322:1;32311:9;32307:17;32300:47;32364:131;32490:4;32364:131;:::i;:::-;32356:139;;32083:419;;;:::o;32508:::-;32674:4;32712:2;32701:9;32697:18;32689:26;;32761:9;32755:4;32751:20;32747:1;32736:9;32732:17;32725:47;32789:131;32915:4;32789:131;:::i;:::-;32781:139;;32508:419;;;:::o;32933:::-;33099:4;33137:2;33126:9;33122:18;33114:26;;33186:9;33180:4;33176:20;33172:1;33161:9;33157:17;33150:47;33214:131;33340:4;33214:131;:::i;:::-;33206:139;;32933:419;;;:::o;33358:::-;33524:4;33562:2;33551:9;33547:18;33539:26;;33611:9;33605:4;33601:20;33597:1;33586:9;33582:17;33575:47;33639:131;33765:4;33639:131;:::i;:::-;33631:139;;33358:419;;;:::o;33783:::-;33949:4;33987:2;33976:9;33972:18;33964:26;;34036:9;34030:4;34026:20;34022:1;34011:9;34007:17;34000:47;34064:131;34190:4;34064:131;:::i;:::-;34056:139;;33783:419;;;:::o;34208:::-;34374:4;34412:2;34401:9;34397:18;34389:26;;34461:9;34455:4;34451:20;34447:1;34436:9;34432:17;34425:47;34489:131;34615:4;34489:131;:::i;:::-;34481:139;;34208:419;;;:::o;34633:::-;34799:4;34837:2;34826:9;34822:18;34814:26;;34886:9;34880:4;34876:20;34872:1;34861:9;34857:17;34850:47;34914:131;35040:4;34914:131;:::i;:::-;34906:139;;34633:419;;;:::o;35058:::-;35224:4;35262:2;35251:9;35247:18;35239:26;;35311:9;35305:4;35301:20;35297:1;35286:9;35282:17;35275:47;35339:131;35465:4;35339:131;:::i;:::-;35331:139;;35058:419;;;:::o;35483:::-;35649:4;35687:2;35676:9;35672:18;35664:26;;35736:9;35730:4;35726:20;35722:1;35711:9;35707:17;35700:47;35764:131;35890:4;35764:131;:::i;:::-;35756:139;;35483:419;;;:::o;35908:::-;36074:4;36112:2;36101:9;36097:18;36089:26;;36161:9;36155:4;36151:20;36147:1;36136:9;36132:17;36125:47;36189:131;36315:4;36189:131;:::i;:::-;36181:139;;35908:419;;;:::o;36333:::-;36499:4;36537:2;36526:9;36522:18;36514:26;;36586:9;36580:4;36576:20;36572:1;36561:9;36557:17;36550:47;36614:131;36740:4;36614:131;:::i;:::-;36606:139;;36333:419;;;:::o;36758:222::-;36851:4;36889:2;36878:9;36874:18;36866:26;;36902:71;36970:1;36959:9;36955:17;36946:6;36902:71;:::i;:::-;36758:222;;;;:::o;36986:129::-;37020:6;37047:20;;:::i;:::-;37037:30;;37076:33;37104:4;37096:6;37076:33;:::i;:::-;36986:129;;;:::o;37121:75::-;37154:6;37187:2;37181:9;37171:19;;37121:75;:::o;37202:307::-;37263:4;37353:18;37345:6;37342:30;37339:56;;;37375:18;;:::i;:::-;37339:56;37413:29;37435:6;37413:29;:::i;:::-;37405:37;;37497:4;37491;37487:15;37479:23;;37202:307;;;:::o;37515:308::-;37577:4;37667:18;37659:6;37656:30;37653:56;;;37689:18;;:::i;:::-;37653:56;37727:29;37749:6;37727:29;:::i;:::-;37719:37;;37811:4;37805;37801:15;37793:23;;37515:308;;;:::o;37829:132::-;37896:4;37919:3;37911:11;;37949:4;37944:3;37940:14;37932:22;;37829:132;;;:::o;37967:141::-;38016:4;38039:3;38031:11;;38062:3;38059:1;38052:14;38096:4;38093:1;38083:18;38075:26;;37967:141;;;:::o;38114:114::-;38181:6;38215:5;38209:12;38199:22;;38114:114;;;:::o;38234:98::-;38285:6;38319:5;38313:12;38303:22;;38234:98;;;:::o;38338:99::-;38390:6;38424:5;38418:12;38408:22;;38338:99;;;:::o;38443:113::-;38513:4;38545;38540:3;38536:14;38528:22;;38443:113;;;:::o;38562:184::-;38661:11;38695:6;38690:3;38683:19;38735:4;38730:3;38726:14;38711:29;;38562:184;;;;:::o;38752:168::-;38835:11;38869:6;38864:3;38857:19;38909:4;38904:3;38900:14;38885:29;;38752:168;;;;:::o;38926:147::-;39027:11;39064:3;39049:18;;38926:147;;;;:::o;39079:169::-;39163:11;39197:6;39192:3;39185:19;39237:4;39232:3;39228:14;39213:29;;39079:169;;;;:::o;39254:148::-;39356:11;39393:3;39378:18;;39254:148;;;;:::o;39408:305::-;39448:3;39467:20;39485:1;39467:20;:::i;:::-;39462:25;;39501:20;39519:1;39501:20;:::i;:::-;39496:25;;39655:1;39587:66;39583:74;39580:1;39577:81;39574:107;;;39661:18;;:::i;:::-;39574:107;39705:1;39702;39698:9;39691:16;;39408:305;;;;:::o;39719:185::-;39759:1;39776:20;39794:1;39776:20;:::i;:::-;39771:25;;39810:20;39828:1;39810:20;:::i;:::-;39805:25;;39849:1;39839:35;;39854:18;;:::i;:::-;39839:35;39896:1;39893;39889:9;39884:14;;39719:185;;;;:::o;39910:348::-;39950:7;39973:20;39991:1;39973:20;:::i;:::-;39968:25;;40007:20;40025:1;40007:20;:::i;:::-;40002:25;;40195:1;40127:66;40123:74;40120:1;40117:81;40112:1;40105:9;40098:17;40094:105;40091:131;;;40202:18;;:::i;:::-;40091:131;40250:1;40247;40243:9;40232:20;;39910:348;;;;:::o;40264:191::-;40304:4;40324:20;40342:1;40324:20;:::i;:::-;40319:25;;40358:20;40376:1;40358:20;:::i;:::-;40353:25;;40397:1;40394;40391:8;40388:34;;;40402:18;;:::i;:::-;40388:34;40447:1;40444;40440:9;40432:17;;40264:191;;;;:::o;40461:96::-;40498:7;40527:24;40545:5;40527:24;:::i;:::-;40516:35;;40461:96;;;:::o;40563:90::-;40597:7;40640:5;40633:13;40626:21;40615:32;;40563:90;;;:::o;40659:149::-;40695:7;40735:66;40728:5;40724:78;40713:89;;40659:149;;;:::o;40814:126::-;40851:7;40891:42;40884:5;40880:54;40869:65;;40814:126;;;:::o;40946:77::-;40983:7;41012:5;41001:16;;40946:77;;;:::o;41029:154::-;41113:6;41108:3;41103;41090:30;41175:1;41166:6;41161:3;41157:16;41150:27;41029:154;;;:::o;41189:307::-;41257:1;41267:113;41281:6;41278:1;41275:13;41267:113;;;41366:1;41361:3;41357:11;41351:18;41347:1;41342:3;41338:11;41331:39;41303:2;41300:1;41296:10;41291:15;;41267:113;;;41398:6;41395:1;41392:13;41389:101;;;41478:1;41469:6;41464:3;41460:16;41453:27;41389:101;41238:258;41189:307;;;:::o;41502:320::-;41546:6;41583:1;41577:4;41573:12;41563:22;;41630:1;41624:4;41620:12;41651:18;41641:81;;41707:4;41699:6;41695:17;41685:27;;41641:81;41769:2;41761:6;41758:14;41738:18;41735:38;41732:84;;;41788:18;;:::i;:::-;41732:84;41553:269;41502:320;;;:::o;41828:281::-;41911:27;41933:4;41911:27;:::i;:::-;41903:6;41899:40;42041:6;42029:10;42026:22;42005:18;41993:10;41990:34;41987:62;41984:88;;;42052:18;;:::i;:::-;41984:88;42092:10;42088:2;42081:22;41871:238;41828:281;;:::o;42115:233::-;42154:3;42177:24;42195:5;42177:24;:::i;:::-;42168:33;;42223:66;42216:5;42213:77;42210:103;;;42293:18;;:::i;:::-;42210:103;42340:1;42333:5;42329:13;42322:20;;42115:233;;;:::o;42354:176::-;42386:1;42403:20;42421:1;42403:20;:::i;:::-;42398:25;;42437:20;42455:1;42437:20;:::i;:::-;42432:25;;42476:1;42466:35;;42481:18;;:::i;:::-;42466:35;42522:1;42519;42515:9;42510:14;;42354:176;;;;:::o;42536:180::-;42584:77;42581:1;42574:88;42681:4;42678:1;42671:15;42705:4;42702:1;42695:15;42722:180;42770:77;42767:1;42760:88;42867:4;42864:1;42857:15;42891:4;42888:1;42881:15;42908:180;42956:77;42953:1;42946:88;43053:4;43050:1;43043:15;43077:4;43074:1;43067:15;43094:180;43142:77;43139:1;43132:88;43239:4;43236:1;43229:15;43263:4;43260:1;43253:15;43280:180;43328:77;43325:1;43318:88;43425:4;43422:1;43415:15;43449:4;43446:1;43439:15;43466:180;43514:77;43511:1;43504:88;43611:4;43608:1;43601:15;43635:4;43632:1;43625:15;43652:117;43761:1;43758;43751:12;43775:117;43884:1;43881;43874:12;43898:117;44007:1;44004;43997:12;44021:117;44130:1;44127;44120:12;44144:117;44253:1;44250;44243:12;44267:117;44376:1;44373;44366:12;44390:102;44431:6;44482:2;44478:7;44473:2;44466:5;44462:14;44458:28;44448:38;;44390:102;;;:::o;44498:230::-;44638:34;44634:1;44626:6;44622:14;44615:58;44707:13;44702:2;44694:6;44690:15;44683:38;44498:230;:::o;44734:237::-;44874:34;44870:1;44862:6;44858:14;44851:58;44943:20;44938:2;44930:6;44926:15;44919:45;44734:237;:::o;44977:172::-;45117:24;45113:1;45105:6;45101:14;45094:48;44977:172;:::o;45155:225::-;45295:34;45291:1;45283:6;45279:14;45272:58;45364:8;45359:2;45351:6;45347:15;45340:33;45155:225;:::o;45386:224::-;45526:34;45522:1;45514:6;45510:14;45503:58;45595:7;45590:2;45582:6;45578:15;45571:32;45386:224;:::o;45616:178::-;45756:30;45752:1;45744:6;45740:14;45733:54;45616:178;:::o;45800:223::-;45940:34;45936:1;45928:6;45924:14;45917:58;46009:6;46004:2;45996:6;45992:15;45985:31;45800:223;:::o;46029:175::-;46169:27;46165:1;46157:6;46153:14;46146:51;46029:175;:::o;46210:231::-;46350:34;46346:1;46338:6;46334:14;46327:58;46419:14;46414:2;46406:6;46402:15;46395:39;46210:231;:::o;46447:223::-;46587:34;46583:1;46575:6;46571:14;46564:58;46656:6;46651:2;46643:6;46639:15;46632:31;46447:223;:::o;46676:168::-;46816:20;46812:1;46804:6;46800:14;46793:44;46676:168;:::o;46850:173::-;46990:25;46986:1;46978:6;46974:14;46967:49;46850:173;:::o;47029:243::-;47169:34;47165:1;47157:6;47153:14;47146:58;47238:26;47233:2;47225:6;47221:15;47214:51;47029:243;:::o;47278:229::-;47418:34;47414:1;47406:6;47402:14;47395:58;47487:12;47482:2;47474:6;47470:15;47463:37;47278:229;:::o;47513:228::-;47653:34;47649:1;47641:6;47637:14;47630:58;47722:11;47717:2;47709:6;47705:15;47698:36;47513:228;:::o;47747:172::-;47887:24;47883:1;47875:6;47871:14;47864:48;47747:172;:::o;47925:182::-;48065:34;48061:1;48053:6;48049:14;48042:58;47925:182;:::o;48113:231::-;48253:34;48249:1;48241:6;48237:14;48230:58;48322:14;48317:2;48309:6;48305:15;48298:39;48113:231;:::o;48350:182::-;48490:34;48486:1;48478:6;48474:14;48467:58;48350:182;:::o;48538:234::-;48678:34;48674:1;48666:6;48662:14;48655:58;48747:17;48742:2;48734:6;48730:15;48723:42;48538:234;:::o;48778:178::-;48918:30;48914:1;48906:6;48902:14;48895:54;48778:178;:::o;48962:220::-;49102:34;49098:1;49090:6;49086:14;49079:58;49171:3;49166:2;49158:6;49154:15;49147:28;48962:220;:::o;49188:114::-;;:::o;49308:236::-;49448:34;49444:1;49436:6;49432:14;49425:58;49517:19;49512:2;49504:6;49500:15;49493:44;49308:236;:::o;49550:180::-;49690:32;49686:1;49678:6;49674:14;49667:56;49550:180;:::o;49736:231::-;49876:34;49872:1;49864:6;49860:14;49853:58;49945:14;49940:2;49932:6;49928:15;49921:39;49736:231;:::o;49973:177::-;50113:29;50109:1;50101:6;50097:14;50090:53;49973:177;:::o;50156:176::-;50296:28;50292:1;50284:6;50280:14;50273:52;50156:176;:::o;50338:122::-;50411:24;50429:5;50411:24;:::i;:::-;50404:5;50401:35;50391:63;;50450:1;50447;50440:12;50391:63;50338:122;:::o;50466:116::-;50536:21;50551:5;50536:21;:::i;:::-;50529:5;50526:32;50516:60;;50572:1;50569;50562:12;50516:60;50466:116;:::o;50588:120::-;50660:23;50677:5;50660:23;:::i;:::-;50653:5;50650:34;50640:62;;50698:1;50695;50688:12;50640:62;50588:120;:::o;50714:122::-;50787:24;50805:5;50787:24;:::i;:::-;50780:5;50777:35;50767:63;;50826:1;50823;50816:12;50767:63;50714:122;:::o
Swarm Source
ipfs://6a39aec3f84fb78b03a56bee448f85423fb72533aa9806ce85e8b288bf3aea39
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.