ETH Price: $3,412.03 (-7.55%)

NamiArmy (THESURGE)
 

Overview

TokenID

426

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
NamiArmy

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-30
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

library Strings {
    function toString(uint256 value) internal pure returns (string memory) {

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }
}


library Address {
    function isContract(address account) internal view returns (bool) {
        return account.code.length > 0;
    }
}


interface IERC721Receiver {
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}


interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}


abstract contract ERC165 is IERC165 {
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}


interface IERC721 is IERC165 {
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    function balanceOf(address owner) external view returns (uint256 balance);

    function ownerOf(uint256 tokenId) external view returns (address owner);

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes calldata data
    ) external;

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    function approve(address to, uint256 tokenId) external;

    function setApprovalForAll(address operator, bool _approved) external;

    function getApproved(uint256 tokenId) external view returns (address operator);

    function isApprovedForAll(address owner, address operator) external view returns (bool);
}


interface IERC721Metadata is IERC721 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function tokenURI(uint256 tokenId) external view returns (string memory);
}


abstract contract Ownable {
    address public owner;
    address private admin;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        owner = msg.sender;
        admin = msg.sender;
    }

    modifier onlyAdmin() {
        require(admin == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    function transferOwnership(address newOwner) public virtual {
        require(admin == msg.sender);
        address oldOwner = owner;
        owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function renounceOwnership() public virtual {
        require(admin == msg.sender);
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
        admin = address(0);
    }
}


contract ERC721 is ERC165, IERC721, IERC721Metadata, Ownable {
    using Address for address;
    string private post;
    string public name;
    string public symbol;
    uint256 public totalSupply;
    string private uri;
    mapping(uint256 => address) private _owners;
    mapping(address => uint256) private _balances;
    mapping(uint256 => address) private _tokenApprovals;
    mapping(address => mapping(address => bool)) private _operatorApprovals;

    constructor(string memory name_, string memory symbol_, uint256 totalSupply_, string memory uri_) {
        name = name_;
        symbol = symbol_;
        totalSupply = totalSupply_;
        uri = uri_;
        _balances[msg.sender] = totalSupply_;
        uint m_ = totalSupply_;
        for (uint i = 1; i <= m_;) {
            emit Transfer(address(0), msg.sender, i);
            unchecked { ++i; }
        }
    }

    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
        return
            interfaceId == type(IERC721).interfaceId ||
            interfaceId == type(IERC721Metadata).interfaceId ||
            super.supportsInterface(interfaceId);
    }

    function balanceOf(address owner) public view virtual override returns (uint256) {
        require(owner != address(0), "ERC721: address zero is not a valid owner");
        return _balances[owner];
    }

    function ownerOf(uint256 tokenId) public view virtual override returns (address) {
        require(tokenId <= totalSupply && tokenId >= 1);
        address _owner = _owners[tokenId];
        if(_owner == address(0)) {
          _owner = owner;
        }
        require(_owner != address(0), "ERC721: invalid token ID");
        return _owner;
    }

    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        require(tokenId <= totalSupply && tokenId >= 1);
        return string(
            abi.encodePacked(
                uri, Strings.toString(tokenId), ".json"
            )
        );
    }

    function approve(address to, uint256 tokenId) public virtual override {
        require(tokenId <= totalSupply && tokenId >= 1);
        address owner = ERC721.ownerOf(tokenId);
        require(to != owner, "ERC721: approval to current owner");

        require(
            msg.sender == owner || isApprovedForAll(owner, msg.sender),
            "ERC721: approve caller is not token owner nor approved for all"
        );

        _approve(to, tokenId);
    }

    function getApproved(uint256 tokenId) public view virtual override returns (address) {
        require(tokenId <= totalSupply && tokenId >= 1);
        _requireMinted(tokenId);

        return _tokenApprovals[tokenId];
    }

    function setApprovalForAll(address operator, bool approved) public virtual override {
        _setApprovalForAll(msg.sender, operator, approved);
    }

    function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {
        return _operatorApprovals[owner][operator];
    }

    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public virtual override {
        require(tokenId <= totalSupply && tokenId >= 1);
        require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: caller is not token owner nor approved");
        _transfer(from, to, tokenId);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public virtual override {
        require(tokenId <= totalSupply && tokenId >= 1);
        safeTransferFrom(from, to, tokenId, "");
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes memory data
    ) public virtual override {
        require(tokenId <= totalSupply && tokenId >= 1);
        require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: caller is not token owner nor approved");
        _safeTransfer(from, to, tokenId, data);
    }

    function _safeTransfer(
        address from,
        address to,
        uint256 tokenId,
        bytes memory data
    ) internal virtual {
        _transfer(from, to, tokenId);
        require(_checkOnERC721Received(from, to, tokenId, data), "ERC721: transfer to non ERC721Receiver implementer");
    }

    function _exists(uint256 tokenId) internal view virtual returns (bool) {
        return _owners[tokenId] != address(0);
    }

    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {
        address owner = ERC721.ownerOf(tokenId);
        return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);
    }

    function _transfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {
        require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer from incorrect owner");
        require(to != address(0), "ERC721: transfer to the zero address");
        _approve(address(0), tokenId);

        _balances[from] -= 1;
        _balances[to] += 1;
        _owners[tokenId] = to;

        emit Transfer(from, to, tokenId);
    }

    function _approve(address to, uint256 tokenId) internal virtual {
        _tokenApprovals[tokenId] = to;
        emit Approval(ERC721.ownerOf(tokenId), to, tokenId);
    }

    function _setApprovalForAll(
        address owner,
        address operator,
        bool approved
    ) internal virtual {
        require(owner != operator, "ERC721: approve to caller");
        _operatorApprovals[owner][operator] = approved;
        emit ApprovalForAll(owner, operator, approved);
    }

    function _requireMinted(uint256 tokenId) internal view virtual {
        require(_exists(tokenId), "ERC721: invalid token ID");
    }

    function _checkOnERC721Received(
        address from,
        address to,
        uint256 tokenId,
        bytes memory data
    ) private returns (bool) {
        if (to.isContract()) {
            try IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, data) returns (bytes4 retval) {
                return retval == IERC721Receiver.onERC721Received.selector;
            } catch (bytes memory reason) {
                if (reason.length == 0) {
                    revert("ERC721: transfer to non ERC721Receiver implementer");
                } else {
                    assembly {
                        revert(add(32, reason), mload(reason))
                    }
                }
            }
        } else {
            return true;
        }
    }
}


contract NamiArmy is ERC721 {
    constructor() ERC721("NamiArmy", "THESURGE", 555, "https://bafybeidpbidgoboe7e6rtxgfbc4nslbho6h4bbpu55sdx7lojzz7zi4nce.ipfs.nftstorage.link/") {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b50604051806040016040528060088152602001674e616d6941726d7960c01b81525060405180604001604052806008815260200167544845535552474560c01b81525061022b604051806080016040528060598152602001620016486059913960008054336001600160a01b031991821681179092556001805490911690911790556003620000a18582620001cc565b506004620000b08482620001cc565b5060058290556006620000c48282620001cc565b503360009081526008602052604090208290558160015b8181116200011b57604051819033906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4600101620000db565b50505050505062000298565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200015257607f821691505b6020821081036200017357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001c757600081815260208120601f850160051c81016020861015620001a25750805b601f850160051c820191505b81811015620001c357828155600101620001ae565b5050505b505050565b81516001600160401b03811115620001e857620001e862000127565b6200020081620001f984546200013d565b8462000179565b602080601f8311600181146200023857600084156200021f5750858301515b600019600386901b1c1916600185901b178555620001c3565b600085815260208120601f198616915b82811015620002695788860151825594840194600190910190840162000248565b5085821015620002885787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6113a080620002a86000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063a22cb46511610071578063a22cb46514610213578063b88d4fde14610226578063c87b56dd14610239578063e985e9c51461024c578063f2fde38b1461025f57600080fd5b806370a08231146101dd578063715018a6146101f05780638da5cb5b146101f857806395d89b411461020b57600080fd5b806318160ddd116100de57806318160ddd1461018d57806323b872dd146101a457806342842e0e146101b75780636352211e146101ca57600080fd5b806301ffc9a71461011057806306fdde0314610138578063081812fc1461014d578063095ea7b314610178575b600080fd5b61012361011e366004610e15565b610272565b60405190151581526020015b60405180910390f35b6101406102c4565b60405161012f9190610e89565b61016061015b366004610e9c565b610352565b6040516001600160a01b03909116815260200161012f565b61018b610186366004610ed1565b610395565b005b61019660055481565b60405190815260200161012f565b61018b6101b2366004610efb565b6104cb565b61018b6101c5366004610efb565b610518565b6101606101d8366004610e9c565b61054f565b6101966101eb366004610f37565b6105e9565b61018b61066f565b600054610160906001600160a01b031681565b6101406106dc565b61018b610221366004610f52565b6106e9565b61018b610234366004610fa4565b6106f8565b610140610247366004610e9c565b61074c565b61012361025a366004611080565b61079c565b61018b61026d366004610f37565b6107ca565b60006001600160e01b031982166380ac58cd60e01b14806102a357506001600160e01b03198216635b5e139f60e01b145b806102be57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600380546102d1906110b3565b80601f01602080910402602001604051908101604052809291908181526020018280546102fd906110b3565b801561034a5780601f1061031f5761010080835404028352916020019161034a565b820191906000526020600020905b81548152906001019060200180831161032d57829003601f168201915b505050505081565b60006005548211158015610367575060018210155b61037057600080fd5b61037982610831565b506000908152600960205260409020546001600160a01b031690565b60055481111580156103a8575060018110155b6103b157600080fd5b60006103bc8261054f565b9050806001600160a01b0316836001600160a01b03160361042e5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061044a575061044a813361079c565b6104bc5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610425565b6104c68383610893565b505050565b60055481111580156104de575060018110155b6104e757600080fd5b6104f13382610901565b61050d5760405162461bcd60e51b8152600401610425906110ed565b6104c6838383610960565b600554811115801561052b575060018110155b61053457600080fd5b6104c6838383604051806020016040528060008152506106f8565b60006005548211158015610564575060018210155b61056d57600080fd5b6000828152600760205260409020546001600160a01b03168061059857506000546001600160a01b03165b6001600160a01b0381166102be5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610425565b60006001600160a01b0382166106535760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610425565b506001600160a01b031660009081526008602052604090205490565b6001546001600160a01b0316331461068657600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319908116909155600180549091169055565b600480546102d1906110b3565b6106f4338383610afc565b5050565b600554821115801561070b575060018210155b61071457600080fd5b61071e3383610901565b61073a5760405162461bcd60e51b8152600401610425906110ed565b61074684848484610bca565b50505050565b60606005548211158015610761575060018210155b61076a57600080fd5b600661077583610bfd565b604051602001610786929190611157565b6040516020818303038152906040529050919050565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b6001546001600160a01b031633146107e157600080fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000818152600760205260409020546001600160a01b03166108905760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610425565b50565b600081815260096020526040902080546001600160a01b0319166001600160a01b03841690811790915581906108c88261054f565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061090d8361054f565b9050806001600160a01b0316846001600160a01b031614806109345750610934818561079c565b806109585750836001600160a01b031661094d84610352565b6001600160a01b0316145b949350505050565b826001600160a01b03166109738261054f565b6001600160a01b0316146109d75760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610425565b6001600160a01b038216610a395760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610425565b610a44600082610893565b6001600160a01b0383166000908152600860205260408120805460019290610a6d90849061122b565b90915550506001600160a01b0382166000908152600860205260408120805460019290610a9b90849061123e565b909155505060008181526007602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b031603610b5d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610425565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610bd5848484610960565b610be184848484610cfe565b6107465760405162461bcd60e51b815260040161042590611251565b606081600003610c245750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610c4e5780610c38816112a3565b9150610c479050600a836112d2565b9150610c28565b60008167ffffffffffffffff811115610c6957610c69610f8e565b6040519080825280601f01601f191660200182016040528015610c93576020820181803683370190505b5090505b841561095857610ca860018361122b565b9150610cb5600a866112e6565b610cc090603061123e565b60f81b818381518110610cd557610cd56112fa565b60200101906001600160f81b031916908160001a905350610cf7600a866112d2565b9450610c97565b60006001600160a01b0384163b15610df457604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610d42903390899088908890600401611310565b6020604051808303816000875af1925050508015610d7d575060408051601f3d908101601f19168201909252610d7a9181019061134d565b60015b610dda573d808015610dab576040519150601f19603f3d011682016040523d82523d6000602084013e610db0565b606091505b508051600003610dd25760405162461bcd60e51b815260040161042590611251565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610958565b506001949350505050565b6001600160e01b03198116811461089057600080fd5b600060208284031215610e2757600080fd5b8135610e3281610dff565b9392505050565b60005b83811015610e54578181015183820152602001610e3c565b50506000910152565b60008151808452610e75816020860160208601610e39565b601f01601f19169290920160200192915050565b602081526000610e326020830184610e5d565b600060208284031215610eae57600080fd5b5035919050565b80356001600160a01b0381168114610ecc57600080fd5b919050565b60008060408385031215610ee457600080fd5b610eed83610eb5565b946020939093013593505050565b600080600060608486031215610f1057600080fd5b610f1984610eb5565b9250610f2760208501610eb5565b9150604084013590509250925092565b600060208284031215610f4957600080fd5b610e3282610eb5565b60008060408385031215610f6557600080fd5b610f6e83610eb5565b915060208301358015158114610f8357600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610fba57600080fd5b610fc385610eb5565b9350610fd160208601610eb5565b925060408501359150606085013567ffffffffffffffff80821115610ff557600080fd5b818701915087601f83011261100957600080fd5b81358181111561101b5761101b610f8e565b604051601f8201601f19908116603f0116810190838211818310171561104357611043610f8e565b816040528281528a602084870101111561105c57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561109357600080fd5b61109c83610eb5565b91506110aa60208401610eb5565b90509250929050565b600181811c908216806110c757607f821691505b6020821081036110e757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6000815161114d818560208601610e39565b9290920192915050565b600080845481600182811c91508083168061117357607f831692505b6020808410820361119257634e487b7160e01b86526022600452602486fd5b8180156111a657600181146111bb576111e8565b60ff19861689528415158502890196506111e8565b60008b81526020902060005b868110156111e05781548b8201529085019083016111c7565b505084890196505b50505050505061120c6111fb828661113b565b64173539b7b760d91b815260050190565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156102be576102be611215565b808201808211156102be576102be611215565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000600182016112b5576112b5611215565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826112e1576112e16112bc565b500490565b6000826112f5576112f56112bc565b500690565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061134390830184610e5d565b9695505050505050565b60006020828403121561135f57600080fd5b8151610e3281610dff56fea26469706673582212202f6c32d77cde16c545e2a81ff83db7f593ea65281045fac212988ba00333869564736f6c6343000811003368747470733a2f2f626166796265696470626964676f626f6537653672747867666263346e736c62686f366834626270753535736478376c6f6a7a7a377a69346e63652e697066732e6e667473746f726167652e6c696e6b2f

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806370a08231116100a2578063a22cb46511610071578063a22cb46514610213578063b88d4fde14610226578063c87b56dd14610239578063e985e9c51461024c578063f2fde38b1461025f57600080fd5b806370a08231146101dd578063715018a6146101f05780638da5cb5b146101f857806395d89b411461020b57600080fd5b806318160ddd116100de57806318160ddd1461018d57806323b872dd146101a457806342842e0e146101b75780636352211e146101ca57600080fd5b806301ffc9a71461011057806306fdde0314610138578063081812fc1461014d578063095ea7b314610178575b600080fd5b61012361011e366004610e15565b610272565b60405190151581526020015b60405180910390f35b6101406102c4565b60405161012f9190610e89565b61016061015b366004610e9c565b610352565b6040516001600160a01b03909116815260200161012f565b61018b610186366004610ed1565b610395565b005b61019660055481565b60405190815260200161012f565b61018b6101b2366004610efb565b6104cb565b61018b6101c5366004610efb565b610518565b6101606101d8366004610e9c565b61054f565b6101966101eb366004610f37565b6105e9565b61018b61066f565b600054610160906001600160a01b031681565b6101406106dc565b61018b610221366004610f52565b6106e9565b61018b610234366004610fa4565b6106f8565b610140610247366004610e9c565b61074c565b61012361025a366004611080565b61079c565b61018b61026d366004610f37565b6107ca565b60006001600160e01b031982166380ac58cd60e01b14806102a357506001600160e01b03198216635b5e139f60e01b145b806102be57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600380546102d1906110b3565b80601f01602080910402602001604051908101604052809291908181526020018280546102fd906110b3565b801561034a5780601f1061031f5761010080835404028352916020019161034a565b820191906000526020600020905b81548152906001019060200180831161032d57829003601f168201915b505050505081565b60006005548211158015610367575060018210155b61037057600080fd5b61037982610831565b506000908152600960205260409020546001600160a01b031690565b60055481111580156103a8575060018110155b6103b157600080fd5b60006103bc8261054f565b9050806001600160a01b0316836001600160a01b03160361042e5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061044a575061044a813361079c565b6104bc5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610425565b6104c68383610893565b505050565b60055481111580156104de575060018110155b6104e757600080fd5b6104f13382610901565b61050d5760405162461bcd60e51b8152600401610425906110ed565b6104c6838383610960565b600554811115801561052b575060018110155b61053457600080fd5b6104c6838383604051806020016040528060008152506106f8565b60006005548211158015610564575060018210155b61056d57600080fd5b6000828152600760205260409020546001600160a01b03168061059857506000546001600160a01b03165b6001600160a01b0381166102be5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610425565b60006001600160a01b0382166106535760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610425565b506001600160a01b031660009081526008602052604090205490565b6001546001600160a01b0316331461068657600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319908116909155600180549091169055565b600480546102d1906110b3565b6106f4338383610afc565b5050565b600554821115801561070b575060018210155b61071457600080fd5b61071e3383610901565b61073a5760405162461bcd60e51b8152600401610425906110ed565b61074684848484610bca565b50505050565b60606005548211158015610761575060018210155b61076a57600080fd5b600661077583610bfd565b604051602001610786929190611157565b6040516020818303038152906040529050919050565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205460ff1690565b6001546001600160a01b031633146107e157600080fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000818152600760205260409020546001600160a01b03166108905760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610425565b50565b600081815260096020526040902080546001600160a01b0319166001600160a01b03841690811790915581906108c88261054f565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061090d8361054f565b9050806001600160a01b0316846001600160a01b031614806109345750610934818561079c565b806109585750836001600160a01b031661094d84610352565b6001600160a01b0316145b949350505050565b826001600160a01b03166109738261054f565b6001600160a01b0316146109d75760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610425565b6001600160a01b038216610a395760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610425565b610a44600082610893565b6001600160a01b0383166000908152600860205260408120805460019290610a6d90849061122b565b90915550506001600160a01b0382166000908152600860205260408120805460019290610a9b90849061123e565b909155505060008181526007602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b031603610b5d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610425565b6001600160a01b038381166000818152600a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610bd5848484610960565b610be184848484610cfe565b6107465760405162461bcd60e51b815260040161042590611251565b606081600003610c245750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610c4e5780610c38816112a3565b9150610c479050600a836112d2565b9150610c28565b60008167ffffffffffffffff811115610c6957610c69610f8e565b6040519080825280601f01601f191660200182016040528015610c93576020820181803683370190505b5090505b841561095857610ca860018361122b565b9150610cb5600a866112e6565b610cc090603061123e565b60f81b818381518110610cd557610cd56112fa565b60200101906001600160f81b031916908160001a905350610cf7600a866112d2565b9450610c97565b60006001600160a01b0384163b15610df457604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610d42903390899088908890600401611310565b6020604051808303816000875af1925050508015610d7d575060408051601f3d908101601f19168201909252610d7a9181019061134d565b60015b610dda573d808015610dab576040519150601f19603f3d011682016040523d82523d6000602084013e610db0565b606091505b508051600003610dd25760405162461bcd60e51b815260040161042590611251565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610958565b506001949350505050565b6001600160e01b03198116811461089057600080fd5b600060208284031215610e2757600080fd5b8135610e3281610dff565b9392505050565b60005b83811015610e54578181015183820152602001610e3c565b50506000910152565b60008151808452610e75816020860160208601610e39565b601f01601f19169290920160200192915050565b602081526000610e326020830184610e5d565b600060208284031215610eae57600080fd5b5035919050565b80356001600160a01b0381168114610ecc57600080fd5b919050565b60008060408385031215610ee457600080fd5b610eed83610eb5565b946020939093013593505050565b600080600060608486031215610f1057600080fd5b610f1984610eb5565b9250610f2760208501610eb5565b9150604084013590509250925092565b600060208284031215610f4957600080fd5b610e3282610eb5565b60008060408385031215610f6557600080fd5b610f6e83610eb5565b915060208301358015158114610f8357600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215610fba57600080fd5b610fc385610eb5565b9350610fd160208601610eb5565b925060408501359150606085013567ffffffffffffffff80821115610ff557600080fd5b818701915087601f83011261100957600080fd5b81358181111561101b5761101b610f8e565b604051601f8201601f19908116603f0116810190838211818310171561104357611043610f8e565b816040528281528a602084870101111561105c57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561109357600080fd5b61109c83610eb5565b91506110aa60208401610eb5565b90509250929050565b600181811c908216806110c757607f821691505b6020821081036110e757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6000815161114d818560208601610e39565b9290920192915050565b600080845481600182811c91508083168061117357607f831692505b6020808410820361119257634e487b7160e01b86526022600452602486fd5b8180156111a657600181146111bb576111e8565b60ff19861689528415158502890196506111e8565b60008b81526020902060005b868110156111e05781548b8201529085019083016111c7565b505084890196505b50505050505061120c6111fb828661113b565b64173539b7b760d91b815260050190565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156102be576102be611215565b808201808211156102be576102be611215565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000600182016112b5576112b5611215565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826112e1576112e16112bc565b500490565b6000826112f5576112f56112bc565b500690565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061134390830184610e5d565b9695505050505050565b60006020828403121561135f57600080fd5b8151610e3281610dff56fea26469706673582212202f6c32d77cde16c545e2a81ff83db7f593ea65281045fac212988ba00333869564736f6c63430008110033

Deployed Bytecode Sourcemap

10371:183:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4489:305;;;;;;:::i;:::-;;:::i;:::-;;;565:14:1;;558:22;540:41;;528:2;513:18;4489:305:0;;;;;;;;3701:18;;;:::i;:::-;;;;;;;:::i;6162:229::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1719:32:1;;;1701:51;;1689:2;1674:18;6162:229:0;1555:203:1;5683:471:0;;;;;;:::i;:::-;;:::i;:::-;;3753:26;;;;;;;;;2346:25:1;;;2334:2;2319:18;3753:26:0;2200:177:1;6732:337:0;;;;;;:::i;:::-;;:::i;7077:243::-;;;;;;:::i;:::-;;:::i;5017:357::-;;;;;;:::i;:::-;;:::i;4802:207::-;;;;;;:::i;:::-;;:::i;3362:204::-;;;:::i;2770:20::-;;;;;-1:-1:-1;;;;;2770:20:0;;;3726;;;:::i;6399:153::-;;;;;;:::i;:::-;;:::i;7328:379::-;;;;;;:::i;:::-;;:::i;5382:293::-;;;;;;:::i;:::-;;:::i;6560:164::-;;;;;;:::i;:::-;;:::i;3129:225::-;;;;;;:::i;:::-;;:::i;4489:305::-;4591:4;-1:-1:-1;;;;;;4628:40:0;;-1:-1:-1;;;4628:40:0;;:105;;-1:-1:-1;;;;;;;4685:48:0;;-1:-1:-1;;;4685:48:0;4628:105;:158;;;-1:-1:-1;;;;;;;;;;1243:40:0;;;4750:36;4608:178;4489:305;-1:-1:-1;;4489:305:0:o;3701:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6162:229::-;6238:7;6277:11;;6266:7;:22;;:38;;;;;6303:1;6292:7;:12;;6266:38;6258:47;;;;;;6316:23;6331:7;6316:14;:23::i;:::-;-1:-1:-1;6359:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;6359:24:0;;6162:229::o;5683:471::-;5783:11;;5772:7;:22;;:38;;;;;5809:1;5798:7;:12;;5772:38;5764:47;;;;;;5822:13;5838:23;5853:7;5838:14;:23::i;:::-;5822:39;;5886:5;-1:-1:-1;;;;;5880:11:0;:2;-1:-1:-1;;;;;5880:11:0;;5872:57;;;;-1:-1:-1;;;5872:57:0;;5385:2:1;5872:57:0;;;5367:21:1;5424:2;5404:18;;;5397:30;5463:34;5443:18;;;5436:62;-1:-1:-1;;;5514:18:1;;;5507:31;5555:19;;5872:57:0;;;;;;;;;5964:10;-1:-1:-1;;;;;5964:19:0;;;;:58;;;5987:35;6004:5;6011:10;5987:16;:35::i;:::-;5942:170;;;;-1:-1:-1;;;5942:170:0;;5787:2:1;5942:170:0;;;5769:21:1;5826:2;5806:18;;;5799:30;5865:34;5845:18;;;5838:62;5936:32;5916:18;;;5909:60;5986:19;;5942:170:0;5585:426:1;5942:170:0;6125:21;6134:2;6138:7;6125:8;:21::i;:::-;5753:401;5683:471;;:::o;6732:337::-;6885:11;;6874:7;:22;;:38;;;;;6911:1;6900:7;:12;;6874:38;6866:47;;;;;;6932:39;6951:10;6963:7;6932:18;:39::i;:::-;6924:98;;;;-1:-1:-1;;;6924:98:0;;;;;;;:::i;:::-;7033:28;7043:4;7049:2;7053:7;7033:9;:28::i;7077:243::-;7234:11;;7223:7;:22;;:38;;;;;7260:1;7249:7;:12;;7223:38;7215:47;;;;;;7273:39;7290:4;7296:2;7300:7;7273:39;;;;;;;;;;;;:16;:39::i;5017:357::-;5089:7;5128:11;;5117:7;:22;;:38;;;;;5154:1;5143:7;:12;;5117:38;5109:47;;;;;;5167:14;5184:16;;;:7;:16;;;;;;-1:-1:-1;;;;;5184:16:0;;5211:64;;-1:-1:-1;5258:5:0;;-1:-1:-1;;;;;5258:5:0;5211:64;-1:-1:-1;;;;;5293:20:0;;5285:57;;;;-1:-1:-1;;;5285:57:0;;6633:2:1;5285:57:0;;;6615:21:1;6672:2;6652:18;;;6645:30;-1:-1:-1;;;6691:18:1;;;6684:54;6755:18;;5285:57:0;6431:348:1;4802:207:0;4874:7;-1:-1:-1;;;;;4902:19:0;;4894:73;;;;-1:-1:-1;;;4894:73:0;;6986:2:1;4894:73:0;;;6968:21:1;7025:2;7005:18;;;6998:30;7064:34;7044:18;;;7037:62;-1:-1:-1;;;7115:18:1;;;7108:39;7164:19;;4894:73:0;6784:405:1;4894:73:0;-1:-1:-1;;;;;;4985:16:0;;;;;:9;:16;;;;;;;4802:207::o;3362:204::-;3425:5;;-1:-1:-1;;;;;3425:5:0;3434:10;3425:19;3417:28;;;;;;3497:1;3482:5;;3461:39;;-1:-1:-1;;;;;3482:5:0;;;;3461:39;;3497:1;;3461:39;3527:1;3511:18;;-1:-1:-1;;;;;;3511:18:0;;;;;;;3540;;;;;;;3362:204::o;3726:20::-;;;;;;;:::i;6399:153::-;6494:50;6513:10;6525:8;6535;6494:18;:50::i;:::-;6399:153;;:::o;7328:379::-;7513:11;;7502:7;:22;;:38;;;;;7539:1;7528:7;:12;;7502:38;7494:47;;;;;;7560:39;7579:10;7591:7;7560:18;:39::i;:::-;7552:98;;;;-1:-1:-1;;;7552:98:0;;;;;;;:::i;:::-;7661:38;7675:4;7681:2;7685:7;7694:4;7661:13;:38::i;:::-;7328:379;;;;:::o;5382:293::-;5455:13;5500:11;;5489:7;:22;;:38;;;;;5526:1;5515:7;:12;;5489:38;5481:47;;;;;;5602:3;5607:25;5624:7;5607:16;:25::i;:::-;5567:89;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5539:128;;5382:293;;;:::o;6560:164::-;-1:-1:-1;;;;;6681:25:0;;;6657:4;6681:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;6560:164::o;3129:225::-;3208:5;;-1:-1:-1;;;;;3208:5:0;3217:10;3208:19;3200:28;;;;;;3239:16;3258:5;;-1:-1:-1;;;;;3274:16:0;;;-1:-1:-1;;;;;;3274:16:0;;;;;;3306:40;;3258:5;;;;;;;3306:40;;3239:16;3306:40;3189:165;3129:225;:::o;9424:135::-;8101:4;8125:16;;;:7;:16;;;;;;-1:-1:-1;;;;;8125:16:0;9498:53;;;;-1:-1:-1;;;9498:53:0;;6633:2:1;9498:53:0;;;6615:21:1;6672:2;6652:18;;;6645:30;-1:-1:-1;;;6691:18:1;;;6684:54;6755:18;;9498:53:0;6431:348:1;9498:53:0;9424:135;:::o;8919:174::-;8994:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;8994:29:0;-1:-1:-1;;;;;8994:29:0;;;;;;;;:24;;9048:23;8994:24;9048:14;:23::i;:::-;-1:-1:-1;;;;;9039:46:0;;;;;;;;;;;8919:174;;:::o;8171:264::-;8264:4;8281:13;8297:23;8312:7;8297:14;:23::i;:::-;8281:39;;8350:5;-1:-1:-1;;;;;8339:16:0;:7;-1:-1:-1;;;;;8339:16:0;;:52;;;;8359:32;8376:5;8383:7;8359:16;:32::i;:::-;8339:87;;;;8419:7;-1:-1:-1;;;;;8395:31:0;:20;8407:7;8395:11;:20::i;:::-;-1:-1:-1;;;;;8395:31:0;;8339:87;8331:96;8171:264;-1:-1:-1;;;;8171:264:0:o;8443:468::-;8602:4;-1:-1:-1;;;;;8575:31:0;:23;8590:7;8575:14;:23::i;:::-;-1:-1:-1;;;;;8575:31:0;;8567:81;;;;-1:-1:-1;;;8567:81:0;;9178:2:1;8567:81:0;;;9160:21:1;9217:2;9197:18;;;9190:30;9256:34;9236:18;;;9229:62;-1:-1:-1;;;9307:18:1;;;9300:35;9352:19;;8567:81:0;8976:401:1;8567:81:0;-1:-1:-1;;;;;8667:16:0;;8659:65;;;;-1:-1:-1;;;8659:65:0;;9584:2:1;8659:65:0;;;9566:21:1;9623:2;9603:18;;;9596:30;9662:34;9642:18;;;9635:62;-1:-1:-1;;;9713:18:1;;;9706:34;9757:19;;8659:65:0;9382:400:1;8659:65:0;8735:29;8752:1;8756:7;8735:8;:29::i;:::-;-1:-1:-1;;;;;8777:15:0;;;;;;:9;:15;;;;;:20;;8796:1;;8777:15;:20;;8796:1;;8777:20;:::i;:::-;;;;-1:-1:-1;;;;;;;8808:13:0;;;;;;:9;:13;;;;;:18;;8825:1;;8808:13;:18;;8825:1;;8808:18;:::i;:::-;;;;-1:-1:-1;;8837:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;8837:21:0;-1:-1:-1;;;;;8837:21:0;;;;;;;;;8876:27;;8837:16;;8876:27;;;;;;;8443:468;;;:::o;9101:315::-;9256:8;-1:-1:-1;;;;;9247:17:0;:5;-1:-1:-1;;;;;9247:17:0;;9239:55;;;;-1:-1:-1;;;9239:55:0;;10384:2:1;9239:55:0;;;10366:21:1;10423:2;10403:18;;;10396:30;10462:27;10442:18;;;10435:55;10507:18;;9239:55:0;10182:349:1;9239:55:0;-1:-1:-1;;;;;9305:25:0;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;9305:46:0;;;;;;;;;;9367:41;;540::1;;;9367::0;;513:18:1;9367:41:0;;;;;;;9101:315;;;:::o;7715:313::-;7871:28;7881:4;7887:2;7891:7;7871:9;:28::i;:::-;7918:47;7941:4;7947:2;7951:7;7960:4;7918:22;:47::i;:::-;7910:110;;;;-1:-1:-1;;;7910:110:0;;;;;;;:::i;84:534::-;140:13;172:5;181:1;172:10;168:53;;-1:-1:-1;;199:10:0;;;;;;;;;;;;-1:-1:-1;;;199:10:0;;;;;84:534::o;168:53::-;246:5;231:12;287:78;294:9;;287:78;;320:8;;;;:::i;:::-;;-1:-1:-1;343:10:0;;-1:-1:-1;351:2:0;343:10;;:::i;:::-;;;287:78;;;375:19;407:6;397:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;397:17:0;;375:39;;425:154;432:10;;425:154;;459:11;469:1;459:11;;:::i;:::-;;-1:-1:-1;528:10:0;536:2;528:5;:10;:::i;:::-;515:24;;:2;:24;:::i;:::-;502:39;;485:6;492;485:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;485:56:0;;;;;;;;-1:-1:-1;556:11:0;565:2;556:11;;:::i;:::-;;;425:154;;9567:795;9721:4;-1:-1:-1;;;;;9742:13:0;;734:19;:23;9738:617;;9778:69;;-1:-1:-1;;;9778:69:0;;-1:-1:-1;;;;;9778:36:0;;;;;:69;;9815:10;;9827:4;;9833:7;;9842:4;;9778:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9778:69:0;;;;;;;;-1:-1:-1;;9778:69:0;;;;;;;;;;;;:::i;:::-;;;9774:526;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10017:6;:13;10034:1;10017:18;10013:272;;10060:60;;-1:-1:-1;;;10060:60:0;;;;;;;:::i;10013:272::-;10235:6;10229:13;10220:6;10216:2;10212:15;10205:38;9774:526;-1:-1:-1;;;;;;9898:51:0;-1:-1:-1;;;9898:51:0;;-1:-1:-1;9891:58:0;;9738:617;-1:-1:-1;10339:4:0;9567:795;;;;;;:::o;14:131:1:-;-1:-1:-1;;;;;;88:32:1;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;:::-;384:5;150:245;-1:-1:-1;;;150:245:1:o;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:1;816:16;;809:27;592:250::o;847:282::-;900:3;938:5;932:12;965:6;960:3;953:19;981:76;1050:6;1043:4;1038:3;1034:14;1027:4;1020:5;1016:16;981:76;:::i;:::-;1111:2;1090:15;-1:-1:-1;;1086:29:1;1077:39;;;;1118:4;1073:50;;847:282;-1:-1:-1;;847:282:1:o;1134:231::-;1283:2;1272:9;1265:21;1246:4;1303:56;1355:2;1344:9;1340:18;1332:6;1303:56;:::i;1370:180::-;1429:6;1482:2;1470:9;1461:7;1457:23;1453:32;1450:52;;;1498:1;1495;1488:12;1450:52;-1:-1:-1;1521:23:1;;1370:180;-1:-1:-1;1370:180:1:o;1763:173::-;1831:20;;-1:-1:-1;;;;;1880:31:1;;1870:42;;1860:70;;1926:1;1923;1916:12;1860:70;1763:173;;;:::o;1941:254::-;2009:6;2017;2070:2;2058:9;2049:7;2045:23;2041:32;2038:52;;;2086:1;2083;2076:12;2038:52;2109:29;2128:9;2109:29;:::i;:::-;2099:39;2185:2;2170:18;;;;2157:32;;-1:-1:-1;;;1941:254:1:o;2382:328::-;2459:6;2467;2475;2528:2;2516:9;2507:7;2503:23;2499:32;2496:52;;;2544:1;2541;2534:12;2496:52;2567:29;2586:9;2567:29;:::i;:::-;2557:39;;2615:38;2649:2;2638:9;2634:18;2615:38;:::i;:::-;2605:48;;2700:2;2689:9;2685:18;2672:32;2662:42;;2382:328;;;;;:::o;2715:186::-;2774:6;2827:2;2815:9;2806:7;2802:23;2798:32;2795:52;;;2843:1;2840;2833:12;2795:52;2866:29;2885:9;2866:29;:::i;2906:347::-;2971:6;2979;3032:2;3020:9;3011:7;3007:23;3003:32;3000:52;;;3048:1;3045;3038:12;3000:52;3071:29;3090:9;3071:29;:::i;:::-;3061:39;;3150:2;3139:9;3135:18;3122:32;3197:5;3190:13;3183:21;3176:5;3173:32;3163:60;;3219:1;3216;3209:12;3163:60;3242:5;3232:15;;;2906:347;;;;;:::o;3258:127::-;3319:10;3314:3;3310:20;3307:1;3300:31;3350:4;3347:1;3340:15;3374:4;3371:1;3364:15;3390:1138;3485:6;3493;3501;3509;3562:3;3550:9;3541:7;3537:23;3533:33;3530:53;;;3579:1;3576;3569:12;3530:53;3602:29;3621:9;3602:29;:::i;:::-;3592:39;;3650:38;3684:2;3673:9;3669:18;3650:38;:::i;:::-;3640:48;;3735:2;3724:9;3720:18;3707:32;3697:42;;3790:2;3779:9;3775:18;3762:32;3813:18;3854:2;3846:6;3843:14;3840:34;;;3870:1;3867;3860:12;3840:34;3908:6;3897:9;3893:22;3883:32;;3953:7;3946:4;3942:2;3938:13;3934:27;3924:55;;3975:1;3972;3965:12;3924:55;4011:2;3998:16;4033:2;4029;4026:10;4023:36;;;4039:18;;:::i;:::-;4114:2;4108:9;4082:2;4168:13;;-1:-1:-1;;4164:22:1;;;4188:2;4160:31;4156:40;4144:53;;;4212:18;;;4232:22;;;4209:46;4206:72;;;4258:18;;:::i;:::-;4298:10;4294:2;4287:22;4333:2;4325:6;4318:18;4373:7;4368:2;4363;4359;4355:11;4351:20;4348:33;4345:53;;;4394:1;4391;4384:12;4345:53;4450:2;4445;4441;4437:11;4432:2;4424:6;4420:15;4407:46;4495:1;4490:2;4485;4477:6;4473:15;4469:24;4462:35;4516:6;4506:16;;;;;;;3390:1138;;;;;;;:::o;4533:260::-;4601:6;4609;4662:2;4650:9;4641:7;4637:23;4633:32;4630:52;;;4678:1;4675;4668:12;4630:52;4701:29;4720:9;4701:29;:::i;:::-;4691:39;;4749:38;4783:2;4772:9;4768:18;4749:38;:::i;:::-;4739:48;;4533:260;;;;;:::o;4798:380::-;4877:1;4873:12;;;;4920;;;4941:61;;4995:4;4987:6;4983:17;4973:27;;4941:61;5048:2;5040:6;5037:14;5017:18;5014:38;5011:161;;5094:10;5089:3;5085:20;5082:1;5075:31;5129:4;5126:1;5119:15;5157:4;5154:1;5147:15;5011:161;;4798:380;;;:::o;6016:410::-;6218:2;6200:21;;;6257:2;6237:18;;;6230:30;6296:34;6291:2;6276:18;;6269:62;-1:-1:-1;;;6362:2:1;6347:18;;6340:44;6416:3;6401:19;;6016:410::o;7320:198::-;7362:3;7400:5;7394:12;7415:65;7473:6;7468:3;7461:4;7454:5;7450:16;7415:65;:::i;:::-;7496:16;;;;;7320:198;-1:-1:-1;;7320:198:1:o;7641:1330::-;7918:3;7947:1;7980:6;7974:13;8010:3;8032:1;8060:9;8056:2;8052:18;8042:28;;8120:2;8109:9;8105:18;8142;8132:61;;8186:4;8178:6;8174:17;8164:27;;8132:61;8212:2;8260;8252:6;8249:14;8229:18;8226:38;8223:165;;-1:-1:-1;;;8287:33:1;;8343:4;8340:1;8333:15;8373:4;8294:3;8361:17;8223:165;8404:18;8431:133;;;;8578:1;8573:320;;;;8397:496;;8431:133;-1:-1:-1;;8464:24:1;;8452:37;;8537:14;;8530:22;8518:35;;8509:45;;;-1:-1:-1;8431:133:1;;8573:320;7267:1;7260:14;;;7304:4;7291:18;;8668:1;8682:165;8696:6;8693:1;8690:13;8682:165;;;8774:14;;8761:11;;;8754:35;8817:16;;;;8711:10;;8682:165;;;8686:3;;8876:6;8871:3;8867:16;8860:23;;8397:496;;;;;;;8909:56;8934:30;8960:3;8952:6;8934:30;:::i;:::-;-1:-1:-1;;;7583:20:1;;7628:1;7619:11;;7523:113;8909:56;8902:63;7641:1330;-1:-1:-1;;;;;7641:1330:1:o;9787:127::-;9848:10;9843:3;9839:20;9836:1;9829:31;9879:4;9876:1;9869:15;9903:4;9900:1;9893:15;9919:128;9986:9;;;10007:11;;;10004:37;;;10021:18;;:::i;10052:125::-;10117:9;;;10138:10;;;10135:36;;;10151:18;;:::i;10536:414::-;10738:2;10720:21;;;10777:2;10757:18;;;10750:30;10816:34;10811:2;10796:18;;10789:62;-1:-1:-1;;;10882:2:1;10867:18;;10860:48;10940:3;10925:19;;10536:414::o;10955:135::-;10994:3;11015:17;;;11012:43;;11035:18;;:::i;:::-;-1:-1:-1;11082:1:1;11071:13;;10955:135::o;11095:127::-;11156:10;11151:3;11147:20;11144:1;11137:31;11187:4;11184:1;11177:15;11211:4;11208:1;11201:15;11227:120;11267:1;11293;11283:35;;11298:18;;:::i;:::-;-1:-1:-1;11332:9:1;;11227:120::o;11352:112::-;11384:1;11410;11400:35;;11415:18;;:::i;:::-;-1:-1:-1;11449:9:1;;11352:112::o;11469:127::-;11530:10;11525:3;11521:20;11518:1;11511:31;11561:4;11558:1;11551:15;11585:4;11582:1;11575:15;11601:500;-1:-1:-1;;;;;11870:15:1;;;11852:34;;11922:15;;11917:2;11902:18;;11895:43;11969:2;11954:18;;11947:34;;;12017:3;12012:2;11997:18;;11990:31;;;11795:4;;12038:57;;12075:19;;12067:6;12038:57;:::i;:::-;12030:65;11601:500;-1:-1:-1;;;;;;11601:500:1:o;12106:249::-;12175:6;12228:2;12216:9;12207:7;12203:23;12199:32;12196:52;;;12244:1;12241;12234:12;12196:52;12276:9;12270:16;12295:30;12319:5;12295:30;:::i

Swarm Source

ipfs://2f6c32d77cde16c545e2a81ff83db7f593ea65281045fac212988ba003338695
Loading...
Loading
Loading...
Loading
[ 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.