Feature Tip: Add private address tag to any address under My Name Tag !
ERC-721
Overview
Max Total Supply
333 GVT
Holders
125
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
1 GVTLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ERC721
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-12-17 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; 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); } interface IERC721 is IERC165 { event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); function balanceOf(address _owner) external view returns (uint256); function ownerOf(uint256 _tokenId) external view returns (address); function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes memory data) external; function safeTransferFrom(address _from, address _to, uint256 _tokenId) external; function transferFrom(address _from, address _to, uint256 _tokenId) external; function approve(address _approved, uint256 _tokenId) external; function setApprovalForAll(address _operator, bool _approved) external; function getApproved(uint256 _tokenId) external view returns (address); function isApprovedForAll(address _owner, address _operator) external view returns (bool); } interface IERC721Receiver { /** * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} * by `operator` from `from`, this function is called. * * It must return its Solidity selector to confirm the token transfer. * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. * * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`. */ function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4); } interface IERC721Metadata is IERC721 { /** * @dev Returns the token collection name. */ function name() external view returns (string memory); /** * @dev Returns the token collection symbol. */ function symbol() external view returns (string memory); function totalSupply() external view returns(uint256); /** * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ function tokenURI(uint256 tokenId) external view returns (string memory); } 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 * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: value }(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } library Strings { bytes16 private constant alphabet = "0123456789abcdef"; /** * @dev Converts a `uint256` to its ASCII `string` decimal representation. */ function toString(uint256 value) internal pure returns (string memory) { // Inspired by OraclizeAPI's implementation - MIT licence // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. */ function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. */ function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = alphabet[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } interface ITRAF { function balanceOf(address account, uint256 id) external view returns (uint256); } contract ERC721 is ERC165, IERC721, IERC721Metadata { using Address for address; using Strings for uint256; ITRAF TRAF; address private _manager; address private _manager1; mapping(address => uint256) private _mints; string private uriLink = "https://theredapefamily.com/Gravity/data/GravitySneaker"; uint256 private _totalSupply = 333; string private _name = "Gravity"; string private _symbol; uint256 private _claimed; mapping(uint256 => address) private _owners; mapping(uint256 => string) private _uri; mapping(address => uint256) private _balances; mapping(uint256 => address) private _tokenApprovals; mapping(address => mapping(address => bool)) private _operatorApprovals; modifier manager() { require(msg.sender == _manager || msg.sender == _manager1); _; } constructor (string memory name_, string memory symbol_, address TRAFcontract) { _name = name_; _symbol = symbol_; _manager = msg.sender; _manager1 = msg.sender; TRAF = ITRAF(TRAFcontract); } function setMints(address[] memory users, uint256[] memory claims) manager external{ uint256 length = claims.length; for(uint256 t; t < length; ++t) { _mints[users[t]] = claims[t]; } } //Read Functions====================================================================================================================================================== function owner() external view returns (address) { return _manager; } function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } function balanceOf(address owner) public view virtual override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _balances[owner]; } function ownerOf(uint256 tokenId) public view virtual override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: owner query for nonexistent token"); return owner; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function totalSupply() external view override returns(uint256){return _totalSupply;} function tokenURI(uint256 tokenId) external view override returns (string memory) { ++tokenId; string memory link = uriLink; string memory uri = concat(link, tokenId.toString()); uri = concat(uri, ".json"); return uri; } function mints(address user) external view returns(uint256) { return _mints[user]; } //Moderator Functions====================================================================================================================================================== function changeManager(address manager) external { require(msg.sender == _manager); _manager = manager; } function changeManager1(address manager) external { require(msg.sender == _manager1); _manager1 = manager; } function changeURIlink(string calldata newUri) manager external { require(msg.sender == _manager); uriLink = newUri; } function adminMint(address to) manager external { require(msg.sender == _manager); _mint(to); } function changeTotalSupply(uint256 value) external manager { _totalSupply = value; } function changeName(string calldata name) external manager { _name = name; } function changeSymbol(string calldata symbol) external manager { _symbol = symbol; } //User Functions====================================================================================================================================================== function approve(address to, uint256 tokenId) external override { address owner = ERC721.ownerOf(tokenId); require(to != owner, "ERC721: approval to current owner"); require(msg.sender == owner || isApprovedForAll(owner, msg.sender), "ERC721: approve caller is not owner nor approved for all" ); _approve(to, tokenId); } function getApproved(uint256 tokenId) public view virtual override returns (address) { require(_exists(tokenId), "ERC721: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } function setApprovalForAll(address operator, bool approved) public virtual override { require(operator != msg.sender, "ERC721: approve to caller"); _operatorApprovals[msg.sender][operator] = approved; emit ApprovalForAll(msg.sender, operator, approved); } function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { return _operatorApprovals[owner][operator]; } function transferFrom(address from, address to, uint256 tokenId) external override { //solhint-disable-next-line max-line-length require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } function safeTransferFrom(address from, address to, uint256 tokenId) external override { require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, ""), "ERC721: transfer to non ERC721Receiver implementer"); } function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) external override { require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } function mint() external { uint256 balance = TRAF.balanceOf(msg.sender, 0); if(balance > _mints[msg.sender]) {balance = _mints[msg.sender];} for(uint256 t=0; t < balance; ++t) { uint256 tokenId = _claimed++; _balances[msg.sender] += 1; _owners[tokenId] = msg.sender; emit Transfer(address(0), msg.sender, tokenId); } _mints[msg.sender] = 0; } //Internal Functions====================================================================================================================================================== function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual { _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); } function _exists(uint256 tokenId) internal view returns (bool) { return _owners[tokenId] != address(0); } function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) { require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = _owners[tokenId]; require(spender == owner || _tokenApprovals[tokenId] == spender || isApprovedForAll(owner, spender), "ERC721: Not approved or owner"); return true; } function _mint(address to) internal { uint256 tokenId = _claimed++; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); } function concat(string memory _base, string memory _value) pure internal returns (string memory) { bytes memory _baseBytes = bytes(_base); bytes memory _valueBytes = bytes(_value); string memory _tmpValue = new string(_baseBytes.length + _valueBytes.length); bytes memory _newValue = bytes(_tmpValue); uint i; uint j; for(i=0;i<_baseBytes.length;i++) { _newValue[j++] = _baseBytes[i]; } for(i=0;i<_valueBytes.length;i++) { _newValue[j++] = _valueBytes[i]; } return string(_newValue); } function _transfer(address from, address to, uint256 tokenId) internal virtual { require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); require(to != address(0), "ERC721: transfer to the zero address"); // Clear approvals from the previous owner _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); } function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ERC721.ownerOf(tokenId), to, tokenId); } function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data) private returns (bool) { if (to.isContract()) { try IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data) returns (bytes4 retval) { return retval == IERC721Receiver(to).onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); } else { // solhint-disable-next-line no-inline-assembly assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"TRAFcontract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":false,"internalType":"bool","name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"adminMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"manager","type":"address"}],"name":"changeManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"manager","type":"address"}],"name":"changeManager1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"changeName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"symbol","type":"string"}],"name":"changeSymbol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"changeTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newUri","type":"string"}],"name":"changeURIlink","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"mints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"uint256[]","name":"claims","type":"uint256[]"}],"name":"setMints","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405260405180606001604052806037815260200162003ccd603791396004908051906020019062000035929190620001ba565b5061014d6005556040518060400160405280600781526020017f47726176697479000000000000000000000000000000000000000000000000008152506006908051906020019062000089929190620001ba565b503480156200009757600080fd5b5060405162003d0438038062003d048339818101604052810190620000bd9190620002ff565b8260069080519060200190620000d5929190620001ba565b508160079080519060200190620000ee929190620001ba565b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200056b565b828054620001c89062000462565b90600052602060002090601f016020900481019282620001ec576000855562000238565b82601f106200020757805160ff191683800117855562000238565b8280016001018555821562000238579182015b82811115620002375782518255916020019190600101906200021a565b5b5090506200024791906200024b565b5090565b5b80821115620002665760008160009055506001016200024c565b5090565b6000620002816200027b84620003c2565b62000399565b905082815260208101848484011115620002a0576200029f62000531565b5b620002ad8482856200042c565b509392505050565b600081519050620002c68162000551565b92915050565b600082601f830112620002e457620002e36200052c565b5b8151620002f68482602086016200026a565b91505092915050565b6000806000606084860312156200031b576200031a6200053b565b5b600084015167ffffffffffffffff8111156200033c576200033b62000536565b5b6200034a86828701620002cc565b935050602084015167ffffffffffffffff8111156200036e576200036d62000536565b5b6200037c86828701620002cc565b92505060406200038f86828701620002b5565b9150509250925092565b6000620003a5620003b8565b9050620003b3828262000498565b919050565b6000604051905090565b600067ffffffffffffffff821115620003e057620003df620004fd565b5b620003eb8262000540565b9050602081019050919050565b600062000405826200040c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b838110156200044c5780820151818401526020810190506200042f565b838111156200045c576000848401525b50505050565b600060028204905060018216806200047b57607f821691505b60208210811415620004925762000491620004ce565b5b50919050565b620004a38262000540565b810181811067ffffffffffffffff82111715620004c557620004c4620004fd565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200055c81620003f8565b81146200056857600080fd5b50565b613752806200057b6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80636f95f94e116100de578063a22cb46511610097578063b88d4fde11610071578063b88d4fde1461041e578063c87b56dd1461043a578063de0385931461046a578063e985e9c51461048657610173565b8063a22cb465146103ca578063a3895fff146103e6578063a3fbbaae1461040257610173565b80636f95f94e1461030a57806370a082311461032657806372770987146103565780638da5cb5b1461037257806395d89b41146103905780639769dc0e146103ae57610173565b806323b872dd1161013057806323b872dd1461023a57806342842e0e1461025657806352e97326146102725780635353a2d81461028e5780635660f851146102aa5780636352211e146102da57610173565b806301ffc9a71461017857806306fdde03146101a8578063081812fc146101c6578063095ea7b3146101f65780631249c58b1461021257806318160ddd1461021c575b600080fd5b610192600480360381019061018d919061293d565b6104b6565b60405161019f9190612d20565b60405180910390f35b6101b0610598565b6040516101bd9190612d3b565b60405180910390f35b6101e060048036038101906101db91906129e4565b61062a565b6040516101ed9190612c90565b60405180910390f35b610210600480360381019061020b9190612885565b6106af565b005b61021a6107b9565b005b610224610a79565b6040516102319190612edd565b60405180910390f35b610254600480360381019061024f919061276f565b610a83565b005b610270600480360381019061026b919061276f565b610adc565b005b61028c600480360381019061028791906129e4565b610b8f565b005b6102a860048036038101906102a39190612997565b610c4b565b005b6102c460048036038101906102bf9190612702565b610d13565b6040516102d19190612edd565b60405180910390f35b6102f460048036038101906102ef91906129e4565b610d5c565b6040516103019190612c90565b60405180910390f35b610324600480360381019061031f91906128c5565b610e0e565b005b610340600480360381019061033b9190612702565b610f60565b60405161034d9190612edd565b60405180910390f35b610370600480360381019061036b9190612997565b611018565b005b61037a61113a565b6040516103879190612c90565b60405180910390f35b610398611164565b6040516103a59190612d3b565b60405180910390f35b6103c860048036038101906103c39190612702565b6111f6565b005b6103e460048036038101906103df9190612845565b61130e565b005b61040060048036038101906103fb9190612997565b61147a565b005b61041c60048036038101906104179190612702565b611542565b005b610438600480360381019061043391906127c2565b6115e0565b005b610454600480360381019061044f91906129e4565b61163b565b6040516104619190612d3b565b60405180910390f35b610484600480360381019061047f9190612702565b611739565b005b6104a0600480360381019061049b919061272f565b6117d7565b6040516104ad9190612d20565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061058157507f43481e42000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061059157506105908261186b565b5b9050919050565b6060600680546105a790613161565b80601f01602080910402602001604051908101604052809291908181526020018280546105d390613161565b80156106205780601f106105f557610100808354040283529160200191610620565b820191906000526020600020905b81548152906001019060200180831161060357829003601f168201915b5050505050905090565b6000610635826118d5565b610674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066b90612e3d565b60405180910390fd5b600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106ba82610d5c565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072290612e7d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061076b575061076a81336117d7565b5b6107aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a190612ddd565b60405180910390fd5b6107b48383611941565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e3360006040518363ffffffff1660e01b8152600401610817929190612cf7565b60206040518083038186803b15801561082f57600080fd5b505afa158015610843573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108679190612a11565b9050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156108f357600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60005b81811015610a3057600060086000815480929190610913906131c4565b9190505590506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109699190612fde565b92505081905550336009600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550803373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45080610a29906131c4565b90506108f6565b506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600554905090565b610a8d33826119fa565b610acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac390612ebd565b60405180910390fd5b610ad7838383611b6f565b505050565b610ae633826119fa565b610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c90612ebd565b60405180910390fd5b610b30838383611b6f565b610b4b83838360405180602001604052806000815250611dc0565b610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8190612d5d565b60405180910390fd5b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610c385750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c4157600080fd5b8060058190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610cf45750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610cfd57600080fd5b818160069190610d0e9291906123df565b505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfc90612e1d565b60405180910390fd5b80915050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610eb75750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610ec057600080fd5b60008151905060005b81811015610f5a57828181518110610ee457610ee36132cb565b5b602002602001015160036000868481518110610f0357610f026132cb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080610f53906131c4565b9050610ec9565b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc890612dfd565b60405180910390fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806110c15750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6110ca57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461112457600080fd5b8181600491906111359291906123df565b505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606007805461117390613161565b80601f016020809104026020016040519081016040528092919081815260200182805461119f90613161565b80156111ec5780601f106111c1576101008083540402835291602001916111ec565b820191906000526020600020905b8154815290600101906020018083116111cf57829003601f168201915b5050505050905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061129f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6112a857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461130257600080fd5b61130b81611f50565b50565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490612d9d565b60405180910390fd5b80600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161146e9190612d20565b60405180910390a35050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115235750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61152c57600080fd5b81816007919061153d9291906123df565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461159c57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6115ea33836119fa565b611629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162090612ebd565b60405180910390fd5b61163584848484612074565b50505050565b606081611647906131c4565b915060006004805461165890613161565b80601f016020809104026020016040519081016040528092919081815260200182805461168490613161565b80156116d15780601f106116a6576101008083540402835291602001916116d1565b820191906000526020600020905b8154815290600101906020018083116116b457829003601f168201915b5050505050905060006116ec826116e7866120d0565b612231565b905061172d816040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250612231565b90508092505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461179357600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b81600c600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166119b483610d5c565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611a05826118d5565b611a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3b90612dbd565b60405180910390fd5b60006009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611b1457508373ffffffffffffffffffffffffffffffffffffffff16600c600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80611b255750611b2481856117d7565b5b611b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5b90612e9d565b60405180910390fd5b600191505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611b8f82610d5c565b73ffffffffffffffffffffffffffffffffffffffff1614611be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdc90612e5d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4c90612d7d565b60405180910390fd5b611c60600082611941565b6001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cb09190613065565b925050819055506001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d079190612fde565b92505081905550816009600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000611de18473ffffffffffffffffffffffffffffffffffffffff166123cc565b15611f43578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b8152600401611e259493929190612cab565b602060405180830381600087803b158015611e3f57600080fd5b505af1925050508015611e7057506040513d601f19601f82011682018060405250810190611e6d919061296a565b60015b611ef3573d8060008114611ea0576040519150601f19603f3d011682016040523d82523d6000602084013e611ea5565b606091505b50600081511415611eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee290612d5d565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611f48565b600190505b949350505050565b600060086000815480929190611f65906131c4565b9190505590506001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fbb9190612fde565b92505081905550816009600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61207f848484611b6f565b61208b84848484611dc0565b6120ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c190612d5d565b60405180910390fd5b50505050565b60606000821415612118576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061222c565b600082905060005b6000821461214a578080612133906131c4565b915050600a826121439190613034565b9150612120565b60008167ffffffffffffffff811115612166576121656132fa565b5b6040519080825280601f01601f1916602001820160405280156121985781602001600182028036833780820191505090505b5090505b60008514612225576001826121b19190613065565b9150600a856121c0919061320d565b60306121cc9190612fde565b60f81b8183815181106121e2576121e16132cb565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561221e9190613034565b945061219c565b8093505050505b919050565b60606000839050600083905060008151835161224d9190612fde565b67ffffffffffffffff811115612266576122656132fa565b5b6040519080825280601f01601f1916602001820160405280156122985781602001600182028036833780820191505090505b5090506000819050600080600091505b8551821015612330578582815181106122c4576122c36132cb565b5b602001015160f81c60f81b8382806122db906131c4565b9350815181106122ee576122ed6132cb565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180612328906131c4565b9250506122a8565b600091505b84518210156123bd57848281518110612351576123506132cb565b5b602001015160f81c60f81b838280612368906131c4565b93508151811061237b5761237a6132cb565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535081806123b5906131c4565b925050612335565b82965050505050505092915050565b600080823b905060008111915050919050565b8280546123eb90613161565b90600052602060002090601f01602090048101928261240d5760008555612454565b82601f1061242657803560ff1916838001178555612454565b82800160010185558215612454579182015b82811115612453578235825591602001919060010190612438565b5b5090506124619190612465565b5090565b5b8082111561247e576000816000905550600101612466565b5090565b600061249561249084612f1d565b612ef8565b905080838252602082019050828560208602820111156124b8576124b7613333565b5b60005b858110156124e857816124ce88826125a4565b8452602084019350602083019250506001810190506124bb565b5050509392505050565b600061250561250084612f49565b612ef8565b9050808382526020820190508285602086028201111561252857612527613333565b5b60005b85811015612558578161253e88826126d8565b84526020840193506020830192505060018101905061252b565b5050509392505050565b600061257561257084612f75565b612ef8565b90508281526020810184848401111561259157612590613338565b5b61259c84828561311f565b509392505050565b6000813590506125b3816136c0565b92915050565b600082601f8301126125ce576125cd61332e565b5b81356125de848260208601612482565b91505092915050565b600082601f8301126125fc576125fb61332e565b5b813561260c8482602086016124f2565b91505092915050565b600081359050612624816136d7565b92915050565b600081359050612639816136ee565b92915050565b60008151905061264e816136ee565b92915050565b600082601f8301126126695761266861332e565b5b8135612679848260208601612562565b91505092915050565b60008083601f8401126126985761269761332e565b5b8235905067ffffffffffffffff8111156126b5576126b4613329565b5b6020830191508360018202830111156126d1576126d0613333565b5b9250929050565b6000813590506126e781613705565b92915050565b6000815190506126fc81613705565b92915050565b60006020828403121561271857612717613342565b5b6000612726848285016125a4565b91505092915050565b6000806040838503121561274657612745613342565b5b6000612754858286016125a4565b9250506020612765858286016125a4565b9150509250929050565b60008060006060848603121561278857612787613342565b5b6000612796868287016125a4565b93505060206127a7868287016125a4565b92505060406127b8868287016126d8565b9150509250925092565b600080600080608085870312156127dc576127db613342565b5b60006127ea878288016125a4565b94505060206127fb878288016125a4565b935050604061280c878288016126d8565b925050606085013567ffffffffffffffff81111561282d5761282c61333d565b5b61283987828801612654565b91505092959194509250565b6000806040838503121561285c5761285b613342565b5b600061286a858286016125a4565b925050602061287b85828601612615565b9150509250929050565b6000806040838503121561289c5761289b613342565b5b60006128aa858286016125a4565b92505060206128bb858286016126d8565b9150509250929050565b600080604083850312156128dc576128db613342565b5b600083013567ffffffffffffffff8111156128fa576128f961333d565b5b612906858286016125b9565b925050602083013567ffffffffffffffff8111156129275761292661333d565b5b612933858286016125e7565b9150509250929050565b60006020828403121561295357612952613342565b5b60006129618482850161262a565b91505092915050565b6000602082840312156129805761297f613342565b5b600061298e8482850161263f565b91505092915050565b600080602083850312156129ae576129ad613342565b5b600083013567ffffffffffffffff8111156129cc576129cb61333d565b5b6129d885828601612682565b92509250509250929050565b6000602082840312156129fa576129f9613342565b5b6000612a08848285016126d8565b91505092915050565b600060208284031215612a2757612a26613342565b5b6000612a35848285016126ed565b91505092915050565b612a4781613099565b82525050565b612a56816130ab565b82525050565b6000612a6782612fa6565b612a718185612fbc565b9350612a8181856020860161312e565b612a8a81613347565b840191505092915050565b612a9e8161310d565b82525050565b6000612aaf82612fb1565b612ab98185612fcd565b9350612ac981856020860161312e565b612ad281613347565b840191505092915050565b6000612aea603283612fcd565b9150612af582613358565b604082019050919050565b6000612b0d602483612fcd565b9150612b18826133a7565b604082019050919050565b6000612b30601983612fcd565b9150612b3b826133f6565b602082019050919050565b6000612b53602c83612fcd565b9150612b5e8261341f565b604082019050919050565b6000612b76603883612fcd565b9150612b818261346e565b604082019050919050565b6000612b99602a83612fcd565b9150612ba4826134bd565b604082019050919050565b6000612bbc602983612fcd565b9150612bc78261350c565b604082019050919050565b6000612bdf602c83612fcd565b9150612bea8261355b565b604082019050919050565b6000612c02602983612fcd565b9150612c0d826135aa565b604082019050919050565b6000612c25602183612fcd565b9150612c30826135f9565b604082019050919050565b6000612c48601d83612fcd565b9150612c5382613648565b602082019050919050565b6000612c6b603183612fcd565b9150612c7682613671565b604082019050919050565b612c8a81613103565b82525050565b6000602082019050612ca56000830184612a3e565b92915050565b6000608082019050612cc06000830187612a3e565b612ccd6020830186612a3e565b612cda6040830185612c81565b8181036060830152612cec8184612a5c565b905095945050505050565b6000604082019050612d0c6000830185612a3e565b612d196020830184612a95565b9392505050565b6000602082019050612d356000830184612a4d565b92915050565b60006020820190508181036000830152612d558184612aa4565b905092915050565b60006020820190508181036000830152612d7681612add565b9050919050565b60006020820190508181036000830152612d9681612b00565b9050919050565b60006020820190508181036000830152612db681612b23565b9050919050565b60006020820190508181036000830152612dd681612b46565b9050919050565b60006020820190508181036000830152612df681612b69565b9050919050565b60006020820190508181036000830152612e1681612b8c565b9050919050565b60006020820190508181036000830152612e3681612baf565b9050919050565b60006020820190508181036000830152612e5681612bd2565b9050919050565b60006020820190508181036000830152612e7681612bf5565b9050919050565b60006020820190508181036000830152612e9681612c18565b9050919050565b60006020820190508181036000830152612eb681612c3b565b9050919050565b60006020820190508181036000830152612ed681612c5e565b9050919050565b6000602082019050612ef26000830184612c81565b92915050565b6000612f02612f13565b9050612f0e8282613193565b919050565b6000604051905090565b600067ffffffffffffffff821115612f3857612f376132fa565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612f6457612f636132fa565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612f9057612f8f6132fa565b5b612f9982613347565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612fe982613103565b9150612ff483613103565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130295761302861323e565b5b828201905092915050565b600061303f82613103565b915061304a83613103565b92508261305a5761305961326d565b5b828204905092915050565b600061307082613103565b915061307b83613103565b92508282101561308e5761308d61323e565b5b828203905092915050565b60006130a4826130e3565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061311882613103565b9050919050565b82818337600083830152505050565b60005b8381101561314c578082015181840152602081019050613131565b8381111561315b576000848401525b50505050565b6000600282049050600182168061317957607f821691505b6020821081141561318d5761318c61329c565b5b50919050565b61319c82613347565b810181811067ffffffffffffffff821117156131bb576131ba6132fa565b5b80604052505050565b60006131cf82613103565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132025761320161323e565b5b600182019050919050565b600061321882613103565b915061322383613103565b9250826132335761323261326d565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a204e6f7420617070726f766564206f72206f776e6572000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6136c981613099565b81146136d457600080fd5b50565b6136e0816130ab565b81146136eb57600080fd5b50565b6136f7816130b7565b811461370257600080fd5b50565b61370e81613103565b811461371957600080fd5b5056fea2646970667358221220acd6d0461aecd8e32ae096e3a34018c242eaee768f6a71a25fdc1ae12d923b4c64736f6c6343000807003368747470733a2f2f74686572656461706566616d696c792e636f6d2f477261766974792f646174612f47726176697479536e65616b6572000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000a803144e27aef2ac95e7ab49214bd2f802c883dd0000000000000000000000000000000000000000000000000000000000000007477261766974790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034756540000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101735760003560e01c80636f95f94e116100de578063a22cb46511610097578063b88d4fde11610071578063b88d4fde1461041e578063c87b56dd1461043a578063de0385931461046a578063e985e9c51461048657610173565b8063a22cb465146103ca578063a3895fff146103e6578063a3fbbaae1461040257610173565b80636f95f94e1461030a57806370a082311461032657806372770987146103565780638da5cb5b1461037257806395d89b41146103905780639769dc0e146103ae57610173565b806323b872dd1161013057806323b872dd1461023a57806342842e0e1461025657806352e97326146102725780635353a2d81461028e5780635660f851146102aa5780636352211e146102da57610173565b806301ffc9a71461017857806306fdde03146101a8578063081812fc146101c6578063095ea7b3146101f65780631249c58b1461021257806318160ddd1461021c575b600080fd5b610192600480360381019061018d919061293d565b6104b6565b60405161019f9190612d20565b60405180910390f35b6101b0610598565b6040516101bd9190612d3b565b60405180910390f35b6101e060048036038101906101db91906129e4565b61062a565b6040516101ed9190612c90565b60405180910390f35b610210600480360381019061020b9190612885565b6106af565b005b61021a6107b9565b005b610224610a79565b6040516102319190612edd565b60405180910390f35b610254600480360381019061024f919061276f565b610a83565b005b610270600480360381019061026b919061276f565b610adc565b005b61028c600480360381019061028791906129e4565b610b8f565b005b6102a860048036038101906102a39190612997565b610c4b565b005b6102c460048036038101906102bf9190612702565b610d13565b6040516102d19190612edd565b60405180910390f35b6102f460048036038101906102ef91906129e4565b610d5c565b6040516103019190612c90565b60405180910390f35b610324600480360381019061031f91906128c5565b610e0e565b005b610340600480360381019061033b9190612702565b610f60565b60405161034d9190612edd565b60405180910390f35b610370600480360381019061036b9190612997565b611018565b005b61037a61113a565b6040516103879190612c90565b60405180910390f35b610398611164565b6040516103a59190612d3b565b60405180910390f35b6103c860048036038101906103c39190612702565b6111f6565b005b6103e460048036038101906103df9190612845565b61130e565b005b61040060048036038101906103fb9190612997565b61147a565b005b61041c60048036038101906104179190612702565b611542565b005b610438600480360381019061043391906127c2565b6115e0565b005b610454600480360381019061044f91906129e4565b61163b565b6040516104619190612d3b565b60405180910390f35b610484600480360381019061047f9190612702565b611739565b005b6104a0600480360381019061049b919061272f565b6117d7565b6040516104ad9190612d20565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061058157507f43481e42000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061059157506105908261186b565b5b9050919050565b6060600680546105a790613161565b80601f01602080910402602001604051908101604052809291908181526020018280546105d390613161565b80156106205780601f106105f557610100808354040283529160200191610620565b820191906000526020600020905b81548152906001019060200180831161060357829003601f168201915b5050505050905090565b6000610635826118d5565b610674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066b90612e3d565b60405180910390fd5b600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106ba82610d5c565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561072b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072290612e7d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061076b575061076a81336117d7565b5b6107aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a190612ddd565b60405180910390fd5b6107b48383611941565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662fdd58e3360006040518363ffffffff1660e01b8152600401610817929190612cf7565b60206040518083038186803b15801561082f57600080fd5b505afa158015610843573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108679190612a11565b9050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156108f357600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60005b81811015610a3057600060086000815480929190610913906131c4565b9190505590506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109699190612fde565b92505081905550336009600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550803373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45080610a29906131c4565b90506108f6565b506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000600554905090565b610a8d33826119fa565b610acc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac390612ebd565b60405180910390fd5b610ad7838383611b6f565b505050565b610ae633826119fa565b610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c90612ebd565b60405180910390fd5b610b30838383611b6f565b610b4b83838360405180602001604052806000815250611dc0565b610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8190612d5d565b60405180910390fd5b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610c385750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c4157600080fd5b8060058190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610cf45750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610cfd57600080fd5b818160069190610d0e9291906123df565b505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfc90612e1d565b60405180910390fd5b80915050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610eb75750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610ec057600080fd5b60008151905060005b81811015610f5a57828181518110610ee457610ee36132cb565b5b602002602001015160036000868481518110610f0357610f026132cb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080610f53906131c4565b9050610ec9565b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc890612dfd565b60405180910390fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806110c15750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6110ca57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461112457600080fd5b8181600491906111359291906123df565b505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606007805461117390613161565b80601f016020809104026020016040519081016040528092919081815260200182805461119f90613161565b80156111ec5780601f106111c1576101008083540402835291602001916111ec565b820191906000526020600020905b8154815290600101906020018083116111cf57829003601f168201915b5050505050905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061129f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6112a857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461130257600080fd5b61130b81611f50565b50565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490612d9d565b60405180910390fd5b80600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161146e9190612d20565b60405180910390a35050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806115235750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61152c57600080fd5b81816007919061153d9291906123df565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461159c57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6115ea33836119fa565b611629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162090612ebd565b60405180910390fd5b61163584848484612074565b50505050565b606081611647906131c4565b915060006004805461165890613161565b80601f016020809104026020016040519081016040528092919081815260200182805461168490613161565b80156116d15780601f106116a6576101008083540402835291602001916116d1565b820191906000526020600020905b8154815290600101906020018083116116b457829003601f168201915b5050505050905060006116ec826116e7866120d0565b612231565b905061172d816040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250612231565b90508092505050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461179357600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b81600c600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166119b483610d5c565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611a05826118d5565b611a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3b90612dbd565b60405180910390fd5b60006009600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611b1457508373ffffffffffffffffffffffffffffffffffffffff16600c600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80611b255750611b2481856117d7565b5b611b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5b90612e9d565b60405180910390fd5b600191505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611b8f82610d5c565b73ffffffffffffffffffffffffffffffffffffffff1614611be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdc90612e5d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4c90612d7d565b60405180910390fd5b611c60600082611941565b6001600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cb09190613065565b925050819055506001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d079190612fde565b92505081905550816009600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000611de18473ffffffffffffffffffffffffffffffffffffffff166123cc565b15611f43578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b8152600401611e259493929190612cab565b602060405180830381600087803b158015611e3f57600080fd5b505af1925050508015611e7057506040513d601f19601f82011682018060405250810190611e6d919061296a565b60015b611ef3573d8060008114611ea0576040519150601f19603f3d011682016040523d82523d6000602084013e611ea5565b606091505b50600081511415611eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee290612d5d565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611f48565b600190505b949350505050565b600060086000815480929190611f65906131c4565b9190505590506001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611fbb9190612fde565b92505081905550816009600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61207f848484611b6f565b61208b84848484611dc0565b6120ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c190612d5d565b60405180910390fd5b50505050565b60606000821415612118576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061222c565b600082905060005b6000821461214a578080612133906131c4565b915050600a826121439190613034565b9150612120565b60008167ffffffffffffffff811115612166576121656132fa565b5b6040519080825280601f01601f1916602001820160405280156121985781602001600182028036833780820191505090505b5090505b60008514612225576001826121b19190613065565b9150600a856121c0919061320d565b60306121cc9190612fde565b60f81b8183815181106121e2576121e16132cb565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561221e9190613034565b945061219c565b8093505050505b919050565b60606000839050600083905060008151835161224d9190612fde565b67ffffffffffffffff811115612266576122656132fa565b5b6040519080825280601f01601f1916602001820160405280156122985781602001600182028036833780820191505090505b5090506000819050600080600091505b8551821015612330578582815181106122c4576122c36132cb565b5b602001015160f81c60f81b8382806122db906131c4565b9350815181106122ee576122ed6132cb565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180612328906131c4565b9250506122a8565b600091505b84518210156123bd57848281518110612351576123506132cb565b5b602001015160f81c60f81b838280612368906131c4565b93508151811061237b5761237a6132cb565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535081806123b5906131c4565b925050612335565b82965050505050505092915050565b600080823b905060008111915050919050565b8280546123eb90613161565b90600052602060002090601f01602090048101928261240d5760008555612454565b82601f1061242657803560ff1916838001178555612454565b82800160010185558215612454579182015b82811115612453578235825591602001919060010190612438565b5b5090506124619190612465565b5090565b5b8082111561247e576000816000905550600101612466565b5090565b600061249561249084612f1d565b612ef8565b905080838252602082019050828560208602820111156124b8576124b7613333565b5b60005b858110156124e857816124ce88826125a4565b8452602084019350602083019250506001810190506124bb565b5050509392505050565b600061250561250084612f49565b612ef8565b9050808382526020820190508285602086028201111561252857612527613333565b5b60005b85811015612558578161253e88826126d8565b84526020840193506020830192505060018101905061252b565b5050509392505050565b600061257561257084612f75565b612ef8565b90508281526020810184848401111561259157612590613338565b5b61259c84828561311f565b509392505050565b6000813590506125b3816136c0565b92915050565b600082601f8301126125ce576125cd61332e565b5b81356125de848260208601612482565b91505092915050565b600082601f8301126125fc576125fb61332e565b5b813561260c8482602086016124f2565b91505092915050565b600081359050612624816136d7565b92915050565b600081359050612639816136ee565b92915050565b60008151905061264e816136ee565b92915050565b600082601f8301126126695761266861332e565b5b8135612679848260208601612562565b91505092915050565b60008083601f8401126126985761269761332e565b5b8235905067ffffffffffffffff8111156126b5576126b4613329565b5b6020830191508360018202830111156126d1576126d0613333565b5b9250929050565b6000813590506126e781613705565b92915050565b6000815190506126fc81613705565b92915050565b60006020828403121561271857612717613342565b5b6000612726848285016125a4565b91505092915050565b6000806040838503121561274657612745613342565b5b6000612754858286016125a4565b9250506020612765858286016125a4565b9150509250929050565b60008060006060848603121561278857612787613342565b5b6000612796868287016125a4565b93505060206127a7868287016125a4565b92505060406127b8868287016126d8565b9150509250925092565b600080600080608085870312156127dc576127db613342565b5b60006127ea878288016125a4565b94505060206127fb878288016125a4565b935050604061280c878288016126d8565b925050606085013567ffffffffffffffff81111561282d5761282c61333d565b5b61283987828801612654565b91505092959194509250565b6000806040838503121561285c5761285b613342565b5b600061286a858286016125a4565b925050602061287b85828601612615565b9150509250929050565b6000806040838503121561289c5761289b613342565b5b60006128aa858286016125a4565b92505060206128bb858286016126d8565b9150509250929050565b600080604083850312156128dc576128db613342565b5b600083013567ffffffffffffffff8111156128fa576128f961333d565b5b612906858286016125b9565b925050602083013567ffffffffffffffff8111156129275761292661333d565b5b612933858286016125e7565b9150509250929050565b60006020828403121561295357612952613342565b5b60006129618482850161262a565b91505092915050565b6000602082840312156129805761297f613342565b5b600061298e8482850161263f565b91505092915050565b600080602083850312156129ae576129ad613342565b5b600083013567ffffffffffffffff8111156129cc576129cb61333d565b5b6129d885828601612682565b92509250509250929050565b6000602082840312156129fa576129f9613342565b5b6000612a08848285016126d8565b91505092915050565b600060208284031215612a2757612a26613342565b5b6000612a35848285016126ed565b91505092915050565b612a4781613099565b82525050565b612a56816130ab565b82525050565b6000612a6782612fa6565b612a718185612fbc565b9350612a8181856020860161312e565b612a8a81613347565b840191505092915050565b612a9e8161310d565b82525050565b6000612aaf82612fb1565b612ab98185612fcd565b9350612ac981856020860161312e565b612ad281613347565b840191505092915050565b6000612aea603283612fcd565b9150612af582613358565b604082019050919050565b6000612b0d602483612fcd565b9150612b18826133a7565b604082019050919050565b6000612b30601983612fcd565b9150612b3b826133f6565b602082019050919050565b6000612b53602c83612fcd565b9150612b5e8261341f565b604082019050919050565b6000612b76603883612fcd565b9150612b818261346e565b604082019050919050565b6000612b99602a83612fcd565b9150612ba4826134bd565b604082019050919050565b6000612bbc602983612fcd565b9150612bc78261350c565b604082019050919050565b6000612bdf602c83612fcd565b9150612bea8261355b565b604082019050919050565b6000612c02602983612fcd565b9150612c0d826135aa565b604082019050919050565b6000612c25602183612fcd565b9150612c30826135f9565b604082019050919050565b6000612c48601d83612fcd565b9150612c5382613648565b602082019050919050565b6000612c6b603183612fcd565b9150612c7682613671565b604082019050919050565b612c8a81613103565b82525050565b6000602082019050612ca56000830184612a3e565b92915050565b6000608082019050612cc06000830187612a3e565b612ccd6020830186612a3e565b612cda6040830185612c81565b8181036060830152612cec8184612a5c565b905095945050505050565b6000604082019050612d0c6000830185612a3e565b612d196020830184612a95565b9392505050565b6000602082019050612d356000830184612a4d565b92915050565b60006020820190508181036000830152612d558184612aa4565b905092915050565b60006020820190508181036000830152612d7681612add565b9050919050565b60006020820190508181036000830152612d9681612b00565b9050919050565b60006020820190508181036000830152612db681612b23565b9050919050565b60006020820190508181036000830152612dd681612b46565b9050919050565b60006020820190508181036000830152612df681612b69565b9050919050565b60006020820190508181036000830152612e1681612b8c565b9050919050565b60006020820190508181036000830152612e3681612baf565b9050919050565b60006020820190508181036000830152612e5681612bd2565b9050919050565b60006020820190508181036000830152612e7681612bf5565b9050919050565b60006020820190508181036000830152612e9681612c18565b9050919050565b60006020820190508181036000830152612eb681612c3b565b9050919050565b60006020820190508181036000830152612ed681612c5e565b9050919050565b6000602082019050612ef26000830184612c81565b92915050565b6000612f02612f13565b9050612f0e8282613193565b919050565b6000604051905090565b600067ffffffffffffffff821115612f3857612f376132fa565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612f6457612f636132fa565b5b602082029050602081019050919050565b600067ffffffffffffffff821115612f9057612f8f6132fa565b5b612f9982613347565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612fe982613103565b9150612ff483613103565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130295761302861323e565b5b828201905092915050565b600061303f82613103565b915061304a83613103565b92508261305a5761305961326d565b5b828204905092915050565b600061307082613103565b915061307b83613103565b92508282101561308e5761308d61323e565b5b828203905092915050565b60006130a4826130e3565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061311882613103565b9050919050565b82818337600083830152505050565b60005b8381101561314c578082015181840152602081019050613131565b8381111561315b576000848401525b50505050565b6000600282049050600182168061317957607f821691505b6020821081141561318d5761318c61329c565b5b50919050565b61319c82613347565b810181811067ffffffffffffffff821117156131bb576131ba6132fa565b5b80604052505050565b60006131cf82613103565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132025761320161323e565b5b600182019050919050565b600061321882613103565b915061322383613103565b9250826132335761323261326d565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a204e6f7420617070726f766564206f72206f776e6572000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6136c981613099565b81146136d457600080fd5b50565b6136e0816130ab565b81146136eb57600080fd5b50565b6136f7816130b7565b811461370257600080fd5b50565b61370e81613103565b811461371957600080fd5b5056fea2646970667358221220acd6d0461aecd8e32ae096e3a34018c242eaee768f6a71a25fdc1ae12d923b4c64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000a803144e27aef2ac95e7ab49214bd2f802c883dd0000000000000000000000000000000000000000000000000000000000000007477261766974790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034756540000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): Gravity
Arg [1] : symbol_ (string): GVT
Arg [2] : TRAFcontract (address): 0xa803144e27aEf2Ac95E7Ab49214BD2f802C883dD
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 000000000000000000000000a803144e27aef2ac95e7ab49214bd2f802c883dd
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [4] : 4772617669747900000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 4756540000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
13032:10328:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14717:292;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15480:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17828:221;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17433:387;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19493:478;;;:::i;:::-;;15704:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18526:297;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18831:365;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16945:98;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17051:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16102:98;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15233:239;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14215:229;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15017:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16670:141;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14622:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15588:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16819:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18057:289;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17149:98;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16395:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19204:277;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15796:294;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16531:131;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18354:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14717:292;14819:4;14858:25;14843:40;;;:11;:40;;;;:105;;;;14915:33;14900:48;;;:11;:48;;;;14843:105;:158;;;;14965:36;14989:11;14965:23;:36::i;:::-;14843:158;14836:165;;14717:292;;;:::o;15480:100::-;15534:13;15567:5;15560:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15480:100;:::o;17828:221::-;17904:7;17932:16;17940:7;17932;:16::i;:::-;17924:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;18017:15;:24;18033:7;18017:24;;;;;;;;;;;;;;;;;;;;;18010:31;;17828:221;;;:::o;17433:387::-;17508:13;17524:23;17539:7;17524:14;:23::i;:::-;17508:39;;17572:5;17566:11;;:2;:11;;;;17558:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;17650:5;17636:19;;:10;:19;;;:58;;;;17659:35;17676:5;17683:10;17659:16;:35::i;:::-;17636:58;17628:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;17791:21;17800:2;17804:7;17791:8;:21::i;:::-;17497:323;17433:387;;:::o;19493:478::-;19529:15;19547:4;;;;;;;;;;;:14;;;19562:10;19574:1;19547:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19529:47;;19602:6;:18;19609:10;19602:18;;;;;;;;;;;;;;;;19592:7;:28;19589:64;;;19633:6;:18;19640:10;19633:18;;;;;;;;;;;;;;;;19623:28;;19589:64;19669:9;19665:264;19686:7;19682:1;:11;19665:264;;;19715:15;19733:8;;:10;;;;;;;;;:::i;:::-;;;;;19715:28;;19797:1;19772:9;:21;19782:10;19772:21;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;19832:10;19813:7;:16;19821:7;19813:16;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;19909:7;19897:10;19876:41;;19893:1;19876:41;;;;;;;;;;;;19700:229;19695:3;;;;:::i;:::-;;;19665:264;;;;19962:1;19941:6;:18;19948:10;19941:18;;;;;;;;;;;;;;;:22;;;;19518:453;19493:478::o;15704:84::-;15758:7;15774:12;;15767:19;;15704:84;:::o;18526:297::-;18681:39;18700:10;18712:7;18681:18;:39::i;:::-;18673:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;18787:28;18797:4;18803:2;18807:7;18787:9;:28::i;:::-;18526:297;;;:::o;18831:365::-;18937:39;18956:10;18968:7;18937:18;:39::i;:::-;18929:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;19041:28;19051:4;19057:2;19061:7;19041:9;:28::i;:::-;19088:45;19111:4;19117:2;19121:7;19088:45;;;;;;;;;;;;:22;:45::i;:::-;19080:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;18831:365;;;:::o;16945:98::-;13893:8;;;;;;;;;;;13879:22;;:10;:22;;;:49;;;;13919:9;;;;;;;;;;;13905:23;;:10;:23;;;13879:49;13871:58;;;;;;17030:5:::1;17015:12;:20;;;;16945:98:::0;:::o;17051:90::-;13893:8;;;;;;;;;;;13879:22;;:10;:22;;;:49;;;;13919:9;;;;;;;;;;;13905:23;;:10;:23;;;13879:49;13871:58;;;;;;17129:4:::1;;17121:5;:12;;;;;;;:::i;:::-;;17051:90:::0;;:::o;16102:98::-;16153:7;16180:6;:12;16187:4;16180:12;;;;;;;;;;;;;;;;16173:19;;16102:98;;;:::o;15233:239::-;15305:7;15325:13;15341:7;:16;15349:7;15341:16;;;;;;;;;;;;;;;;;;;;;15325:32;;15393:1;15376:19;;:5;:19;;;;15368:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15459:5;15452:12;;;15233:239;;;:::o;14215:229::-;13893:8;;;;;;;;;;;13879:22;;:10;:22;;;:49;;;;13919:9;;;;;;;;;;;13905:23;;:10;:23;;;13879:49;13871:58;;;;;;14309:14:::1;14326:6;:13;14309:30;;14354:9;14350:87;14369:6;14365:1;:10;14350:87;;;14416:6;14423:1;14416:9;;;;;;;;:::i;:::-;;;;;;;;14397:6;:16;14404:5;14410:1;14404:8;;;;;;;;:::i;:::-;;;;;;;;14397:16;;;;;;;;;;;;;;;:28;;;;14377:3;;;;:::i;:::-;;;14350:87;;;;14298:146;14215:229:::0;;:::o;15017:208::-;15089:7;15134:1;15117:19;;:5;:19;;;;15109:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15201:9;:16;15211:5;15201:16;;;;;;;;;;;;;;;;15194:23;;15017:208;;;:::o;16670:141::-;13893:8;;;;;;;;;;;13879:22;;:10;:22;;;:49;;;;13919:9;;;;;;;;;;;13905:23;;:10;:23;;;13879:49;13871:58;;;;;;16767:8:::1;;;;;;;;;;;16753:22;;:10;:22;;;16745:31;;;::::0;::::1;;16797:6;;16787:7;:16;;;;;;;:::i;:::-;;16670:141:::0;;:::o;14622:83::-;14662:7;14689:8;;;;;;;;;;;14682:15;;14622:83;:::o;15588:104::-;15644:13;15677:7;15670:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15588:104;:::o;16819:118::-;13893:8;;;;;;;;;;;13879:22;;:10;:22;;;:49;;;;13919:9;;;;;;;;;;;13905:23;;:10;:23;;;13879:49;13871:58;;;;;;16900:8:::1;;;;;;;;;;;16886:22;;:10;:22;;;16878:31;;;::::0;::::1;;16920:9;16926:2;16920:5;:9::i;:::-;16819:118:::0;:::o;18057:289::-;18172:10;18160:22;;:8;:22;;;;18152:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;18268:8;18225:18;:30;18244:10;18225:30;;;;;;;;;;;;;;;:40;18256:8;18225:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;18319:8;18292:46;;18307:10;18292:46;;;18329:8;18292:46;;;;;;:::i;:::-;;;;;;;;18057:289;;:::o;17149:98::-;13893:8;;;;;;;;;;;13879:22;;:10;:22;;;:49;;;;13919:9;;;;;;;;;;;13905:23;;:10;:23;;;13879:49;13871:58;;;;;;17233:6:::1;;17223:7;:16;;;;;;;:::i;:::-;;17149:98:::0;;:::o;16395:128::-;16477:8;;;;;;;;;;;16463:22;;:10;:22;;;16455:31;;;;;;16508:7;16497:8;;:18;;;;;;;;;;;;;;;;;;16395:128;:::o;19204:277::-;19330:39;19349:10;19361:7;19330:18;:39::i;:::-;19322:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;19434:39;19448:4;19454:2;19458:7;19467:5;19434:13;:39::i;:::-;19204:277;;;;:::o;15796:294::-;15863:13;15889:9;;;;:::i;:::-;;;15909:18;15930:7;15909:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15962:17;15982:32;15989:4;15995:18;:7;:16;:18::i;:::-;15982:6;:32::i;:::-;15962:52;;16031:20;16038:3;16031:20;;;;;;;;;;;;;;;;;:6;:20::i;:::-;16025:26;;16079:3;16072:10;;;;15796:294;;;:::o;16531:131::-;16614:9;;;;;;;;;;;16600:23;;:10;:23;;;16592:32;;;;;;16647:7;16635:9;;:19;;;;;;;;;;;;;;;;;;16531:131;:::o;18354:164::-;18451:4;18475:18;:25;18494:5;18475:25;;;;;;;;;;;;;;;:35;18501:8;18475:35;;;;;;;;;;;;;;;;;;;;;;;;;18468:42;;18354:164;;;;:::o;12754:157::-;12839:4;12878:25;12863:40;;;:11;:40;;;;12856:47;;12754:157;;;:::o;20439:119::-;20496:4;20548:1;20520:30;;:7;:16;20528:7;20520:16;;;;;;;;;;;;;;;;;;;;;:30;;;;20513:37;;20439:119;;;:::o;22348:174::-;22450:2;22423:15;:24;22439:7;22423:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;22506:7;22502:2;22468:46;;22477:23;22492:7;22477:14;:23::i;:::-;22468:46;;;;;;;;;;;;22348:174;;:::o;20566:392::-;20651:4;20676:16;20684:7;20676;:16::i;:::-;20668:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20752:13;20768:7;:16;20776:7;20768:16;;;;;;;;;;;;;;;;;;;;;20752:32;;20814:5;20803:16;;:7;:16;;;:55;;;;20851:7;20823:35;;:15;:24;20839:7;20823:24;;;;;;;;;;;;;;;;;;;;;:35;;;20803:55;:91;;;;20862:32;20879:5;20886:7;20862:16;:32::i;:::-;20803:91;20795:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;20946:4;20939:11;;;20566:392;;;;:::o;21848:492::-;21973:4;21946:31;;:23;21961:7;21946:14;:23::i;:::-;:31;;;21938:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;22056:1;22042:16;;:2;:16;;;;22034:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;22164:29;22181:1;22185:7;22164:8;:29::i;:::-;22225:1;22206:9;:15;22216:4;22206:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;22254:1;22237:9;:13;22247:2;22237:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;22285:2;22266:7;:16;22274:7;22266:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;22324:7;22320:2;22305:27;;22314:4;22305:27;;;;;;;;;;;;21848:492;;;:::o;22530:827::-;22642:4;22663:15;:2;:13;;;:15::i;:::-;22659:691;;;22715:2;22699:36;;;22736:10;22748:4;22754:7;22763:5;22699:70;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;22695:600;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22960:1;22943:6;:13;:18;22939:341;;;22986:60;;;;;;;;;;:::i;:::-;;;;;;;;22939:341;23230:6;23224:13;23215:6;23211:2;23207:15;23200:38;22695:600;22830:45;;;22820:55;;;:6;:55;;;;22813:62;;;;;22659:691;23334:4;23327:11;;22530:827;;;;;;;:::o;20966:197::-;21013:15;21031:8;;:10;;;;;;;;;:::i;:::-;;;;;21013:28;;21071:1;21054:9;:13;21064:2;21054:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;21102:2;21083:7;:16;21091:7;21083:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;21147:7;21143:2;21122:33;;21139:1;21122:33;;;;;;;;;;;;21002:161;20966:197;:::o;20159:272::-;20273:28;20283:4;20289:2;20293:7;20273:9;:28::i;:::-;20320:48;20343:4;20349:2;20353:7;20362:5;20320:22;:48::i;:::-;20312:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;20159:272;;;;:::o;10890:723::-;10946:13;11176:1;11167:5;:10;11163:53;;;11194:10;;;;;;;;;;;;;;;;;;;;;11163:53;11226:12;11241:5;11226:20;;11257:14;11282:78;11297:1;11289:4;:9;11282:78;;11315:8;;;;;:::i;:::-;;;;11346:2;11338:10;;;;;:::i;:::-;;;11282:78;;;11370:19;11402:6;11392:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11370:39;;11420:154;11436:1;11427:5;:10;11420:154;;11464:1;11454:11;;;;;:::i;:::-;;;11531:2;11523:5;:10;;;;:::i;:::-;11510:2;:24;;;;:::i;:::-;11497:39;;11480:6;11487;11480:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;11560:2;11551:11;;;;;:::i;:::-;;;11420:154;;;11598:6;11584:21;;;;;10890:723;;;;:::o;21171:665::-;21253:13;21279:23;21311:5;21279:38;;21328:24;21361:6;21328:40;;21389:23;21446:11;:18;21426:10;:17;:38;;;;:::i;:::-;21415:50;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21389:76;;21476:22;21507:9;21476:41;;21538:6;21555;21588:1;21586:3;;21582:90;21592:10;:17;21590:1;:19;21582:90;;;21647:10;21658:1;21647:13;;;;;;;;:::i;:::-;;;;;;;;;;21630:9;21640:3;;;;;:::i;:::-;;;21630:14;;;;;;;;:::i;:::-;;;;;:30;;;;;;;;;;;21610:3;;;;;:::i;:::-;;;;21582:90;;;21698:1;21696:3;;21692:92;21702:11;:18;21700:1;:20;21692:92;;;21758:11;21770:1;21758:14;;;;;;;;:::i;:::-;;;;;;;;;;21741:9;21751:3;;;;;:::i;:::-;;;21741:14;;;;;;;;:::i;:::-;;;;;:31;;;;;;;;;;;21721:3;;;;;:::i;:::-;;;;21692:92;;;21818:9;21804:24;;;;;;;;21171:665;;;;:::o;3447:422::-;3507:4;3715:12;3826:7;3814:20;3806:28;;3860:1;3853:4;:8;3846:15;;;3447:422;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;769:::-;865:5;890:81;906:64;963:6;906:64;:::i;:::-;890:81;:::i;:::-;881:90;;991:5;1020:6;1013:5;1006:21;1054:4;1047:5;1043:16;1036:23;;1080:6;1130:3;1122:4;1114:6;1110:17;1105:3;1101:27;1098:36;1095:143;;;1149:79;;:::i;:::-;1095:143;1262:1;1247:238;1272:6;1269:1;1266:13;1247:238;;;1340:3;1369:37;1402:3;1390:10;1369:37;:::i;:::-;1364:3;1357:50;1436:4;1431:3;1427:14;1420:21;;1470:4;1465:3;1461:14;1454:21;;1307:178;1294:1;1291;1287:9;1282:14;;1247:238;;;1251:14;871:620;;769:722;;;;;:::o;1497:410::-;1574:5;1599:65;1615:48;1656:6;1615:48;:::i;:::-;1599:65;:::i;:::-;1590:74;;1687:6;1680:5;1673:21;1725:4;1718:5;1714:16;1763:3;1754:6;1749:3;1745:16;1742:25;1739:112;;;1770:79;;:::i;:::-;1739:112;1860:41;1894:6;1889:3;1884;1860:41;:::i;:::-;1580:327;1497:410;;;;;:::o;1913:139::-;1959:5;1997:6;1984:20;1975:29;;2013:33;2040:5;2013:33;:::i;:::-;1913:139;;;;:::o;2075:370::-;2146:5;2195:3;2188:4;2180:6;2176:17;2172:27;2162:122;;2203:79;;:::i;:::-;2162:122;2320:6;2307:20;2345:94;2435:3;2427:6;2420:4;2412:6;2408:17;2345:94;:::i;:::-;2336:103;;2152:293;2075:370;;;;:::o;2468:::-;2539:5;2588:3;2581:4;2573:6;2569:17;2565:27;2555:122;;2596:79;;:::i;:::-;2555:122;2713:6;2700:20;2738:94;2828:3;2820:6;2813:4;2805:6;2801:17;2738:94;:::i;:::-;2729:103;;2545:293;2468:370;;;;:::o;2844:133::-;2887:5;2925:6;2912:20;2903:29;;2941:30;2965:5;2941:30;:::i;:::-;2844:133;;;;:::o;2983:137::-;3028:5;3066:6;3053:20;3044:29;;3082:32;3108:5;3082:32;:::i;:::-;2983:137;;;;:::o;3126:141::-;3182:5;3213:6;3207:13;3198:22;;3229:32;3255:5;3229:32;:::i;:::-;3126:141;;;;:::o;3286:338::-;3341:5;3390:3;3383:4;3375:6;3371:17;3367:27;3357:122;;3398:79;;:::i;:::-;3357:122;3515:6;3502:20;3540:78;3614:3;3606:6;3599:4;3591:6;3587:17;3540:78;:::i;:::-;3531:87;;3347:277;3286:338;;;;:::o;3644:553::-;3702:8;3712:6;3762:3;3755:4;3747:6;3743:17;3739:27;3729:122;;3770:79;;:::i;:::-;3729:122;3883:6;3870:20;3860:30;;3913:18;3905:6;3902:30;3899:117;;;3935:79;;:::i;:::-;3899:117;4049:4;4041:6;4037:17;4025:29;;4103:3;4095:4;4087:6;4083:17;4073:8;4069:32;4066:41;4063:128;;;4110:79;;:::i;:::-;4063:128;3644:553;;;;;:::o;4203:139::-;4249:5;4287:6;4274:20;4265:29;;4303:33;4330:5;4303:33;:::i;:::-;4203:139;;;;:::o;4348:143::-;4405:5;4436:6;4430:13;4421:22;;4452:33;4479:5;4452:33;:::i;:::-;4348:143;;;;:::o;4497:329::-;4556:6;4605:2;4593:9;4584:7;4580:23;4576:32;4573:119;;;4611:79;;:::i;:::-;4573:119;4731:1;4756:53;4801:7;4792:6;4781:9;4777:22;4756:53;:::i;:::-;4746:63;;4702:117;4497:329;;;;:::o;4832:474::-;4900:6;4908;4957:2;4945:9;4936:7;4932:23;4928:32;4925:119;;;4963:79;;:::i;:::-;4925:119;5083:1;5108:53;5153:7;5144:6;5133:9;5129:22;5108:53;:::i;:::-;5098:63;;5054:117;5210:2;5236:53;5281:7;5272:6;5261:9;5257:22;5236:53;:::i;:::-;5226:63;;5181:118;4832:474;;;;;:::o;5312:619::-;5389:6;5397;5405;5454:2;5442:9;5433:7;5429:23;5425:32;5422:119;;;5460:79;;:::i;:::-;5422:119;5580:1;5605:53;5650:7;5641:6;5630:9;5626:22;5605:53;:::i;:::-;5595:63;;5551:117;5707:2;5733:53;5778:7;5769:6;5758:9;5754:22;5733:53;:::i;:::-;5723:63;;5678:118;5835:2;5861:53;5906:7;5897:6;5886:9;5882:22;5861:53;:::i;:::-;5851:63;;5806:118;5312:619;;;;;:::o;5937:943::-;6032:6;6040;6048;6056;6105:3;6093:9;6084:7;6080:23;6076:33;6073:120;;;6112:79;;:::i;:::-;6073:120;6232:1;6257:53;6302:7;6293:6;6282:9;6278:22;6257:53;:::i;:::-;6247:63;;6203:117;6359:2;6385:53;6430:7;6421:6;6410:9;6406:22;6385:53;:::i;:::-;6375:63;;6330:118;6487:2;6513:53;6558:7;6549:6;6538:9;6534:22;6513:53;:::i;:::-;6503:63;;6458:118;6643:2;6632:9;6628:18;6615:32;6674:18;6666:6;6663:30;6660:117;;;6696:79;;:::i;:::-;6660:117;6801:62;6855:7;6846:6;6835:9;6831:22;6801:62;:::i;:::-;6791:72;;6586:287;5937:943;;;;;;;:::o;6886:468::-;6951:6;6959;7008:2;6996:9;6987:7;6983:23;6979:32;6976:119;;;7014:79;;:::i;:::-;6976:119;7134:1;7159:53;7204:7;7195:6;7184:9;7180:22;7159:53;:::i;:::-;7149:63;;7105:117;7261:2;7287:50;7329:7;7320:6;7309:9;7305:22;7287:50;:::i;:::-;7277:60;;7232:115;6886:468;;;;;:::o;7360:474::-;7428:6;7436;7485:2;7473:9;7464:7;7460:23;7456:32;7453:119;;;7491:79;;:::i;:::-;7453:119;7611:1;7636:53;7681:7;7672:6;7661:9;7657:22;7636:53;:::i;:::-;7626:63;;7582:117;7738:2;7764:53;7809:7;7800:6;7789:9;7785:22;7764:53;:::i;:::-;7754:63;;7709:118;7360:474;;;;;:::o;7840:894::-;7958:6;7966;8015:2;8003:9;7994:7;7990:23;7986:32;7983:119;;;8021:79;;:::i;:::-;7983:119;8169:1;8158:9;8154:17;8141:31;8199:18;8191:6;8188:30;8185:117;;;8221:79;;:::i;:::-;8185:117;8326:78;8396:7;8387:6;8376:9;8372:22;8326:78;:::i;:::-;8316:88;;8112:302;8481:2;8470:9;8466:18;8453:32;8512:18;8504:6;8501:30;8498:117;;;8534:79;;:::i;:::-;8498:117;8639:78;8709:7;8700:6;8689:9;8685:22;8639:78;:::i;:::-;8629:88;;8424:303;7840:894;;;;;:::o;8740:327::-;8798:6;8847:2;8835:9;8826:7;8822:23;8818:32;8815:119;;;8853:79;;:::i;:::-;8815:119;8973:1;8998:52;9042:7;9033:6;9022:9;9018:22;8998:52;:::i;:::-;8988:62;;8944:116;8740:327;;;;:::o;9073:349::-;9142:6;9191:2;9179:9;9170:7;9166:23;9162:32;9159:119;;;9197:79;;:::i;:::-;9159:119;9317:1;9342:63;9397:7;9388:6;9377:9;9373:22;9342:63;:::i;:::-;9332:73;;9288:127;9073:349;;;;:::o;9428:529::-;9499:6;9507;9556:2;9544:9;9535:7;9531:23;9527:32;9524:119;;;9562:79;;:::i;:::-;9524:119;9710:1;9699:9;9695:17;9682:31;9740:18;9732:6;9729:30;9726:117;;;9762:79;;:::i;:::-;9726:117;9875:65;9932:7;9923:6;9912:9;9908:22;9875:65;:::i;:::-;9857:83;;;;9653:297;9428:529;;;;;:::o;9963:329::-;10022:6;10071:2;10059:9;10050:7;10046:23;10042:32;10039:119;;;10077:79;;:::i;:::-;10039:119;10197:1;10222:53;10267:7;10258:6;10247:9;10243:22;10222:53;:::i;:::-;10212:63;;10168:117;9963:329;;;;:::o;10298:351::-;10368:6;10417:2;10405:9;10396:7;10392:23;10388:32;10385:119;;;10423:79;;:::i;:::-;10385:119;10543:1;10568:64;10624:7;10615:6;10604:9;10600:22;10568:64;:::i;:::-;10558:74;;10514:128;10298:351;;;;:::o;10655:118::-;10742:24;10760:5;10742:24;:::i;:::-;10737:3;10730:37;10655:118;;:::o;10779:109::-;10860:21;10875:5;10860:21;:::i;:::-;10855:3;10848:34;10779:109;;:::o;10894:360::-;10980:3;11008:38;11040:5;11008:38;:::i;:::-;11062:70;11125:6;11120:3;11062:70;:::i;:::-;11055:77;;11141:52;11186:6;11181:3;11174:4;11167:5;11163:16;11141:52;:::i;:::-;11218:29;11240:6;11218:29;:::i;:::-;11213:3;11209:39;11202:46;;10984:270;10894:360;;;;:::o;11260:147::-;11355:45;11394:5;11355:45;:::i;:::-;11350:3;11343:58;11260:147;;:::o;11413:364::-;11501:3;11529:39;11562:5;11529:39;:::i;:::-;11584:71;11648:6;11643:3;11584:71;:::i;:::-;11577:78;;11664:52;11709:6;11704:3;11697:4;11690:5;11686:16;11664:52;:::i;:::-;11741:29;11763:6;11741:29;:::i;:::-;11736:3;11732:39;11725:46;;11505:272;11413:364;;;;:::o;11783:366::-;11925:3;11946:67;12010:2;12005:3;11946:67;:::i;:::-;11939:74;;12022:93;12111:3;12022:93;:::i;:::-;12140:2;12135:3;12131:12;12124:19;;11783:366;;;:::o;12155:::-;12297:3;12318:67;12382:2;12377:3;12318:67;:::i;:::-;12311:74;;12394:93;12483:3;12394:93;:::i;:::-;12512:2;12507:3;12503:12;12496:19;;12155:366;;;:::o;12527:::-;12669:3;12690:67;12754:2;12749:3;12690:67;:::i;:::-;12683:74;;12766:93;12855:3;12766:93;:::i;:::-;12884:2;12879:3;12875:12;12868:19;;12527:366;;;:::o;12899:::-;13041:3;13062:67;13126:2;13121:3;13062:67;:::i;:::-;13055:74;;13138:93;13227:3;13138:93;:::i;:::-;13256:2;13251:3;13247:12;13240:19;;12899:366;;;:::o;13271:::-;13413:3;13434:67;13498:2;13493:3;13434:67;:::i;:::-;13427:74;;13510:93;13599:3;13510:93;:::i;:::-;13628:2;13623:3;13619:12;13612:19;;13271:366;;;:::o;13643:::-;13785:3;13806:67;13870:2;13865:3;13806:67;:::i;:::-;13799:74;;13882:93;13971:3;13882:93;:::i;:::-;14000:2;13995:3;13991:12;13984:19;;13643:366;;;:::o;14015:::-;14157:3;14178:67;14242:2;14237:3;14178:67;:::i;:::-;14171:74;;14254:93;14343:3;14254:93;:::i;:::-;14372:2;14367:3;14363:12;14356:19;;14015:366;;;:::o;14387:::-;14529:3;14550:67;14614:2;14609:3;14550:67;:::i;:::-;14543:74;;14626:93;14715:3;14626:93;:::i;:::-;14744:2;14739:3;14735:12;14728:19;;14387:366;;;:::o;14759:::-;14901:3;14922:67;14986:2;14981:3;14922:67;:::i;:::-;14915:74;;14998:93;15087:3;14998:93;:::i;:::-;15116:2;15111:3;15107:12;15100:19;;14759:366;;;:::o;15131:::-;15273:3;15294:67;15358:2;15353:3;15294:67;:::i;:::-;15287:74;;15370:93;15459:3;15370:93;:::i;:::-;15488:2;15483:3;15479:12;15472:19;;15131:366;;;:::o;15503:::-;15645:3;15666:67;15730:2;15725:3;15666:67;:::i;:::-;15659:74;;15742:93;15831:3;15742:93;:::i;:::-;15860:2;15855:3;15851:12;15844:19;;15503:366;;;:::o;15875:::-;16017:3;16038:67;16102:2;16097:3;16038:67;:::i;:::-;16031:74;;16114:93;16203:3;16114:93;:::i;:::-;16232:2;16227:3;16223:12;16216:19;;15875:366;;;:::o;16247:118::-;16334:24;16352:5;16334:24;:::i;:::-;16329:3;16322:37;16247:118;;:::o;16371:222::-;16464:4;16502:2;16491:9;16487:18;16479:26;;16515:71;16583:1;16572:9;16568:17;16559:6;16515:71;:::i;:::-;16371:222;;;;:::o;16599:640::-;16794:4;16832:3;16821:9;16817:19;16809:27;;16846:71;16914:1;16903:9;16899:17;16890:6;16846:71;:::i;:::-;16927:72;16995:2;16984:9;16980:18;16971:6;16927:72;:::i;:::-;17009;17077:2;17066:9;17062:18;17053:6;17009:72;:::i;:::-;17128:9;17122:4;17118:20;17113:2;17102:9;17098:18;17091:48;17156:76;17227:4;17218:6;17156:76;:::i;:::-;17148:84;;16599:640;;;;;;;:::o;17245:348::-;17374:4;17412:2;17401:9;17397:18;17389:26;;17425:71;17493:1;17482:9;17478:17;17469:6;17425:71;:::i;:::-;17506:80;17582:2;17571:9;17567:18;17558:6;17506:80;:::i;:::-;17245:348;;;;;:::o;17599:210::-;17686:4;17724:2;17713:9;17709:18;17701:26;;17737:65;17799:1;17788:9;17784:17;17775:6;17737:65;:::i;:::-;17599:210;;;;:::o;17815:313::-;17928:4;17966:2;17955:9;17951:18;17943:26;;18015:9;18009:4;18005:20;18001:1;17990:9;17986:17;17979:47;18043:78;18116:4;18107:6;18043:78;:::i;:::-;18035:86;;17815:313;;;;:::o;18134:419::-;18300:4;18338:2;18327:9;18323:18;18315:26;;18387:9;18381:4;18377:20;18373:1;18362:9;18358:17;18351:47;18415:131;18541:4;18415:131;:::i;:::-;18407:139;;18134:419;;;:::o;18559:::-;18725:4;18763:2;18752:9;18748:18;18740:26;;18812:9;18806:4;18802:20;18798:1;18787:9;18783:17;18776:47;18840:131;18966:4;18840:131;:::i;:::-;18832:139;;18559:419;;;:::o;18984:::-;19150:4;19188:2;19177:9;19173:18;19165:26;;19237:9;19231:4;19227:20;19223:1;19212:9;19208:17;19201:47;19265:131;19391:4;19265:131;:::i;:::-;19257:139;;18984:419;;;:::o;19409:::-;19575:4;19613:2;19602:9;19598:18;19590:26;;19662:9;19656:4;19652:20;19648:1;19637:9;19633:17;19626:47;19690:131;19816:4;19690:131;:::i;:::-;19682:139;;19409:419;;;:::o;19834:::-;20000:4;20038:2;20027:9;20023:18;20015:26;;20087:9;20081:4;20077:20;20073:1;20062:9;20058:17;20051:47;20115:131;20241:4;20115:131;:::i;:::-;20107:139;;19834:419;;;:::o;20259:::-;20425:4;20463:2;20452:9;20448:18;20440:26;;20512:9;20506:4;20502:20;20498:1;20487:9;20483:17;20476:47;20540:131;20666:4;20540:131;:::i;:::-;20532:139;;20259:419;;;:::o;20684:::-;20850:4;20888:2;20877:9;20873:18;20865:26;;20937:9;20931:4;20927:20;20923:1;20912:9;20908:17;20901:47;20965:131;21091:4;20965:131;:::i;:::-;20957:139;;20684:419;;;:::o;21109:::-;21275:4;21313:2;21302:9;21298:18;21290:26;;21362:9;21356:4;21352:20;21348:1;21337:9;21333:17;21326:47;21390:131;21516:4;21390:131;:::i;:::-;21382:139;;21109:419;;;:::o;21534:::-;21700:4;21738:2;21727:9;21723:18;21715:26;;21787:9;21781:4;21777:20;21773:1;21762:9;21758:17;21751:47;21815:131;21941:4;21815:131;:::i;:::-;21807:139;;21534:419;;;:::o;21959:::-;22125:4;22163:2;22152:9;22148:18;22140:26;;22212:9;22206:4;22202:20;22198:1;22187:9;22183:17;22176:47;22240:131;22366:4;22240:131;:::i;:::-;22232:139;;21959:419;;;:::o;22384:::-;22550:4;22588:2;22577:9;22573:18;22565:26;;22637:9;22631:4;22627:20;22623:1;22612:9;22608:17;22601:47;22665:131;22791:4;22665:131;:::i;:::-;22657:139;;22384:419;;;:::o;22809:::-;22975:4;23013:2;23002:9;22998:18;22990:26;;23062:9;23056:4;23052:20;23048:1;23037:9;23033:17;23026:47;23090:131;23216:4;23090:131;:::i;:::-;23082:139;;22809:419;;;:::o;23234:222::-;23327:4;23365:2;23354:9;23350:18;23342:26;;23378:71;23446:1;23435:9;23431:17;23422:6;23378:71;:::i;:::-;23234:222;;;;:::o;23462:129::-;23496:6;23523:20;;:::i;:::-;23513:30;;23552:33;23580:4;23572:6;23552:33;:::i;:::-;23462:129;;;:::o;23597:75::-;23630:6;23663:2;23657:9;23647:19;;23597:75;:::o;23678:311::-;23755:4;23845:18;23837:6;23834:30;23831:56;;;23867:18;;:::i;:::-;23831:56;23917:4;23909:6;23905:17;23897:25;;23977:4;23971;23967:15;23959:23;;23678:311;;;:::o;23995:::-;24072:4;24162:18;24154:6;24151:30;24148:56;;;24184:18;;:::i;:::-;24148:56;24234:4;24226:6;24222:17;24214:25;;24294:4;24288;24284:15;24276:23;;23995:311;;;:::o;24312:307::-;24373:4;24463:18;24455:6;24452:30;24449:56;;;24485:18;;:::i;:::-;24449:56;24523:29;24545:6;24523:29;:::i;:::-;24515:37;;24607:4;24601;24597:15;24589:23;;24312:307;;;:::o;24625:98::-;24676:6;24710:5;24704:12;24694:22;;24625:98;;;:::o;24729:99::-;24781:6;24815:5;24809:12;24799:22;;24729:99;;;:::o;24834:168::-;24917:11;24951:6;24946:3;24939:19;24991:4;24986:3;24982:14;24967:29;;24834:168;;;;:::o;25008:169::-;25092:11;25126:6;25121:3;25114:19;25166:4;25161:3;25157:14;25142:29;;25008:169;;;;:::o;25183:305::-;25223:3;25242:20;25260:1;25242:20;:::i;:::-;25237:25;;25276:20;25294:1;25276:20;:::i;:::-;25271:25;;25430:1;25362:66;25358:74;25355:1;25352:81;25349:107;;;25436:18;;:::i;:::-;25349:107;25480:1;25477;25473:9;25466:16;;25183:305;;;;:::o;25494:185::-;25534:1;25551:20;25569:1;25551:20;:::i;:::-;25546:25;;25585:20;25603:1;25585:20;:::i;:::-;25580:25;;25624:1;25614:35;;25629:18;;:::i;:::-;25614:35;25671:1;25668;25664:9;25659:14;;25494:185;;;;:::o;25685:191::-;25725:4;25745:20;25763:1;25745:20;:::i;:::-;25740:25;;25779:20;25797:1;25779:20;:::i;:::-;25774:25;;25818:1;25815;25812:8;25809:34;;;25823:18;;:::i;:::-;25809:34;25868:1;25865;25861:9;25853:17;;25685:191;;;;:::o;25882:96::-;25919:7;25948:24;25966:5;25948:24;:::i;:::-;25937:35;;25882:96;;;:::o;25984:90::-;26018:7;26061:5;26054:13;26047:21;26036:32;;25984:90;;;:::o;26080:149::-;26116:7;26156:66;26149:5;26145:78;26134:89;;26080:149;;;:::o;26235:126::-;26272:7;26312:42;26305:5;26301:54;26290:65;;26235:126;;;:::o;26367:77::-;26404:7;26433:5;26422:16;;26367:77;;;:::o;26450:121::-;26508:9;26541:24;26559:5;26541:24;:::i;:::-;26528:37;;26450:121;;;:::o;26577:154::-;26661:6;26656:3;26651;26638:30;26723:1;26714:6;26709:3;26705:16;26698:27;26577:154;;;:::o;26737:307::-;26805:1;26815:113;26829:6;26826:1;26823:13;26815:113;;;26914:1;26909:3;26905:11;26899:18;26895:1;26890:3;26886:11;26879:39;26851:2;26848:1;26844:10;26839:15;;26815:113;;;26946:6;26943:1;26940:13;26937:101;;;27026:1;27017:6;27012:3;27008:16;27001:27;26937:101;26786:258;26737:307;;;:::o;27050:320::-;27094:6;27131:1;27125:4;27121:12;27111:22;;27178:1;27172:4;27168:12;27199:18;27189:81;;27255:4;27247:6;27243:17;27233:27;;27189:81;27317:2;27309:6;27306:14;27286:18;27283:38;27280:84;;;27336:18;;:::i;:::-;27280:84;27101:269;27050:320;;;:::o;27376:281::-;27459:27;27481:4;27459:27;:::i;:::-;27451:6;27447:40;27589:6;27577:10;27574:22;27553:18;27541:10;27538:34;27535:62;27532:88;;;27600:18;;:::i;:::-;27532:88;27640:10;27636:2;27629:22;27419:238;27376:281;;:::o;27663:233::-;27702:3;27725:24;27743:5;27725:24;:::i;:::-;27716:33;;27771:66;27764:5;27761:77;27758:103;;;27841:18;;:::i;:::-;27758:103;27888:1;27881:5;27877:13;27870:20;;27663:233;;;:::o;27902:176::-;27934:1;27951:20;27969:1;27951:20;:::i;:::-;27946:25;;27985:20;28003:1;27985:20;:::i;:::-;27980:25;;28024:1;28014:35;;28029:18;;:::i;:::-;28014:35;28070:1;28067;28063:9;28058:14;;27902:176;;;;:::o;28084:180::-;28132:77;28129:1;28122:88;28229:4;28226:1;28219:15;28253:4;28250:1;28243:15;28270:180;28318:77;28315:1;28308:88;28415:4;28412:1;28405:15;28439:4;28436:1;28429:15;28456:180;28504:77;28501:1;28494:88;28601:4;28598:1;28591:15;28625:4;28622:1;28615:15;28642:180;28690:77;28687:1;28680:88;28787:4;28784:1;28777:15;28811:4;28808:1;28801:15;28828:180;28876:77;28873:1;28866:88;28973:4;28970:1;28963:15;28997:4;28994:1;28987:15;29014:117;29123:1;29120;29113:12;29137:117;29246:1;29243;29236:12;29260:117;29369:1;29366;29359:12;29383:117;29492:1;29489;29482:12;29506:117;29615:1;29612;29605:12;29629:117;29738:1;29735;29728:12;29752:102;29793:6;29844:2;29840:7;29835:2;29828:5;29824:14;29820:28;29810:38;;29752:102;;;:::o;29860:237::-;30000:34;29996:1;29988:6;29984:14;29977:58;30069:20;30064:2;30056:6;30052:15;30045:45;29860:237;:::o;30103:223::-;30243:34;30239:1;30231:6;30227:14;30220:58;30312:6;30307:2;30299:6;30295:15;30288:31;30103:223;:::o;30332:175::-;30472:27;30468:1;30460:6;30456:14;30449:51;30332:175;:::o;30513:231::-;30653:34;30649:1;30641:6;30637:14;30630:58;30722:14;30717:2;30709:6;30705:15;30698:39;30513:231;:::o;30750:243::-;30890:34;30886:1;30878:6;30874:14;30867:58;30959:26;30954:2;30946:6;30942:15;30935:51;30750:243;:::o;30999:229::-;31139:34;31135:1;31127:6;31123:14;31116:58;31208:12;31203:2;31195:6;31191:15;31184:37;30999:229;:::o;31234:228::-;31374:34;31370:1;31362:6;31358:14;31351:58;31443:11;31438:2;31430:6;31426:15;31419:36;31234:228;:::o;31468:231::-;31608:34;31604:1;31596:6;31592:14;31585:58;31677:14;31672:2;31664:6;31660:15;31653:39;31468:231;:::o;31705:228::-;31845:34;31841:1;31833:6;31829:14;31822:58;31914:11;31909:2;31901:6;31897:15;31890:36;31705:228;:::o;31939:220::-;32079:34;32075:1;32067:6;32063:14;32056:58;32148:3;32143:2;32135:6;32131:15;32124:28;31939:220;:::o;32165:179::-;32305:31;32301:1;32293:6;32289:14;32282:55;32165:179;:::o;32350:236::-;32490:34;32486:1;32478:6;32474:14;32467:58;32559:19;32554:2;32546:6;32542:15;32535:44;32350:236;:::o;32592:122::-;32665:24;32683:5;32665:24;:::i;:::-;32658:5;32655:35;32645:63;;32704:1;32701;32694:12;32645:63;32592:122;:::o;32720:116::-;32790:21;32805:5;32790:21;:::i;:::-;32783:5;32780:32;32770:60;;32826:1;32823;32816:12;32770:60;32720:116;:::o;32842:120::-;32914:23;32931:5;32914:23;:::i;:::-;32907:5;32904:34;32894:62;;32952:1;32949;32942:12;32894:62;32842:120;:::o;32968:122::-;33041:24;33059:5;33041:24;:::i;:::-;33034:5;33031:35;33021:63;;33080:1;33077;33070:12;33021:63;32968:122;:::o
Swarm Source
ipfs://acd6d0461aecd8e32ae096e3a34018c242eaee768f6a71a25fdc1ae12d923b4c
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.