ERC-1155
Overview
Max Total Supply
0 OPTIMISM
Holders
10,000
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
ERC1155
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2023-05-31 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; abstract contract Ownable { error NotOwner(); // 0x30cd7471 address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); modifier onlyOwner() { if (_owner != msg.sender) revert NotOwner(); _; } constructor() { _owner = msg.sender; emit OwnershipTransferred(address(0), msg.sender); } function owner() public view virtual returns (address) { return _owner; } function transferOwnership(address newOwner) public virtual onlyOwner { emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); } /** * @dev Required interface of an ERC1155 compliant contract, as defined in the * https://eips.ethereum.org/EIPS/eip-1155[EIP]. * * _Available since v3.1._ */ interface IERC1155 is IERC165 { /** * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`. */ event TransferSingle( address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value ); /** * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all * transfers. */ event TransferBatch( address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values ); /** * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to * `approved`. */ event ApprovalForAll( address indexed account, address indexed operator, bool approved ); /** * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. * * If an {URI} event was emitted for `id`, the standard * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value * returned by {IERC1155MetadataURI-uri}. */ event URI(string value, uint256 indexed id); /** * @dev Returns the amount of tokens of token type `id` owned by `account`. * * Requirements: * * - `account` cannot be the zero address. */ function balanceOf( address account, uint256 id ) external view returns (uint256); /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. * * Requirements: * * - `accounts` and `ids` must have the same length. */ function balanceOfBatch( address[] calldata accounts, uint256[] calldata ids ) external view returns (uint256[] memory); /** * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, * * Emits an {ApprovalForAll} event. * * Requirements: * * - `operator` cannot be the caller. */ function setApprovalForAll(address operator, bool approved) external; /** * @dev Returns true if `operator` is approved to transfer ``account``'s tokens. * * See {setApprovalForAll}. */ function isApprovedForAll( address account, address operator ) external view returns (bool); /** * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. * * Emits a {TransferSingle} event. * * Requirements: * * - `to` cannot be the zero address. * - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. * - `from` must have a balance of tokens of type `id` of at least `amount`. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the * acceptance magic value. */ function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes calldata data ) external; /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. * * Emits a {TransferBatch} event. * * Requirements: * * - `ids` and `amounts` must have the same length. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the * acceptance magic value. */ function safeBatchTransferFrom( address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data ) external; } /** * @dev _Available since v3.1._ */ interface IERC1155Receiver is IERC165 { /** * @dev Handles the receipt of a single ERC1155 token type. This function is * called at the end of a `safeTransferFrom` after the balance has been updated. * * NOTE: To accept the transfer, this must return * `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` * (i.e. 0xf23a6e61, or its own function selector). * * @param operator The address which initiated the transfer (i.e. msg.sender) * @param from The address which previously owned the token * @param id The ID of the token being transferred * @param value The amount of tokens being transferred * @param data Additional data with no specified format * @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed */ function onERC1155Received( address operator, address from, uint256 id, uint256 value, bytes calldata data ) external returns (bytes4); /** * @dev Handles the receipt of a multiple ERC1155 token types. This function * is called at the end of a `safeBatchTransferFrom` after the balances have * been updated. * * NOTE: To accept the transfer(s), this must return * `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` * (i.e. 0xbc197c81, or its own function selector). * * @param operator The address which initiated the batch transfer (i.e. msg.sender) * @param from The address which previously owned the token * @param ids An array containing ids of each token being transferred (order and length must match values array) * @param values An array containing amounts of each token being transferred (order and length must match ids array) * @param data Additional data with no specified format * @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed */ function onERC1155BatchReceived( address operator, address from, uint256[] calldata ids, uint256[] calldata values, bytes calldata data ) external returns (bytes4); } /** * @dev Interface of the optional ERC1155MetadataExtension interface, as defined * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP]. * * _Available since v3.1._ */ interface IERC1155MetadataURI is IERC1155 { /** * @dev Returns the URI for token type `id`. * * If the `\{id\}` substring is present in the URI, it must be replaced by * clients with the actual token type ID. */ function uri(uint256 id) external view returns (string memory); } library Math { /** * @dev Return the log in base 10, rounded down, of a positive value. * Returns 0 if given 0. */ function log10(uint256 value) internal pure returns (uint256) { uint256 result = 0; unchecked { if (value >= 10 ** 64) { value /= 10 ** 64; result += 64; } if (value >= 10 ** 32) { value /= 10 ** 32; result += 32; } if (value >= 10 ** 16) { value /= 10 ** 16; result += 16; } if (value >= 10 ** 8) { value /= 10 ** 8; result += 8; } if (value >= 10 ** 4) { value /= 10 ** 4; result += 4; } if (value >= 10 ** 2) { value /= 10 ** 2; result += 2; } if (value >= 10 ** 1) { result += 1; } } return result; } } library Strings { bytes16 private constant _SYMBOLS = "0123456789abcdef"; function toString(uint256 value) internal pure returns (string memory) { unchecked { uint256 length = Math.log10(value) + 1; string memory buffer = new string(length); uint256 ptr; /// @solidity memory-safe-assembly assembly { ptr := add(buffer, add(32, length)) } while (true) { ptr--; /// @solidity memory-safe-assembly assembly { mstore8(ptr, byte(mod(value, 10), _SYMBOLS)) } value /= 10; if (value == 0) break; } return buffer; } } } contract ERC1155 is Ownable, IERC165, IERC1155, IERC1155MetadataURI { using Strings for uint256; mapping(uint256 => mapping(address => uint256)) private _balances; mapping(address => mapping(address => bool)) private _operatorApprovals; string private constant _name = "OPTIMISM NFT TICKET"; string private constant _symbol = "OPTIMISM"; string private _URI; error NotTokenOwnerOrApproved(); error InsufficientBalance(); error SelfApproval(); error ERC1155ReceiverRejected(); error NotERC1155Receiver(); constructor() payable {} function name() external pure returns (string memory) { return _name; } function symbol() external pure returns (string memory) { return _symbol; } function supportsInterface( bytes4 interfaceId ) external pure returns (bool) { return interfaceId == type(IERC1155).interfaceId || interfaceId == type(IERC1155MetadataURI).interfaceId || interfaceId == type(IERC165).interfaceId; } function uri(uint256 id) external view override returns (string memory) { return bytes(_URI).length > 0 ? string(abi.encodePacked(_URI, id.toString(), ".json")) : ""; } function balanceOf( address account, uint256 id ) external view override returns (uint256) { return _balances[id][account]; } function balanceOfBatch( address[] memory accounts, uint256[] memory ids ) external view override returns (uint256[] memory) { uint256[] memory batchBalances = new uint256[](accounts.length); for (uint256 i; i < accounts.length; ++i) { batchBalances[i] = _balances[ids[i]][accounts[i]]; } return batchBalances; } function setApprovalForAll( address operator, bool approved ) external override { _setApprovalForAll(msg.sender, operator, approved); } function isApprovedForAll( address account, address operator ) external view override returns (bool) { return _operatorApprovals[account][operator]; } function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes memory data ) external override { if (from != msg.sender && !_operatorApprovals[from][msg.sender]) revert NotTokenOwnerOrApproved(); _safeTransferFrom(from, to, id, amount, data); } function safeBatchTransferFrom( address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) external override { if (from != msg.sender && !_operatorApprovals[from][msg.sender]) revert NotTokenOwnerOrApproved(); _safeBatchTransferFrom(from, to, ids, amounts, data); } function _safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes memory data ) private { if (amount > _balances[id][from]) revert InsufficientBalance(); unchecked { _balances[id][from] -= amount; } _balances[id][to] += amount; emit TransferSingle(msg.sender, from, to, id, amount); _doSafeTransferAcceptanceCheck(msg.sender, from, to, id, amount, data); } function _safeBatchTransferFrom( address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) private { for (uint256 i; i < ids.length; ++i) { if (amounts[i] > _balances[ids[i]][from]) revert InsufficientBalance(); unchecked { _balances[ids[i]][from] -= amounts[i]; } _balances[ids[i]][to] += amounts[i]; } emit TransferBatch(msg.sender, from, to, ids, amounts); _doSafeBatchTransferAcceptanceCheck( msg.sender, from, to, ids, amounts, data ); } function _setApprovalForAll( address owner, address operator, bool approved ) private { if (owner == operator) revert SelfApproval(); _operatorApprovals[owner][operator] = approved; emit ApprovalForAll(owner, operator, approved); } function _doSafeTransferAcceptanceCheck( address operator, address from, address to, uint256 id, uint256 amount, bytes memory data ) private { if (to.code.length > 0) { try IERC1155Receiver(to).onERC1155Received( operator, from, id, amount, data ) returns (bytes4 response) { if (response != IERC1155Receiver.onERC1155Received.selector) { revert ERC1155ReceiverRejected(); } } catch Error(string memory reason) { revert(reason); } catch { revert NotERC1155Receiver(); } } } function _doSafeBatchTransferAcceptanceCheck( address operator, address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) private { if (to.code.length > 0) { try IERC1155Receiver(to).onERC1155BatchReceived( operator, from, ids, amounts, data ) returns (bytes4 response) { if ( response != IERC1155Receiver.onERC1155BatchReceived.selector ) { revert ERC1155ReceiverRejected(); } } catch Error(string memory reason) { revert(reason); } catch { revert NotERC1155Receiver(); } } } function updateUri(string calldata _uri) external onlyOwner { _URI = _uri; } function mintBatch( address[] calldata to, uint256[] calldata itemsIds ) external onlyOwner { for (uint128 i; i < itemsIds.length; i++) { _balances[itemsIds[i]][to[i]]++; emit TransferSingle(msg.sender, address(0), to[i], itemsIds[i], 1); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"inputs":[],"name":"ERC1155ReceiverRejected","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"NotERC1155Receiver","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"NotTokenOwnerOrApproved","type":"error"},{"inputs":[],"name":"SelfApproval","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"to","type":"address[]"},{"internalType":"uint256[]","name":"itemsIds","type":"uint256[]"}],"name":"mintBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","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":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","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":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_uri","type":"string"}],"name":"updateUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040819052600080546001600160a01b031916339081178255917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a361188d8061004f6000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c80637c88e3d91161008c578063a22cb46511610066578063a22cb4651461021c578063e985e9c51461022f578063f242432a1461026b578063f2fde38b1461027e57600080fd5b80637c88e3d9146101ca5780638da5cb5b146101dd57806395d89b41146101f857600080fd5b80630e89341c116100c85780630e89341c1461016f5780632eb2c2d6146101825780634e1273f414610197578063570b3c6a146101b757600080fd5b8062fdd58e146100ee57806301ffc9a71461011457806306fdde0314610137575b600080fd5b6101016100fc366004610e6e565b610291565b6040519081526020015b60405180910390f35b610127610122366004610eb1565b6102bb565b604051901515815260200161010b565b60408051808201909152601381527213d41512535254d34813919508151250d2d155606a1b60208201525b60405161010b9190610f25565b61016261017d366004610f38565b61030c565b61019561019036600461109a565b61036a565b005b6101aa6101a5366004611143565b6103d9565b60405161010b9190611248565b6101956101c536600461125b565b6104cc565b6101956101d8366004611317565b610509565b6000546040516001600160a01b03909116815260200161010b565b6040805180820190915260088152674f5054494d49534d60c01b6020820152610162565b61019561022a366004611382565b61068c565b61012761023d3660046113be565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205460ff1690565b6101956102793660046113f1565b61069b565b61019561028c366004611455565b610703565b60008181526001602090815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b14806102ec57506001600160e01b031982166303a24d0760e21b145b806102b557506001600160e01b031982166301ffc9a760e01b1492915050565b606060006003805461031d90611470565b90501161033957604051806020016040528060008152506102b5565b600361034483610789565b6040516020016103559291906114aa565b60405160208183030381529060405292915050565b6001600160a01b03851633148015906103a757506001600160a01b038516600090815260026020908152604080832033845290915290205460ff16155b156103c557604051634cd9539b60e11b815260040160405180910390fd5b6103d2858585858561081b565b5050505050565b6060600083516001600160401b038111156103f6576103f6610f51565b60405190808252806020026020018201604052801561041f578160200160208202803683370190505b50905060005b84518110156104c4576001600085838151811061044457610444611541565b60200260200101518152602001908152602001600020600086838151811061046e5761046e611541565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020548282815181106104a9576104a9611541565b60209081029190910101526104bd8161156d565b9050610425565b509392505050565b6000546001600160a01b031633146104f7576040516330cd747160e01b815260040160405180910390fd5b60036105048284836115cc565b505050565b6000546001600160a01b03163314610534576040516330cd747160e01b815260040160405180910390fd5b60005b6001600160801b0381168211156103d257600160008484846001600160801b031681811061056757610567611541565b90506020020135815260200190815260200160002060008686846001600160801b031681811061059957610599611541565b90506020020160208101906105ae9190611455565b6001600160a01b03168152602081019190915260400160009081208054916105d58361156d565b91905055508484826001600160801b03168181106105f5576105f5611541565b905060200201602081019061060a9190611455565b6001600160a01b03166000337fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6286866001600160801b03871681811061065257610652611541565b905060200201356001604051610672929190918252602082015260400190565b60405180910390a4806106848161168b565b915050610537565b610697338383610a1a565b5050565b6001600160a01b03851633148015906106d857506001600160a01b038516600090815260026020908152604080832033845290915290205460ff16155b156106f657604051634cd9539b60e11b815260040160405180910390fd5b6103d28585858585610ab9565b6000546001600160a01b0316331461072e576040516330cd747160e01b815260040160405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6060600061079683610b9b565b60010190506000816001600160401b038111156107b5576107b5610f51565b6040519080825280601f01601f1916602001820160405280156107df576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846107e957509392505050565b60005b83518110156109b4576001600085838151811061083d5761083d611541565b602002602001015181526020019081526020016000206000876001600160a01b03166001600160a01b031681526020019081526020016000205483828151811061088957610889611541565b602002602001015111156108b057604051631e9acf1760e31b815260040160405180910390fd5b8281815181106108c2576108c2611541565b6020026020010151600160008684815181106108e0576108e0611541565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254039250508190555082818151811061093857610938611541565b60200260200101516001600086848151811061095657610956611541565b602002602001015181526020019081526020016000206000876001600160a01b03166001600160a01b03168152602001908152602001600020600082825461099e91906116b1565b909155506109ad90508161156d565b905061081e565b50836001600160a01b0316856001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610a049291906116c4565b60405180910390a46103d2338686868686610c73565b816001600160a01b0316836001600160a01b031603610a4c57604051633cf0df2360e01b815260040160405180910390fd5b6001600160a01b03838116600081815260026020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60008381526001602090815260408083206001600160a01b0389168452909152902054821115610afc57604051631e9acf1760e31b815260040160405180910390fd5b60008381526001602090815260408083206001600160a01b038981168552925280832080548690039055908616825281208054849290610b3d9084906116b1565b909155505060408051848152602081018490526001600160a01b03808716929088169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46103d2338686868686610d96565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610bda5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c06576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c2457662386f26fc10000830492506010015b6305f5e1008310610c3c576305f5e100830492506008015b6127108310610c5057612710830492506004015b60648310610c62576064830492506002015b600a83106102b55760010192915050565b6001600160a01b0384163b15610d8e5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190610cb790899089908890889088906004016116f2565b6020604051808303816000875af1925050508015610cf2575060408051601f3d908101601f19168201909252610cef91810190611750565b60015b610d5b57610cfe61176d565b806308c379a003610d405750610d12611789565b80610d1d5750610d42565b8060405162461bcd60e51b8152600401610d379190610f25565b60405180910390fd5b505b6040516360a54e3360e11b815260040160405180910390fd5b6001600160e01b0319811663bc197c8160e01b14610d8c5760405163086d127360e01b815260040160405180910390fd5b505b505050505050565b6001600160a01b0384163b15610d8e5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610dda9089908990889088908890600401611812565b6020604051808303816000875af1925050508015610e15575060408051601f3d908101601f19168201909252610e1291810190611750565b60015b610e2157610cfe61176d565b6001600160e01b0319811663f23a6e6160e01b14610d8c5760405163086d127360e01b815260040160405180910390fd5b80356001600160a01b0381168114610e6957600080fd5b919050565b60008060408385031215610e8157600080fd5b610e8a83610e52565b946020939093013593505050565b6001600160e01b031981168114610eae57600080fd5b50565b600060208284031215610ec357600080fd5b8135610ece81610e98565b9392505050565b60005b83811015610ef0578181015183820152602001610ed8565b50506000910152565b60008151808452610f11816020860160208601610ed5565b601f01601f19169290920160200192915050565b602081526000610ece6020830184610ef9565b600060208284031215610f4a57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715610f8c57610f8c610f51565b6040525050565b60006001600160401b03821115610fac57610fac610f51565b5060051b60200190565b600082601f830112610fc757600080fd5b81356020610fd482610f93565b604051610fe18282610f67565b83815260059390931b850182019282810191508684111561100157600080fd5b8286015b8481101561101c5780358352918301918301611005565b509695505050505050565b600082601f83011261103857600080fd5b81356001600160401b0381111561105157611051610f51565b604051611068601f8301601f191660200182610f67565b81815284602083860101111561107d57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156110b257600080fd5b6110bb86610e52565b94506110c960208701610e52565b935060408601356001600160401b03808211156110e557600080fd5b6110f189838a01610fb6565b9450606088013591508082111561110757600080fd5b61111389838a01610fb6565b9350608088013591508082111561112957600080fd5b5061113688828901611027565b9150509295509295909350565b6000806040838503121561115657600080fd5b82356001600160401b038082111561116d57600080fd5b818501915085601f83011261118157600080fd5b8135602061118e82610f93565b60405161119b8282610f67565b83815260059390931b85018201928281019150898411156111bb57600080fd5b948201945b838610156111e0576111d186610e52565b825294820194908201906111c0565b965050860135925050808211156111f657600080fd5b5061120385828601610fb6565b9150509250929050565b600081518084526020808501945080840160005b8381101561123d57815187529582019590820190600101611221565b509495945050505050565b602081526000610ece602083018461120d565b6000806020838503121561126e57600080fd5b82356001600160401b038082111561128557600080fd5b818501915085601f83011261129957600080fd5b8135818111156112a857600080fd5b8660208285010111156112ba57600080fd5b60209290920196919550909350505050565b60008083601f8401126112de57600080fd5b5081356001600160401b038111156112f557600080fd5b6020830191508360208260051b850101111561131057600080fd5b9250929050565b6000806000806040858703121561132d57600080fd5b84356001600160401b038082111561134457600080fd5b611350888389016112cc565b9096509450602087013591508082111561136957600080fd5b50611376878288016112cc565b95989497509550505050565b6000806040838503121561139557600080fd5b61139e83610e52565b9150602083013580151581146113b357600080fd5b809150509250929050565b600080604083850312156113d157600080fd5b6113da83610e52565b91506113e860208401610e52565b90509250929050565b600080600080600060a0868803121561140957600080fd5b61141286610e52565b945061142060208701610e52565b9350604086013592506060860135915060808601356001600160401b0381111561144957600080fd5b61113688828901611027565b60006020828403121561146757600080fd5b610ece82610e52565b600181811c9082168061148457607f821691505b6020821081036114a457634e487b7160e01b600052602260045260246000fd5b50919050565b60008084546114b881611470565b600182811680156114d057600181146114e557611514565b60ff1984168752821515830287019450611514565b8860005260208060002060005b8581101561150b5781548a8201529084019082016114f2565b50505082870194505b505050508351611528818360208801610ed5565b64173539b7b760d91b9101908152600501949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161157f5761157f611557565b5060010190565b601f82111561050457600081815260208120601f850160051c810160208610156115ad5750805b601f850160051c820191505b81811015610d8e578281556001016115b9565b6001600160401b038311156115e3576115e3610f51565b6115f7836115f18354611470565b83611586565b6000601f84116001811461162b57600085156116135750838201355b600019600387901b1c1916600186901b1783556103d2565b600083815260209020601f19861690835b8281101561165c578685013582556020948501946001909201910161163c565b50868210156116795760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60006001600160801b038083168181036116a7576116a7611557565b6001019392505050565b808201808211156102b5576102b5611557565b6040815260006116d7604083018561120d565b82810360208401526116e9818561120d565b95945050505050565b6001600160a01b0386811682528516602082015260a06040820181905260009061171e9083018661120d565b8281036060840152611730818661120d565b905082810360808401526117448185610ef9565b98975050505050505050565b60006020828403121561176257600080fd5b8151610ece81610e98565b600060033d11156117865760046000803e5060005160e01c5b90565b600060443d10156117975790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156117c657505050505090565b82850191508151818111156117de5750505050505090565b843d87010160208285010111156117f85750505050505090565b61180760208286010187610f67565b509095945050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061184c90830184610ef9565b97965050505050505056fea2646970667358221220b7a41ce1a936fb3cdcab5af35c36898ff3927ebf9e4ef7a011443fb6f0e493d464736f6c63430008120033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100e95760003560e01c80637c88e3d91161008c578063a22cb46511610066578063a22cb4651461021c578063e985e9c51461022f578063f242432a1461026b578063f2fde38b1461027e57600080fd5b80637c88e3d9146101ca5780638da5cb5b146101dd57806395d89b41146101f857600080fd5b80630e89341c116100c85780630e89341c1461016f5780632eb2c2d6146101825780634e1273f414610197578063570b3c6a146101b757600080fd5b8062fdd58e146100ee57806301ffc9a71461011457806306fdde0314610137575b600080fd5b6101016100fc366004610e6e565b610291565b6040519081526020015b60405180910390f35b610127610122366004610eb1565b6102bb565b604051901515815260200161010b565b60408051808201909152601381527213d41512535254d34813919508151250d2d155606a1b60208201525b60405161010b9190610f25565b61016261017d366004610f38565b61030c565b61019561019036600461109a565b61036a565b005b6101aa6101a5366004611143565b6103d9565b60405161010b9190611248565b6101956101c536600461125b565b6104cc565b6101956101d8366004611317565b610509565b6000546040516001600160a01b03909116815260200161010b565b6040805180820190915260088152674f5054494d49534d60c01b6020820152610162565b61019561022a366004611382565b61068c565b61012761023d3660046113be565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205460ff1690565b6101956102793660046113f1565b61069b565b61019561028c366004611455565b610703565b60008181526001602090815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b14806102ec57506001600160e01b031982166303a24d0760e21b145b806102b557506001600160e01b031982166301ffc9a760e01b1492915050565b606060006003805461031d90611470565b90501161033957604051806020016040528060008152506102b5565b600361034483610789565b6040516020016103559291906114aa565b60405160208183030381529060405292915050565b6001600160a01b03851633148015906103a757506001600160a01b038516600090815260026020908152604080832033845290915290205460ff16155b156103c557604051634cd9539b60e11b815260040160405180910390fd5b6103d2858585858561081b565b5050505050565b6060600083516001600160401b038111156103f6576103f6610f51565b60405190808252806020026020018201604052801561041f578160200160208202803683370190505b50905060005b84518110156104c4576001600085838151811061044457610444611541565b60200260200101518152602001908152602001600020600086838151811061046e5761046e611541565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020548282815181106104a9576104a9611541565b60209081029190910101526104bd8161156d565b9050610425565b509392505050565b6000546001600160a01b031633146104f7576040516330cd747160e01b815260040160405180910390fd5b60036105048284836115cc565b505050565b6000546001600160a01b03163314610534576040516330cd747160e01b815260040160405180910390fd5b60005b6001600160801b0381168211156103d257600160008484846001600160801b031681811061056757610567611541565b90506020020135815260200190815260200160002060008686846001600160801b031681811061059957610599611541565b90506020020160208101906105ae9190611455565b6001600160a01b03168152602081019190915260400160009081208054916105d58361156d565b91905055508484826001600160801b03168181106105f5576105f5611541565b905060200201602081019061060a9190611455565b6001600160a01b03166000337fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6286866001600160801b03871681811061065257610652611541565b905060200201356001604051610672929190918252602082015260400190565b60405180910390a4806106848161168b565b915050610537565b610697338383610a1a565b5050565b6001600160a01b03851633148015906106d857506001600160a01b038516600090815260026020908152604080832033845290915290205460ff16155b156106f657604051634cd9539b60e11b815260040160405180910390fd5b6103d28585858585610ab9565b6000546001600160a01b0316331461072e576040516330cd747160e01b815260040160405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6060600061079683610b9b565b60010190506000816001600160401b038111156107b5576107b5610f51565b6040519080825280601f01601f1916602001820160405280156107df576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846107e957509392505050565b60005b83518110156109b4576001600085838151811061083d5761083d611541565b602002602001015181526020019081526020016000206000876001600160a01b03166001600160a01b031681526020019081526020016000205483828151811061088957610889611541565b602002602001015111156108b057604051631e9acf1760e31b815260040160405180910390fd5b8281815181106108c2576108c2611541565b6020026020010151600160008684815181106108e0576108e0611541565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254039250508190555082818151811061093857610938611541565b60200260200101516001600086848151811061095657610956611541565b602002602001015181526020019081526020016000206000876001600160a01b03166001600160a01b03168152602001908152602001600020600082825461099e91906116b1565b909155506109ad90508161156d565b905061081e565b50836001600160a01b0316856001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051610a049291906116c4565b60405180910390a46103d2338686868686610c73565b816001600160a01b0316836001600160a01b031603610a4c57604051633cf0df2360e01b815260040160405180910390fd5b6001600160a01b03838116600081815260026020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60008381526001602090815260408083206001600160a01b0389168452909152902054821115610afc57604051631e9acf1760e31b815260040160405180910390fd5b60008381526001602090815260408083206001600160a01b038981168552925280832080548690039055908616825281208054849290610b3d9084906116b1565b909155505060408051848152602081018490526001600160a01b03808716929088169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46103d2338686868686610d96565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610bda5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610c06576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610c2457662386f26fc10000830492506010015b6305f5e1008310610c3c576305f5e100830492506008015b6127108310610c5057612710830492506004015b60648310610c62576064830492506002015b600a83106102b55760010192915050565b6001600160a01b0384163b15610d8e5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190610cb790899089908890889088906004016116f2565b6020604051808303816000875af1925050508015610cf2575060408051601f3d908101601f19168201909252610cef91810190611750565b60015b610d5b57610cfe61176d565b806308c379a003610d405750610d12611789565b80610d1d5750610d42565b8060405162461bcd60e51b8152600401610d379190610f25565b60405180910390fd5b505b6040516360a54e3360e11b815260040160405180910390fd5b6001600160e01b0319811663bc197c8160e01b14610d8c5760405163086d127360e01b815260040160405180910390fd5b505b505050505050565b6001600160a01b0384163b15610d8e5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190610dda9089908990889088908890600401611812565b6020604051808303816000875af1925050508015610e15575060408051601f3d908101601f19168201909252610e1291810190611750565b60015b610e2157610cfe61176d565b6001600160e01b0319811663f23a6e6160e01b14610d8c5760405163086d127360e01b815260040160405180910390fd5b80356001600160a01b0381168114610e6957600080fd5b919050565b60008060408385031215610e8157600080fd5b610e8a83610e52565b946020939093013593505050565b6001600160e01b031981168114610eae57600080fd5b50565b600060208284031215610ec357600080fd5b8135610ece81610e98565b9392505050565b60005b83811015610ef0578181015183820152602001610ed8565b50506000910152565b60008151808452610f11816020860160208601610ed5565b601f01601f19169290920160200192915050565b602081526000610ece6020830184610ef9565b600060208284031215610f4a57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715610f8c57610f8c610f51565b6040525050565b60006001600160401b03821115610fac57610fac610f51565b5060051b60200190565b600082601f830112610fc757600080fd5b81356020610fd482610f93565b604051610fe18282610f67565b83815260059390931b850182019282810191508684111561100157600080fd5b8286015b8481101561101c5780358352918301918301611005565b509695505050505050565b600082601f83011261103857600080fd5b81356001600160401b0381111561105157611051610f51565b604051611068601f8301601f191660200182610f67565b81815284602083860101111561107d57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156110b257600080fd5b6110bb86610e52565b94506110c960208701610e52565b935060408601356001600160401b03808211156110e557600080fd5b6110f189838a01610fb6565b9450606088013591508082111561110757600080fd5b61111389838a01610fb6565b9350608088013591508082111561112957600080fd5b5061113688828901611027565b9150509295509295909350565b6000806040838503121561115657600080fd5b82356001600160401b038082111561116d57600080fd5b818501915085601f83011261118157600080fd5b8135602061118e82610f93565b60405161119b8282610f67565b83815260059390931b85018201928281019150898411156111bb57600080fd5b948201945b838610156111e0576111d186610e52565b825294820194908201906111c0565b965050860135925050808211156111f657600080fd5b5061120385828601610fb6565b9150509250929050565b600081518084526020808501945080840160005b8381101561123d57815187529582019590820190600101611221565b509495945050505050565b602081526000610ece602083018461120d565b6000806020838503121561126e57600080fd5b82356001600160401b038082111561128557600080fd5b818501915085601f83011261129957600080fd5b8135818111156112a857600080fd5b8660208285010111156112ba57600080fd5b60209290920196919550909350505050565b60008083601f8401126112de57600080fd5b5081356001600160401b038111156112f557600080fd5b6020830191508360208260051b850101111561131057600080fd5b9250929050565b6000806000806040858703121561132d57600080fd5b84356001600160401b038082111561134457600080fd5b611350888389016112cc565b9096509450602087013591508082111561136957600080fd5b50611376878288016112cc565b95989497509550505050565b6000806040838503121561139557600080fd5b61139e83610e52565b9150602083013580151581146113b357600080fd5b809150509250929050565b600080604083850312156113d157600080fd5b6113da83610e52565b91506113e860208401610e52565b90509250929050565b600080600080600060a0868803121561140957600080fd5b61141286610e52565b945061142060208701610e52565b9350604086013592506060860135915060808601356001600160401b0381111561144957600080fd5b61113688828901611027565b60006020828403121561146757600080fd5b610ece82610e52565b600181811c9082168061148457607f821691505b6020821081036114a457634e487b7160e01b600052602260045260246000fd5b50919050565b60008084546114b881611470565b600182811680156114d057600181146114e557611514565b60ff1984168752821515830287019450611514565b8860005260208060002060005b8581101561150b5781548a8201529084019082016114f2565b50505082870194505b505050508351611528818360208801610ed5565b64173539b7b760d91b9101908152600501949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161157f5761157f611557565b5060010190565b601f82111561050457600081815260208120601f850160051c810160208610156115ad5750805b601f850160051c820191505b81811015610d8e578281556001016115b9565b6001600160401b038311156115e3576115e3610f51565b6115f7836115f18354611470565b83611586565b6000601f84116001811461162b57600085156116135750838201355b600019600387901b1c1916600186901b1783556103d2565b600083815260209020601f19861690835b8281101561165c578685013582556020948501946001909201910161163c565b50868210156116795760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60006001600160801b038083168181036116a7576116a7611557565b6001019392505050565b808201808211156102b5576102b5611557565b6040815260006116d7604083018561120d565b82810360208401526116e9818561120d565b95945050505050565b6001600160a01b0386811682528516602082015260a06040820181905260009061171e9083018661120d565b8281036060840152611730818661120d565b905082810360808401526117448185610ef9565b98975050505050505050565b60006020828403121561176257600080fd5b8151610ece81610e98565b600060033d11156117865760046000803e5060005160e01c5b90565b600060443d10156117975790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156117c657505050505090565b82850191508151818111156117de5750505050505090565b843d87010160208285010111156117f85750505050505090565b61180760208286010187610f67565b509095945050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061184c90830184610ef9565b97965050505050505056fea2646970667358221220b7a41ce1a936fb3cdcab5af35c36898ff3927ebf9e4ef7a011443fb6f0e493d464736f6c63430008120033
Deployed Bytecode Sourcemap
10452:6806:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11791:162;;;;;;:::i;:::-;;:::i;:::-;;;597:25:1;;;585:2;570:18;11791:162:0;;;;;;;;11248:298;;;;;;:::i;:::-;;:::i;:::-;;;1184:14:1;;1177:22;1159:41;;1147:2;1132:18;11248:298:0;1019:187:1;11058:85:0;11130:5;;;;;;;;;;;;-1:-1:-1;;;11130:5:0;;;;11058:85;;;;;;;:::i;11554:229::-;;;;;;:::i;:::-;;:::i;13097:388::-;;;;;;:::i;:::-;;:::i;:::-;;11961:389;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;16843:90::-;;;;;;:::i;:::-;;:::i;16941:314::-;;;;;;:::i;:::-;;:::i;503:87::-;549:7;576:6;503:87;;-1:-1:-1;;;;;576:6:0;;;8775:51:1;;8763:2;8748:18;503:87:0;8629:203:1;11151:89:0;11225:7;;;;;;;;;;;;-1:-1:-1;;;11225:7:0;;;;11151:89;;12358:172;;;;;;:::i;:::-;;:::i;12538:187::-;;;;;;:::i;:::-;-1:-1:-1;;;;;12680:27:0;;;12656:4;12680:27;;;:18;:27;;;;;;;;:37;;;;;;;;;;;;;;;12538:187;12733:356;;;;;;:::i;:::-;;:::i;598:160::-;;;;;;:::i;:::-;;:::i;11791:162::-;11896:7;11923:13;;;:9;:13;;;;;;;;-1:-1:-1;;;;;11923:22:0;;;;;;;;;;11791:162;;;;;:::o;11248:298::-;11334:4;-1:-1:-1;;;;;;11371:41:0;;-1:-1:-1;;;11371:41:0;;:110;;-1:-1:-1;;;;;;;11429:52:0;;-1:-1:-1;;;11429:52:0;11371:110;:167;;;-1:-1:-1;;;;;;;11498:40:0;;-1:-1:-1;;;11498:40:0;11351:187;11248:298;-1:-1:-1;;11248:298:0:o;11554:229::-;11611:13;11678:1;11663:4;11657:18;;;;;:::i;:::-;;;:22;:118;;;;;;;;;;;;;;;;;11723:4;11729:13;:2;:11;:13::i;:::-;11706:46;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11637:138;11554:229;-1:-1:-1;;11554:229:0:o;13097:388::-;-1:-1:-1;;;;;13306:18:0;;13314:10;13306:18;;;;:59;;-1:-1:-1;;;;;;13329:24:0;;;;;;:18;:24;;;;;;;;13354:10;13329:36;;;;;;;;;;13328:37;13306:59;13302:110;;;13387:25;;-1:-1:-1;;;13387:25:0;;;;;;;;;;;13302:110;13425:52;13448:4;13454:2;13458:3;13463:7;13472:4;13425:22;:52::i;:::-;13097:388;;;;;:::o;11961:389::-;12091:16;12120:30;12167:8;:15;-1:-1:-1;;;;;12153:30:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12153:30:0;;12120:63;;12199:9;12194:118;12214:8;:15;12210:1;:19;12194:118;;;12270:9;:17;12280:3;12284:1;12280:6;;;;;;;;:::i;:::-;;;;;;;12270:17;;;;;;;;;;;:30;12288:8;12297:1;12288:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;12270:30:0;-1:-1:-1;;;;;12270:30:0;;;;;;;;;;;;;12251:13;12265:1;12251:16;;;;;;;;:::i;:::-;;;;;;;;;;:49;12231:3;;;:::i;:::-;;;12194:118;;;-1:-1:-1;12329:13:0;11961:389;-1:-1:-1;;;11961:389:0:o;16843:90::-;316:6;;-1:-1:-1;;;;;316:6:0;326:10;316:20;312:43;;345:10;;-1:-1:-1;;;345:10:0;;;;;;;;;;;312:43;16914:4:::1;:11;16921:4:::0;;16914;:11:::1;:::i;:::-;;16843:90:::0;;:::o;16941:314::-;316:6;;-1:-1:-1;;;;;316:6:0;326:10;316:20;312:43;;345:10;;-1:-1:-1;;;345:10:0;;;;;;;;;;;312:43;17072:9:::1;17067:181;-1:-1:-1::0;;;;;17083:19:0;::::1;::::0;-1:-1:-1;17067:181:0::1;;;17124:9;:22;17134:8;;17143:1;-1:-1:-1::0;;;;;17134:11:0::1;;;;;;;;:::i;:::-;;;;;;;17124:22;;;;;;;;;;;:29;17147:2;;17150:1;-1:-1:-1::0;;;;;17147:5:0::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17124:29:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17124:29:0;;;:31;;;::::1;::::0;::::1;:::i;:::-;;;;;;17214:2;;17217:1;-1:-1:-1::0;;;;;17214:5:0::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17175:61:0::1;17210:1;17190:10;17175:61;17221:8:::0;;-1:-1:-1;;;;;17221:11:0;::::1;::::0;;::::1;;;;;:::i;:::-;;;;;;;17234:1;17175:61;;;;;;14477:25:1::0;;;14533:2;14518:18;;14511:34;14465:2;14450:18;;14295:256;17175:61:0::1;;;;;;;;17104:3:::0;::::1;::::0;::::1;:::i;:::-;;;;17067:181;;12358:172:::0;12472:50;12491:10;12503:8;12513;12472:18;:50::i;:::-;12358:172;;:::o;12733:356::-;-1:-1:-1;;;;;12917:18:0;;12925:10;12917:18;;;;:59;;-1:-1:-1;;;;;;12940:24:0;;;;;;:18;:24;;;;;;;;12965:10;12940:36;;;;;;;;;;12939:37;12917:59;12913:110;;;12998:25;;-1:-1:-1;;;12998:25:0;;;;;;;;;;;12913:110;13036:45;13054:4;13060:2;13064;13068:6;13076:4;13036:17;:45::i;598:160::-;316:6;;-1:-1:-1;;;;;316:6:0;326:10;316:20;312:43;;345:10;;-1:-1:-1;;;345:10:0;;;;;;;;;;;312:43;705:6:::1;::::0;;684:38:::1;::::0;-1:-1:-1;;;;;684:38:0;;::::1;::::0;705:6;::::1;::::0;684:38:::1;::::0;::::1;733:6;:17:::0;;-1:-1:-1;;;;;;733:17:0::1;-1:-1:-1::0;;;;;733:17:0;;;::::1;::::0;;;::::1;::::0;;598:160::o;9729:716::-;9785:13;9836:14;9853:17;9864:5;9853:10;:17::i;:::-;9873:1;9853:21;9836:38;;9889:20;9923:6;-1:-1:-1;;;;;9912:18:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9912:18:0;-1:-1:-1;9889:41:0;-1:-1:-1;10054:28:0;;;10070:2;10054:28;10111:288;-1:-1:-1;;10143:5:0;-1:-1:-1;;;10280:2:0;10269:14;;10264:30;10143:5;10251:44;10341:2;10332:11;;;-1:-1:-1;10362:21:0;10111:288;10362:21;-1:-1:-1;10420:6:0;9729:716;-1:-1:-1;;;9729:716:0:o;14001:742::-;14202:9;14197:297;14217:3;:10;14213:1;:14;14197:297;;;14266:9;:17;14276:3;14280:1;14276:6;;;;;;;;:::i;:::-;;;;;;;14266:17;;;;;;;;;;;:23;14284:4;-1:-1:-1;;;;;14266:23:0;-1:-1:-1;;;;;14266:23:0;;;;;;;;;;;;;14253:7;14261:1;14253:10;;;;;;;;:::i;:::-;;;;;;;:36;14249:87;;;14315:21;;-1:-1:-1;;;14315:21:0;;;;;;;;;;;14249:87;14407:7;14415:1;14407:10;;;;;;;;:::i;:::-;;;;;;;14380:9;:17;14390:3;14394:1;14390:6;;;;;;;;:::i;:::-;;;;;;;14380:17;;;;;;;;;;;:23;14398:4;-1:-1:-1;;;;;14380:23:0;-1:-1:-1;;;;;14380:23:0;;;;;;;;;;;;;:37;;;;;;;;;;;14472:7;14480:1;14472:10;;;;;;;;:::i;:::-;;;;;;;14447:9;:17;14457:3;14461:1;14457:6;;;;;;;;:::i;:::-;;;;;;;14447:17;;;;;;;;;;;:21;14465:2;-1:-1:-1;;;;;14447:21:0;-1:-1:-1;;;;;14447:21:0;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;14229:3:0;;-1:-1:-1;14229:3:0;;:::i;:::-;;;14197:297;;;;14541:2;-1:-1:-1;;;;;14509:49:0;14535:4;-1:-1:-1;;;;;14509:49:0;14523:10;-1:-1:-1;;;;;14509:49:0;;14545:3;14550:7;14509:49;;;;;;;:::i;:::-;;;;;;;;14569:166;14619:10;14644:4;14663:2;14680:3;14698:7;14720:4;14569:35;:166::i;14751:295::-;14893:8;-1:-1:-1;;;;;14884:17:0;:5;-1:-1:-1;;;;;14884:17:0;;14880:44;;14910:14;;-1:-1:-1;;;14910:14:0;;;;;;;;;;;14880:44;-1:-1:-1;;;;;14935:25:0;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;14935:46:0;;;;;;;;;;14997:41;;1159::1;;;14997::0;;1132:18:1;14997:41:0;;;;;;;14751:295;;;:::o;13493:500::-;13677:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;13677:19:0;;;;;;;;;;13668:28;;13664:62;;;13705:21;;-1:-1:-1;;;13705:21:0;;;;;;;;;;;13664:62;13762:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;13762:19:0;;;;;;;;;;:29;;;;;;;13813:17;;;;;;;:27;;13762:29;;:13;13813:27;;13762:29;;13813:27;:::i;:::-;;;;-1:-1:-1;;13856:48:0;;;14477:25:1;;;14533:2;14518:18;;14511:34;;;-1:-1:-1;;;;;13856:48:0;;;;;;;;13871:10;;13856:48;;14450:18:1;13856:48:0;;;;;;;13915:70;13946:10;13958:4;13964:2;13968;13972:6;13980:4;13915:30;:70::i;8688:948::-;8741:7;;-1:-1:-1;;;8819:17:0;;8815:106;;-1:-1:-1;;;8857:17:0;;;-1:-1:-1;8903:2:0;8893:12;8815:106;8948:8;8939:5;:17;8935:106;;8986:8;8977:17;;;-1:-1:-1;9023:2:0;9013:12;8935:106;9068:8;9059:5;:17;9055:106;;9106:8;9097:17;;;-1:-1:-1;9143:2:0;9133:12;9055:106;9188:7;9179:5;:16;9175:103;;9225:7;9216:16;;;-1:-1:-1;9261:1:0;9251:11;9175:103;9305:7;9296:5;:16;9292:103;;9342:7;9333:16;;;-1:-1:-1;9378:1:0;9368:11;9292:103;9422:7;9413:5;:16;9409:103;;9459:7;9450:16;;;-1:-1:-1;9495:1:0;9485:11;9409:103;9539:7;9530:5;:16;9526:68;;9577:1;9567:11;9622:6;8688:948;-1:-1:-1;;8688:948:0:o;15910:925::-;-1:-1:-1;;;;;16150:14:0;;;:18;16146:682;;16206:203;;-1:-1:-1;;;16206:203:0;;-1:-1:-1;;;;;16206:43:0;;;;;:203;;16272:8;;16303:4;;16330:3;;16356:7;;16386:4;;16206:203;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16206:203:0;;;;;;;;-1:-1:-1;;16206:203:0;;;;;;;;;;;;:::i;:::-;;;16185:632;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;16725:6;16718:14;;-1:-1:-1;;;16718:14:0;;;;;;;;:::i;:::-;;;;;;;;16185:632;;;16781:20;;-1:-1:-1;;;16781:20:0;;;;;;;;;;;16185:632;-1:-1:-1;;;;;;16494:60:0;;-1:-1:-1;;;16494:60:0;16468:181;;16604:25;;-1:-1:-1;;;16604:25:0;;;;;;;;;;;16468:181;16423:241;16185:632;15910:925;;;;;;:::o;15054:848::-;-1:-1:-1;;;;;15269:14:0;;;:18;15265:630;;15325:196;;-1:-1:-1;;;15325:196:0;;-1:-1:-1;;;;;15325:38:0;;;;;:196;;15386:8;;15417:4;;15444:2;;15469:6;;15498:4;;15325:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15325:196:0;;;;;;;;-1:-1:-1;;15325:196:0;;;;;;;;;;;;:::i;:::-;;;15304:580;;;;:::i;:::-;-1:-1:-1;;;;;;15584:55:0;;-1:-1:-1;;;15584:55:0;15580:136;;15671:25;;-1:-1:-1;;;15671:25:0;;;;;;;;;;;14:173:1;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:254::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;436:2;421:18;;;;408:32;;-1:-1:-1;;;192:254:1:o;633:131::-;-1:-1:-1;;;;;;707:32:1;;697:43;;687:71;;754:1;751;744:12;687:71;633:131;:::o;769:245::-;827:6;880:2;868:9;859:7;855:23;851:32;848:52;;;896:1;893;886:12;848:52;935:9;922:23;954:30;978:5;954:30;:::i;:::-;1003:5;769:245;-1:-1:-1;;;769:245:1:o;1211:250::-;1296:1;1306:113;1320:6;1317:1;1314:13;1306:113;;;1396:11;;;1390:18;1377:11;;;1370:39;1342:2;1335:10;1306:113;;;-1:-1:-1;;1453:1:1;1435:16;;1428:27;1211:250::o;1466:271::-;1508:3;1546:5;1540:12;1573:6;1568:3;1561:19;1589:76;1658:6;1651:4;1646:3;1642:14;1635:4;1628:5;1624:16;1589:76;:::i;:::-;1719:2;1698:15;-1:-1:-1;;1694:29:1;1685:39;;;;1726:4;1681:50;;1466:271;-1:-1:-1;;1466:271:1:o;1742:220::-;1891:2;1880:9;1873:21;1854:4;1911:45;1952:2;1941:9;1937:18;1929:6;1911:45;:::i;1967:180::-;2026:6;2079:2;2067:9;2058:7;2054:23;2050:32;2047:52;;;2095:1;2092;2085:12;2047:52;-1:-1:-1;2118:23:1;;1967:180;-1:-1:-1;1967:180:1:o;2152:127::-;2213:10;2208:3;2204:20;2201:1;2194:31;2244:4;2241:1;2234:15;2268:4;2265:1;2258:15;2284:249;2394:2;2375:13;;-1:-1:-1;;2371:27:1;2359:40;;-1:-1:-1;;;;;2414:34:1;;2450:22;;;2411:62;2408:88;;;2476:18;;:::i;:::-;2512:2;2505:22;-1:-1:-1;;2284:249:1:o;2538:183::-;2598:4;-1:-1:-1;;;;;2623:6:1;2620:30;2617:56;;;2653:18;;:::i;:::-;-1:-1:-1;2698:1:1;2694:14;2710:4;2690:25;;2538:183::o;2726:724::-;2780:5;2833:3;2826:4;2818:6;2814:17;2810:27;2800:55;;2851:1;2848;2841:12;2800:55;2887:6;2874:20;2913:4;2936:43;2976:2;2936:43;:::i;:::-;3008:2;3002:9;3020:31;3048:2;3040:6;3020:31;:::i;:::-;3086:18;;;3178:1;3174:10;;;;3162:23;;3158:32;;;3120:15;;;;-1:-1:-1;3202:15:1;;;3199:35;;;3230:1;3227;3220:12;3199:35;3266:2;3258:6;3254:15;3278:142;3294:6;3289:3;3286:15;3278:142;;;3360:17;;3348:30;;3398:12;;;;3311;;3278:142;;;-1:-1:-1;3438:6:1;2726:724;-1:-1:-1;;;;;;2726:724:1:o;3455:555::-;3497:5;3550:3;3543:4;3535:6;3531:17;3527:27;3517:55;;3568:1;3565;3558:12;3517:55;3604:6;3591:20;-1:-1:-1;;;;;3626:2:1;3623:26;3620:52;;;3652:18;;:::i;:::-;3701:2;3695:9;3713:67;3768:2;3749:13;;-1:-1:-1;;3745:27:1;3774:4;3741:38;3695:9;3713:67;:::i;:::-;3804:2;3796:6;3789:18;3850:3;3843:4;3838:2;3830:6;3826:15;3822:26;3819:35;3816:55;;;3867:1;3864;3857:12;3816:55;3931:2;3924:4;3916:6;3912:17;3905:4;3897:6;3893:17;3880:54;3978:1;3954:15;;;3971:4;3950:26;3943:37;;;;3958:6;3455:555;-1:-1:-1;;;3455:555:1:o;4015:943::-;4169:6;4177;4185;4193;4201;4254:3;4242:9;4233:7;4229:23;4225:33;4222:53;;;4271:1;4268;4261:12;4222:53;4294:29;4313:9;4294:29;:::i;:::-;4284:39;;4342:38;4376:2;4365:9;4361:18;4342:38;:::i;:::-;4332:48;;4431:2;4420:9;4416:18;4403:32;-1:-1:-1;;;;;4495:2:1;4487:6;4484:14;4481:34;;;4511:1;4508;4501:12;4481:34;4534:61;4587:7;4578:6;4567:9;4563:22;4534:61;:::i;:::-;4524:71;;4648:2;4637:9;4633:18;4620:32;4604:48;;4677:2;4667:8;4664:16;4661:36;;;4693:1;4690;4683:12;4661:36;4716:63;4771:7;4760:8;4749:9;4745:24;4716:63;:::i;:::-;4706:73;;4832:3;4821:9;4817:19;4804:33;4788:49;;4862:2;4852:8;4849:16;4846:36;;;4878:1;4875;4868:12;4846:36;;4901:51;4944:7;4933:8;4922:9;4918:24;4901:51;:::i;:::-;4891:61;;;4015:943;;;;;;;;:::o;4963:1208::-;5081:6;5089;5142:2;5130:9;5121:7;5117:23;5113:32;5110:52;;;5158:1;5155;5148:12;5110:52;5198:9;5185:23;-1:-1:-1;;;;;5268:2:1;5260:6;5257:14;5254:34;;;5284:1;5281;5274:12;5254:34;5322:6;5311:9;5307:22;5297:32;;5367:7;5360:4;5356:2;5352:13;5348:27;5338:55;;5389:1;5386;5379:12;5338:55;5425:2;5412:16;5447:4;5470:43;5510:2;5470:43;:::i;:::-;5542:2;5536:9;5554:31;5582:2;5574:6;5554:31;:::i;:::-;5620:18;;;5708:1;5704:10;;;;5696:19;;5692:28;;;5654:15;;;;-1:-1:-1;5732:19:1;;;5729:39;;;5764:1;5761;5754:12;5729:39;5788:11;;;;5808:148;5824:6;5819:3;5816:15;5808:148;;;5890:23;5909:3;5890:23;:::i;:::-;5878:36;;5841:12;;;;5934;;;;5808:148;;;5975:6;-1:-1:-1;;6019:18:1;;6006:32;;-1:-1:-1;;6050:16:1;;;6047:36;;;6079:1;6076;6069:12;6047:36;;6102:63;6157:7;6146:8;6135:9;6131:24;6102:63;:::i;:::-;6092:73;;;4963:1208;;;;;:::o;6176:435::-;6229:3;6267:5;6261:12;6294:6;6289:3;6282:19;6320:4;6349:2;6344:3;6340:12;6333:19;;6386:2;6379:5;6375:14;6407:1;6417:169;6431:6;6428:1;6425:13;6417:169;;;6492:13;;6480:26;;6526:12;;;;6561:15;;;;6453:1;6446:9;6417:169;;;-1:-1:-1;6602:3:1;;6176:435;-1:-1:-1;;;;;6176:435:1:o;6616:261::-;6795:2;6784:9;6777:21;6758:4;6815:56;6867:2;6856:9;6852:18;6844:6;6815:56;:::i;6882:592::-;6953:6;6961;7014:2;7002:9;6993:7;6989:23;6985:32;6982:52;;;7030:1;7027;7020:12;6982:52;7070:9;7057:23;-1:-1:-1;;;;;7140:2:1;7132:6;7129:14;7126:34;;;7156:1;7153;7146:12;7126:34;7194:6;7183:9;7179:22;7169:32;;7239:7;7232:4;7228:2;7224:13;7220:27;7210:55;;7261:1;7258;7251:12;7210:55;7301:2;7288:16;7327:2;7319:6;7316:14;7313:34;;;7343:1;7340;7333:12;7313:34;7388:7;7383:2;7374:6;7370:2;7366:15;7362:24;7359:37;7356:57;;;7409:1;7406;7399:12;7356:57;7440:2;7432:11;;;;;7462:6;;-1:-1:-1;6882:592:1;;-1:-1:-1;;;;6882:592:1:o;7479:367::-;7542:8;7552:6;7606:3;7599:4;7591:6;7587:17;7583:27;7573:55;;7624:1;7621;7614:12;7573:55;-1:-1:-1;7647:20:1;;-1:-1:-1;;;;;7679:30:1;;7676:50;;;7722:1;7719;7712:12;7676:50;7759:4;7751:6;7747:17;7735:29;;7819:3;7812:4;7802:6;7799:1;7795:14;7787:6;7783:27;7779:38;7776:47;7773:67;;;7836:1;7833;7826:12;7773:67;7479:367;;;;;:::o;7851:773::-;7973:6;7981;7989;7997;8050:2;8038:9;8029:7;8025:23;8021:32;8018:52;;;8066:1;8063;8056:12;8018:52;8106:9;8093:23;-1:-1:-1;;;;;8176:2:1;8168:6;8165:14;8162:34;;;8192:1;8189;8182:12;8162:34;8231:70;8293:7;8284:6;8273:9;8269:22;8231:70;:::i;:::-;8320:8;;-1:-1:-1;8205:96:1;-1:-1:-1;8408:2:1;8393:18;;8380:32;;-1:-1:-1;8424:16:1;;;8421:36;;;8453:1;8450;8443:12;8421:36;;8492:72;8556:7;8545:8;8534:9;8530:24;8492:72;:::i;:::-;7851:773;;;;-1:-1:-1;8583:8:1;-1:-1:-1;;;;7851:773:1:o;8837:347::-;8902:6;8910;8963:2;8951:9;8942:7;8938:23;8934:32;8931:52;;;8979:1;8976;8969:12;8931:52;9002:29;9021:9;9002:29;:::i;:::-;8992:39;;9081:2;9070:9;9066:18;9053:32;9128:5;9121:13;9114:21;9107:5;9104:32;9094:60;;9150:1;9147;9140:12;9094:60;9173:5;9163:15;;;8837:347;;;;;:::o;9189:260::-;9257:6;9265;9318:2;9306:9;9297:7;9293:23;9289:32;9286:52;;;9334:1;9331;9324:12;9286:52;9357:29;9376:9;9357:29;:::i;:::-;9347:39;;9405:38;9439:2;9428:9;9424:18;9405:38;:::i;:::-;9395:48;;9189:260;;;;;:::o;9454:606::-;9558:6;9566;9574;9582;9590;9643:3;9631:9;9622:7;9618:23;9614:33;9611:53;;;9660:1;9657;9650:12;9611:53;9683:29;9702:9;9683:29;:::i;:::-;9673:39;;9731:38;9765:2;9754:9;9750:18;9731:38;:::i;:::-;9721:48;;9816:2;9805:9;9801:18;9788:32;9778:42;;9867:2;9856:9;9852:18;9839:32;9829:42;;9922:3;9911:9;9907:19;9894:33;-1:-1:-1;;;;;9942:6:1;9939:30;9936:50;;;9982:1;9979;9972:12;9936:50;10005:49;10046:7;10037:6;10026:9;10022:22;10005:49;:::i;10065:186::-;10124:6;10177:2;10165:9;10156:7;10152:23;10148:32;10145:52;;;10193:1;10190;10183:12;10145:52;10216:29;10235:9;10216:29;:::i;10256:380::-;10335:1;10331:12;;;;10378;;;10399:61;;10453:4;10445:6;10441:17;10431:27;;10399:61;10506:2;10498:6;10495:14;10475:18;10472:38;10469:161;;10552:10;10547:3;10543:20;10540:1;10533:31;10587:4;10584:1;10577:15;10615:4;10612:1;10605:15;10469:161;;10256:380;;;:::o;10767:1187::-;11044:3;11073:1;11106:6;11100:13;11136:36;11162:9;11136:36;:::i;:::-;11191:1;11208:18;;;11235:133;;;;11382:1;11377:356;;;;11201:532;;11235:133;-1:-1:-1;;11268:24:1;;11256:37;;11341:14;;11334:22;11322:35;;11313:45;;;-1:-1:-1;11235:133:1;;11377:356;11408:6;11405:1;11398:17;11438:4;11483:2;11480:1;11470:16;11508:1;11522:165;11536:6;11533:1;11530:13;11522:165;;;11614:14;;11601:11;;;11594:35;11657:16;;;;11551:10;;11522:165;;;11526:3;;;11716:6;11711:3;11707:16;11700:23;;11201:532;;;;;11764:6;11758:13;11780:68;11839:8;11834:3;11827:4;11819:6;11815:17;11780:68;:::i;:::-;-1:-1:-1;;;11870:18:1;;11897:22;;;11946:1;11935:13;;10767:1187;-1:-1:-1;;;;10767:1187:1:o;11959:127::-;12020:10;12015:3;12011:20;12008:1;12001:31;12051:4;12048:1;12041:15;12075:4;12072:1;12065:15;12091:127;12152:10;12147:3;12143:20;12140:1;12133:31;12183:4;12180:1;12173:15;12207:4;12204:1;12197:15;12223:135;12262:3;12283:17;;;12280:43;;12303:18;;:::i;:::-;-1:-1:-1;12350:1:1;12339:13;;12223:135::o;12363:545::-;12465:2;12460:3;12457:11;12454:448;;;12501:1;12526:5;12522:2;12515:17;12571:4;12567:2;12557:19;12641:2;12629:10;12625:19;12622:1;12618:27;12612:4;12608:38;12677:4;12665:10;12662:20;12659:47;;;-1:-1:-1;12700:4:1;12659:47;12755:2;12750:3;12746:12;12743:1;12739:20;12733:4;12729:31;12719:41;;12810:82;12828:2;12821:5;12818:13;12810:82;;;12873:17;;;12854:1;12843:13;12810:82;;13084:1206;-1:-1:-1;;;;;13203:3:1;13200:27;13197:53;;;13230:18;;:::i;:::-;13259:94;13349:3;13309:38;13341:4;13335:11;13309:38;:::i;:::-;13303:4;13259:94;:::i;:::-;13379:1;13404:2;13399:3;13396:11;13421:1;13416:616;;;;14076:1;14093:3;14090:93;;;-1:-1:-1;14149:19:1;;;14136:33;14090:93;-1:-1:-1;;13041:1:1;13037:11;;;13033:24;13029:29;13019:40;13065:1;13061:11;;;13016:57;14196:78;;13389:895;;13416:616;10714:1;10707:14;;;10751:4;10738:18;;-1:-1:-1;;13452:17:1;;;13553:9;13575:229;13589:7;13586:1;13583:14;13575:229;;;13678:19;;;13665:33;13650:49;;13785:4;13770:20;;;;13738:1;13726:14;;;;13605:12;13575:229;;;13579:3;13832;13823:7;13820:16;13817:159;;;13956:1;13952:6;13946:3;13940;13937:1;13933:11;13929:21;13925:34;13921:39;13908:9;13903:3;13899:19;13886:33;13882:79;13874:6;13867:95;13817:159;;;14019:1;14013:3;14010:1;14006:11;14002:19;13996:4;13989:33;13389:895;;13084:1206;;;:::o;14556:226::-;14595:3;-1:-1:-1;;;;;14692:2:1;14685:5;14681:14;14719:2;14710:7;14707:15;14704:41;;14725:18;;:::i;:::-;14774:1;14761:15;;14556:226;-1:-1:-1;;;14556:226:1:o;14919:125::-;14984:9;;;15005:10;;;15002:36;;;15018:18;;:::i;15049:465::-;15306:2;15295:9;15288:21;15269:4;15332:56;15384:2;15373:9;15369:18;15361:6;15332:56;:::i;:::-;15436:9;15428:6;15424:22;15419:2;15408:9;15404:18;15397:50;15464:44;15501:6;15493;15464:44;:::i;:::-;15456:52;15049:465;-1:-1:-1;;;;;15049:465:1:o;15772:827::-;-1:-1:-1;;;;;16169:15:1;;;16151:34;;16221:15;;16216:2;16201:18;;16194:43;16131:3;16268:2;16253:18;;16246:31;;;16094:4;;16300:57;;16337:19;;16329:6;16300:57;:::i;:::-;16405:9;16397:6;16393:22;16388:2;16377:9;16373:18;16366:50;16439:44;16476:6;16468;16439:44;:::i;:::-;16425:58;;16532:9;16524:6;16520:22;16514:3;16503:9;16499:19;16492:51;16560:33;16586:6;16578;16560:33;:::i;:::-;16552:41;15772:827;-1:-1:-1;;;;;;;;15772:827:1:o;16604:249::-;16673:6;16726:2;16714:9;16705:7;16701:23;16697:32;16694:52;;;16742:1;16739;16732:12;16694:52;16774:9;16768:16;16793:30;16817:5;16793:30;:::i;16858:179::-;16893:3;16935:1;16917:16;16914:23;16911:120;;;16981:1;16978;16975;16960:23;-1:-1:-1;17018:1:1;17012:8;17007:3;17003:18;16911:120;16858:179;:::o;17042:671::-;17081:3;17123:4;17105:16;17102:26;17099:39;;;17042:671;:::o;17099:39::-;17165:2;17159:9;-1:-1:-1;;17230:16:1;17226:25;;17223:1;17159:9;17202:50;17281:4;17275:11;17305:16;-1:-1:-1;;;;;17411:2:1;17404:4;17396:6;17392:17;17389:25;17384:2;17376:6;17373:14;17370:45;17367:58;;;17418:5;;;;;17042:671;:::o;17367:58::-;17455:6;17449:4;17445:17;17434:28;;17491:3;17485:10;17518:2;17510:6;17507:14;17504:27;;;17524:5;;;;;;17042:671;:::o;17504:27::-;17608:2;17589:16;17583:4;17579:27;17575:36;17568:4;17559:6;17554:3;17550:16;17546:27;17543:69;17540:82;;;17615:5;;;;;;17042:671;:::o;17540:82::-;17631:57;17682:4;17673:6;17665;17661:19;17657:30;17651:4;17631:57;:::i;:::-;-1:-1:-1;17704:3:1;;17042:671;-1:-1:-1;;;;;17042:671:1:o;17718:561::-;-1:-1:-1;;;;;18015:15:1;;;17997:34;;18067:15;;18062:2;18047:18;;18040:43;18114:2;18099:18;;18092:34;;;18157:2;18142:18;;18135:34;;;17977:3;18200;18185:19;;18178:32;;;17940:4;;18227:46;;18253:19;;18245:6;18227:46;:::i;:::-;18219:54;17718:561;-1:-1:-1;;;;;;;17718:561:1:o
Swarm Source
ipfs://b7a41ce1a936fb3cdcab5af35c36898ff3927ebf9e4ef7a011443fb6f0e493d4
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.