ERC-1155
Overview
Max Total Supply
20,000
Holders
511
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
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PurpleLambo1155
Compiler Version
v0.8.21+commit.d9974bed
Optimization Enabled:
Yes with 10000 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.13; import {ERC1155} from "solmate/tokens/ERC1155.sol"; import {Ownable} from "openzeppelin/access/Ownable.sol"; import {Base64} from "openzeppelin/utils/Base64.sol"; /* ____ __ __ __ / __ \__ ___________ / /__ / / ____ _____ ___ / /_ ____ / /_/ / / / / ___/ __ \/ / _ \ / / / __ `/ __ `__ \/ __ \/ __ \ / ____/ /_/ / / / /_/ / / __/ / /___/ /_/ / / / / / / /_/ / /_/ / /_/ \__,_/_/ / .___/_/\___/ /_____/\__,_/_/ /_/ /_/_.___/\____/ /_/ */ contract PurpleLambo1155 is ERC1155, Ownable { uint256 max = 20_000; uint256 public totalSupply; error AmountExceedsLimit(); error AmountExceedsMaxSupply(); function uri(uint256 tokenId) public view override returns (string memory) { if (tokenId == 1) { bytes memory dataURI = abi.encodePacked( '{"name":"Purple Lambo","image":"https://arweave.net/tovQ6c5iuKah_wfPwGQT8W1m272C0O10uiuB0KFKEJo","description":"no dev just lambo. https://t.me/purplelamboerc20 https://etherscan.io/token/0xDF90124B8a10d52a5Df27d3f61f94F44ADe09f12"}' ); return string(abi.encodePacked("data:application/json;base64,", Base64.encode(dataURI))); } return ""; } function contractURI() public view returns (string memory) { bytes memory dataURI = abi.encodePacked( '{"name":"Purple Lambo","image":"https://arweave.net/tovQ6c5iuKah_wfPwGQT8W1m272C0O10uiuB0KFKEJo","description":"no dev just lambo. https://t.me/purplelamboerc20 https://etherscan.io/token/0xDF90124B8a10d52a5Df27d3f61f94F44ADe09f12"}' ); return string(abi.encodePacked("data:application/json;base64,", Base64.encode(dataURI))); } function mint(uint256 amount) public { if (amount > 10) { revert AmountExceedsLimit(); } if (totalSupply + amount > max) { revert AmountExceedsMaxSupply(); } totalSupply += amount; _mint(msg.sender, 1, amount, ""); } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Minimalist and gas efficient standard ERC1155 implementation. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol) abstract contract ERC1155 { /*////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event TransferSingle( address indexed operator, address indexed from, address indexed to, uint256 id, uint256 amount ); event TransferBatch( address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] amounts ); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); event URI(string value, uint256 indexed id); /*////////////////////////////////////////////////////////////// ERC1155 STORAGE //////////////////////////////////////////////////////////////*/ mapping(address => mapping(uint256 => uint256)) public balanceOf; mapping(address => mapping(address => bool)) public isApprovedForAll; /*////////////////////////////////////////////////////////////// METADATA LOGIC //////////////////////////////////////////////////////////////*/ function uri(uint256 id) public view virtual returns (string memory); /*////////////////////////////////////////////////////////////// ERC1155 LOGIC //////////////////////////////////////////////////////////////*/ function setApprovalForAll(address operator, bool approved) public virtual { isApprovedForAll[msg.sender][operator] = approved; emit ApprovalForAll(msg.sender, operator, approved); } function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes calldata data) public virtual { require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED"); balanceOf[from][id] -= amount; balanceOf[to][id] += amount; emit TransferSingle(msg.sender, from, to, id, amount); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, from, id, amount, data) == ERC1155TokenReceiver.onERC1155Received.selector, "UNSAFE_RECIPIENT" ); } function safeBatchTransferFrom( address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data ) public virtual { require(ids.length == amounts.length, "LENGTH_MISMATCH"); require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED"); // Storing these outside the loop saves ~15 gas per iteration. uint256 id; uint256 amount; for (uint256 i = 0; i < ids.length;) { id = ids[i]; amount = amounts[i]; balanceOf[from][id] -= amount; balanceOf[to][id] += amount; // An array can't have a total length // larger than the max uint256 value. unchecked { ++i; } } emit TransferBatch(msg.sender, from, to, ids, amounts); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, from, ids, amounts, data) == ERC1155TokenReceiver.onERC1155BatchReceived.selector, "UNSAFE_RECIPIENT" ); } function balanceOfBatch(address[] calldata owners, uint256[] calldata ids) public view virtual returns (uint256[] memory balances) { require(owners.length == ids.length, "LENGTH_MISMATCH"); balances = new uint256[](owners.length); // Unchecked because the only math done is incrementing // the array index counter which cannot possibly overflow. unchecked { for (uint256 i = 0; i < owners.length; ++i) { balances[i] = balanceOf[owners[i]][ids[i]]; } } } /*////////////////////////////////////////////////////////////// ERC165 LOGIC //////////////////////////////////////////////////////////////*/ function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) { return interfaceId == 0x01ffc9a7 // ERC165 Interface ID for ERC165 || interfaceId == 0xd9b67a26 // ERC165 Interface ID for ERC1155 || interfaceId == 0x0e89341c; // ERC165 Interface ID for ERC1155MetadataURI } /*////////////////////////////////////////////////////////////// INTERNAL MINT/BURN LOGIC //////////////////////////////////////////////////////////////*/ function _mint(address to, uint256 id, uint256 amount, bytes memory data) internal virtual { balanceOf[to][id] += amount; emit TransferSingle(msg.sender, address(0), to, id, amount); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, address(0), id, amount, data) == ERC1155TokenReceiver.onERC1155Received.selector, "UNSAFE_RECIPIENT" ); } function _batchMint(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data) internal virtual { uint256 idsLength = ids.length; // Saves MLOADs. require(idsLength == amounts.length, "LENGTH_MISMATCH"); for (uint256 i = 0; i < idsLength;) { balanceOf[to][ids[i]] += amounts[i]; // An array can't have a total length // larger than the max uint256 value. unchecked { ++i; } } emit TransferBatch(msg.sender, address(0), to, ids, amounts); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, address(0), ids, amounts, data) == ERC1155TokenReceiver.onERC1155BatchReceived.selector, "UNSAFE_RECIPIENT" ); } function _batchBurn(address from, uint256[] memory ids, uint256[] memory amounts) internal virtual { uint256 idsLength = ids.length; // Saves MLOADs. require(idsLength == amounts.length, "LENGTH_MISMATCH"); for (uint256 i = 0; i < idsLength;) { balanceOf[from][ids[i]] -= amounts[i]; // An array can't have a total length // larger than the max uint256 value. unchecked { ++i; } } emit TransferBatch(msg.sender, from, address(0), ids, amounts); } function _burn(address from, uint256 id, uint256 amount) internal virtual { balanceOf[from][id] -= amount; emit TransferSingle(msg.sender, from, address(0), id, amount); } } /// @notice A generic interface for a contract which properly accepts ERC1155 tokens. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol) abstract contract ERC1155TokenReceiver { function onERC1155Received(address, address, uint256, uint256, bytes calldata) external virtual returns (bytes4) { return ERC1155TokenReceiver.onERC1155Received.selector; } function onERC1155BatchReceived(address, address, uint256[] calldata, uint256[] calldata, bytes calldata) external virtual returns (bytes4) { return ERC1155TokenReceiver.onERC1155BatchReceived.selector; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (utils/Base64.sol) pragma solidity ^0.8.0; /** * @dev Provides a set of functions to operate with Base64 strings. * * _Available since v4.5._ */ library Base64 { /** * @dev Base64 Encoding/Decoding Table */ string internal constant _TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; /** * @dev Converts a `bytes` to its Bytes64 `string` representation. */ function encode(bytes memory data) internal pure returns (string memory) { /** * Inspired by Brecht Devos (Brechtpd) implementation - MIT licence * https://github.com/Brechtpd/base64/blob/e78d9fd951e7b0977ddca77d92dc85183770daf4/base64.sol */ if (data.length == 0) return ""; // Loads the table into memory string memory table = _TABLE; // Encoding takes 3 bytes chunks of binary data from `bytes` data parameter // and split into 4 numbers of 6 bits. // The final Base64 length should be `bytes` data length multiplied by 4/3 rounded up // - `data.length + 2` -> Round up // - `/ 3` -> Number of 3-bytes chunks // - `4 *` -> 4 characters for each chunk string memory result = new string(4 * ((data.length + 2) / 3)); /// @solidity memory-safe-assembly assembly { // Prepare the lookup table (skip the first "length" byte) let tablePtr := add(table, 1) // Prepare result pointer, jump over length let resultPtr := add(result, 32) // Run over the input, 3 bytes at a time for { let dataPtr := data let endPtr := add(data, mload(data)) } lt(dataPtr, endPtr) { } { // Advance 3 bytes dataPtr := add(dataPtr, 3) let input := mload(dataPtr) // To write each character, shift the 3 bytes (18 bits) chunk // 4 times in blocks of 6 bits for each character (18, 12, 6, 0) // and apply logical AND with 0x3F which is the number of // the previous character in the ASCII table prior to the Base64 Table // The result is then added to the table to get the character to write, // and finally write it in the result pointer but with a left shift // of 256 (1 byte) - 8 (1 ASCII char) = 248 bits mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F)))) resultPtr := add(resultPtr, 1) // Advance mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F)))) resultPtr := add(resultPtr, 1) // Advance mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F)))) resultPtr := add(resultPtr, 1) // Advance mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F)))) resultPtr := add(resultPtr, 1) // Advance } // When data `bytes` is not exactly 3 bytes long // it is padded with `=` characters at the end switch mod(mload(data), 3) case 1 { mstore8(sub(resultPtr, 1), 0x3d) mstore8(sub(resultPtr, 2), 0x3d) } case 2 { mstore8(sub(resultPtr, 1), 0x3d) } } return result; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "openzeppelin/=lib/openzeppelin-contracts/contracts/", "solmate/=lib/solmate/src/" ], "optimizer": { "enabled": true, "runs": 10000 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"name":"AmountExceedsLimit","type":"error"},{"inputs":[],"name":"AmountExceedsMaxSupply","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"amounts","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":"amount","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":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"balances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"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":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052614e2060035534801561001657600080fd5b5061002033610025565b610077565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611d21806100866000396000f3fe608060405234801561001057600080fd5b50600436106100e95760003560e01c80638da5cb5b1161008c578063e8a3d48511610066578063e8a3d48514610200578063e985e9c514610208578063f242432a14610236578063f2fde38b1461024957600080fd5b80638da5cb5b146101b2578063a0712d68146101da578063a22cb465146101ed57600080fd5b806318160ddd116100c857806318160ddd1461016c5780632eb2c2d6146101755780634e1273f41461018a578063715018a6146101aa57600080fd5b8062fdd58e146100ee57806301ffc9a7146101295780630e89341c1461014c575b600080fd5b6101166100fc366004611565565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b61013c6101373660046115bd565b61025c565b6040519015158152602001610120565b61015f61015a3660046115e1565b610341565b6040516101209190611668565b61011660045481565b610188610183366004611709565b6104df565b005b61019d6101983660046117c4565b6108d5565b6040516101209190611830565b610188610a4c565b60025460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610120565b6101886101e83660046115e1565b610a60565b6101886101fb366004611874565b610b1c565b61015f610bb3565b61013c6102163660046118b0565b600160209081526000928352604080842090915290825290205460ff1681565b6101886102443660046118e3565b610d33565b61018861025736600461195b565b611039565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806102ef57507fd9b67a26000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061033b57507f0e89341c000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060816001036104cb57600060405160200161048a907f7b226e616d65223a22507572706c65204c616d626f222c22696d616765223a2281527f68747470733a2f2f617277656176652e6e65742f746f765136633569754b616860208201527f5f776650774751543857316d32373243304f313075697542304b464b454a6f2260408201527f2c226465736372697074696f6e223a226e6f20646576206a757374206c616d6260608201527f6f2e2068747470733a2f2f742e6d652f707572706c656c616d626f657263323060808201527f2068747470733a2f2f65746865727363616e2e696f2f746f6b656e2f3078444660a08201527f393031323442386131306435326135446632376433663631663934463434414460c08201527f653039663132227d00000000000000000000000000000000000000000000000060e082015260e80190565b60405160208183030381529060405290506104a4816110ed565b6040516020016104b49190611976565b604051602081830303815290604052915050919050565b505060408051602081019091526000815290565b84831461054d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c454e4754485f4d49534d41544348000000000000000000000000000000000060448201526064015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff891614806105a1575073ffffffffffffffffffffffffffffffffffffffff8816600090815260016020908152604080832033845290915290205460ff165b610607576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610544565b60008060005b878110156106dc57888882818110610627576106276119bb565b905060200201359250868682818110610642576106426119bb565b73ffffffffffffffffffffffffffffffffffffffff8e166000908152602081815260408083208984528252822080549390910294909401359550859392509061068c908490611a19565b909155505073ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320868452909152812080548492906106cf908490611a2c565b909155505060010161060d565b508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b6040516107579493929190611a8a565b60405180910390a473ffffffffffffffffffffffffffffffffffffffff89163b15610849576040517fbc197c81000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff8b169063bc197c81906107de9033908f908e908e908e908e908e908e90600401611b05565b6020604051808303816000875af11580156107fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108219190611b76565b7fffffffff000000000000000000000000000000000000000000000000000000001614610863565b73ffffffffffffffffffffffffffffffffffffffff891615155b6108c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610544565b50505050505050505050565b6060838214610940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610544565b8367ffffffffffffffff81111561095957610959611b93565b604051908082528060200260200182016040528015610982578160200160208202803683370190505b50905060005b84811015610a43576000808787848181106109a5576109a56119bb565b90506020020160208101906109ba919061195b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858584818110610a0857610a086119bb565b90506020020135815260200190815260200160002054828281518110610a3057610a306119bb565b6020908102919091010152600101610988565b50949350505050565b610a54611240565b610a5e60006112c1565b565b600a811115610a9b576040517fb95eb50800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035481600454610aac9190611a2c565b1115610ae4576040517facbb966d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060046000828254610af69190611a2c565b92505081905550610b193360018360405180602001604052806000815250611338565b50565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60606000604051602001610cf4907f7b226e616d65223a22507572706c65204c616d626f222c22696d616765223a2281527f68747470733a2f2f617277656176652e6e65742f746f765136633569754b616860208201527f5f776650774751543857316d32373243304f313075697542304b464b454a6f2260408201527f2c226465736372697074696f6e223a226e6f20646576206a757374206c616d6260608201527f6f2e2068747470733a2f2f742e6d652f707572706c656c616d626f657263323060808201527f2068747470733a2f2f65746865727363616e2e696f2f746f6b656e2f3078444660a08201527f393031323442386131306435326135446632376433663631663934463434414460c08201527f653039663132227d00000000000000000000000000000000000000000000000060e082015260e80190565b6040516020818303038152906040529050610d0e816110ed565b604051602001610d1e9190611976565b60405160208183030381529060405291505090565b3373ffffffffffffffffffffffffffffffffffffffff87161480610d87575073ffffffffffffffffffffffffffffffffffffffff8616600090815260016020908152604080832033845290915290205460ff165b610ded576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610544565b73ffffffffffffffffffffffffffffffffffffffff861660009081526020818152604080832087845290915281208054859290610e2b908490611a19565b909155505073ffffffffffffffffffffffffffffffffffffffff851660009081526020818152604080832087845290915281208054859290610e6e908490611a2c565b9091555050604080518581526020810185905273ffffffffffffffffffffffffffffffffffffffff808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff85163b15610fb1576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff87169063f23a6e6190610f469033908b908a908a908a908a90600401611bc2565b6020604051808303816000875af1158015610f65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f899190611b76565b7fffffffff000000000000000000000000000000000000000000000000000000001614610fcb565b73ffffffffffffffffffffffffffffffffffffffff851615155b611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610544565b505050505050565b611041611240565b73ffffffffffffffffffffffffffffffffffffffff81166110e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610544565b610b19816112c1565b6060815160000361110c57505060408051602081019091526000815290565b6000604051806060016040528060408152602001611cac604091399050600060038451600261113b9190611a2c565b6111459190611c14565b611150906004611c4f565b67ffffffffffffffff81111561116857611168611b93565b6040519080825280601f01601f191660200182016040528015611192576020820181803683370190505b509050600182016020820185865187015b808210156111fe576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f81168501518453506001830192506111a3565b505060038651066001811461121a576002811461122d57611235565b603d6001830353603d6002830353611235565b603d60018303535b509195945050505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610a5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610544565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832086845290915281208054849290611376908490611a2c565b9091555050604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff86169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff84163b156114b6576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063f23a6e619061144b903390600090899089908990600401611c66565b6020604051808303816000875af115801561146a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148e9190611b76565b7fffffffff0000000000000000000000000000000000000000000000000000000016146114d0565b73ffffffffffffffffffffffffffffffffffffffff841615155b611536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610544565b50505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461156057600080fd5b919050565b6000806040838503121561157857600080fd5b6115818361153c565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b1957600080fd5b6000602082840312156115cf57600080fd5b81356115da8161158f565b9392505050565b6000602082840312156115f357600080fd5b5035919050565b60005b838110156116155781810151838201526020016115fd565b50506000910152565b600081518084526116368160208601602086016115fa565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006115da602083018461161e565b60008083601f84011261168d57600080fd5b50813567ffffffffffffffff8111156116a557600080fd5b6020830191508360208260051b85010111156116c057600080fd5b9250929050565b60008083601f8401126116d957600080fd5b50813567ffffffffffffffff8111156116f157600080fd5b6020830191508360208285010111156116c057600080fd5b60008060008060008060008060a0898b03121561172557600080fd5b61172e8961153c565b975061173c60208a0161153c565b9650604089013567ffffffffffffffff8082111561175957600080fd5b6117658c838d0161167b565b909850965060608b013591508082111561177e57600080fd5b61178a8c838d0161167b565b909650945060808b01359150808211156117a357600080fd5b506117b08b828c016116c7565b999c989b5096995094979396929594505050565b600080600080604085870312156117da57600080fd5b843567ffffffffffffffff808211156117f257600080fd5b6117fe8883890161167b565b9096509450602087013591508082111561181757600080fd5b506118248782880161167b565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b818110156118685783518352928401929184019160010161184c565b50909695505050505050565b6000806040838503121561188757600080fd5b6118908361153c565b9150602083013580151581146118a557600080fd5b809150509250929050565b600080604083850312156118c357600080fd5b6118cc8361153c565b91506118da6020840161153c565b90509250929050565b60008060008060008060a087890312156118fc57600080fd5b6119058761153c565b95506119136020880161153c565b94506040870135935060608701359250608087013567ffffffffffffffff81111561193d57600080fd5b61194989828a016116c7565b979a9699509497509295939492505050565b60006020828403121561196d57600080fd5b6115da8261153c565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008152600082516119ae81601d8501602087016115fa565b91909101601d0192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561033b5761033b6119ea565b8082018082111561033b5761033b6119ea565b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611a7157600080fd5b8260051b80836020870137939093016020019392505050565b604081526000611a9e604083018688611a3f565b8281036020840152611ab1818587611a3f565b979650505050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808b168352808a1660208401525060a06040830152611b3f60a08301888a611a3f565b8281036060840152611b52818789611a3f565b90508281036080840152611b67818587611abc565b9b9a5050505050505050505050565b600060208284031215611b8857600080fd5b81516115da8161158f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a06080830152611c0860a083018486611abc565b98975050505050505050565b600082611c4a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b808202811582820484141761033b5761033b6119ea565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a06080830152611ab160a083018461161e56fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220761f60f1cfc97336965d8b123d9725be223811471ff19045f296a7e84dc678a964736f6c63430008150033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100e95760003560e01c80638da5cb5b1161008c578063e8a3d48511610066578063e8a3d48514610200578063e985e9c514610208578063f242432a14610236578063f2fde38b1461024957600080fd5b80638da5cb5b146101b2578063a0712d68146101da578063a22cb465146101ed57600080fd5b806318160ddd116100c857806318160ddd1461016c5780632eb2c2d6146101755780634e1273f41461018a578063715018a6146101aa57600080fd5b8062fdd58e146100ee57806301ffc9a7146101295780630e89341c1461014c575b600080fd5b6101166100fc366004611565565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b61013c6101373660046115bd565b61025c565b6040519015158152602001610120565b61015f61015a3660046115e1565b610341565b6040516101209190611668565b61011660045481565b610188610183366004611709565b6104df565b005b61019d6101983660046117c4565b6108d5565b6040516101209190611830565b610188610a4c565b60025460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610120565b6101886101e83660046115e1565b610a60565b6101886101fb366004611874565b610b1c565b61015f610bb3565b61013c6102163660046118b0565b600160209081526000928352604080842090915290825290205460ff1681565b6101886102443660046118e3565b610d33565b61018861025736600461195b565b611039565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806102ef57507fd9b67a26000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061033b57507f0e89341c000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6060816001036104cb57600060405160200161048a907f7b226e616d65223a22507572706c65204c616d626f222c22696d616765223a2281527f68747470733a2f2f617277656176652e6e65742f746f765136633569754b616860208201527f5f776650774751543857316d32373243304f313075697542304b464b454a6f2260408201527f2c226465736372697074696f6e223a226e6f20646576206a757374206c616d6260608201527f6f2e2068747470733a2f2f742e6d652f707572706c656c616d626f657263323060808201527f2068747470733a2f2f65746865727363616e2e696f2f746f6b656e2f3078444660a08201527f393031323442386131306435326135446632376433663631663934463434414460c08201527f653039663132227d00000000000000000000000000000000000000000000000060e082015260e80190565b60405160208183030381529060405290506104a4816110ed565b6040516020016104b49190611976565b604051602081830303815290604052915050919050565b505060408051602081019091526000815290565b84831461054d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c454e4754485f4d49534d41544348000000000000000000000000000000000060448201526064015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff891614806105a1575073ffffffffffffffffffffffffffffffffffffffff8816600090815260016020908152604080832033845290915290205460ff165b610607576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610544565b60008060005b878110156106dc57888882818110610627576106276119bb565b905060200201359250868682818110610642576106426119bb565b73ffffffffffffffffffffffffffffffffffffffff8e166000908152602081815260408083208984528252822080549390910294909401359550859392509061068c908490611a19565b909155505073ffffffffffffffffffffffffffffffffffffffff8a16600090815260208181526040808320868452909152812080548492906106cf908490611a2c565b909155505060010161060d565b508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b6040516107579493929190611a8a565b60405180910390a473ffffffffffffffffffffffffffffffffffffffff89163b15610849576040517fbc197c81000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff8b169063bc197c81906107de9033908f908e908e908e908e908e908e90600401611b05565b6020604051808303816000875af11580156107fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108219190611b76565b7fffffffff000000000000000000000000000000000000000000000000000000001614610863565b73ffffffffffffffffffffffffffffffffffffffff891615155b6108c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610544565b50505050505050505050565b6060838214610940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610544565b8367ffffffffffffffff81111561095957610959611b93565b604051908082528060200260200182016040528015610982578160200160208202803683370190505b50905060005b84811015610a43576000808787848181106109a5576109a56119bb565b90506020020160208101906109ba919061195b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858584818110610a0857610a086119bb565b90506020020135815260200190815260200160002054828281518110610a3057610a306119bb565b6020908102919091010152600101610988565b50949350505050565b610a54611240565b610a5e60006112c1565b565b600a811115610a9b576040517fb95eb50800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035481600454610aac9190611a2c565b1115610ae4576040517facbb966d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060046000828254610af69190611a2c565b92505081905550610b193360018360405180602001604052806000815250611338565b50565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60606000604051602001610cf4907f7b226e616d65223a22507572706c65204c616d626f222c22696d616765223a2281527f68747470733a2f2f617277656176652e6e65742f746f765136633569754b616860208201527f5f776650774751543857316d32373243304f313075697542304b464b454a6f2260408201527f2c226465736372697074696f6e223a226e6f20646576206a757374206c616d6260608201527f6f2e2068747470733a2f2f742e6d652f707572706c656c616d626f657263323060808201527f2068747470733a2f2f65746865727363616e2e696f2f746f6b656e2f3078444660a08201527f393031323442386131306435326135446632376433663631663934463434414460c08201527f653039663132227d00000000000000000000000000000000000000000000000060e082015260e80190565b6040516020818303038152906040529050610d0e816110ed565b604051602001610d1e9190611976565b60405160208183030381529060405291505090565b3373ffffffffffffffffffffffffffffffffffffffff87161480610d87575073ffffffffffffffffffffffffffffffffffffffff8616600090815260016020908152604080832033845290915290205460ff165b610ded576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610544565b73ffffffffffffffffffffffffffffffffffffffff861660009081526020818152604080832087845290915281208054859290610e2b908490611a19565b909155505073ffffffffffffffffffffffffffffffffffffffff851660009081526020818152604080832087845290915281208054859290610e6e908490611a2c565b9091555050604080518581526020810185905273ffffffffffffffffffffffffffffffffffffffff808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff85163b15610fb1576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff87169063f23a6e6190610f469033908b908a908a908a908a90600401611bc2565b6020604051808303816000875af1158015610f65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f899190611b76565b7fffffffff000000000000000000000000000000000000000000000000000000001614610fcb565b73ffffffffffffffffffffffffffffffffffffffff851615155b611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610544565b505050505050565b611041611240565b73ffffffffffffffffffffffffffffffffffffffff81166110e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610544565b610b19816112c1565b6060815160000361110c57505060408051602081019091526000815290565b6000604051806060016040528060408152602001611cac604091399050600060038451600261113b9190611a2c565b6111459190611c14565b611150906004611c4f565b67ffffffffffffffff81111561116857611168611b93565b6040519080825280601f01601f191660200182016040528015611192576020820181803683370190505b509050600182016020820185865187015b808210156111fe576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f81168501518453506001830192506111a3565b505060038651066001811461121a576002811461122d57611235565b603d6001830353603d6002830353611235565b603d60018303535b509195945050505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314610a5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610544565b6002805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832086845290915281208054849290611376908490611a2c565b9091555050604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff86169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff84163b156114b6576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063f23a6e619061144b903390600090899089908990600401611c66565b6020604051808303816000875af115801561146a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061148e9190611b76565b7fffffffff0000000000000000000000000000000000000000000000000000000016146114d0565b73ffffffffffffffffffffffffffffffffffffffff841615155b611536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610544565b50505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461156057600080fd5b919050565b6000806040838503121561157857600080fd5b6115818361153c565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b1957600080fd5b6000602082840312156115cf57600080fd5b81356115da8161158f565b9392505050565b6000602082840312156115f357600080fd5b5035919050565b60005b838110156116155781810151838201526020016115fd565b50506000910152565b600081518084526116368160208601602086016115fa565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006115da602083018461161e565b60008083601f84011261168d57600080fd5b50813567ffffffffffffffff8111156116a557600080fd5b6020830191508360208260051b85010111156116c057600080fd5b9250929050565b60008083601f8401126116d957600080fd5b50813567ffffffffffffffff8111156116f157600080fd5b6020830191508360208285010111156116c057600080fd5b60008060008060008060008060a0898b03121561172557600080fd5b61172e8961153c565b975061173c60208a0161153c565b9650604089013567ffffffffffffffff8082111561175957600080fd5b6117658c838d0161167b565b909850965060608b013591508082111561177e57600080fd5b61178a8c838d0161167b565b909650945060808b01359150808211156117a357600080fd5b506117b08b828c016116c7565b999c989b5096995094979396929594505050565b600080600080604085870312156117da57600080fd5b843567ffffffffffffffff808211156117f257600080fd5b6117fe8883890161167b565b9096509450602087013591508082111561181757600080fd5b506118248782880161167b565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b818110156118685783518352928401929184019160010161184c565b50909695505050505050565b6000806040838503121561188757600080fd5b6118908361153c565b9150602083013580151581146118a557600080fd5b809150509250929050565b600080604083850312156118c357600080fd5b6118cc8361153c565b91506118da6020840161153c565b90509250929050565b60008060008060008060a087890312156118fc57600080fd5b6119058761153c565b95506119136020880161153c565b94506040870135935060608701359250608087013567ffffffffffffffff81111561193d57600080fd5b61194989828a016116c7565b979a9699509497509295939492505050565b60006020828403121561196d57600080fd5b6115da8261153c565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008152600082516119ae81601d8501602087016115fa565b91909101601d0192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181038181111561033b5761033b6119ea565b8082018082111561033b5761033b6119ea565b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611a7157600080fd5b8260051b80836020870137939093016020019392505050565b604081526000611a9e604083018688611a3f565b8281036020840152611ab1818587611a3f565b979650505050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808b168352808a1660208401525060a06040830152611b3f60a08301888a611a3f565b8281036060840152611b52818789611a3f565b90508281036080840152611b67818587611abc565b9b9a5050505050505050505050565b600060208284031215611b8857600080fd5b81516115da8161158f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a06080830152611c0860a083018486611abc565b98975050505050505050565b600082611c4a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b808202811582820484141761033b5761033b6119ea565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a06080830152611ab160a083018461161e56fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220761f60f1cfc97336965d8b123d9725be223811471ff19045f296a7e84dc678a964736f6c63430008150033
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.