ERC-721
NFT
Overview
Max Total Supply
5,555 FB
Holders
1,851
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
2 FBLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
FridayBeers
Compiler Version
v0.8.7+commit.e28d00a7
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.7;import './ERC721A.sol';import '@openzeppelin/contracts/access/Ownable.sol';import '@openzeppelin/contracts/token/common/ERC2981.sol';import '@openzeppelin/contracts/security/ReentrancyGuard.sol';import '@openzeppelin/contracts/utils/cryptography/MerkleProof.sol';import '@openzeppelin/contracts/utils/Strings.sol';import '@openzeppelin/contracts/finance/PaymentSplitter.sol';contract FridayBeers is ERC721A, ERC2981, Ownable, ReentrancyGuard, PaymentSplitter {// Fund recipients.address[] private payees;// Merkle root for the merkle tree that contains presale participants.bytes32 public merkleRoot;// Reference to the storage of the images and metadata.string public baseURI;// The SHA-256 hash of the SHA-256 hashes of all images.string public provenance;// Amount of ether required to mint a single token.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (finance/PaymentSplitter.sol)pragma solidity ^0.8.0;import "../token/ERC20/utils/SafeERC20.sol";import "../utils/Address.sol";import "../utils/Context.sol";/*** @title PaymentSplitter* @dev This contract allows to split Ether payments among a group of accounts. The sender does not need to be aware* that the Ether will be split in this way, since it is handled transparently by the contract.** The split can be in equal parts or in any other arbitrary proportion. The way this is specified is by assigning each* account to a number of shares. Of all the Ether that this contract receives, each account will then be able to claim* an amount proportional to the percentage of total shares they were assigned. The distribution of shares is set at the* time of contract deployment and can't be updated thereafter.** `PaymentSplitter` follows a _pull payment_ model. This means that payments are not automatically forwarded to the* accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {release}* function.** NOTE: This contract assumes that ERC20 tokens will behave similarly to native tokens (Ether). Rebasing tokens, and* tokens that apply fees during transfers, are likely to not be supported as expected. If in doubt, we encourage you* to run tests before sending real value to this contract.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol)pragma solidity ^0.8.0;/*** @dev String operations.*/library Strings {bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";uint8 private constant _ADDRESS_LENGTH = 20;/*** @dev Converts a `uint256` to its ASCII `string` decimal representation.*/function toString(uint256 value) internal pure returns (string memory) {// Inspired by OraclizeAPI's implementation - MIT licence// https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.solif (value == 0) {return "0";}uint256 temp = value;uint256 digits;while (temp != 0) {digits++;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (utils/cryptography/MerkleProof.sol)pragma solidity ^0.8.0;/*** @dev These functions deal with verification of Merkle Tree proofs.** The proofs can be generated using the JavaScript library* https://github.com/miguelmota/merkletreejs[merkletreejs].* Note: the hashing algorithm should be keccak256 and pair sorting should be enabled.** See `test/utils/cryptography/MerkleProof.test.js` for some examples.** WARNING: You should avoid using leaf values that are 64 bytes long prior to* hashing, or use a hash function other than keccak256 for hashing leaves.* This is because the concatenation of a sorted pair of internal nodes in* the merkle tree could be reinterpreted as a leaf value.*/library MerkleProof {/*** @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree* defined by `root`. For this, a `proof` must be provided, containing* sibling hashes on the branch from the leaf to the root of the tree. Each* pair of leaves and each pair of pre-images are assumed to be sorted.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol)pragma solidity ^0.8.0;/*** @dev Contract module that helps prevent reentrant calls to a function.** Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier* available, which can be applied to functions to make sure there are no nested* (reentrant) calls to them.** Note that because there is a single `nonReentrant` guard, functions marked as* `nonReentrant` may not call one another. This can be worked around by making* those functions `private`, and then adding `external` `nonReentrant` entry* points to them.** TIP: If you would like to learn more about reentrancy and alternative ways* to protect against it, check out our blog post* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].*/abstract contract ReentrancyGuard {// Booleans are more expensive than uint256 or any type that takes up a full// word because each write operation emits an extra SLOAD to first read the// slot's contents, replace the bits taken up by the boolean, and then write// back. This is the compiler's defense against contract upgrades and
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (token/common/ERC2981.sol)pragma solidity ^0.8.0;import "../../interfaces/IERC2981.sol";import "../../utils/introspection/ERC165.sol";/*** @dev Implementation of the NFT Royalty Standard, a standardized way to retrieve royalty payment information.** Royalty information can be specified globally for all token ids via {_setDefaultRoyalty}, and/or individually for* specific token ids via {_setTokenRoyalty}. The latter takes precedence over the first.** Royalty is specified as a fraction of sale price. {_feeDenominator} is overridable but defaults to 10000, meaning the* fee is specified in basis points by default.** IMPORTANT: ERC-2981 only specifies a way to signal royalty information and does not enforce its payment. See* https://eips.ethereum.org/EIPS/eip-2981#optional-royalty-payments[Rationale] in the EIP. Marketplaces are expected to* voluntarily pay royalties together with sales, but note that this standard is not yet widely supported.** _Available since v4.5._*/abstract contract ERC2981 is IERC2981, ERC165 {struct RoyaltyInfo {address receiver;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)pragma solidity ^0.8.0;import "../utils/Context.sol";/*** @dev Contract module which provides a basic access control mechanism, where* there is an account (an owner) that can be granted exclusive access to* specific functions.** By default, the owner account will be the one that deploys the contract. This* can later be changed with {transferOwnership}.** This module is used through inheritance. It will make available the modifier* `onlyOwner`, which can be applied to your functions to restrict their use to* the owner.*/abstract contract Ownable is Context {address private _owner;event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);/*** @dev Initializes the contract setting the deployer as the initial owner.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.3// Creator: Chiru Labspragma solidity ^0.8.4;import './IERC721A.sol';/*** @dev Interface of ERC721 token receiver.*/interface ERC721A__IERC721Receiver {function onERC721Received(address operator,address from,uint256 tokenId,bytes calldata data) external returns (bytes4);}/*** @title ERC721A** @dev Implementation of the [ERC721](https://eips.ethereum.org/EIPS/eip-721)* Non-Fungible Token Standard, including the Metadata extension.* Optimized for lower gas during batch mints.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.3// Creator: Chiru Labspragma solidity ^0.8.4;/*** @dev Interface of ERC721A.*/interface IERC721A {/*** The caller must own the token or be an approved operator.*/error ApprovalCallerNotOwnerNorApproved();/*** The token does not exist.*/error ApprovalQueryForNonexistentToken();/*** Cannot query the balance for the zero address.*/error BalanceQueryForZeroAddress();/**
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)pragma solidity ^0.8.0;import "./IERC165.sol";/*** @dev Implementation of the {IERC165} interface.** Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check* for the additional interface id that will be supported. For example:** ```solidity* function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {* return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);* }* ```** Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.*/abstract contract ERC165 is IERC165 {/*** @dev See {IERC165-supportsInterface}.*/function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (interfaces/IERC2981.sol)pragma solidity ^0.8.0;import "../utils/introspection/IERC165.sol";/*** @dev Interface for the NFT Royalty Standard.** A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal* support for royalty payments across all NFT marketplaces and ecosystem participants.** _Available since v4.5._*/interface IERC2981 is IERC165 {/*** @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of* exchange. The royalty amount is denominated and should be paid in that same unit of exchange.*/function royaltyInfo(uint256 tokenId, uint256 salePrice)externalviewreturns (address receiver, uint256 royaltyAmount);}
123456789101112131415161718192021222324// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)pragma solidity ^0.8.0;/*** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/abstract contract Context {function _msgSender() internal view virtual returns (address) {return msg.sender;}function _msgData() internal view virtual returns (bytes calldata) {return msg.data;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (utils/Address.sol)pragma solidity ^0.8.1;/*** @dev Collection of functions related to the address type*/library Address {/*** @dev Returns true if `account` is a contract.** [IMPORTANT]* ====* It is unsafe to assume that an address for which this function returns* false is an externally-owned account (EOA) and not a contract.** Among others, `isContract` will return false for the following* types of addresses:** - an externally-owned account* - a contract in construction* - an address where a contract will be created* - an address where a contract lived, but was destroyed* ====*
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/utils/SafeERC20.sol)pragma solidity ^0.8.0;import "../IERC20.sol";import "../extensions/draft-IERC20Permit.sol";import "../../../utils/Address.sol";/*** @title SafeERC20* @dev Wrappers around ERC20 operations that throw on failure (when the token* contract returns false). Tokens that return no value (and instead revert or* throw on failure) are also supported, non-reverting calls are assumed to be* successful.* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.*/library SafeERC20 {using Address for address;function safeTransfer(IERC20 token,address to,uint256 value) internal {
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)pragma solidity ^0.8.0;/*** @dev Interface of the ERC165 standard, as defined in the* https://eips.ethereum.org/EIPS/eip-165[EIP].** Implementers can declare support of contract interfaces, which can then be* queried by others ({ERC165Checker}).** For an implementation, see {ERC165}.*/interface IERC165 {/*** @dev Returns true if this contract implements the interface defined by* `interfaceId`. See the corresponding* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]* to learn more about how these ids are created.** This function call must use less than 30 000 gas.*/function supportsInterface(bytes4 interfaceId) external view returns (bool);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)pragma solidity ^0.8.0;/*** @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in* https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].** Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by* presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't* need to send a transaction, and thus is not required to hold Ether at all.*/interface IERC20Permit {/*** @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,* given ``owner``'s signed approval.** IMPORTANT: The same issues {IERC20-approve} has related to transaction* ordering also apply here.** Emits an {Approval} event.** Requirements:** - `spender` cannot be the zero address.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)pragma solidity ^0.8.0;/*** @dev Interface of the ERC20 standard as defined in the EIP.*/interface IERC20 {/*** @dev Emitted when `value` tokens are moved from one account (`from`) to* another (`to`).** Note that `value` may be zero.*/event Transfer(address indexed from, address indexed to, uint256 value);/*** @dev Emitted when the allowance of a `spender` for an `owner` is set by* a call to {approve}. `value` is the new allowance.*/event Approval(address indexed owner, address indexed spender, uint256 value);/*** @dev Returns the amount of tokens in existence.*/
123456789101112131415161718{"optimizer": {"enabled": false,"runs": 200},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address[]","name":"_payees","type":"address[]"},{"internalType":"uint256[]","name":"_shares","type":"uint256[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"OwnershipNotInitializedForExtraData","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20PaymentReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"PayeeAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReleased","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":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"gift","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":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"numberMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"payee","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_merkleProof","type":"bytes32[]"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"presale","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"provenance","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"releasable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"name":"releasable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"releaseTotal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"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":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI_","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_merkleRoot","type":"bytes32"}],"name":"setMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_provenance","type":"string"}],"name":"setProvenance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint96","name":"feeBasisPoints","type":"uint96"}],"name":"setRoyalty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_status","type":"uint256"}],"name":"setStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"status","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"totalReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162005ed538038062005ed5833981810160405281019062000037919062000812565b81816040518060400160405280600b81526020017f46726964617942656572730000000000000000000000000000000000000000008152506040518060400160405280600281526020017f46420000000000000000000000000000000000000000000000000000000000008152508160029080519060200190620000bd92919062000549565b508060039080519060200190620000d692919062000549565b50620000e76200023860201b60201c565b60008190555050506200010f620001036200024160201b60201c565b6200024960201b60201c565b6001600b8190555080518251146200015e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015590620009cb565b60405180910390fd5b6000825111620001a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200019c9062000a0f565b60405180910390fd5b60005b82518110156200021457620001fe838281518110620001cc57620001cb62000c9e565b5b6020026020010151838381518110620001ea57620001e962000c9e565b5b60200260200101516200030f60201b60201c565b80806200020b9062000bf2565b915050620001a8565b50505081601390805190602001906200022f929190620005da565b50505062000e94565b60006001905090565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000382576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200037990620009a9565b60405180910390fd5b60008111620003c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003bf9062000a31565b60405180910390fd5b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146200044d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200044490620009ed565b60405180910390fd5b6010829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600c5462000504919062000aeb565b600c819055507f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac82826040516200053d9291906200097c565b60405180910390a15050565b828054620005579062000b86565b90600052602060002090601f0160209004810192826200057b5760008555620005c7565b82601f106200059657805160ff1916838001178555620005c7565b82800160010185558215620005c7579182015b82811115620005c6578251825591602001919060010190620005a9565b5b509050620005d6919062000669565b5090565b82805482825590600052602060002090810192821562000656579160200282015b82811115620006555782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620005fb565b5b50905062000665919062000669565b5090565b5b80821115620006845760008160009055506001016200066a565b5090565b60006200069f620006998462000a7c565b62000a53565b90508083825260208201905082856020860282011115620006c557620006c462000d01565b5b60005b85811015620006f95781620006de88826200077e565b845260208401935060208301925050600181019050620006c8565b5050509392505050565b60006200071a620007148462000aab565b62000a53565b9050808382526020820190508285602086028201111562000740576200073f62000d01565b5b60005b85811015620007745781620007598882620007fb565b84526020840193506020830192505060018101905062000743565b5050509392505050565b6000815190506200078f8162000e60565b92915050565b600082601f830112620007ad57620007ac62000cfc565b5b8151620007bf84826020860162000688565b91505092915050565b600082601f830112620007e057620007df62000cfc565b5b8151620007f284826020860162000703565b91505092915050565b6000815190506200080c8162000e7a565b92915050565b600080604083850312156200082c576200082b62000d0b565b5b600083015167ffffffffffffffff8111156200084d576200084c62000d06565b5b6200085b8582860162000795565b925050602083015167ffffffffffffffff8111156200087f576200087e62000d06565b5b6200088d85828601620007c8565b9150509250929050565b620008a28162000b48565b82525050565b6000620008b7602c8362000ada565b9150620008c48262000d21565b604082019050919050565b6000620008de60328362000ada565b9150620008eb8262000d70565b604082019050919050565b600062000905602b8362000ada565b9150620009128262000dbf565b604082019050919050565b60006200092c601a8362000ada565b9150620009398262000e0e565b602082019050919050565b600062000953601d8362000ada565b9150620009608262000e37565b602082019050919050565b620009768162000b7c565b82525050565b600060408201905062000993600083018562000897565b620009a260208301846200096b565b9392505050565b60006020820190508181036000830152620009c481620008a8565b9050919050565b60006020820190508181036000830152620009e681620008cf565b9050919050565b6000602082019050818103600083015262000a0881620008f6565b9050919050565b6000602082019050818103600083015262000a2a816200091d565b9050919050565b6000602082019050818103600083015262000a4c8162000944565b9050919050565b600062000a5f62000a72565b905062000a6d828262000bbc565b919050565b6000604051905090565b600067ffffffffffffffff82111562000a9a5762000a9962000ccd565b5b602082029050602081019050919050565b600067ffffffffffffffff82111562000ac95762000ac862000ccd565b5b602082029050602081019050919050565b600082825260208201905092915050565b600062000af88262000b7c565b915062000b058362000b7c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000b3d5762000b3c62000c40565b5b828201905092915050565b600062000b558262000b5c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000600282049050600182168062000b9f57607f821691505b6020821081141562000bb65762000bb562000c6f565b5b50919050565b62000bc78262000d10565b810181811067ffffffffffffffff8211171562000be95762000be862000ccd565b5b80604052505050565b600062000bff8262000b7c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000c355762000c3462000c40565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061796d656e7453706c69747465723a206163636f756e74206973207468652060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b7f5061796d656e7453706c69747465723a2070617965657320616e64207368617260008201527f6573206c656e677468206d69736d617463680000000000000000000000000000602082015250565b7f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960008201527f2068617320736861726573000000000000000000000000000000000000000000602082015250565b7f5061796d656e7453706c69747465723a206e6f20706179656573000000000000600082015250565b7f5061796d656e7453706c69747465723a20736861726573206172652030000000600082015250565b62000e6b8162000b48565b811462000e7757600080fd5b50565b62000e858162000b7c565b811462000e9157600080fd5b50565b6150318062000ea46000396000f3fe6080604052600436106102815760003560e01c8063715018a61161014f578063a3f8eace116100c1578063d79779b21161007a578063d79779b2146109ca578063dc33e68114610a07578063e33b7de314610a44578063e985e9c514610a6f578063f2fde38b14610aac578063ffe630b514610ad5576102c8565b8063a3f8eace14610891578063b88d4fde146108ce578063c45ac050146108ea578063c87b56dd14610927578063cbce4c9714610964578063ce7c2ac21461098d576102c8565b806391b7f5ed1161011357806391b7f5ed1461079057806395d89b41146107b95780639852595c146107e4578063a035b1fe14610821578063a0712d681461084c578063a22cb46514610868576102c8565b8063715018a6146106bf5780637cb64759146106d65780638b83209b146106ff5780638da5cb5b1461073c5780638f2fc60b14610767576102c8565b80632eb4a7ab116101f357806355f804b3116101ac57806355f804b3146105b15780636352211e146105da578063656d677e1461061757806369ba1a751461062e5780636c0360eb1461065757806370a0823114610682576102c8565b80632eb4a7ab146104ae57806332cb6b0c146104d95780633a98ef3914610504578063406072a91461052f57806342842e0e1461056c57806348b7504414610588576102c8565b806318160ddd1161024557806318160ddd146103b957806319165587146103e4578063200d2ed21461040d57806323b872dd1461043857806327ed3dce146104545780632a55205a14610470576102c8565b806301ffc9a7146102cd57806306fdde031461030a578063081812fc14610335578063095ea7b3146103725780630f7309e81461038e576102c8565b366102c8577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7706102af610afe565b346040516102be92919061426c565b60405180910390a1005b600080fd5b3480156102d957600080fd5b506102f460048036038101906102ef9190613bae565b610b06565b6040516103019190614295565b60405180910390f35b34801561031657600080fd5b5061031f610b28565b60405161032c91906142cb565b60405180910390f35b34801561034157600080fd5b5061035c60048036038101906103579190613cc2565b610bba565b60405161036991906141dc565b60405180910390f35b61038c60048036038101906103879190613a74565b610c39565b005b34801561039a57600080fd5b506103a3610d7d565b6040516103b091906142cb565b60405180910390f35b3480156103c557600080fd5b506103ce610e0b565b6040516103db919061456d565b60405180910390f35b3480156103f057600080fd5b5061040b600480360381019061040691906138f1565b610e22565b005b34801561041957600080fd5b50610422610fab565b60405161042f919061456d565b60405180910390f35b610452600480360381019061044d919061395e565b610fb1565b005b61046e60048036038101906104699190613af4565b6112d6565b005b34801561047c57600080fd5b5061049760048036038101906104929190613d1c565b61155d565b6040516104a592919061426c565b60405180910390f35b3480156104ba57600080fd5b506104c3611748565b6040516104d091906142b0565b60405180910390f35b3480156104e557600080fd5b506104ee61174e565b6040516104fb919061456d565b60405180910390f35b34801561051057600080fd5b50610519611754565b604051610526919061456d565b60405180910390f35b34801561053b57600080fd5b5061055660048036038101906105519190613c35565b61175e565b604051610563919061456d565b60405180910390f35b6105866004803603810190610581919061395e565b6117e5565b005b34801561059457600080fd5b506105af60048036038101906105aa9190613c35565b611805565b005b3480156105bd57600080fd5b506105d860048036038101906105d39190613c75565b611a22565b005b3480156105e657600080fd5b5061060160048036038101906105fc9190613cc2565b611a40565b60405161060e91906141dc565b60405180910390f35b34801561062357600080fd5b5061062c611a52565b005b34801561063a57600080fd5b5061065560048036038101906106509190613cc2565b611b13565b005b34801561066357600080fd5b5061066c611b25565b60405161067991906142cb565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a491906138c4565b611bb3565b6040516106b6919061456d565b60405180910390f35b3480156106cb57600080fd5b506106d4611c6c565b005b3480156106e257600080fd5b506106fd60048036038101906106f89190613b81565b611c80565b005b34801561070b57600080fd5b5061072660048036038101906107219190613cc2565b611c92565b60405161073391906141dc565b60405180910390f35b34801561074857600080fd5b50610751611cda565b60405161075e91906141dc565b60405180910390f35b34801561077357600080fd5b5061078e60048036038101906107899190613ab4565b611d04565b005b34801561079c57600080fd5b506107b760048036038101906107b29190613cc2565b611d1a565b005b3480156107c557600080fd5b506107ce611d2c565b6040516107db91906142cb565b60405180910390f35b3480156107f057600080fd5b5061080b600480360381019061080691906138c4565b611dbe565b604051610818919061456d565b60405180910390f35b34801561082d57600080fd5b50610836611e07565b604051610843919061456d565b60405180910390f35b61086660048036038101906108619190613cc2565b611e0d565b005b34801561087457600080fd5b5061088f600480360381019061088a9190613a34565b61201f565b005b34801561089d57600080fd5b506108b860048036038101906108b391906138c4565b61212a565b6040516108c5919061456d565b60405180910390f35b6108e860048036038101906108e391906139b1565b61215d565b005b3480156108f657600080fd5b50610911600480360381019061090c9190613c35565b6121d0565b60405161091e919061456d565b60405180910390f35b34801561093357600080fd5b5061094e60048036038101906109499190613cc2565b61228e565b60405161095b91906142cb565b60405180910390f35b34801561097057600080fd5b5061098b60048036038101906109869190613a74565b61232d565b005b34801561099957600080fd5b506109b460048036038101906109af91906138c4565b612435565b6040516109c1919061456d565b60405180910390f35b3480156109d657600080fd5b506109f160048036038101906109ec9190613c08565b61247e565b6040516109fe919061456d565b60405180910390f35b348015610a1357600080fd5b50610a2e6004803603810190610a2991906138c4565b6124c7565b604051610a3b919061456d565b60405180910390f35b348015610a5057600080fd5b50610a596124d9565b604051610a66919061456d565b60405180910390f35b348015610a7b57600080fd5b50610a966004803603810190610a91919061391e565b6124e3565b604051610aa39190614295565b60405180910390f35b348015610ab857600080fd5b50610ad36004803603810190610ace91906138c4565b612577565b005b348015610ae157600080fd5b50610afc6004803603810190610af79190613c75565b6125fb565b005b600033905090565b6000610b1182612619565b80610b215750610b20826126ab565b5b9050919050565b606060028054610b3790614873565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6390614873565b8015610bb05780601f10610b8557610100808354040283529160200191610bb0565b820191906000526020600020905b815481529060010190602001808311610b9357829003601f168201915b5050505050905090565b6000610bc582612725565b610bfb576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610c4482611a40565b90508073ffffffffffffffffffffffffffffffffffffffff16610c65612784565b73ffffffffffffffffffffffffffffffffffffffff1614610cc857610c9181610c8c612784565b6124e3565b610cc7576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60168054610d8a90614873565b80601f0160208091040260200160405190810160405280929190818152602001828054610db690614873565b8015610e035780601f10610dd857610100808354040283529160200191610e03565b820191906000526020600020905b815481529060010190602001808311610de657829003601f168201915b505050505081565b6000610e1561278c565b6001546000540303905090565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9b9061434d565b60405180910390fd5b6000610eaf8261212a565b90506000811415610ef5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eec906143ed565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f44919061462c565b9250508190555080600d6000828254610f5d919061462c565b92505081905550610f6e8282612795565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b0568282604051610f9f9291906141f7565b60405180910390a15050565b60185481565b6000610fbc82612889565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611023576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061102f84612957565b915091506110458187611040612784565b61297e565b6110915761105a86611055612784565b6124e3565b611090576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156110f8576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61110586868660016129c2565b801561111057600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055506111de856111ba8888876129c8565b7c0200000000000000000000000000000000000000000000000000000000176129f0565b600460008681526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000084161415611266576000600185019050600060046000838152602001908152602001600020541415611264576000548114611263578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46112ce8686866001612a1b565b505050505050565b6002600b54141561131c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113139061452d565b60405180910390fd5b6002600b81905550600260185414611369576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113609061446d565b60405180910390fd5b8060175461137791906146b3565b34146113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af9061442d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d9061436d565b60405180910390fd5b6115b381611432612a21565b61143c919061462c565b111561147d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611474906142ed565b60405180910390fd5b60038161148933612a34565b611493919061462c565b106114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca9061440d565b60405180910390fd5b6115078383601454336040516020016114ec9190614171565b60405160208183030381529060405280519060200120612a8b565b611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d9061444d565b60405180910390fd5b6115503382612aa4565b6001600b81905550505050565b6000806000600960008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614156116f35760086040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b60006116fd612c61565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff168661172991906146b3565b6117339190614682565b90508160000151819350935050509250929050565b60145481565b6115b381565b6000600c54905090565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118008383836040518060200160405280600081525061215d565b505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187e9061434d565b60405180910390fd5b600061189383836121d0565b905060008114156118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d0906143ed565b60405180910390fd5b80601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611965919061462c565b9250508190555080601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119bb919061462c565b925050819055506119cd838383612c6b565b8273ffffffffffffffffffffffffffffffffffffffff167f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a8383604051611a1592919061426c565b60405180910390a2505050565b611a2a612cf1565b818160159190611a3b92919061361e565b505050565b6000611a4b82612889565b9050919050565b6002600b541415611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f9061452d565b60405180910390fd5b6002600b8190555060005b601380549050811015611b0857611af760138281548110611ac757611ac66149d0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e22565b80611b01906148d6565b9050611aa3565b506001600b81905550565b611b1b612cf1565b8060188190555050565b60158054611b3290614873565b80601f0160208091040260200160405190810160405280929190818152602001828054611b5e90614873565b8015611bab5780601f10611b8057610100808354040283529160200191611bab565b820191906000526020600020905b815481529060010190602001808311611b8e57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c1b576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b611c74612cf1565b611c7e6000612d6f565b565b611c88612cf1565b8060148190555050565b600060108281548110611ca857611ca76149d0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611d0c612cf1565b611d168282612e35565b5050565b611d22612cf1565b8060178190555050565b606060038054611d3b90614873565b80601f0160208091040260200160405190810160405280929190818152602001828054611d6790614873565b8015611db45780601f10611d8957610100808354040283529160200191611db4565b820191906000526020600020905b815481529060010190602001808311611d9757829003601f168201915b5050505050905090565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60175481565b6002600b541415611e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4a9061452d565b60405180910390fd5b6002600b81905550600360185414611ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e979061432d565b60405180910390fd5b80601754611eae91906146b3565b3414611eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee69061442d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f549061436d565b60405180910390fd5b600481611f6933612a34565b611f73919061462c565b10611fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faa9061440d565b60405180910390fd5b6115b381611fbf612a21565b611fc9919061462c565b111561200a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612001906142ed565b60405180910390fd5b6120143382612aa4565b6001600b8190555050565b806007600061202c612784565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166120d9612784565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161211e9190614295565b60405180910390a35050565b6000806121356124d9565b47612140919061462c565b9050612155838261215086611dbe565b612fcb565b915050919050565b612168848484610fb1565b60008373ffffffffffffffffffffffffffffffffffffffff163b146121ca5761219384848484613039565b6121c9576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b6000806121dc8461247e565b8473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161221591906141dc565b60206040518083038186803b15801561222d57600080fd5b505afa158015612241573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122659190613cef565b61226f919061462c565b90506122858382612280878761175e565b612fcb565b91505092915050565b606061229982612725565b6122cf576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006122d9613199565b90506000815114156122fa5760405180602001604052806000815250612325565b806123048461322b565b6040516020016123159291906141a3565b6040516020818303038152906040525b915050919050565b6002600b541415612373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236a9061452d565b60405180910390fd5b6002600b81905550612383612cf1565b6001601854146123c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bf9061450d565b60405180910390fd5b6115b3816123d4612a21565b6123de919061462c565b111561241f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612416906142ed565b60405180910390fd5b6124298282612aa4565b6001600b819055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006124d282612a34565b9050919050565b6000600d54905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61257f612cf1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156125ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e69061430d565b60405180910390fd5b6125f881612d6f565b50565b612603612cf1565b81816016919061261492919061361e565b505050565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061267457506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806126a45750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061271e575061271d82613284565b5b9050919050565b60008161273061278c565b1115801561273f575060005482105b801561277d575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b804710156127d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127cf906143ad565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516127fe906141c7565b60006040518083038185875af1925050503d806000811461283b576040519150601f19603f3d011682016040523d82523d6000602084013e612840565b606091505b5050905080612884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287b9061438d565b60405180910390fd5b505050565b6000808290508061289861278c565b116129205760005481101561291f5760006004600083815260200190815260200160002054905060007c01000000000000000000000000000000000000000000000000000000008216141561291d575b60008114156129135760046000836001900393508381526020019081526020016000205490506128e8565b8092505050612952565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e86129df8686846132ee565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000612a2b61278c565b60005403905090565b600067ffffffffffffffff6040600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c169050919050565b600082612a998686856132f7565b149050949350505050565b6000805490506000821415612ae5576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612af260008483856129c2565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612b6983612b5a60008660006129c8565b612b638561334f565b176129f0565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b818114612c0a57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050612bcf565b506000821415612c46576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000819055505050612c5c6000848385612a1b565b505050565b6000612710905090565b612cec8363a9059cbb60e01b8484604051602401612c8a92919061426c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061335f565b505050565b612cf9610afe565b73ffffffffffffffffffffffffffffffffffffffff16612d17611cda565b73ffffffffffffffffffffffffffffffffffffffff1614612d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d649061448d565b60405180910390fd5b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612e3d612c61565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115612e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e92906144cd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f029061454d565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600860008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b600081600c54600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561301c91906146b3565b6130269190614682565b613030919061470d565b90509392505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261305f612784565b8786866040518563ffffffff1660e01b81526004016130819493929190614220565b602060405180830381600087803b15801561309b57600080fd5b505af19250505080156130cc57506040513d601f19601f820116820180604052508101906130c99190613bdb565b60015b613146573d80600081146130fc576040519150601f19603f3d011682016040523d82523d6000602084013e613101565b606091505b5060008151141561313e576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060601580546131a890614873565b80601f01602080910402602001604051908101604052809291908181526020018280546131d490614873565b80156132215780601f106131f657610100808354040283529160200191613221565b820191906000526020600020905b81548152906001019060200180831161320457829003601f168201915b5050505050905090565b606060a060405101806040526020810391506000825281835b60011561326f57600184039350600a81066030018453600a810490508061326a5761326f565b613244565b50828103602084039350808452505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60009392505050565b60008082905060005b858590508110156133435761332e82878784818110613322576133216149d0565b5b90506020020135613426565b9150808061333b906148d6565b915050613300565b50809150509392505050565b60006001821460e11b9050919050565b60006133c1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166134519092919063ffffffff16565b905060008151111561342157808060200190518101906133e19190613b54565b613420576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613417906144ed565b60405180910390fd5b5b505050565b600081831061343e576134398284613469565b613449565b6134488383613469565b5b905092915050565b60606134608484600085613480565b90509392505050565b600082600052816020526040600020905092915050565b6060824710156134c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134bc906143cd565b60405180910390fd5b6134ce85613594565b61350d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613504906144ad565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051613536919061418c565b60006040518083038185875af1925050503d8060008114613573576040519150601f19603f3d011682016040523d82523d6000602084013e613578565b606091505b50915091506135888282866135b7565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606083156135c757829050613617565b6000835111156135da5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161360e91906142cb565b60405180910390fd5b9392505050565b82805461362a90614873565b90600052602060002090601f01602090048101928261364c5760008555613693565b82601f1061366557803560ff1916838001178555613693565b82800160010185558215613693579182015b82811115613692578235825591602001919060010190613677565b5b5090506136a091906136a4565b5090565b5b808211156136bd5760008160009055506001016136a5565b5090565b60006136d46136cf846145ad565b614588565b9050828152602081018484840111156136f0576136ef614a3d565b5b6136fb848285614831565b509392505050565b60008135905061371281614f43565b92915050565b60008135905061372781614f5a565b92915050565b60008083601f84011261374357613742614a33565b5b8235905067ffffffffffffffff8111156137605761375f614a2e565b5b60208301915083602082028301111561377c5761377b614a38565b5b9250929050565b60008135905061379281614f71565b92915050565b6000815190506137a781614f71565b92915050565b6000813590506137bc81614f88565b92915050565b6000813590506137d181614f9f565b92915050565b6000815190506137e681614f9f565b92915050565b600082601f83011261380157613800614a33565b5b81356138118482602086016136c1565b91505092915050565b60008135905061382981614fb6565b92915050565b60008083601f84011261384557613844614a33565b5b8235905067ffffffffffffffff81111561386257613861614a2e565b5b60208301915083600182028301111561387e5761387d614a38565b5b9250929050565b60008135905061389481614fcd565b92915050565b6000815190506138a981614fcd565b92915050565b6000813590506138be81614fe4565b92915050565b6000602082840312156138da576138d9614a47565b5b60006138e884828501613703565b91505092915050565b60006020828403121561390757613906614a47565b5b600061391584828501613718565b91505092915050565b6000806040838503121561393557613934614a47565b5b600061394385828601613703565b925050602061395485828601613703565b9150509250929050565b60008060006060848603121561397757613976614a47565b5b600061398586828701613703565b935050602061399686828701613703565b92505060406139a786828701613885565b9150509250925092565b600080600080608085870312156139cb576139ca614a47565b5b60006139d987828801613703565b94505060206139ea87828801613703565b93505060406139fb87828801613885565b925050606085013567ffffffffffffffff811115613a1c57613a1b614a42565b5b613a28878288016137ec565b91505092959194509250565b60008060408385031215613a4b57613a4a614a47565b5b6000613a5985828601613703565b9250506020613a6a85828601613783565b9150509250929050565b60008060408385031215613a8b57613a8a614a47565b5b6000613a9985828601613703565b9250506020613aaa85828601613885565b9150509250929050565b60008060408385031215613acb57613aca614a47565b5b6000613ad985828601613703565b9250506020613aea858286016138af565b9150509250929050565b600080600060408486031215613b0d57613b0c614a47565b5b600084013567ffffffffffffffff811115613b2b57613b2a614a42565b5b613b378682870161372d565b93509350506020613b4a86828701613885565b9150509250925092565b600060208284031215613b6a57613b69614a47565b5b6000613b7884828501613798565b91505092915050565b600060208284031215613b9757613b96614a47565b5b6000613ba5848285016137ad565b91505092915050565b600060208284031215613bc457613bc3614a47565b5b6000613bd2848285016137c2565b91505092915050565b600060208284031215613bf157613bf0614a47565b5b6000613bff848285016137d7565b91505092915050565b600060208284031215613c1e57613c1d614a47565b5b6000613c2c8482850161381a565b91505092915050565b60008060408385031215613c4c57613c4b614a47565b5b6000613c5a8582860161381a565b9250506020613c6b85828601613703565b9150509250929050565b60008060208385031215613c8c57613c8b614a47565b5b600083013567ffffffffffffffff811115613caa57613ca9614a42565b5b613cb68582860161382f565b92509250509250929050565b600060208284031215613cd857613cd7614a47565b5b6000613ce684828501613885565b91505092915050565b600060208284031215613d0557613d04614a47565b5b6000613d138482850161389a565b91505092915050565b60008060408385031215613d3357613d32614a47565b5b6000613d4185828601613885565b9250506020613d5285828601613885565b9150509250929050565b613d65816147fb565b82525050565b613d7481614741565b82525050565b613d8b613d8682614741565b61491f565b82525050565b613d9a81614765565b82525050565b613da981614771565b82525050565b6000613dba826145de565b613dc481856145f4565b9350613dd4818560208601614840565b613ddd81614a4c565b840191505092915050565b6000613df3826145de565b613dfd8185614605565b9350613e0d818560208601614840565b80840191505092915050565b6000613e24826145e9565b613e2e8185614610565b9350613e3e818560208601614840565b613e4781614a4c565b840191505092915050565b6000613e5d826145e9565b613e678185614621565b9350613e77818560208601614840565b80840191505092915050565b6000613e90601f83614610565b9150613e9b82614a6a565b602082019050919050565b6000613eb3602683614610565b9150613ebe82614a93565b604082019050919050565b6000613ed6602283614610565b9150613ee182614ae2565b604082019050919050565b6000613ef9602683614610565b9150613f0482614b31565b604082019050919050565b6000613f1c602b83614610565b9150613f2782614b80565b604082019050919050565b6000613f3f603a83614610565b9150613f4a82614bcf565b604082019050919050565b6000613f62601d83614610565b9150613f6d82614c1e565b602082019050919050565b6000613f85602683614610565b9150613f9082614c47565b604082019050919050565b6000613fa8602b83614610565b9150613fb382614c96565b604082019050919050565b6000613fcb603a83614610565b9150613fd682614ce5565b604082019050919050565b6000613fee601e83614610565b9150613ff982614d34565b602082019050919050565b6000614011602b83614610565b915061401c82614d5d565b604082019050919050565b6000614034601e83614610565b915061403f82614dac565b602082019050919050565b6000614057602083614610565b915061406282614dd5565b602082019050919050565b600061407a600083614605565b915061408582614dfe565b600082019050919050565b600061409d601d83614610565b91506140a882614e01565b602082019050919050565b60006140c0602a83614610565b91506140cb82614e2a565b604082019050919050565b60006140e3602a83614610565b91506140ee82614e79565b604082019050919050565b6000614106601b83614610565b915061411182614ec8565b602082019050919050565b6000614129601f83614610565b915061413482614ef1565b602082019050919050565b600061414c601983614610565b915061415782614f1a565b602082019050919050565b61416b816147d9565b82525050565b600061417d8284613d7a565b60148201915081905092915050565b60006141988284613de8565b915081905092915050565b60006141af8285613e52565b91506141bb8284613e52565b91508190509392505050565b60006141d28261406d565b9150819050919050565b60006020820190506141f16000830184613d6b565b92915050565b600060408201905061420c6000830185613d5c565b6142196020830184614162565b9392505050565b60006080820190506142356000830187613d6b565b6142426020830186613d6b565b61424f6040830185614162565b81810360608301526142618184613daf565b905095945050505050565b60006040820190506142816000830185613d6b565b61428e6020830184614162565b9392505050565b60006020820190506142aa6000830184613d91565b92915050565b60006020820190506142c56000830184613da0565b92915050565b600060208201905081810360008301526142e58184613e19565b905092915050565b6000602082019050818103600083015261430681613e83565b9050919050565b6000602082019050818103600083015261432681613ea6565b9050919050565b6000602082019050818103600083015261434681613ec9565b9050919050565b6000602082019050818103600083015261436681613eec565b9050919050565b6000602082019050818103600083015261438681613f0f565b9050919050565b600060208201905081810360008301526143a681613f32565b9050919050565b600060208201905081810360008301526143c681613f55565b9050919050565b600060208201905081810360008301526143e681613f78565b9050919050565b6000602082019050818103600083015261440681613f9b565b9050919050565b6000602082019050818103600083015261442681613fbe565b9050919050565b6000602082019050818103600083015261444681613fe1565b9050919050565b6000602082019050818103600083015261446681614004565b9050919050565b6000602082019050818103600083015261448681614027565b9050919050565b600060208201905081810360008301526144a68161404a565b9050919050565b600060208201905081810360008301526144c681614090565b9050919050565b600060208201905081810360008301526144e6816140b3565b9050919050565b60006020820190508181036000830152614506816140d6565b9050919050565b60006020820190508181036000830152614526816140f9565b9050919050565b600060208201905081810360008301526145468161411c565b9050919050565b600060208201905081810360008301526145668161413f565b9050919050565b60006020820190506145826000830184614162565b92915050565b60006145926145a3565b905061459e82826148a5565b919050565b6000604051905090565b600067ffffffffffffffff8211156145c8576145c76149ff565b5b6145d182614a4c565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614637826147d9565b9150614642836147d9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561467757614676614943565b5b828201905092915050565b600061468d826147d9565b9150614698836147d9565b9250826146a8576146a7614972565b5b828204905092915050565b60006146be826147d9565b91506146c9836147d9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561470257614701614943565b5b828202905092915050565b6000614718826147d9565b9150614723836147d9565b92508282101561473657614735614943565b5b828203905092915050565b600061474c826147b9565b9050919050565b600061475e826147b9565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006147b282614741565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006bffffffffffffffffffffffff82169050919050565b60006148068261480d565b9050919050565b60006148188261481f565b9050919050565b600061482a826147b9565b9050919050565b82818337600083830152505050565b60005b8381101561485e578082015181840152602081019050614843565b8381111561486d576000848401525b50505050565b6000600282049050600182168061488b57607f821691505b6020821081141561489f5761489e6149a1565b5b50919050565b6148ae82614a4c565b810181811067ffffffffffffffff821117156148cd576148cc6149ff565b5b80604052505050565b60006148e1826147d9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561491457614913614943565b5b600182019050919050565b600061492a82614931565b9050919050565b600061493c82614a5d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f46423a20616c6c20746f6b656e732068617665206265656e206d696e74656400600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46423a207075626c69632073616c6520706572696f64206973206e6f74206f7060008201527f656e000000000000000000000000000000000000000000000000000000000000602082015250565b7f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060008201527f7368617265730000000000000000000000000000000000000000000000000000602082015250565b7f46423a20636f6e747261637420696e746572616374696f6e7320617265206e6f60008201527f74207065726d6974746564000000000000000000000000000000000000000000602082015250565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060008201527f647565207061796d656e74000000000000000000000000000000000000000000602082015250565b7f46423a2070726f766964656420616d6f756e74206973206d6f7265207468616e60008201527f2074686520616c6c6f776564206d696e74207175616e74697479000000000000602082015250565b7f46423a20696e737566666963656e742065746865722070726f76696465640000600082015250565b7f46423a206c656166206973206e6f742061206d656d626572206f66207468652060008201527f6d65726b6c652074726565000000000000000000000000000000000000000000602082015250565b7f46423a2070726573616c6520706572696f64206973206e6f74206f70656e0000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f46423a206769667420706572696f64206973206e6f74206f70656e0000000000600082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b614f4c81614741565b8114614f5757600080fd5b50565b614f6381614753565b8114614f6e57600080fd5b50565b614f7a81614765565b8114614f8557600080fd5b50565b614f9181614771565b8114614f9c57600080fd5b50565b614fa88161477b565b8114614fb357600080fd5b50565b614fbf816147a7565b8114614fca57600080fd5b50565b614fd6816147d9565b8114614fe157600080fd5b50565b614fed816147e3565b8114614ff857600080fd5b5056fea26469706673582212200aca89b204c521e848bde5fcb095d4ae895fbbddc8aa03d437b2bb116b82a51b64736f6c63430008070033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000fbda167369fcbd484e908e20094f3e1643905577000000000000000000000000677bb2aae912e847f5dacff9cdaa0d4f43dbbf52000000000000000000000000350d668379d3c715018f4d3aa452710f1e399e250000000000000000000000009c7386115f31f8033dafee98ad17949fafb833ad00000000000000000000000070f237fbb99ef867a575aef8ea75ec0561ccdbe1000000000000000000000000d0df7ce09a54283c8e4b0e6198445ddd6aea864f00000000000000000000000067bdf711f2c34464de6e99ed27475bfa5afa08320000000000000000000000008342afcf70635f5a76bcb61e63a7624e2d10a95d0000000000000000000000008271df8a754d74894c91c1ae7ca8d5d4c23f1873000000000000000000000000676091157e908974df9d6abb3f1b3061b6400681000000000000000000000000bcfd26f6d2aa52a07a496e3ff51b4923f646267b000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000000000000000af00000000000000000000000000000000000000000000000000000000000000af00000000000000000000000000000000000000000000000000000000000000af00000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029a0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000004b000000000000000000000000000000000000000000000000000000000000011df
Deployed Bytecode
0x6080604052600436106102815760003560e01c8063715018a61161014f578063a3f8eace116100c1578063d79779b21161007a578063d79779b2146109ca578063dc33e68114610a07578063e33b7de314610a44578063e985e9c514610a6f578063f2fde38b14610aac578063ffe630b514610ad5576102c8565b8063a3f8eace14610891578063b88d4fde146108ce578063c45ac050146108ea578063c87b56dd14610927578063cbce4c9714610964578063ce7c2ac21461098d576102c8565b806391b7f5ed1161011357806391b7f5ed1461079057806395d89b41146107b95780639852595c146107e4578063a035b1fe14610821578063a0712d681461084c578063a22cb46514610868576102c8565b8063715018a6146106bf5780637cb64759146106d65780638b83209b146106ff5780638da5cb5b1461073c5780638f2fc60b14610767576102c8565b80632eb4a7ab116101f357806355f804b3116101ac57806355f804b3146105b15780636352211e146105da578063656d677e1461061757806369ba1a751461062e5780636c0360eb1461065757806370a0823114610682576102c8565b80632eb4a7ab146104ae57806332cb6b0c146104d95780633a98ef3914610504578063406072a91461052f57806342842e0e1461056c57806348b7504414610588576102c8565b806318160ddd1161024557806318160ddd146103b957806319165587146103e4578063200d2ed21461040d57806323b872dd1461043857806327ed3dce146104545780632a55205a14610470576102c8565b806301ffc9a7146102cd57806306fdde031461030a578063081812fc14610335578063095ea7b3146103725780630f7309e81461038e576102c8565b366102c8577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7706102af610afe565b346040516102be92919061426c565b60405180910390a1005b600080fd5b3480156102d957600080fd5b506102f460048036038101906102ef9190613bae565b610b06565b6040516103019190614295565b60405180910390f35b34801561031657600080fd5b5061031f610b28565b60405161032c91906142cb565b60405180910390f35b34801561034157600080fd5b5061035c60048036038101906103579190613cc2565b610bba565b60405161036991906141dc565b60405180910390f35b61038c60048036038101906103879190613a74565b610c39565b005b34801561039a57600080fd5b506103a3610d7d565b6040516103b091906142cb565b60405180910390f35b3480156103c557600080fd5b506103ce610e0b565b6040516103db919061456d565b60405180910390f35b3480156103f057600080fd5b5061040b600480360381019061040691906138f1565b610e22565b005b34801561041957600080fd5b50610422610fab565b60405161042f919061456d565b60405180910390f35b610452600480360381019061044d919061395e565b610fb1565b005b61046e60048036038101906104699190613af4565b6112d6565b005b34801561047c57600080fd5b5061049760048036038101906104929190613d1c565b61155d565b6040516104a592919061426c565b60405180910390f35b3480156104ba57600080fd5b506104c3611748565b6040516104d091906142b0565b60405180910390f35b3480156104e557600080fd5b506104ee61174e565b6040516104fb919061456d565b60405180910390f35b34801561051057600080fd5b50610519611754565b604051610526919061456d565b60405180910390f35b34801561053b57600080fd5b5061055660048036038101906105519190613c35565b61175e565b604051610563919061456d565b60405180910390f35b6105866004803603810190610581919061395e565b6117e5565b005b34801561059457600080fd5b506105af60048036038101906105aa9190613c35565b611805565b005b3480156105bd57600080fd5b506105d860048036038101906105d39190613c75565b611a22565b005b3480156105e657600080fd5b5061060160048036038101906105fc9190613cc2565b611a40565b60405161060e91906141dc565b60405180910390f35b34801561062357600080fd5b5061062c611a52565b005b34801561063a57600080fd5b5061065560048036038101906106509190613cc2565b611b13565b005b34801561066357600080fd5b5061066c611b25565b60405161067991906142cb565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a491906138c4565b611bb3565b6040516106b6919061456d565b60405180910390f35b3480156106cb57600080fd5b506106d4611c6c565b005b3480156106e257600080fd5b506106fd60048036038101906106f89190613b81565b611c80565b005b34801561070b57600080fd5b5061072660048036038101906107219190613cc2565b611c92565b60405161073391906141dc565b60405180910390f35b34801561074857600080fd5b50610751611cda565b60405161075e91906141dc565b60405180910390f35b34801561077357600080fd5b5061078e60048036038101906107899190613ab4565b611d04565b005b34801561079c57600080fd5b506107b760048036038101906107b29190613cc2565b611d1a565b005b3480156107c557600080fd5b506107ce611d2c565b6040516107db91906142cb565b60405180910390f35b3480156107f057600080fd5b5061080b600480360381019061080691906138c4565b611dbe565b604051610818919061456d565b60405180910390f35b34801561082d57600080fd5b50610836611e07565b604051610843919061456d565b60405180910390f35b61086660048036038101906108619190613cc2565b611e0d565b005b34801561087457600080fd5b5061088f600480360381019061088a9190613a34565b61201f565b005b34801561089d57600080fd5b506108b860048036038101906108b391906138c4565b61212a565b6040516108c5919061456d565b60405180910390f35b6108e860048036038101906108e391906139b1565b61215d565b005b3480156108f657600080fd5b50610911600480360381019061090c9190613c35565b6121d0565b60405161091e919061456d565b60405180910390f35b34801561093357600080fd5b5061094e60048036038101906109499190613cc2565b61228e565b60405161095b91906142cb565b60405180910390f35b34801561097057600080fd5b5061098b60048036038101906109869190613a74565b61232d565b005b34801561099957600080fd5b506109b460048036038101906109af91906138c4565b612435565b6040516109c1919061456d565b60405180910390f35b3480156109d657600080fd5b506109f160048036038101906109ec9190613c08565b61247e565b6040516109fe919061456d565b60405180910390f35b348015610a1357600080fd5b50610a2e6004803603810190610a2991906138c4565b6124c7565b604051610a3b919061456d565b60405180910390f35b348015610a5057600080fd5b50610a596124d9565b604051610a66919061456d565b60405180910390f35b348015610a7b57600080fd5b50610a966004803603810190610a91919061391e565b6124e3565b604051610aa39190614295565b60405180910390f35b348015610ab857600080fd5b50610ad36004803603810190610ace91906138c4565b612577565b005b348015610ae157600080fd5b50610afc6004803603810190610af79190613c75565b6125fb565b005b600033905090565b6000610b1182612619565b80610b215750610b20826126ab565b5b9050919050565b606060028054610b3790614873565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6390614873565b8015610bb05780601f10610b8557610100808354040283529160200191610bb0565b820191906000526020600020905b815481529060010190602001808311610b9357829003601f168201915b5050505050905090565b6000610bc582612725565b610bfb576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610c4482611a40565b90508073ffffffffffffffffffffffffffffffffffffffff16610c65612784565b73ffffffffffffffffffffffffffffffffffffffff1614610cc857610c9181610c8c612784565b6124e3565b610cc7576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60168054610d8a90614873565b80601f0160208091040260200160405190810160405280929190818152602001828054610db690614873565b8015610e035780601f10610dd857610100808354040283529160200191610e03565b820191906000526020600020905b815481529060010190602001808311610de657829003601f168201915b505050505081565b6000610e1561278c565b6001546000540303905090565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9b9061434d565b60405180910390fd5b6000610eaf8261212a565b90506000811415610ef5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eec906143ed565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f44919061462c565b9250508190555080600d6000828254610f5d919061462c565b92505081905550610f6e8282612795565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b0568282604051610f9f9291906141f7565b60405180910390a15050565b60185481565b6000610fbc82612889565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611023576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061102f84612957565b915091506110458187611040612784565b61297e565b6110915761105a86611055612784565b6124e3565b611090576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156110f8576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61110586868660016129c2565b801561111057600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055506111de856111ba8888876129c8565b7c0200000000000000000000000000000000000000000000000000000000176129f0565b600460008681526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000084161415611266576000600185019050600060046000838152602001908152602001600020541415611264576000548114611263578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46112ce8686866001612a1b565b505050505050565b6002600b54141561131c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113139061452d565b60405180910390fd5b6002600b81905550600260185414611369576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113609061446d565b60405180910390fd5b8060175461137791906146b3565b34146113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af9061442d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d9061436d565b60405180910390fd5b6115b381611432612a21565b61143c919061462c565b111561147d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611474906142ed565b60405180910390fd5b60038161148933612a34565b611493919061462c565b106114d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ca9061440d565b60405180910390fd5b6115078383601454336040516020016114ec9190614171565b60405160208183030381529060405280519060200120612a8b565b611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d9061444d565b60405180910390fd5b6115503382612aa4565b6001600b81905550505050565b6000806000600960008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614156116f35760086040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b60006116fd612c61565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff168661172991906146b3565b6117339190614682565b90508160000151819350935050509250929050565b60145481565b6115b381565b6000600c54905090565b6000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118008383836040518060200160405280600081525061215d565b505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187e9061434d565b60405180910390fd5b600061189383836121d0565b905060008114156118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d0906143ed565b60405180910390fd5b80601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611965919061462c565b9250508190555080601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119bb919061462c565b925050819055506119cd838383612c6b565b8273ffffffffffffffffffffffffffffffffffffffff167f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a8383604051611a1592919061426c565b60405180910390a2505050565b611a2a612cf1565b818160159190611a3b92919061361e565b505050565b6000611a4b82612889565b9050919050565b6002600b541415611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f9061452d565b60405180910390fd5b6002600b8190555060005b601380549050811015611b0857611af760138281548110611ac757611ac66149d0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e22565b80611b01906148d6565b9050611aa3565b506001600b81905550565b611b1b612cf1565b8060188190555050565b60158054611b3290614873565b80601f0160208091040260200160405190810160405280929190818152602001828054611b5e90614873565b8015611bab5780601f10611b8057610100808354040283529160200191611bab565b820191906000526020600020905b815481529060010190602001808311611b8e57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c1b576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b611c74612cf1565b611c7e6000612d6f565b565b611c88612cf1565b8060148190555050565b600060108281548110611ca857611ca76149d0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611d0c612cf1565b611d168282612e35565b5050565b611d22612cf1565b8060178190555050565b606060038054611d3b90614873565b80601f0160208091040260200160405190810160405280929190818152602001828054611d6790614873565b8015611db45780601f10611d8957610100808354040283529160200191611db4565b820191906000526020600020905b815481529060010190602001808311611d9757829003601f168201915b5050505050905090565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60175481565b6002600b541415611e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4a9061452d565b60405180910390fd5b6002600b81905550600360185414611ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e979061432d565b60405180910390fd5b80601754611eae91906146b3565b3414611eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee69061442d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f549061436d565b60405180910390fd5b600481611f6933612a34565b611f73919061462c565b10611fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faa9061440d565b60405180910390fd5b6115b381611fbf612a21565b611fc9919061462c565b111561200a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612001906142ed565b60405180910390fd5b6120143382612aa4565b6001600b8190555050565b806007600061202c612784565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166120d9612784565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161211e9190614295565b60405180910390a35050565b6000806121356124d9565b47612140919061462c565b9050612155838261215086611dbe565b612fcb565b915050919050565b612168848484610fb1565b60008373ffffffffffffffffffffffffffffffffffffffff163b146121ca5761219384848484613039565b6121c9576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b6000806121dc8461247e565b8473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161221591906141dc565b60206040518083038186803b15801561222d57600080fd5b505afa158015612241573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122659190613cef565b61226f919061462c565b90506122858382612280878761175e565b612fcb565b91505092915050565b606061229982612725565b6122cf576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006122d9613199565b90506000815114156122fa5760405180602001604052806000815250612325565b806123048461322b565b6040516020016123159291906141a3565b6040516020818303038152906040525b915050919050565b6002600b541415612373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236a9061452d565b60405180910390fd5b6002600b81905550612383612cf1565b6001601854146123c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bf9061450d565b60405180910390fd5b6115b3816123d4612a21565b6123de919061462c565b111561241f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612416906142ed565b60405180910390fd5b6124298282612aa4565b6001600b819055505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006124d282612a34565b9050919050565b6000600d54905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61257f612cf1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156125ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e69061430d565b60405180910390fd5b6125f881612d6f565b50565b612603612cf1565b81816016919061261492919061361e565b505050565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061267457506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806126a45750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061271e575061271d82613284565b5b9050919050565b60008161273061278c565b1115801561273f575060005482105b801561277d575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b804710156127d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127cf906143ad565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516127fe906141c7565b60006040518083038185875af1925050503d806000811461283b576040519150601f19603f3d011682016040523d82523d6000602084013e612840565b606091505b5050905080612884576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287b9061438d565b60405180910390fd5b505050565b6000808290508061289861278c565b116129205760005481101561291f5760006004600083815260200190815260200160002054905060007c01000000000000000000000000000000000000000000000000000000008216141561291d575b60008114156129135760046000836001900393508381526020019081526020016000205490506128e8565b8092505050612952565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e86129df8686846132ee565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000612a2b61278c565b60005403905090565b600067ffffffffffffffff6040600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c169050919050565b600082612a998686856132f7565b149050949350505050565b6000805490506000821415612ae5576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612af260008483856129c2565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612b6983612b5a60008660006129c8565b612b638561334f565b176129f0565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b818114612c0a57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050612bcf565b506000821415612c46576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000819055505050612c5c6000848385612a1b565b505050565b6000612710905090565b612cec8363a9059cbb60e01b8484604051602401612c8a92919061426c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061335f565b505050565b612cf9610afe565b73ffffffffffffffffffffffffffffffffffffffff16612d17611cda565b73ffffffffffffffffffffffffffffffffffffffff1614612d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d649061448d565b60405180910390fd5b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612e3d612c61565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115612e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e92906144cd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f029061454d565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600860008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b600081600c54600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561301c91906146b3565b6130269190614682565b613030919061470d565b90509392505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261305f612784565b8786866040518563ffffffff1660e01b81526004016130819493929190614220565b602060405180830381600087803b15801561309b57600080fd5b505af19250505080156130cc57506040513d601f19601f820116820180604052508101906130c99190613bdb565b60015b613146573d80600081146130fc576040519150601f19603f3d011682016040523d82523d6000602084013e613101565b606091505b5060008151141561313e576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060601580546131a890614873565b80601f01602080910402602001604051908101604052809291908181526020018280546131d490614873565b80156132215780601f106131f657610100808354040283529160200191613221565b820191906000526020600020905b81548152906001019060200180831161320457829003601f168201915b5050505050905090565b606060a060405101806040526020810391506000825281835b60011561326f57600184039350600a81066030018453600a810490508061326a5761326f565b613244565b50828103602084039350808452505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60009392505050565b60008082905060005b858590508110156133435761332e82878784818110613322576133216149d0565b5b90506020020135613426565b9150808061333b906148d6565b915050613300565b50809150509392505050565b60006001821460e11b9050919050565b60006133c1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166134519092919063ffffffff16565b905060008151111561342157808060200190518101906133e19190613b54565b613420576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613417906144ed565b60405180910390fd5b5b505050565b600081831061343e576134398284613469565b613449565b6134488383613469565b5b905092915050565b60606134608484600085613480565b90509392505050565b600082600052816020526040600020905092915050565b6060824710156134c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134bc906143cd565b60405180910390fd5b6134ce85613594565b61350d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613504906144ad565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051613536919061418c565b60006040518083038185875af1925050503d8060008114613573576040519150601f19603f3d011682016040523d82523d6000602084013e613578565b606091505b50915091506135888282866135b7565b92505050949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606083156135c757829050613617565b6000835111156135da5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161360e91906142cb565b60405180910390fd5b9392505050565b82805461362a90614873565b90600052602060002090601f01602090048101928261364c5760008555613693565b82601f1061366557803560ff1916838001178555613693565b82800160010185558215613693579182015b82811115613692578235825591602001919060010190613677565b5b5090506136a091906136a4565b5090565b5b808211156136bd5760008160009055506001016136a5565b5090565b60006136d46136cf846145ad565b614588565b9050828152602081018484840111156136f0576136ef614a3d565b5b6136fb848285614831565b509392505050565b60008135905061371281614f43565b92915050565b60008135905061372781614f5a565b92915050565b60008083601f84011261374357613742614a33565b5b8235905067ffffffffffffffff8111156137605761375f614a2e565b5b60208301915083602082028301111561377c5761377b614a38565b5b9250929050565b60008135905061379281614f71565b92915050565b6000815190506137a781614f71565b92915050565b6000813590506137bc81614f88565b92915050565b6000813590506137d181614f9f565b92915050565b6000815190506137e681614f9f565b92915050565b600082601f83011261380157613800614a33565b5b81356138118482602086016136c1565b91505092915050565b60008135905061382981614fb6565b92915050565b60008083601f84011261384557613844614a33565b5b8235905067ffffffffffffffff81111561386257613861614a2e565b5b60208301915083600182028301111561387e5761387d614a38565b5b9250929050565b60008135905061389481614fcd565b92915050565b6000815190506138a981614fcd565b92915050565b6000813590506138be81614fe4565b92915050565b6000602082840312156138da576138d9614a47565b5b60006138e884828501613703565b91505092915050565b60006020828403121561390757613906614a47565b5b600061391584828501613718565b91505092915050565b6000806040838503121561393557613934614a47565b5b600061394385828601613703565b925050602061395485828601613703565b9150509250929050565b60008060006060848603121561397757613976614a47565b5b600061398586828701613703565b935050602061399686828701613703565b92505060406139a786828701613885565b9150509250925092565b600080600080608085870312156139cb576139ca614a47565b5b60006139d987828801613703565b94505060206139ea87828801613703565b93505060406139fb87828801613885565b925050606085013567ffffffffffffffff811115613a1c57613a1b614a42565b5b613a28878288016137ec565b91505092959194509250565b60008060408385031215613a4b57613a4a614a47565b5b6000613a5985828601613703565b9250506020613a6a85828601613783565b9150509250929050565b60008060408385031215613a8b57613a8a614a47565b5b6000613a9985828601613703565b9250506020613aaa85828601613885565b9150509250929050565b60008060408385031215613acb57613aca614a47565b5b6000613ad985828601613703565b9250506020613aea858286016138af565b9150509250929050565b600080600060408486031215613b0d57613b0c614a47565b5b600084013567ffffffffffffffff811115613b2b57613b2a614a42565b5b613b378682870161372d565b93509350506020613b4a86828701613885565b9150509250925092565b600060208284031215613b6a57613b69614a47565b5b6000613b7884828501613798565b91505092915050565b600060208284031215613b9757613b96614a47565b5b6000613ba5848285016137ad565b91505092915050565b600060208284031215613bc457613bc3614a47565b5b6000613bd2848285016137c2565b91505092915050565b600060208284031215613bf157613bf0614a47565b5b6000613bff848285016137d7565b91505092915050565b600060208284031215613c1e57613c1d614a47565b5b6000613c2c8482850161381a565b91505092915050565b60008060408385031215613c4c57613c4b614a47565b5b6000613c5a8582860161381a565b9250506020613c6b85828601613703565b9150509250929050565b60008060208385031215613c8c57613c8b614a47565b5b600083013567ffffffffffffffff811115613caa57613ca9614a42565b5b613cb68582860161382f565b92509250509250929050565b600060208284031215613cd857613cd7614a47565b5b6000613ce684828501613885565b91505092915050565b600060208284031215613d0557613d04614a47565b5b6000613d138482850161389a565b91505092915050565b60008060408385031215613d3357613d32614a47565b5b6000613d4185828601613885565b9250506020613d5285828601613885565b9150509250929050565b613d65816147fb565b82525050565b613d7481614741565b82525050565b613d8b613d8682614741565b61491f565b82525050565b613d9a81614765565b82525050565b613da981614771565b82525050565b6000613dba826145de565b613dc481856145f4565b9350613dd4818560208601614840565b613ddd81614a4c565b840191505092915050565b6000613df3826145de565b613dfd8185614605565b9350613e0d818560208601614840565b80840191505092915050565b6000613e24826145e9565b613e2e8185614610565b9350613e3e818560208601614840565b613e4781614a4c565b840191505092915050565b6000613e5d826145e9565b613e678185614621565b9350613e77818560208601614840565b80840191505092915050565b6000613e90601f83614610565b9150613e9b82614a6a565b602082019050919050565b6000613eb3602683614610565b9150613ebe82614a93565b604082019050919050565b6000613ed6602283614610565b9150613ee182614ae2565b604082019050919050565b6000613ef9602683614610565b9150613f0482614b31565b604082019050919050565b6000613f1c602b83614610565b9150613f2782614b80565b604082019050919050565b6000613f3f603a83614610565b9150613f4a82614bcf565b604082019050919050565b6000613f62601d83614610565b9150613f6d82614c1e565b602082019050919050565b6000613f85602683614610565b9150613f9082614c47565b604082019050919050565b6000613fa8602b83614610565b9150613fb382614c96565b604082019050919050565b6000613fcb603a83614610565b9150613fd682614ce5565b604082019050919050565b6000613fee601e83614610565b9150613ff982614d34565b602082019050919050565b6000614011602b83614610565b915061401c82614d5d565b604082019050919050565b6000614034601e83614610565b915061403f82614dac565b602082019050919050565b6000614057602083614610565b915061406282614dd5565b602082019050919050565b600061407a600083614605565b915061408582614dfe565b600082019050919050565b600061409d601d83614610565b91506140a882614e01565b602082019050919050565b60006140c0602a83614610565b91506140cb82614e2a565b604082019050919050565b60006140e3602a83614610565b91506140ee82614e79565b604082019050919050565b6000614106601b83614610565b915061411182614ec8565b602082019050919050565b6000614129601f83614610565b915061413482614ef1565b602082019050919050565b600061414c601983614610565b915061415782614f1a565b602082019050919050565b61416b816147d9565b82525050565b600061417d8284613d7a565b60148201915081905092915050565b60006141988284613de8565b915081905092915050565b60006141af8285613e52565b91506141bb8284613e52565b91508190509392505050565b60006141d28261406d565b9150819050919050565b60006020820190506141f16000830184613d6b565b92915050565b600060408201905061420c6000830185613d5c565b6142196020830184614162565b9392505050565b60006080820190506142356000830187613d6b565b6142426020830186613d6b565b61424f6040830185614162565b81810360608301526142618184613daf565b905095945050505050565b60006040820190506142816000830185613d6b565b61428e6020830184614162565b9392505050565b60006020820190506142aa6000830184613d91565b92915050565b60006020820190506142c56000830184613da0565b92915050565b600060208201905081810360008301526142e58184613e19565b905092915050565b6000602082019050818103600083015261430681613e83565b9050919050565b6000602082019050818103600083015261432681613ea6565b9050919050565b6000602082019050818103600083015261434681613ec9565b9050919050565b6000602082019050818103600083015261436681613eec565b9050919050565b6000602082019050818103600083015261438681613f0f565b9050919050565b600060208201905081810360008301526143a681613f32565b9050919050565b600060208201905081810360008301526143c681613f55565b9050919050565b600060208201905081810360008301526143e681613f78565b9050919050565b6000602082019050818103600083015261440681613f9b565b9050919050565b6000602082019050818103600083015261442681613fbe565b9050919050565b6000602082019050818103600083015261444681613fe1565b9050919050565b6000602082019050818103600083015261446681614004565b9050919050565b6000602082019050818103600083015261448681614027565b9050919050565b600060208201905081810360008301526144a68161404a565b9050919050565b600060208201905081810360008301526144c681614090565b9050919050565b600060208201905081810360008301526144e6816140b3565b9050919050565b60006020820190508181036000830152614506816140d6565b9050919050565b60006020820190508181036000830152614526816140f9565b9050919050565b600060208201905081810360008301526145468161411c565b9050919050565b600060208201905081810360008301526145668161413f565b9050919050565b60006020820190506145826000830184614162565b92915050565b60006145926145a3565b905061459e82826148a5565b919050565b6000604051905090565b600067ffffffffffffffff8211156145c8576145c76149ff565b5b6145d182614a4c565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614637826147d9565b9150614642836147d9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561467757614676614943565b5b828201905092915050565b600061468d826147d9565b9150614698836147d9565b9250826146a8576146a7614972565b5b828204905092915050565b60006146be826147d9565b91506146c9836147d9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561470257614701614943565b5b828202905092915050565b6000614718826147d9565b9150614723836147d9565b92508282101561473657614735614943565b5b828203905092915050565b600061474c826147b9565b9050919050565b600061475e826147b9565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006147b282614741565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006bffffffffffffffffffffffff82169050919050565b60006148068261480d565b9050919050565b60006148188261481f565b9050919050565b600061482a826147b9565b9050919050565b82818337600083830152505050565b60005b8381101561485e578082015181840152602081019050614843565b8381111561486d576000848401525b50505050565b6000600282049050600182168061488b57607f821691505b6020821081141561489f5761489e6149a1565b5b50919050565b6148ae82614a4c565b810181811067ffffffffffffffff821117156148cd576148cc6149ff565b5b80604052505050565b60006148e1826147d9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561491457614913614943565b5b600182019050919050565b600061492a82614931565b9050919050565b600061493c82614a5d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f46423a20616c6c20746f6b656e732068617665206265656e206d696e74656400600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46423a207075626c69632073616c6520706572696f64206973206e6f74206f7060008201527f656e000000000000000000000000000000000000000000000000000000000000602082015250565b7f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060008201527f7368617265730000000000000000000000000000000000000000000000000000602082015250565b7f46423a20636f6e747261637420696e746572616374696f6e7320617265206e6f60008201527f74207065726d6974746564000000000000000000000000000000000000000000602082015250565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b7f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060008201527f647565207061796d656e74000000000000000000000000000000000000000000602082015250565b7f46423a2070726f766964656420616d6f756e74206973206d6f7265207468616e60008201527f2074686520616c6c6f776564206d696e74207175616e74697479000000000000602082015250565b7f46423a20696e737566666963656e742065746865722070726f76696465640000600082015250565b7f46423a206c656166206973206e6f742061206d656d626572206f66207468652060008201527f6d65726b6c652074726565000000000000000000000000000000000000000000602082015250565b7f46423a2070726573616c6520706572696f64206973206e6f74206f70656e0000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b7f46423a206769667420706572696f64206973206e6f74206f70656e0000000000600082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b614f4c81614741565b8114614f5757600080fd5b50565b614f6381614753565b8114614f6e57600080fd5b50565b614f7a81614765565b8114614f8557600080fd5b50565b614f9181614771565b8114614f9c57600080fd5b50565b614fa88161477b565b8114614fb357600080fd5b50565b614fbf816147a7565b8114614fca57600080fd5b50565b614fd6816147d9565b8114614fe157600080fd5b50565b614fed816147e3565b8114614ff857600080fd5b5056fea26469706673582212200aca89b204c521e848bde5fcb095d4ae895fbbddc8aa03d437b2bb116b82a51b64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000fbda167369fcbd484e908e20094f3e1643905577000000000000000000000000677bb2aae912e847f5dacff9cdaa0d4f43dbbf52000000000000000000000000350d668379d3c715018f4d3aa452710f1e399e250000000000000000000000009c7386115f31f8033dafee98ad17949fafb833ad00000000000000000000000070f237fbb99ef867a575aef8ea75ec0561ccdbe1000000000000000000000000d0df7ce09a54283c8e4b0e6198445ddd6aea864f00000000000000000000000067bdf711f2c34464de6e99ed27475bfa5afa08320000000000000000000000008342afcf70635f5a76bcb61e63a7624e2d10a95d0000000000000000000000008271df8a754d74894c91c1ae7ca8d5d4c23f1873000000000000000000000000676091157e908974df9d6abb3f1b3061b6400681000000000000000000000000bcfd26f6d2aa52a07a496e3ff51b4923f646267b000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000000000000000af00000000000000000000000000000000000000000000000000000000000000af00000000000000000000000000000000000000000000000000000000000000af00000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029a0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000004b000000000000000000000000000000000000000000000000000000000000011df
-----Decoded View---------------
Arg [0] : _payees (address[]): 0xFbda167369FcBd484e908E20094F3e1643905577,0x677bB2aAe912E847f5Dacff9cDAa0d4f43dbbF52,0x350d668379d3c715018F4D3aA452710f1E399E25,0x9c7386115F31f8033daFEe98Ad17949FAFB833ad,0x70F237Fbb99ef867a575aEF8Ea75eC0561CCDBE1,0xD0Df7cE09a54283C8E4B0E6198445DDd6Aea864f,0x67bdf711f2c34464De6e99eD27475BfA5afA0832,0x8342AfCf70635F5a76bcB61E63A7624e2D10a95d,0x8271dF8a754d74894C91c1ae7cA8D5D4c23F1873,0x676091157E908974DF9D6Abb3F1b3061B6400681,0xbcFd26F6d2AA52a07a496E3fF51B4923f646267b
Arg [1] : _shares (uint256[]): 175,175,175,500,668,666,666,800,400,1200,4575
-----Encoded View---------------
26 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 00000000000000000000000000000000000000000000000000000000000001c0
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [3] : 000000000000000000000000fbda167369fcbd484e908e20094f3e1643905577
Arg [4] : 000000000000000000000000677bb2aae912e847f5dacff9cdaa0d4f43dbbf52
Arg [5] : 000000000000000000000000350d668379d3c715018f4d3aa452710f1e399e25
Arg [6] : 0000000000000000000000009c7386115f31f8033dafee98ad17949fafb833ad
Arg [7] : 00000000000000000000000070f237fbb99ef867a575aef8ea75ec0561ccdbe1
Arg [8] : 000000000000000000000000d0df7ce09a54283c8e4b0e6198445ddd6aea864f
Arg [9] : 00000000000000000000000067bdf711f2c34464de6e99ed27475bfa5afa0832
Arg [10] : 0000000000000000000000008342afcf70635f5a76bcb61e63a7624e2d10a95d
Arg [11] : 0000000000000000000000008271df8a754d74894c91c1ae7ca8d5d4c23f1873
Arg [12] : 000000000000000000000000676091157e908974df9d6abb3f1b3061b6400681
Arg [13] : 000000000000000000000000bcfd26f6d2aa52a07a496e3ff51b4923f646267b
Arg [14] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [15] : 00000000000000000000000000000000000000000000000000000000000000af
Arg [16] : 00000000000000000000000000000000000000000000000000000000000000af
Arg [17] : 00000000000000000000000000000000000000000000000000000000000000af
Arg [18] : 00000000000000000000000000000000000000000000000000000000000001f4
Arg [19] : 000000000000000000000000000000000000000000000000000000000000029c
Arg [20] : 000000000000000000000000000000000000000000000000000000000000029a
Arg [21] : 000000000000000000000000000000000000000000000000000000000000029a
Arg [22] : 0000000000000000000000000000000000000000000000000000000000000320
Arg [23] : 0000000000000000000000000000000000000000000000000000000000000190
Arg [24] : 00000000000000000000000000000000000000000000000000000000000004b0
Arg [25] : 00000000000000000000000000000000000000000000000000000000000011df
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.