ETH Price: $2,758.34 (-0.48%)

Token

Tamago Neko (NEKO)
 

Overview

Max Total Supply

748 NEKO

Holders

273

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
4 NEKO
0x287b2C532a1aeCEa8e96e6598E68207Eb2c5f805
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:
TamagoNeko

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-31
*/

// File: TamagoNeko.sol


pragma solidity ^0.8.0;

/* ERC721I - ERC721I (ERC721 0xInuarashi Edition) - Gas Optimized
    Open Source: with the efforts of the [0x Collective] <3 */

contract ERC721I {
    string public name; string public symbol;
    string internal baseTokenURI; string internal baseTokenURI_EXT;
    constructor(string memory name_, string memory symbol_) {
        name = name_; symbol = symbol_; 
    }

    uint256 public totalSupply; 
    mapping(uint256 => address) public ownerOf; 
    mapping(address => uint256) public balanceOf; 

    mapping(uint256 => address) public getApproved; 
    mapping(address => mapping(address => bool)) public isApprovedForAll; 

    // Events
    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);

    // // internal write functions
    // mint
    function _mint(address to_, uint256 tokenId_) internal virtual {
        require(to_ != address(0x0), 
            "ERC721I: _mint() Mint to Zero Address");
        require(ownerOf[tokenId_] == address(0x0), 
            "ERC721I: _mint() Token to Mint Already Exists!");

        balanceOf[to_]++;
        ownerOf[tokenId_] = to_;

        emit Transfer(address(0x0), to_, tokenId_);
    }

    // transfer
    function _transfer(address from_, address to_, uint256 tokenId_) internal virtual {
        require(from_ == ownerOf[tokenId_], 
            "ERC721I: _transfer() Transfer Not Owner of Token!");
        require(to_ != address(0x0), 
            "ERC721I: _transfer() Transfer to Zero Address!");

        // checks if there is an approved address clears it if there is
        if (getApproved[tokenId_] != address(0x0)) { 
            _approve(address(0x0), tokenId_); 
        } 

        ownerOf[tokenId_] = to_; 
        balanceOf[from_]--;
        balanceOf[to_]++;

        emit Transfer(from_, to_, tokenId_);
    }

    // approve
    function _approve(address to_, uint256 tokenId_) internal virtual {
        if (getApproved[tokenId_] != to_) {
            getApproved[tokenId_] = to_;
            emit Approval(ownerOf[tokenId_], to_, tokenId_);
        }
    }
    function _setApprovalForAll(address owner_, address operator_, bool approved_)
    internal virtual {
        require(owner_ != operator_, 
            "ERC721I: _setApprovalForAll() Owner must not be the Operator!");
        isApprovedForAll[owner_][operator_] = approved_;
        emit ApprovalForAll(owner_, operator_, approved_);
    }

    // token uri
    function _setBaseTokenURI(string memory uri_) internal virtual {
        baseTokenURI = uri_;
    }
    function _setBaseTokenURI_EXT(string memory ext_) internal virtual {
        baseTokenURI_EXT = ext_;
    }

    // // Internal View Functions
    // Embedded Libraries
    function _toString(uint256 value_) internal pure returns (string memory) {
        if (value_ == 0) { return "0"; }
        uint256 _iterate = value_; uint256 _digits;
        while (_iterate != 0) { _digits++; _iterate /= 10; } // get digits in value_
        bytes memory _buffer = new bytes(_digits);
        while (value_ != 0) { _digits--; _buffer[_digits] = bytes1(uint8(
            48 + uint256(value_ % 10 ))); value_ /= 10; } // create bytes of value_
        return string(_buffer); // return string converted bytes of value_
    }

    // Functional Views
    function _isApprovedOrOwner(address spender_, uint256 tokenId_) internal 
    view virtual returns (bool) {
        require(ownerOf[tokenId_] != address(0x0), 
            "ERC721I: _isApprovedOrOwner() Owner is Zero Address!");
        address _owner = ownerOf[tokenId_];
        return (spender_ == _owner 
            || spender_ == getApproved[tokenId_] 
            || isApprovedForAll[_owner][spender_]);
    }
    function _exists(uint256 tokenId_) internal view virtual returns (bool) {
        return ownerOf[tokenId_] != address(0x0);
    }

    // // public write functions
    function approve(address to_, uint256 tokenId_) public virtual {
        address _owner = ownerOf[tokenId_];
        require(to_ != _owner, 
            "ERC721I: approve() Cannot approve yourself!");
        require(msg.sender == _owner || isApprovedForAll[_owner][msg.sender],
            "ERC721I: Caller not owner or Approved!");
        _approve(to_, tokenId_);
    }
    function setApprovalForAll(address operator_, bool approved_) public virtual {
        _setApprovalForAll(msg.sender, operator_, approved_);
    }

    function transferFrom(address from_, address to_, uint256 tokenId_) 
    public virtual {
        require(_isApprovedOrOwner(msg.sender, tokenId_), 
            "ERC721I: transferFrom() _isApprovedOrOwner = false!");
        _transfer(from_, to_, tokenId_);
    }
    function safeTransferFrom(address from_, address to_, uint256 tokenId_, 
    bytes memory data_) public virtual {
        transferFrom(from_, to_, tokenId_);
        if (to_.code.length != 0) {
            (, bytes memory _returned) = to_.staticcall(abi.encodeWithSelector(
                0x150b7a02, msg.sender, from_, tokenId_, data_));
            bytes4 _selector = abi.decode(_returned, (bytes4));
            require(_selector == 0x150b7a02, 
                "ERC721I: safeTransferFrom() to_ not ERC721Receivable!");
        }
    }
    function safeTransferFrom(address from_, address to_, uint256 tokenId_) 
    public virtual {
        safeTransferFrom(from_, to_, tokenId_, "");
    }

    // 0xInuarashi Custom Functions
    function multiTransferFrom(address from_, address to_, 
    uint256[] memory tokenIds_) public virtual {
        for (uint256 i = 0; i < tokenIds_.length; i++) {
            transferFrom(from_, to_, tokenIds_[i]);
        }
    }
    function multiSafeTransferFrom(address from_, address to_, 
    uint256[] memory tokenIds_, bytes memory data_) public virtual {
        for (uint256 i = 0; i < tokenIds_.length; i++) {
            safeTransferFrom(from_, to_, tokenIds_[i], data_);
        }
    }

    // OZ Standard Stuff
    function supportsInterface(bytes4 interfaceId_) public pure returns (bool) {
        return (interfaceId_ == 0x80ac58cd || interfaceId_ == 0x5b5e139f);
    }

    function tokenURI(uint256 tokenId_) public view virtual returns (string memory) {
        require(ownerOf[tokenId_] != address(0x0), 
            "ERC721I: tokenURI() Token does not exist!");
        return string(abi.encodePacked(
            baseTokenURI, _toString(tokenId_), baseTokenURI_EXT));
    }
    // // public view functions
    // never use these for functions ever, they are expensive af and for view only 
    function walletOfOwner(address address_) public virtual view 
    returns (uint256[] memory) {
        uint256 _balance = balanceOf[address_];
        uint256[] memory _tokens = new uint256[] (_balance);
        uint256 _index;
        uint256 _loopThrough = totalSupply;
        for (uint256 i = 0; i < _loopThrough; i++) {
            if (ownerOf[i] == address(0x0) && _tokens[_balance - 1] == 0) {
                _loopThrough++; 
            }
            if (ownerOf[i] == address_) { 
                _tokens[_index] = i; _index++; 
            }
        }
        return _tokens;
    }

    // not sure when this will ever be needed but it conforms to erc721 enumerable
    function tokenOfOwnerByIndex(address address_, uint256 index_) public 
    virtual view returns (uint256) {
        uint256[] memory _wallet = walletOfOwner(address_);
        return _wallet[index_];
    }
}

// Open0x Ownable (by 0xInuarashi)
abstract contract Ownable {
    address public owner;
    event OwnershipTransferred(address indexed oldOwner_, address indexed newOwner_);
    constructor() { owner = msg.sender; }
    modifier onlyOwner {
        require(owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    function _transferOwnership(address newOwner_) internal virtual {
        address _oldOwner = owner;
        owner = newOwner_;
        emit OwnershipTransferred(_oldOwner, newOwner_);    
    }
    function transferOwnership(address newOwner_) public virtual onlyOwner {
        require(newOwner_ != address(0x0), "Ownable: new owner is the zero address!");
        _transferOwnership(newOwner_);
    }
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0x0));
    }
}

abstract contract PublicMint {
    // Public Minting
    bool public _publicMintEnabled;
    function _setPublicMint(bool bool_) internal {
        _publicMintEnabled = bool_; 
    }
    modifier publicMintEnabled { 
        require(_publicMintEnabled, "Public Mint is not enabled yet!"); 
        _; 
    }
    function publicMintStatus() external view returns (bool) {
        return _publicMintEnabled; 
    }
}

abstract contract Security {
    // Prevent Smart Contracts
    modifier onlySender {
        require(msg.sender == tx.origin, "No Smart Contracts!"); _; }
}

contract TamagoNeko is ERC721I, Ownable, PublicMint, Security {
    // Constructor
    constructor(string memory baseTokenURI) payable ERC721I("Tamago Neko", "NEKO") {
        _setBaseTokenURI(baseTokenURI);
        _setBaseTokenURI_EXT(".json");
        _mintMany(msg.sender, 1);
    }

    // Project Constraints
    uint256 public mintPrice = 0.004 ether;
    uint256 public freeSupply = 300;
    uint256 public maxSupply = 748;

    // Public Limits
    // maxMintsPerPublic also serves as max NFTs per wallet
    uint256 public maxFreeMintPerWallet = 2;
    uint256 public maxMintsPerPublic = 15;
    mapping(address => uint256) public addressToPublicMints;
    mapping(address => uint256) private mintedFreeAmount;

    // Public Mint
    function publicMint(uint256 amount_) external payable
    onlySender publicMintEnabled {
        uint256 cost = mintPrice;
        
        bool isFree = ((totalSupply + amount_ < freeSupply + 1) &&
            (mintedFreeAmount[msg.sender] + amount_ <= maxFreeMintPerWallet));

        if (isFree) {
            cost = 0;
        }

        require(maxMintsPerPublic >= addressToPublicMints[msg.sender] + amount_,
            "Exceeds the max amount per TX!");
        require(msg.value == cost * amount_, 
            "Invalid value sent!");

        if (isFree) {
            mintedFreeAmount[msg.sender] += amount_;
        }

        // Add address to Public Mints
        addressToPublicMints[msg.sender] += amount_;
        
        // Now, mint to msg.sender
        _mintMany(msg.sender, amount_);
    }

    // Administrative Functions
    function setMintPrice(uint256 mintPrice_) external onlyOwner {
        mintPrice = mintPrice_;
    }
    function setMaxSupply(uint256 maxSupply_) external onlyOwner {
        maxSupply = maxSupply_;
    }
    
    // Public Mint Limits
    function setMaxMintsPerPublic(uint256 maxMintsPerPublic_) external onlyOwner {
        maxMintsPerPublic = maxMintsPerPublic_;
    }

    function setfreeSupply(uint256 freeSupply_) external onlyOwner {
        freeSupply = freeSupply_;
    }

    // Token URI
    function setBaseTokenURI(string calldata uri_) external onlyOwner {
        _setBaseTokenURI(uri_);
    }
    function setBaseTokenURI_EXT(string calldata ext_) external onlyOwner {
        _setBaseTokenURI_EXT(ext_);
    }

    // Public Mint
    function setPublicMint(bool bool_) external onlyOwner {
        _setPublicMint(bool_);
    }

    // Internal Functions
    function _mintMany(address to_, uint256 amount_) internal {
        require(maxSupply >= totalSupply + amount_,
            "Not enough NFTs remaining!");
        
        uint256 _startId = totalSupply + 1; // iterate from 1

        for (uint256 i = 0; i < amount_; i++) {
            _mint(to_, _startId + i);
        }

        totalSupply += amount_;
    }

    function withdraw() external onlyOwner {
        (bool success, ) = payable(msg.sender).call{
            value: address(this).balance
        }("");
        require(success, "Transfer failed.");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"baseTokenURI","type":"string"}],"stateMutability":"payable","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":"oldOwner_","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":[],"name":"_publicMintEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"addressToPublicMints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"freeSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"maxFreeMintPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMintsPerPublic","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintPrice","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":"tokenIds_","type":"uint256[]"},{"internalType":"bytes","name":"data_","type":"bytes"}],"name":"multiSafeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from_","type":"address"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"}],"name":"multiTransferFrom","outputs":[],"stateMutability":"nonpayable","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":"","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"publicMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"publicMintStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"string","name":"uri_","type":"string"}],"name":"setBaseTokenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"ext_","type":"string"}],"name":"setBaseTokenURI_EXT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxMintsPerPublic_","type":"uint256"}],"name":"setMaxMintsPerPublic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSupply_","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"mintPrice_","type":"uint256"}],"name":"setMintPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"bool_","type":"bool"}],"name":"setPublicMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"freeSupply_","type":"uint256"}],"name":"setfreeSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId_","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"},{"internalType":"uint256","name":"index_","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052660e35fa931a0000600a5561012c600b556102ec600c556002600d55600f600e556040516200294038038062002940833981016040819052620000479162000416565b604080518082018252600b81526a54616d61676f204e656b6f60a81b6020808301918252835180850190945260048452634e454b4f60e01b908401528151919291620000969160009162000370565b508051620000ac90600190602084019062000370565b5050600980546001600160a01b0319163317905550620000cc8162000107565b604080518082019091526005815264173539b7b760d91b6020820152620000f39062000120565b6200010033600162000135565b5062000594565b80516200011c90600290602084019062000370565b5050565b80516200011c90600390602084019062000370565b80600454620001459190620004f2565b600c5410156200019c5760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420656e6f756768204e4654732072656d61696e696e672100000000000060448201526064015b60405180910390fd5b60006004546001620001af9190620004f2565b905060005b82811015620001e957620001d484620001ce8385620004f2565b62000208565b80620001e0816200054a565b915050620001b4565b508160046000828254620001fe9190620004f2565b9091555050505050565b6001600160a01b0382166200026e5760405162461bcd60e51b815260206004820152602560248201527f455243373231493a205f6d696e742829204d696e7420746f205a65726f204164604482015264647265737360d81b606482015260840162000193565b6000818152600560205260409020546001600160a01b031615620002ec5760405162461bcd60e51b815260206004820152602e60248201527f455243373231493a205f6d696e74282920546f6b656e20746f204d696e74204160448201526d6c7265616479204578697374732160901b606482015260840162000193565b6001600160a01b038216600090815260066020526040812080549162000312836200054a565b909155505060008181526005602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280546200037e906200050d565b90600052602060002090601f016020900481019282620003a25760008555620003ed565b82601f10620003bd57805160ff1916838001178555620003ed565b82800160010185558215620003ed579182015b82811115620003ed578251825591602001919060010190620003d0565b50620003fb929150620003ff565b5090565b5b80821115620003fb576000815560010162000400565b600060208083850312156200042a57600080fd5b82516001600160401b03808211156200044257600080fd5b818501915085601f8301126200045757600080fd5b8151818111156200046c576200046c6200057e565b604051601f8201601f19908116603f011681019083821181831017156200049757620004976200057e565b816040528281528886848701011115620004b057600080fd5b600093505b82841015620004d45784840186015181850187015292850192620004b5565b82841115620004e65760008684830101525b98975050505050505050565b6000821982111562000508576200050862000568565b500190565b600181811c908216806200052257607f821691505b602082108114156200054457634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141562000561576200056162000568565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b61239c80620005a46000396000f3fe6080604052600436106102255760003560e01c80636352211e1161012357806395d89b41116100ab578063d5abeb011161006f578063d5abeb011461067c578063e985e9c514610692578063f2fde38b146106cd578063f487c602146106ed578063f4a0a5281461070d57600080fd5b806395d89b41146105e7578063a22cb465146105fc578063b600ec951461061c578063b88d4fde1461063c578063c87b56dd1461065c57600080fd5b8063715018a6116100f2578063715018a61461054e578063845bb3bb14610563578063895f263f146105795780638bdc048a146105a65780638da5cb5b146105c757600080fd5b80636352211e146104b55780636817c76c146104eb5780636f8b44b01461050157806370a082311461052157600080fd5b806323b872dd116101b157806330176e131161017557806330176e13146104135780633a3473b6146104335780633ccfd60b1461045357806342842e0e14610468578063438b63001461048857600080fd5b806323b872dd1461038b57806324a6ab0c146103ab57806326202370146103c15780632db11544146103e05780632f745c59146103f357600080fd5b8063095ea7b3116101f8578063095ea7b3146102f15780630e12f704146103115780630e2d56cf1461033557806318160ddd146103555780631a86854f1461036b57600080fd5b806301ffc9a71461022a57806302ffaed11461025f57806306fdde0314610281578063081812fc146102a3575b600080fd5b34801561023657600080fd5b5061024a610245366004611f15565b61072d565b60405190151581526020015b60405180910390f35b34801561026b57600080fd5b5061027f61027a366004611f4f565b610764565b005b34801561028d57600080fd5b506102966107da565b6040516102569190612170565b3480156102af57600080fd5b506102d96102be366004611fc1565b6007602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610256565b3480156102fd57600080fd5b5061027f61030c366004611ed0565b610868565b34801561031d57600080fd5b50610327600e5481565b604051908152602001610256565b34801561034157600080fd5b5061027f610350366004611efa565b61098c565b34801561036157600080fd5b5061032760045481565b34801561037757600080fd5b5061027f610386366004611fc1565b6109d3565b34801561039757600080fd5b5061027f6103a6366004611e0e565b610a02565b3480156103b757600080fd5b50610327600b5481565b3480156103cd57600080fd5b50600954600160a01b900460ff1661024a565b61027f6103ee366004611fc1565b610a7f565b3480156103ff57600080fd5b5061032761040e366004611ed0565b610c89565b34801561041f57600080fd5b5061027f61042e366004611f4f565b610cba565b34801561043f57600080fd5b5061027f61044e366004611d89565b610d23565b34801561045f57600080fd5b5061027f610d6d565b34801561047457600080fd5b5061027f610483366004611e0e565b610e22565b34801561049457600080fd5b506104a86104a3366004611cd6565b610e3d565b604051610256919061212c565b3480156104c157600080fd5b506102d96104d0366004611fc1565b6005602052600090815260409020546001600160a01b031681565b3480156104f757600080fd5b50610327600a5481565b34801561050d57600080fd5b5061027f61051c366004611fc1565b610f75565b34801561052d57600080fd5b5061032761053c366004611cd6565b60066020526000908152604090205481565b34801561055a57600080fd5b5061027f610fa4565b34801561056f57600080fd5b50610327600d5481565b34801561058557600080fd5b50610327610594366004611cd6565b600f6020526000908152604090205481565b3480156105b257600080fd5b5060095461024a90600160a01b900460ff1681565b3480156105d357600080fd5b506009546102d9906001600160a01b031681565b3480156105f357600080fd5b50610296610fda565b34801561060857600080fd5b5061027f610617366004611ea6565b610fe7565b34801561062857600080fd5b5061027f610637366004611fc1565b610ff2565b34801561064857600080fd5b5061027f610657366004611e4a565b611021565b34801561066857600080fd5b50610296610677366004611fc1565b611180565b34801561068857600080fd5b50610327600c5481565b34801561069e57600080fd5b5061024a6106ad366004611cf8565b600860209081526000928352604080842090915290825290205460ff1681565b3480156106d957600080fd5b5061027f6106e8366004611cd6565b61122e565b3480156106f957600080fd5b5061027f610708366004611d2b565b6112c7565b34801561071957600080fd5b5061027f610728366004611fc1565b611309565b60006380ac58cd60e01b6001600160e01b03198316148061075e5750635b5e139f60e01b6001600160e01b03198316145b92915050565b6009546001600160a01b031633146107975760405162461bcd60e51b815260040161078e90612183565b60405180910390fd5b6107d682828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061133892505050565b5050565b600080546107e79061228e565b80601f01602080910402602001604051908101604052809291908181526020018280546108139061228e565b80156108605780601f1061083557610100808354040283529160200191610860565b820191906000526020600020905b81548152906001019060200180831161084357829003601f168201915b505050505081565b6000818152600560205260409020546001600160a01b039081169083168114156108e85760405162461bcd60e51b815260206004820152602b60248201527f455243373231493a20617070726f766528292043616e6e6f7420617070726f7660448201526a6520796f757273656c662160a81b606482015260840161078e565b336001600160a01b038216148061092257506001600160a01b038116600090815260086020908152604080832033845290915290205460ff165b61097d5760405162461bcd60e51b815260206004820152602660248201527f455243373231493a2043616c6c6572206e6f74206f776e6572206f7220417070604482015265726f7665642160d01b606482015260840161078e565b610987838361134b565b505050565b6009546001600160a01b031633146109b65760405162461bcd60e51b815260040161078e90612183565b6009805460ff60a01b1916600160a01b8315150217905550565b50565b6009546001600160a01b031633146109fd5760405162461bcd60e51b815260040161078e90612183565b600b55565b610a0c33826113d3565b610a745760405162461bcd60e51b815260206004820152603360248201527f455243373231493a207472616e7366657246726f6d2829205f6973417070726f6044820152727665644f724f776e6572203d2066616c73652160681b606482015260840161078e565b6109878383836114cf565b333214610ac45760405162461bcd60e51b81526020600482015260136024820152724e6f20536d61727420436f6e7472616374732160681b604482015260640161078e565b600954600160a01b900460ff16610b1d5760405162461bcd60e51b815260206004820152601f60248201527f5075626c6963204d696e74206973206e6f7420656e61626c6564207965742100604482015260640161078e565b600a54600b54600090610b319060016121e9565b83600454610b3f91906121e9565b108015610b685750600d5433600090815260106020526040902054610b659085906121e9565b11155b90508015610b7557600091505b336000908152600f6020526040902054610b909084906121e9565b600e541015610be15760405162461bcd60e51b815260206004820152601e60248201527f4578636565647320746865206d617820616d6f756e7420706572205458210000604482015260640161078e565b610beb8383612215565b3414610c2f5760405162461bcd60e51b8152602060048201526013602482015272496e76616c69642076616c75652073656e742160681b604482015260640161078e565b8015610c5a573360009081526010602052604081208054859290610c549084906121e9565b90915550505b336000908152600f602052604081208054859290610c799084906121e9565b90915550610987905033846116a1565b600080610c9584610e3d565b9050808381518110610ca957610ca9612324565b602002602001015191505092915050565b6009546001600160a01b03163314610ce45760405162461bcd60e51b815260040161078e90612183565b6107d682828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061176092505050565b60005b8251811015610d6657610d548585858481518110610d4657610d46612324565b602002602001015185611021565b80610d5e816122c9565b915050610d26565b5050505050565b6009546001600160a01b03163314610d975760405162461bcd60e51b815260040161078e90612183565b604051600090339047908381818185875af1925050503d8060008114610dd9576040519150601f19603f3d011682016040523d82523d6000602084013e610dde565b606091505b50509050806109d05760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b604482015260640161078e565b61098783838360405180602001604052806000815250611021565b6001600160a01b0381166000908152600660205260408120546060918167ffffffffffffffff811115610e7257610e7261233a565b604051908082528060200260200182016040528015610e9b578160200160208202803683370190505b50600454909150600090815b81811015610f6a576000818152600560205260409020546001600160a01b0316158015610ef7575083610edb600187612234565b81518110610eeb57610eeb612324565b60200260200101516000145b15610f0a5781610f06816122c9565b9250505b6000818152600560205260409020546001600160a01b0388811691161415610f585780848481518110610f3f57610f3f612324565b602090810291909101015282610f54816122c9565b9350505b80610f62816122c9565b915050610ea7565b509195945050505050565b6009546001600160a01b03163314610f9f5760405162461bcd60e51b815260040161078e90612183565b600c55565b6009546001600160a01b03163314610fce5760405162461bcd60e51b815260040161078e90612183565b610fd86000611773565b565b600180546107e79061228e565b6107d63383836117c5565b6009546001600160a01b0316331461101c5760405162461bcd60e51b815260040161078e90612183565b600e55565b61102c848484610a02565b6001600160a01b0383163b1561117a576000836001600160a01b031663150b7a023387868660405160240161106494939291906120ef565b6040516020818303038152906040529060e01b6020820180516001600160e01b03838183161783525050505060405161109d91906120a0565b600060405180830381855afa9150503d80600081146110d8576040519150601f19603f3d011682016040523d82523d6000602084013e6110dd565b606091505b509150506000818060200190518101906110f79190611f32565b9050630a85bd0160e11b6001600160e01b03198216146111775760405162461bcd60e51b815260206004820152603560248201527f455243373231493a20736166655472616e7366657246726f6d282920746f5f206044820152746e6f742045524337323152656365697661626c652160581b606482015260840161078e565b50505b50505050565b6000818152600560205260409020546060906001600160a01b03166111f95760405162461bcd60e51b815260206004820152602960248201527f455243373231493a20746f6b656e555249282920546f6b656e20646f6573206e6044820152686f742065786973742160b81b606482015260840161078e565b6002611204836118ba565b6003604051602001611218939291906120bc565b6040516020818303038152906040529050919050565b6009546001600160a01b031633146112585760405162461bcd60e51b815260040161078e90612183565b6001600160a01b0381166112be5760405162461bcd60e51b815260206004820152602760248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616044820152666464726573732160c81b606482015260840161078e565b6109d081611773565b60005b815181101561117a576112f784848484815181106112ea576112ea612324565b6020026020010151610a02565b80611301816122c9565b9150506112ca565b6009546001600160a01b031633146113335760405162461bcd60e51b815260040161078e90612183565b600a55565b80516107d6906003906020840190611b1b565b6000818152600760205260409020546001600160a01b038381169116146107d657600081815260076020908152604080832080546001600160a01b0319166001600160a01b038781169182179092556005909352818420549151859492909116917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050565b6000818152600560205260408120546001600160a01b03166114545760405162461bcd60e51b815260206004820152603460248201527f455243373231493a205f6973417070726f7665644f724f776e65722829204f776044820152736e6572206973205a65726f20416464726573732160601b606482015260840161078e565b6000828152600560205260409020546001600160a01b0390811690841681148061149757506000838152600760205260409020546001600160a01b038581169116145b806114c757506001600160a01b0380821660009081526008602090815260408083209388168352929052205460ff165b949350505050565b6000818152600560205260409020546001600160a01b038481169116146115525760405162461bcd60e51b815260206004820152603160248201527f455243373231493a205f7472616e736665722829205472616e73666572204e6f60448201527074204f776e6572206f6620546f6b656e2160781b606482015260840161078e565b6001600160a01b0382166115bf5760405162461bcd60e51b815260206004820152602e60248201527f455243373231493a205f7472616e736665722829205472616e7366657220746f60448201526d205a65726f20416464726573732160901b606482015260840161078e565b6000818152600760205260409020546001600160a01b0316156115e7576115e760008261134b565b600081815260056020908152604080832080546001600160a01b0319166001600160a01b0387811691909117909155861683526006909152812080549161162d83612277565b90915550506001600160a01b0382166000908152600660205260408120805491611656836122c9565b919050555080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b806004546116af91906121e9565b600c5410156117005760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420656e6f756768204e4654732072656d61696e696e6721000000000000604482015260640161078e565b6000600454600161171191906121e9565b905060005b82811015611743576117318461172c83856121e9565b6119b9565b8061173b816122c9565b915050611716565b50816004600082825461175691906121e9565b9091555050505050565b80516107d6906002906020840190611b1b565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b0316141561184d5760405162461bcd60e51b815260206004820152603d60248201527f455243373231493a205f736574417070726f76616c466f72416c6c2829204f7760448201527f6e6572206d757374206e6f7420626520746865204f70657261746f7221000000606482015260840161078e565b6001600160a01b03838116600081815260086020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6060816118de5750506040805180820190915260018152600360fc1b602082015290565b8160005b811561190857806118f2816122c9565b91506119019050600a83612201565b91506118e2565b60008167ffffffffffffffff8111156119235761192361233a565b6040519080825280601f01601f19166020018201604052801561194d576020820181803683370190505b5090505b84156114c7578161196181612277565b92506119709050600a866122e4565b61197b9060306121e9565b60f81b81838151811061199057611990612324565b60200101906001600160f81b031916908160001a9053506119b2600a86612201565b9450611951565b6001600160a01b038216611a1d5760405162461bcd60e51b815260206004820152602560248201527f455243373231493a205f6d696e742829204d696e7420746f205a65726f204164604482015264647265737360d81b606482015260840161078e565b6000818152600560205260409020546001600160a01b031615611a995760405162461bcd60e51b815260206004820152602e60248201527f455243373231493a205f6d696e74282920546f6b656e20746f204d696e74204160448201526d6c7265616479204578697374732160901b606482015260840161078e565b6001600160a01b0382166000908152600660205260408120805491611abd836122c9565b909155505060008181526005602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611b279061228e565b90600052602060002090601f016020900481019282611b495760008555611b8f565b82601f10611b6257805160ff1916838001178555611b8f565b82800160010185558215611b8f579182015b82811115611b8f578251825591602001919060010190611b74565b50611b9b929150611b9f565b5090565b5b80821115611b9b5760008155600101611ba0565b80356001600160a01b0381168114611bcb57600080fd5b919050565b600082601f830112611be157600080fd5b8135602067ffffffffffffffff821115611bfd57611bfd61233a565b8160051b611c0c8282016121b8565b838152828101908684018388018501891015611c2757600080fd5b600093505b85841015611c4a578035835260019390930192918401918401611c2c565b50979650505050505050565b80358015158114611bcb57600080fd5b600082601f830112611c7757600080fd5b813567ffffffffffffffff811115611c9157611c9161233a565b611ca4601f8201601f19166020016121b8565b818152846020838601011115611cb957600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215611ce857600080fd5b611cf182611bb4565b9392505050565b60008060408385031215611d0b57600080fd5b611d1483611bb4565b9150611d2260208401611bb4565b90509250929050565b600080600060608486031215611d4057600080fd5b611d4984611bb4565b9250611d5760208501611bb4565b9150604084013567ffffffffffffffff811115611d7357600080fd5b611d7f86828701611bd0565b9150509250925092565b60008060008060808587031215611d9f57600080fd5b611da885611bb4565b9350611db660208601611bb4565b9250604085013567ffffffffffffffff80821115611dd357600080fd5b611ddf88838901611bd0565b93506060870135915080821115611df557600080fd5b50611e0287828801611c66565b91505092959194509250565b600080600060608486031215611e2357600080fd5b611e2c84611bb4565b9250611e3a60208501611bb4565b9150604084013590509250925092565b60008060008060808587031215611e6057600080fd5b611e6985611bb4565b9350611e7760208601611bb4565b925060408501359150606085013567ffffffffffffffff811115611e9a57600080fd5b611e0287828801611c66565b60008060408385031215611eb957600080fd5b611ec283611bb4565b9150611d2260208401611c56565b60008060408385031215611ee357600080fd5b611eec83611bb4565b946020939093013593505050565b600060208284031215611f0c57600080fd5b611cf182611c56565b600060208284031215611f2757600080fd5b8135611cf181612350565b600060208284031215611f4457600080fd5b8151611cf181612350565b60008060208385031215611f6257600080fd5b823567ffffffffffffffff80821115611f7a57600080fd5b818501915085601f830112611f8e57600080fd5b813581811115611f9d57600080fd5b866020828501011115611faf57600080fd5b60209290920196919550909350505050565b600060208284031215611fd357600080fd5b5035919050565b60008151808452611ff281602086016020860161224b565b601f01601f19169290920160200192915050565b8054600090600181811c908083168061202057607f831692505b602080841082141561204257634e487b7160e01b600052602260045260246000fd5b818015612056576001811461206757612094565b60ff19861689528489019650612094565b60008881526020902060005b8681101561208c5781548b820152908501908301612073565b505084890196505b50505050505092915050565b600082516120b281846020870161224b565b9190910192915050565b60006120c88286612006565b84516120d881836020890161224b565b6120e481830186612006565b979650505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061212290830184611fda565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561216457835183529284019291840191600101612148565b50909695505050505050565b602081526000611cf16020830184611fda565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff811182821017156121e1576121e161233a565b604052919050565b600082198211156121fc576121fc6122f8565b500190565b6000826122105761221061230e565b500490565b600081600019048311821515161561222f5761222f6122f8565b500290565b600082821015612246576122466122f8565b500390565b60005b8381101561226657818101518382015260200161224e565b8381111561117a5750506000910152565b600081612286576122866122f8565b506000190190565b600181811c908216806122a257607f821691505b602082108114156122c357634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156122dd576122dd6122f8565b5060010190565b6000826122f3576122f361230e565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b0319811681146109d057600080fdfea26469706673582212208fa0b40b2093c087a0a6cbf68a49c3cc6e4d4c3e1ee36ffd63f4c2c35924ed6164736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d5041635844476446744572636b534d4755706b6253716d4d694c614575616b6571686a66444c5154577867412f00000000000000000000

Deployed Bytecode

0x6080604052600436106102255760003560e01c80636352211e1161012357806395d89b41116100ab578063d5abeb011161006f578063d5abeb011461067c578063e985e9c514610692578063f2fde38b146106cd578063f487c602146106ed578063f4a0a5281461070d57600080fd5b806395d89b41146105e7578063a22cb465146105fc578063b600ec951461061c578063b88d4fde1461063c578063c87b56dd1461065c57600080fd5b8063715018a6116100f2578063715018a61461054e578063845bb3bb14610563578063895f263f146105795780638bdc048a146105a65780638da5cb5b146105c757600080fd5b80636352211e146104b55780636817c76c146104eb5780636f8b44b01461050157806370a082311461052157600080fd5b806323b872dd116101b157806330176e131161017557806330176e13146104135780633a3473b6146104335780633ccfd60b1461045357806342842e0e14610468578063438b63001461048857600080fd5b806323b872dd1461038b57806324a6ab0c146103ab57806326202370146103c15780632db11544146103e05780632f745c59146103f357600080fd5b8063095ea7b3116101f8578063095ea7b3146102f15780630e12f704146103115780630e2d56cf1461033557806318160ddd146103555780631a86854f1461036b57600080fd5b806301ffc9a71461022a57806302ffaed11461025f57806306fdde0314610281578063081812fc146102a3575b600080fd5b34801561023657600080fd5b5061024a610245366004611f15565b61072d565b60405190151581526020015b60405180910390f35b34801561026b57600080fd5b5061027f61027a366004611f4f565b610764565b005b34801561028d57600080fd5b506102966107da565b6040516102569190612170565b3480156102af57600080fd5b506102d96102be366004611fc1565b6007602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610256565b3480156102fd57600080fd5b5061027f61030c366004611ed0565b610868565b34801561031d57600080fd5b50610327600e5481565b604051908152602001610256565b34801561034157600080fd5b5061027f610350366004611efa565b61098c565b34801561036157600080fd5b5061032760045481565b34801561037757600080fd5b5061027f610386366004611fc1565b6109d3565b34801561039757600080fd5b5061027f6103a6366004611e0e565b610a02565b3480156103b757600080fd5b50610327600b5481565b3480156103cd57600080fd5b50600954600160a01b900460ff1661024a565b61027f6103ee366004611fc1565b610a7f565b3480156103ff57600080fd5b5061032761040e366004611ed0565b610c89565b34801561041f57600080fd5b5061027f61042e366004611f4f565b610cba565b34801561043f57600080fd5b5061027f61044e366004611d89565b610d23565b34801561045f57600080fd5b5061027f610d6d565b34801561047457600080fd5b5061027f610483366004611e0e565b610e22565b34801561049457600080fd5b506104a86104a3366004611cd6565b610e3d565b604051610256919061212c565b3480156104c157600080fd5b506102d96104d0366004611fc1565b6005602052600090815260409020546001600160a01b031681565b3480156104f757600080fd5b50610327600a5481565b34801561050d57600080fd5b5061027f61051c366004611fc1565b610f75565b34801561052d57600080fd5b5061032761053c366004611cd6565b60066020526000908152604090205481565b34801561055a57600080fd5b5061027f610fa4565b34801561056f57600080fd5b50610327600d5481565b34801561058557600080fd5b50610327610594366004611cd6565b600f6020526000908152604090205481565b3480156105b257600080fd5b5060095461024a90600160a01b900460ff1681565b3480156105d357600080fd5b506009546102d9906001600160a01b031681565b3480156105f357600080fd5b50610296610fda565b34801561060857600080fd5b5061027f610617366004611ea6565b610fe7565b34801561062857600080fd5b5061027f610637366004611fc1565b610ff2565b34801561064857600080fd5b5061027f610657366004611e4a565b611021565b34801561066857600080fd5b50610296610677366004611fc1565b611180565b34801561068857600080fd5b50610327600c5481565b34801561069e57600080fd5b5061024a6106ad366004611cf8565b600860209081526000928352604080842090915290825290205460ff1681565b3480156106d957600080fd5b5061027f6106e8366004611cd6565b61122e565b3480156106f957600080fd5b5061027f610708366004611d2b565b6112c7565b34801561071957600080fd5b5061027f610728366004611fc1565b611309565b60006380ac58cd60e01b6001600160e01b03198316148061075e5750635b5e139f60e01b6001600160e01b03198316145b92915050565b6009546001600160a01b031633146107975760405162461bcd60e51b815260040161078e90612183565b60405180910390fd5b6107d682828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061133892505050565b5050565b600080546107e79061228e565b80601f01602080910402602001604051908101604052809291908181526020018280546108139061228e565b80156108605780601f1061083557610100808354040283529160200191610860565b820191906000526020600020905b81548152906001019060200180831161084357829003601f168201915b505050505081565b6000818152600560205260409020546001600160a01b039081169083168114156108e85760405162461bcd60e51b815260206004820152602b60248201527f455243373231493a20617070726f766528292043616e6e6f7420617070726f7660448201526a6520796f757273656c662160a81b606482015260840161078e565b336001600160a01b038216148061092257506001600160a01b038116600090815260086020908152604080832033845290915290205460ff165b61097d5760405162461bcd60e51b815260206004820152602660248201527f455243373231493a2043616c6c6572206e6f74206f776e6572206f7220417070604482015265726f7665642160d01b606482015260840161078e565b610987838361134b565b505050565b6009546001600160a01b031633146109b65760405162461bcd60e51b815260040161078e90612183565b6009805460ff60a01b1916600160a01b8315150217905550565b50565b6009546001600160a01b031633146109fd5760405162461bcd60e51b815260040161078e90612183565b600b55565b610a0c33826113d3565b610a745760405162461bcd60e51b815260206004820152603360248201527f455243373231493a207472616e7366657246726f6d2829205f6973417070726f6044820152727665644f724f776e6572203d2066616c73652160681b606482015260840161078e565b6109878383836114cf565b333214610ac45760405162461bcd60e51b81526020600482015260136024820152724e6f20536d61727420436f6e7472616374732160681b604482015260640161078e565b600954600160a01b900460ff16610b1d5760405162461bcd60e51b815260206004820152601f60248201527f5075626c6963204d696e74206973206e6f7420656e61626c6564207965742100604482015260640161078e565b600a54600b54600090610b319060016121e9565b83600454610b3f91906121e9565b108015610b685750600d5433600090815260106020526040902054610b659085906121e9565b11155b90508015610b7557600091505b336000908152600f6020526040902054610b909084906121e9565b600e541015610be15760405162461bcd60e51b815260206004820152601e60248201527f4578636565647320746865206d617820616d6f756e7420706572205458210000604482015260640161078e565b610beb8383612215565b3414610c2f5760405162461bcd60e51b8152602060048201526013602482015272496e76616c69642076616c75652073656e742160681b604482015260640161078e565b8015610c5a573360009081526010602052604081208054859290610c549084906121e9565b90915550505b336000908152600f602052604081208054859290610c799084906121e9565b90915550610987905033846116a1565b600080610c9584610e3d565b9050808381518110610ca957610ca9612324565b602002602001015191505092915050565b6009546001600160a01b03163314610ce45760405162461bcd60e51b815260040161078e90612183565b6107d682828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061176092505050565b60005b8251811015610d6657610d548585858481518110610d4657610d46612324565b602002602001015185611021565b80610d5e816122c9565b915050610d26565b5050505050565b6009546001600160a01b03163314610d975760405162461bcd60e51b815260040161078e90612183565b604051600090339047908381818185875af1925050503d8060008114610dd9576040519150601f19603f3d011682016040523d82523d6000602084013e610dde565b606091505b50509050806109d05760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b604482015260640161078e565b61098783838360405180602001604052806000815250611021565b6001600160a01b0381166000908152600660205260408120546060918167ffffffffffffffff811115610e7257610e7261233a565b604051908082528060200260200182016040528015610e9b578160200160208202803683370190505b50600454909150600090815b81811015610f6a576000818152600560205260409020546001600160a01b0316158015610ef7575083610edb600187612234565b81518110610eeb57610eeb612324565b60200260200101516000145b15610f0a5781610f06816122c9565b9250505b6000818152600560205260409020546001600160a01b0388811691161415610f585780848481518110610f3f57610f3f612324565b602090810291909101015282610f54816122c9565b9350505b80610f62816122c9565b915050610ea7565b509195945050505050565b6009546001600160a01b03163314610f9f5760405162461bcd60e51b815260040161078e90612183565b600c55565b6009546001600160a01b03163314610fce5760405162461bcd60e51b815260040161078e90612183565b610fd86000611773565b565b600180546107e79061228e565b6107d63383836117c5565b6009546001600160a01b0316331461101c5760405162461bcd60e51b815260040161078e90612183565b600e55565b61102c848484610a02565b6001600160a01b0383163b1561117a576000836001600160a01b031663150b7a023387868660405160240161106494939291906120ef565b6040516020818303038152906040529060e01b6020820180516001600160e01b03838183161783525050505060405161109d91906120a0565b600060405180830381855afa9150503d80600081146110d8576040519150601f19603f3d011682016040523d82523d6000602084013e6110dd565b606091505b509150506000818060200190518101906110f79190611f32565b9050630a85bd0160e11b6001600160e01b03198216146111775760405162461bcd60e51b815260206004820152603560248201527f455243373231493a20736166655472616e7366657246726f6d282920746f5f206044820152746e6f742045524337323152656365697661626c652160581b606482015260840161078e565b50505b50505050565b6000818152600560205260409020546060906001600160a01b03166111f95760405162461bcd60e51b815260206004820152602960248201527f455243373231493a20746f6b656e555249282920546f6b656e20646f6573206e6044820152686f742065786973742160b81b606482015260840161078e565b6002611204836118ba565b6003604051602001611218939291906120bc565b6040516020818303038152906040529050919050565b6009546001600160a01b031633146112585760405162461bcd60e51b815260040161078e90612183565b6001600160a01b0381166112be5760405162461bcd60e51b815260206004820152602760248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616044820152666464726573732160c81b606482015260840161078e565b6109d081611773565b60005b815181101561117a576112f784848484815181106112ea576112ea612324565b6020026020010151610a02565b80611301816122c9565b9150506112ca565b6009546001600160a01b031633146113335760405162461bcd60e51b815260040161078e90612183565b600a55565b80516107d6906003906020840190611b1b565b6000818152600760205260409020546001600160a01b038381169116146107d657600081815260076020908152604080832080546001600160a01b0319166001600160a01b038781169182179092556005909352818420549151859492909116917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050565b6000818152600560205260408120546001600160a01b03166114545760405162461bcd60e51b815260206004820152603460248201527f455243373231493a205f6973417070726f7665644f724f776e65722829204f776044820152736e6572206973205a65726f20416464726573732160601b606482015260840161078e565b6000828152600560205260409020546001600160a01b0390811690841681148061149757506000838152600760205260409020546001600160a01b038581169116145b806114c757506001600160a01b0380821660009081526008602090815260408083209388168352929052205460ff165b949350505050565b6000818152600560205260409020546001600160a01b038481169116146115525760405162461bcd60e51b815260206004820152603160248201527f455243373231493a205f7472616e736665722829205472616e73666572204e6f60448201527074204f776e6572206f6620546f6b656e2160781b606482015260840161078e565b6001600160a01b0382166115bf5760405162461bcd60e51b815260206004820152602e60248201527f455243373231493a205f7472616e736665722829205472616e7366657220746f60448201526d205a65726f20416464726573732160901b606482015260840161078e565b6000818152600760205260409020546001600160a01b0316156115e7576115e760008261134b565b600081815260056020908152604080832080546001600160a01b0319166001600160a01b0387811691909117909155861683526006909152812080549161162d83612277565b90915550506001600160a01b0382166000908152600660205260408120805491611656836122c9565b919050555080826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b806004546116af91906121e9565b600c5410156117005760405162461bcd60e51b815260206004820152601a60248201527f4e6f7420656e6f756768204e4654732072656d61696e696e6721000000000000604482015260640161078e565b6000600454600161171191906121e9565b905060005b82811015611743576117318461172c83856121e9565b6119b9565b8061173b816122c9565b915050611716565b50816004600082825461175691906121e9565b9091555050505050565b80516107d6906002906020840190611b1b565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b0316141561184d5760405162461bcd60e51b815260206004820152603d60248201527f455243373231493a205f736574417070726f76616c466f72416c6c2829204f7760448201527f6e6572206d757374206e6f7420626520746865204f70657261746f7221000000606482015260840161078e565b6001600160a01b03838116600081815260086020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6060816118de5750506040805180820190915260018152600360fc1b602082015290565b8160005b811561190857806118f2816122c9565b91506119019050600a83612201565b91506118e2565b60008167ffffffffffffffff8111156119235761192361233a565b6040519080825280601f01601f19166020018201604052801561194d576020820181803683370190505b5090505b84156114c7578161196181612277565b92506119709050600a866122e4565b61197b9060306121e9565b60f81b81838151811061199057611990612324565b60200101906001600160f81b031916908160001a9053506119b2600a86612201565b9450611951565b6001600160a01b038216611a1d5760405162461bcd60e51b815260206004820152602560248201527f455243373231493a205f6d696e742829204d696e7420746f205a65726f204164604482015264647265737360d81b606482015260840161078e565b6000818152600560205260409020546001600160a01b031615611a995760405162461bcd60e51b815260206004820152602e60248201527f455243373231493a205f6d696e74282920546f6b656e20746f204d696e74204160448201526d6c7265616479204578697374732160901b606482015260840161078e565b6001600160a01b0382166000908152600660205260408120805491611abd836122c9565b909155505060008181526005602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611b279061228e565b90600052602060002090601f016020900481019282611b495760008555611b8f565b82601f10611b6257805160ff1916838001178555611b8f565b82800160010185558215611b8f579182015b82811115611b8f578251825591602001919060010190611b74565b50611b9b929150611b9f565b5090565b5b80821115611b9b5760008155600101611ba0565b80356001600160a01b0381168114611bcb57600080fd5b919050565b600082601f830112611be157600080fd5b8135602067ffffffffffffffff821115611bfd57611bfd61233a565b8160051b611c0c8282016121b8565b838152828101908684018388018501891015611c2757600080fd5b600093505b85841015611c4a578035835260019390930192918401918401611c2c565b50979650505050505050565b80358015158114611bcb57600080fd5b600082601f830112611c7757600080fd5b813567ffffffffffffffff811115611c9157611c9161233a565b611ca4601f8201601f19166020016121b8565b818152846020838601011115611cb957600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215611ce857600080fd5b611cf182611bb4565b9392505050565b60008060408385031215611d0b57600080fd5b611d1483611bb4565b9150611d2260208401611bb4565b90509250929050565b600080600060608486031215611d4057600080fd5b611d4984611bb4565b9250611d5760208501611bb4565b9150604084013567ffffffffffffffff811115611d7357600080fd5b611d7f86828701611bd0565b9150509250925092565b60008060008060808587031215611d9f57600080fd5b611da885611bb4565b9350611db660208601611bb4565b9250604085013567ffffffffffffffff80821115611dd357600080fd5b611ddf88838901611bd0565b93506060870135915080821115611df557600080fd5b50611e0287828801611c66565b91505092959194509250565b600080600060608486031215611e2357600080fd5b611e2c84611bb4565b9250611e3a60208501611bb4565b9150604084013590509250925092565b60008060008060808587031215611e6057600080fd5b611e6985611bb4565b9350611e7760208601611bb4565b925060408501359150606085013567ffffffffffffffff811115611e9a57600080fd5b611e0287828801611c66565b60008060408385031215611eb957600080fd5b611ec283611bb4565b9150611d2260208401611c56565b60008060408385031215611ee357600080fd5b611eec83611bb4565b946020939093013593505050565b600060208284031215611f0c57600080fd5b611cf182611c56565b600060208284031215611f2757600080fd5b8135611cf181612350565b600060208284031215611f4457600080fd5b8151611cf181612350565b60008060208385031215611f6257600080fd5b823567ffffffffffffffff80821115611f7a57600080fd5b818501915085601f830112611f8e57600080fd5b813581811115611f9d57600080fd5b866020828501011115611faf57600080fd5b60209290920196919550909350505050565b600060208284031215611fd357600080fd5b5035919050565b60008151808452611ff281602086016020860161224b565b601f01601f19169290920160200192915050565b8054600090600181811c908083168061202057607f831692505b602080841082141561204257634e487b7160e01b600052602260045260246000fd5b818015612056576001811461206757612094565b60ff19861689528489019650612094565b60008881526020902060005b8681101561208c5781548b820152908501908301612073565b505084890196505b50505050505092915050565b600082516120b281846020870161224b565b9190910192915050565b60006120c88286612006565b84516120d881836020890161224b565b6120e481830186612006565b979650505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061212290830184611fda565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561216457835183529284019291840191600101612148565b50909695505050505050565b602081526000611cf16020830184611fda565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b604051601f8201601f1916810167ffffffffffffffff811182821017156121e1576121e161233a565b604052919050565b600082198211156121fc576121fc6122f8565b500190565b6000826122105761221061230e565b500490565b600081600019048311821515161561222f5761222f6122f8565b500290565b600082821015612246576122466122f8565b500390565b60005b8381101561226657818101518382015260200161224e565b8381111561117a5750506000910152565b600081612286576122866122f8565b506000190190565b600181811c908216806122a257607f821691505b602082108114156122c357634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156122dd576122dd6122f8565b5060010190565b6000826122f3576122f361230e565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b0319811681146109d057600080fdfea26469706673582212208fa0b40b2093c087a0a6cbf68a49c3cc6e4d4c3e1ee36ffd63f4c2c35924ed6164736f6c63430008070033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d5041635844476446744572636b534d4755706b6253716d4d694c614575616b6571686a66444c5154577867412f00000000000000000000

-----Decoded View---------------
Arg [0] : baseTokenURI (string): ipfs://QmPAcXDGdFtErckSMGUpkbSqmMiLaEuakeqhjfDLQTWxgA/

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000036
Arg [2] : 697066733a2f2f516d5041635844476446744572636b534d4755706b6253716d
Arg [3] : 4d694c614575616b6571686a66444c5154577867412f00000000000000000000


Deployed Bytecode Sourcemap

9338:3141:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6352:159;;;;;;;;;;-1:-1:-1;6352:159:0;;;;;:::i;:::-;;:::i;:::-;;;9855:14:1;;9848:22;9830:41;;9818:2;9803:18;6352:159:0;;;;;;;;11618:115;;;;;;;;;;-1:-1:-1;11618:115:0;;;;;:::i;:::-;;:::i;:::-;;213:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;581:46::-;;;;;;;;;;-1:-1:-1;581:46:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;581:46:0;;;;;;-1:-1:-1;;;;;8516:32:1;;;8498:51;;8486:2;8471:18;581:46:0;8352:203:1;4240:379:0;;;;;;;;;;-1:-1:-1;4240:379:0;;;;;:::i;:::-;;:::i;9917:37::-;;;;;;;;;;;;;;;;;;;17712:25:1;;;17700:2;17685:18;9917:37:0;17566:177:1;11761:94:0;;;;;;;;;;-1:-1:-1;11761:94:0;;;;;:::i;:::-;;:::i;443:26::-;;;;;;;;;;;;;;;;11373:106;;;;;;;;;;-1:-1:-1;11373:106:0;;;;;:::i;:::-;;:::i;4781:268::-;;;;;;;;;;-1:-1:-1;4781:268:0;;;;;:::i;:::-;;:::i;9711:31::-;;;;;;;;;;;;;;;;9064:102;;;;;;;;;;-1:-1:-1;9139:18:0;;-1:-1:-1;;;9139:18:0;;;;9064:102;;10104:837;;;;;;:::i;:::-;;:::i;7651:209::-;;;;;;;;;;-1:-1:-1;7651:209:0;;;;;:::i;:::-;;:::i;11505:107::-;;;;;;;;;;-1:-1:-1;11505:107:0;;;;;:::i;:::-;;:::i;6049:269::-;;;;;;;;;;-1:-1:-1;6049:269:0;;;;;:::i;:::-;;:::i;12270:206::-;;;;;;;;;;;;;:::i;5610:154::-;;;;;;;;;;-1:-1:-1;5610:154:0;;;;;:::i;:::-;;:::i;6952:607::-;;;;;;;;;;-1:-1:-1;6952:607:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;477:42::-;;;;;;;;;;-1:-1:-1;477:42:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;477:42:0;;;9666:38;;;;;;;;;;;;;;;;11090:102;;;;;;;;;;-1:-1:-1;11090:102:0;;;;;:::i;:::-;;:::i;527:44::-;;;;;;;;;;-1:-1:-1;527:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;8630:105;;;;;;;;;;;;;:::i;9871:39::-;;;;;;;;;;;;;;;;9961:55;;;;;;;;;;-1:-1:-1;9961:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;8801:30;;;;;;;;;;-1:-1:-1;8801:30:0;;;;-1:-1:-1;;;8801:30:0;;;;;;7936:20;;;;;;;;;;-1:-1:-1;7936:20:0;;;;-1:-1:-1;;;;;7936:20:0;;;233;;;;;;;;;;;;;:::i;4625:148::-;;;;;;;;;;-1:-1:-1;4625:148:0;;;;;:::i;:::-;;:::i;11231:134::-;;;;;;;;;;-1:-1:-1;11231:134:0;;;;;:::i;:::-;;:::i;5055:549::-;;;;;;;;;;-1:-1:-1;5055:549:0;;;;;:::i;:::-;;:::i;6519:309::-;;;;;;;;;;-1:-1:-1;6519:309:0;;;;;:::i;:::-;;:::i;9749:30::-;;;;;;;;;;;;;;;;635:68;;;;;;;;;;-1:-1:-1;635:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;8417:207;;;;;;;;;;-1:-1:-1;8417:207:0;;;;;:::i;:::-;;:::i;5809:234::-;;;;;;;;;;-1:-1:-1;5809:234:0;;;;;:::i;:::-;;:::i;10982:102::-;;;;;;;;;;-1:-1:-1;10982:102:0;;;;;:::i;:::-;;:::i;6352:159::-;6421:4;-1:-1:-1;;;;;;;;;6446:26:0;;;;:56;;-1:-1:-1;;;;;;;;;;6476:26:0;;;6446:56;6438:65;6352:159;-1:-1:-1;;6352:159:0:o;11618:115::-;8131:5;;-1:-1:-1;;;;;8131:5:0;8140:10;8131:19;8123:64;;;;-1:-1:-1;;;8123:64:0;;;;;;;:::i;:::-;;;;;;;;;11699:26:::1;11720:4;;11699:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;11699:20:0::1;::::0;-1:-1:-1;;;11699:26:0:i:1;:::-;11618:115:::0;;:::o;213:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4240:379::-;4314:14;4331:17;;;:7;:17;;;;;;-1:-1:-1;;;;;4331:17:0;;;;4367:13;;;;;4359:83;;;;-1:-1:-1;;;4359:83:0;;12245:2:1;4359:83:0;;;12227:21:1;12284:2;12264:18;;;12257:30;12323:34;12303:18;;;12296:62;-1:-1:-1;;;12374:18:1;;;12367:41;12425:19;;4359:83:0;12043:407:1;4359:83:0;4461:10;-1:-1:-1;;;;;4461:20:0;;;;:60;;-1:-1:-1;;;;;;4485:24:0;;;;;;:16;:24;;;;;;;;4510:10;4485:36;;;;;;;;;;4461:60;4453:124;;;;-1:-1:-1;;;4453:124:0;;11838:2:1;4453:124:0;;;11820:21:1;11877:2;11857:18;;;11850:30;11916:34;11896:18;;;11889:62;-1:-1:-1;;;11967:18:1;;;11960:36;12013:19;;4453:124:0;11636:402:1;4453:124:0;4588:23;4597:3;4602:8;4588;:23::i;:::-;4303:316;4240:379;;:::o;11761:94::-;8131:5;;-1:-1:-1;;;;;8131:5:0;8140:10;8131:19;8123:64;;;;-1:-1:-1;;;8123:64:0;;;;;;;:::i;:::-;8894:18;:26;;-1:-1:-1;;;;8894:26:0;-1:-1:-1;;;8894:26:0;;;;;;;11761:94;:::o;11826:21::-:1;11761:94:::0;:::o;11373:106::-;8131:5;;-1:-1:-1;;;;;8131:5:0;8140:10;8131:19;8123:64;;;;-1:-1:-1;;;8123:64:0;;;;;;;:::i;:::-;11447:10:::1;:24:::0;11373:106::o;4781:268::-;4889:40;4908:10;4920:8;4889:18;:40::i;:::-;4881:118;;;;-1:-1:-1;;;4881:118:0;;13497:2:1;4881:118:0;;;13479:21:1;13536:2;13516:18;;;13509:30;13575:34;13555:18;;;13548:62;-1:-1:-1;;;13626:18:1;;;13619:49;13685:19;;4881:118:0;13295:415:1;4881:118:0;5010:31;5020:5;5027:3;5032:8;5010:9;:31::i;10104:837::-;9278:10;9292:9;9278:23;9270:55;;;;-1:-1:-1;;;9270:55:0;;15039:2:1;9270:55:0;;;15021:21:1;15078:2;15058:18;;;15051:30;-1:-1:-1;;;15097:18:1;;;15090:49;15156:18;;9270:55:0;14837:343:1;9270:55:0;8982:18:::1;::::0;-1:-1:-1;;;8982:18:0;::::1;;;8974:62;;;::::0;-1:-1:-1;;;8974:62:0;;16153:2:1;8974:62:0::1;::::0;::::1;16135:21:1::0;16192:2;16172:18;;;16165:30;16231:33;16211:18;;;16204:61;16282:18;;8974:62:0::1;15951:355:1::0;8974:62:0::1;10218:9:::2;::::0;10288:10:::2;::::0;10203:12:::2;::::0;10288:14:::2;::::0;10301:1:::2;10288:14;:::i;:::-;10278:7;10264:11;;:21;;;;:::i;:::-;:38;10263:121;;;;-1:-1:-1::0;10363:20:0::2;::::0;10338:10:::2;10321:28;::::0;;;:16:::2;:28;::::0;;;;;:38:::2;::::0;10352:7;;10321:38:::2;:::i;:::-;:62;;10263:121;10248:137;;10402:6;10398:47;;;10432:1;10425:8;;10398:47;10507:10;10486:32;::::0;;;:20:::2;:32;::::0;;;;;:42:::2;::::0;10521:7;;10486:42:::2;:::i;:::-;10465:17;;:63;;10457:119;;;::::0;-1:-1:-1;;;10457:119:0;;11479:2:1;10457:119:0::2;::::0;::::2;11461:21:1::0;11518:2;11498:18;;;11491:30;11557:32;11537:18;;;11530:60;11607:18;;10457:119:0::2;11277:354:1::0;10457:119:0::2;10608:14;10615:7:::0;10608:4;:14:::2;:::i;:::-;10595:9;:27;10587:73;;;::::0;-1:-1:-1;;;10587:73:0;;11131:2:1;10587:73:0::2;::::0;::::2;11113:21:1::0;11170:2;11150:18;;;11143:30;-1:-1:-1;;;11189:18:1;;;11182:49;11248:18;;10587:73:0::2;10929:343:1::0;10587:73:0::2;10677:6;10673:78;;;10717:10;10700:28;::::0;;;:16:::2;:28;::::0;;;;:39;;10732:7;;10700:28;:39:::2;::::0;10732:7;;10700:39:::2;:::i;:::-;::::0;;;-1:-1:-1;;10673:78:0::2;10824:10;10803:32;::::0;;;:20:::2;:32;::::0;;;;:43;;10839:7;;10803:32;:43:::2;::::0;10839:7;;10803:43:::2;:::i;:::-;::::0;;;-1:-1:-1;10903:30:0::2;::::0;-1:-1:-1;10913:10:0::2;10925:7:::0;10903:9:::2;:30::i;7651:209::-:0;7749:7;7769:24;7796:23;7810:8;7796:13;:23::i;:::-;7769:50;;7837:7;7845:6;7837:15;;;;;;;;:::i;:::-;;;;;;;7830:22;;;7651:209;;;;:::o;11505:107::-;8131:5;;-1:-1:-1;;;;;8131:5:0;8140:10;8131:19;8123:64;;;;-1:-1:-1;;;8123:64:0;;;;;;;:::i;:::-;11582:22:::1;11599:4;;11582:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;11582:16:0::1;::::0;-1:-1:-1;;;11582:22:0:i:1;6049:269::-:0;6193:9;6188:123;6212:9;:16;6208:1;:20;6188:123;;;6250:49;6267:5;6274:3;6279:9;6289:1;6279:12;;;;;;;;:::i;:::-;;;;;;;6293:5;6250:16;:49::i;:::-;6230:3;;;;:::i;:::-;;;;6188:123;;;;6049:269;;;;:::o;12270:206::-;8131:5;;-1:-1:-1;;;;;8131:5:0;8140:10;8131:19;8123:64;;;;-1:-1:-1;;;8123:64:0;;;;;;;:::i;:::-;12339:82:::1;::::0;12321:12:::1;::::0;12347:10:::1;::::0;12385:21:::1;::::0;12321:12;12339:82;12321:12;12339:82;12385:21;12347:10;12339:82:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12320:101;;;12440:7;12432:36;;;::::0;-1:-1:-1;;;12432:36:0;;15808:2:1;12432:36:0::1;::::0;::::1;15790:21:1::0;15847:2;15827:18;;;15820:30;-1:-1:-1;;;15866:18:1;;;15859:46;15922:18;;12432:36:0::1;15606:340:1::0;5610:154:0;5714:42;5731:5;5738:3;5743:8;5714:42;;;;;;;;;;;;:16;:42::i;6952:607::-;-1:-1:-1;;;;;7076:19:0;;7057:16;7076:19;;;:9;:19;;;;;;7028:16;;7076:19;7133:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7133:24:0;-1:-1:-1;7216:11:0;;7106:51;;-1:-1:-1;7168:14:0;;;7238:289;7262:12;7258:1;:16;7238:289;;;7322:3;7300:10;;;:7;:10;;;;;;-1:-1:-1;;;;;7300:10:0;:26;:56;;;;-1:-1:-1;7330:7:0;7338:12;7349:1;7338:8;:12;:::i;:::-;7330:21;;;;;;;;:::i;:::-;;;;;;;7355:1;7330:26;7300:56;7296:112;;;7377:14;;;;:::i;:::-;;;;7296:112;7426:10;;;;:7;:10;;;;;;-1:-1:-1;;;;;7426:22:0;;;:10;;:22;7422:94;;;7488:1;7470:7;7478:6;7470:15;;;;;;;;:::i;:::-;;;;;;;;;;:19;7491:8;;;;:::i;:::-;;;;7422:94;7276:3;;;;:::i;:::-;;;;7238:289;;;-1:-1:-1;7544:7:0;;6952:607;-1:-1:-1;;;;;6952:607:0:o;11090:102::-;8131:5;;-1:-1:-1;;;;;8131:5:0;8140:10;8131:19;8123:64;;;;-1:-1:-1;;;8123:64:0;;;;;;;:::i;:::-;11162:9:::1;:22:::0;11090:102::o;8630:105::-;8131:5;;-1:-1:-1;;;;;8131:5:0;8140:10;8131:19;8123:64;;;;-1:-1:-1;;;8123:64:0;;;;;;;:::i;:::-;8695:32:::1;8722:3;8695:18;:32::i;:::-;8630:105::o:0;233:20::-;;;;;;;:::i;4625:148::-;4713:52;4732:10;4744:9;4755;4713:18;:52::i;11231:134::-;8131:5;;-1:-1:-1;;;;;8131:5:0;8140:10;8131:19;8123:64;;;;-1:-1:-1;;;8123:64:0;;;;;;;:::i;:::-;11319:17:::1;:38:::0;11231:134::o;5055:549::-;5179:34;5192:5;5199:3;5204:8;5179:12;:34::i;:::-;-1:-1:-1;;;;;5228:15:0;;;:20;5224:373;;5268:22;5294:3;-1:-1:-1;;;;;5294:14:0;5350:10;5362;5374:5;5381:8;5391:5;5309:88;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5309:88:0;;;;;;;;;;;5294:104;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5265:133;;;5413:16;5443:9;5432:31;;;;;;;;;;;;:::i;:::-;5413:50;-1:-1:-1;;;;;;;;;;5486:23:0;;;5478:107;;;;-1:-1:-1;;;5478:107:0;;13075:2:1;5478:107:0;;;13057:21:1;13114:2;13094:18;;;13087:30;13153:34;13133:18;;;13126:62;-1:-1:-1;;;13204:18:1;;;13197:51;13265:19;;5478:107:0;12873:417:1;5478:107:0;5250:347;;5224:373;5055:549;;;;:::o;6519:309::-;6647:3;6618:17;;;:7;:17;;;;;;6584:13;;-1:-1:-1;;;;;6618:17:0;6610:101;;;;-1:-1:-1;;;6610:101:0;;17358:2:1;6610:101:0;;;17340:21:1;17397:2;17377:18;;;17370:30;17436:34;17416:18;;;17409:62;-1:-1:-1;;;17487:18:1;;;17480:39;17536:19;;6610:101:0;17156:405:1;6610:101:0;6767:12;6781:19;6791:8;6781:9;:19::i;:::-;6802:16;6736:83;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6722:98;;6519:309;;;:::o;8417:207::-;8131:5;;-1:-1:-1;;;;;8131:5:0;8140:10;8131:19;8123:64;;;;-1:-1:-1;;;8123:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8507:25:0;::::1;8499:77;;;::::0;-1:-1:-1;;;8499:77:0;;10308:2:1;8499:77:0::1;::::0;::::1;10290:21:1::0;10347:2;10327:18;;;10320:30;10386:34;10366:18;;;10359:62;-1:-1:-1;;;10437:18:1;;;10430:37;10484:19;;8499:77:0::1;10106:403:1::0;8499:77:0::1;8587:29;8606:9;8587:18;:29::i;5809:234::-:0;5929:9;5924:112;5948:9;:16;5944:1;:20;5924:112;;;5986:38;5999:5;6006:3;6011:9;6021:1;6011:12;;;;;;;;:::i;:::-;;;;;;;5986;:38::i;:::-;5966:3;;;;:::i;:::-;;;;5924:112;;10982:102;8131:5;;-1:-1:-1;;;;;8131:5:0;8140:10;8131:19;8123:64;;;;-1:-1:-1;;;8123:64:0;;;;;;;:::i;:::-;11054:9:::1;:22:::0;10982:102::o;2875:109::-;2953:23;;;;:16;;:23;;;;;:::i;2157:234::-;2238:21;;;;:11;:21;;;;;;-1:-1:-1;;;;;2238:28:0;;;:21;;:28;2234:150;;2283:21;;;;:11;:21;;;;;;;;:27;;-1:-1:-1;;;;;;2283:27:0;-1:-1:-1;;;;;2283:27:0;;;;;;;;;2339:7;:17;;;;;;;2330:42;;2283:21;;2339:17;;;;;2330:42;;;2157:234;;:::o;3637:424::-;3738:4;3763:17;;;:7;:17;;;;;;-1:-1:-1;;;;;3763:17:0;3755:112;;;;-1:-1:-1;;;3755:112:0;;15387:2:1;3755:112:0;;;15369:21:1;15426:2;15406:18;;;15399:30;15465:34;15445:18;;;15438:62;-1:-1:-1;;;15516:18:1;;;15509:50;15576:19;;3755:112:0;15185:416:1;3755:112:0;3878:14;3895:17;;;:7;:17;;;;;;-1:-1:-1;;;;;3895:17:0;;;;3931:18;;;;;:69;;-1:-1:-1;3979:21:0;;;;:11;:21;;;;;;-1:-1:-1;;;;;3967:33:0;;;3979:21;;3967:33;3931:69;:121;;;-1:-1:-1;;;;;;4018:24:0;;;;;;;:16;:24;;;;;;;;:34;;;;;;;;;;;;3931:121;3923:130;3637:424;-1:-1:-1;;;;3637:424:0:o;1496:637::-;1606:17;;;;:7;:17;;;;;;-1:-1:-1;;;;;1597:26:0;;;1606:17;;1597:26;1589:102;;;;-1:-1:-1;;;1589:102:0;;12657:2:1;1589:102:0;;;12639:21:1;12696:2;12676:18;;;12669:30;12735:34;12715:18;;;12708:62;-1:-1:-1;;;12786:18:1;;;12779:47;12843:19;;1589:102:0;12455:413:1;1589:102:0;-1:-1:-1;;;;;1710:19:0;;1702:92;;;;-1:-1:-1;;;1702:92:0;;10716:2:1;1702:92:0;;;10698:21:1;10755:2;10735:18;;;10728:30;10794:34;10774:18;;;10767:62;-1:-1:-1;;;10845:18:1;;;10838:44;10899:19;;1702:92:0;10514:410:1;1702:92:0;1917:3;1884:21;;;:11;:21;;;;;;-1:-1:-1;;;;;1884:21:0;:37;1880:104;;1939:32;1956:3;1962:8;1939;:32::i;:::-;1997:17;;;;:7;:17;;;;;;;;:23;;-1:-1:-1;;;;;;1997:23:0;-1:-1:-1;;;;;1997:23:0;;;;;;;;;;2032:16;;;;:9;:16;;;;;:18;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;2061:14:0;;;;;;:9;:14;;;;;:16;;;;;;:::i;:::-;;;;;;2116:8;2111:3;-1:-1:-1;;;;;2095:30:0;2104:5;-1:-1:-1;;;;;2095:30:0;;;;;;;;;;;1496:637;;;:::o;11890:372::-;11994:7;11980:11;;:21;;;;:::i;:::-;11967:9;;:34;;11959:86;;;;-1:-1:-1;;;11959:86:0;;14278:2:1;11959:86:0;;;14260:21:1;14317:2;14297:18;;;14290:30;14356:28;14336:18;;;14329:56;14402:18;;11959:86:0;14076:350:1;11959:86:0;12066:16;12085:11;;12099:1;12085:15;;;;:::i;:::-;12066:34;;12136:9;12131:89;12155:7;12151:1;:11;12131:89;;;12184:24;12190:3;12195:12;12206:1;12195:8;:12;:::i;:::-;12184:5;:24::i;:::-;12164:3;;;;:::i;:::-;;;;12131:89;;;;12247:7;12232:11;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;11890:372:0:o;2768:101::-;2842:19;;;;:12;;:19;;;;;:::i;8213:198::-;8308:5;;;-1:-1:-1;;;;;8324:17:0;;;-1:-1:-1;;;;;;8324:17:0;;;;;;;8357:42;;8308:5;;;8324:17;8308:5;;8357:42;;8288:17;;8357:42;8277:134;8213:198;:::o;2397:345::-;2527:9;-1:-1:-1;;;;;2517:19:0;:6;-1:-1:-1;;;;;2517:19:0;;;2509:107;;;;-1:-1:-1;;;2509:107:0;;16928:2:1;2509:107:0;;;16910:21:1;16967:2;16947:18;;;16940:30;17006:34;16986:18;;;16979:62;17077:31;17057:18;;;17050:59;17126:19;;2509:107:0;16726:425:1;2509:107:0;-1:-1:-1;;;;;2627:24:0;;;;;;;:16;:24;;;;;;;;:35;;;;;;;;;;;;;:47;;-1:-1:-1;;2627:47:0;;;;;;;;;;2690:44;;9830:41:1;;;2690:44:0;;9803:18:1;2690:44:0;;;;;;;2397:345;;;:::o;3054:550::-;3112:13;3142:11;3138:32;;-1:-1:-1;;3157:10:0;;;;;;;;;;;;-1:-1:-1;;;3157:10:0;;;;;3054:550::o;3138:32::-;3199:6;3180:16;3233:52;3240:13;;3233:52;;3257:9;;;;:::i;:::-;;-1:-1:-1;3268:14:0;;-1:-1:-1;3280:2:0;3268:14;;:::i;:::-;;;3233:52;;;3319:20;3352:7;3342:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3342:18:0;;3319:41;;3371:124;3378:11;;3371:124;;3393:9;;;;:::i;:::-;;-1:-1:-1;3463:11:0;;-1:-1:-1;3472:2:0;3463:6;:11;:::i;:::-;3450:26;;:2;:26;:::i;:::-;3423:55;;3404:7;3412;3404:16;;;;;;;;:::i;:::-;;;;:74;-1:-1:-1;;;;;3404:74:0;;;;;;;;-1:-1:-1;3480:12:0;3490:2;3480:12;;:::i;:::-;;;3371:124;;1071:400;-1:-1:-1;;;;;1153:19:0;;1145:83;;;;-1:-1:-1;;;1145:83:0;;14633:2:1;1145:83:0;;;14615:21:1;14672:2;14652:18;;;14645:30;14711:34;14691:18;;;14684:62;-1:-1:-1;;;14762:18:1;;;14755:35;14807:19;;1145:83:0;14431:401:1;1145:83:0;1276:3;1247:17;;;:7;:17;;;;;;-1:-1:-1;;;;;1247:17:0;:33;1239:106;;;;-1:-1:-1;;;1239:106:0;;16513:2:1;1239:106:0;;;16495:21:1;16552:2;16532:18;;;16525:30;16591:34;16571:18;;;16564:62;-1:-1:-1;;;16642:18:1;;;16635:44;16696:19;;1239:106:0;16311:410:1;1239:106:0;-1:-1:-1;;;;;1358:14:0;;;;;;:9;:14;;;;;:16;;;;;;:::i;:::-;;;;-1:-1:-1;;1385:17:0;;;;:7;:17;;;;;;:23;;-1:-1:-1;;;;;;1385:23:0;-1:-1:-1;;;;;1385:23:0;;;;;;;;1426:37;;1385:17;;;1426:37;;1385:17;;1426:37;1071:400;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:173:1;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:723::-;246:5;299:3;292:4;284:6;280:17;276:27;266:55;;317:1;314;307:12;266:55;353:6;340:20;379:4;402:18;398:2;395:26;392:52;;;424:18;;:::i;:::-;470:2;467:1;463:10;493:28;517:2;513;509:11;493:28;:::i;:::-;555:15;;;586:12;;;;618:15;;;652;;;648:24;;645:33;-1:-1:-1;642:53:1;;;691:1;688;681:12;642:53;713:1;704:10;;723:163;737:2;734:1;731:9;723:163;;;794:17;;782:30;;755:1;748:9;;;;;832:12;;;;864;;723:163;;;-1:-1:-1;904:5:1;192:723;-1:-1:-1;;;;;;;192:723:1:o;920:160::-;985:20;;1041:13;;1034:21;1024:32;;1014:60;;1070:1;1067;1060:12;1085:530;1127:5;1180:3;1173:4;1165:6;1161:17;1157:27;1147:55;;1198:1;1195;1188:12;1147:55;1234:6;1221:20;1260:18;1256:2;1253:26;1250:52;;;1282:18;;:::i;:::-;1326:55;1369:2;1350:13;;-1:-1:-1;;1346:27:1;1375:4;1342:38;1326:55;:::i;:::-;1406:2;1397:7;1390:19;1452:3;1445:4;1440:2;1432:6;1428:15;1424:26;1421:35;1418:55;;;1469:1;1466;1459:12;1418:55;1534:2;1527:4;1519:6;1515:17;1508:4;1499:7;1495:18;1482:55;1582:1;1557:16;;;1575:4;1553:27;1546:38;;;;1561:7;1085:530;-1:-1:-1;;;1085:530:1:o;1620:186::-;1679:6;1732:2;1720:9;1711:7;1707:23;1703:32;1700:52;;;1748:1;1745;1738:12;1700:52;1771:29;1790:9;1771:29;:::i;:::-;1761:39;1620:186;-1:-1:-1;;;1620:186:1:o;1811:260::-;1879:6;1887;1940:2;1928:9;1919:7;1915:23;1911:32;1908:52;;;1956:1;1953;1946:12;1908:52;1979:29;1998:9;1979:29;:::i;:::-;1969:39;;2027:38;2061:2;2050:9;2046:18;2027:38;:::i;:::-;2017:48;;1811:260;;;;;:::o;2076:496::-;2178:6;2186;2194;2247:2;2235:9;2226:7;2222:23;2218:32;2215:52;;;2263:1;2260;2253:12;2215:52;2286:29;2305:9;2286:29;:::i;:::-;2276:39;;2334:38;2368:2;2357:9;2353:18;2334:38;:::i;:::-;2324:48;;2423:2;2412:9;2408:18;2395:32;2450:18;2442:6;2439:30;2436:50;;;2482:1;2479;2472:12;2436:50;2505:61;2558:7;2549:6;2538:9;2534:22;2505:61;:::i;:::-;2495:71;;;2076:496;;;;;:::o;2577:716::-;2697:6;2705;2713;2721;2774:3;2762:9;2753:7;2749:23;2745:33;2742:53;;;2791:1;2788;2781:12;2742:53;2814:29;2833:9;2814:29;:::i;:::-;2804:39;;2862:38;2896:2;2885:9;2881:18;2862:38;:::i;:::-;2852:48;;2951:2;2940:9;2936:18;2923:32;2974:18;3015:2;3007:6;3004:14;3001:34;;;3031:1;3028;3021:12;3001:34;3054:61;3107:7;3098:6;3087:9;3083:22;3054:61;:::i;:::-;3044:71;;3168:2;3157:9;3153:18;3140:32;3124:48;;3197:2;3187:8;3184:16;3181:36;;;3213:1;3210;3203:12;3181:36;;3236:51;3279:7;3268:8;3257:9;3253:24;3236:51;:::i;:::-;3226:61;;;2577:716;;;;;;;:::o;3298:328::-;3375:6;3383;3391;3444:2;3432:9;3423:7;3419:23;3415:32;3412:52;;;3460:1;3457;3450:12;3412:52;3483:29;3502:9;3483:29;:::i;:::-;3473:39;;3531:38;3565:2;3554:9;3550:18;3531:38;:::i;:::-;3521:48;;3616:2;3605:9;3601:18;3588:32;3578:42;;3298:328;;;;;:::o;3631:537::-;3726:6;3734;3742;3750;3803:3;3791:9;3782:7;3778:23;3774:33;3771:53;;;3820:1;3817;3810:12;3771:53;3843:29;3862:9;3843:29;:::i;:::-;3833:39;;3891:38;3925:2;3914:9;3910:18;3891:38;:::i;:::-;3881:48;;3976:2;3965:9;3961:18;3948:32;3938:42;;4031:2;4020:9;4016:18;4003:32;4058:18;4050:6;4047:30;4044:50;;;4090:1;4087;4080:12;4044:50;4113:49;4154:7;4145:6;4134:9;4130:22;4113:49;:::i;4173:254::-;4238:6;4246;4299:2;4287:9;4278:7;4274:23;4270:32;4267:52;;;4315:1;4312;4305:12;4267:52;4338:29;4357:9;4338:29;:::i;:::-;4328:39;;4386:35;4417:2;4406:9;4402:18;4386:35;:::i;4432:254::-;4500:6;4508;4561:2;4549:9;4540:7;4536:23;4532:32;4529:52;;;4577:1;4574;4567:12;4529:52;4600:29;4619:9;4600:29;:::i;:::-;4590:39;4676:2;4661:18;;;;4648:32;;-1:-1:-1;;;4432:254:1:o;4691:180::-;4747:6;4800:2;4788:9;4779:7;4775:23;4771:32;4768:52;;;4816:1;4813;4806:12;4768:52;4839:26;4855:9;4839:26;:::i;4876:245::-;4934:6;4987:2;4975:9;4966:7;4962:23;4958:32;4955:52;;;5003:1;5000;4993:12;4955:52;5042:9;5029:23;5061:30;5085:5;5061:30;:::i;5126:249::-;5195:6;5248:2;5236:9;5227:7;5223:23;5219:32;5216:52;;;5264:1;5261;5254:12;5216:52;5296:9;5290:16;5315:30;5339:5;5315:30;:::i;5380:592::-;5451:6;5459;5512:2;5500:9;5491:7;5487:23;5483:32;5480:52;;;5528:1;5525;5518:12;5480:52;5568:9;5555:23;5597:18;5638:2;5630:6;5627:14;5624:34;;;5654:1;5651;5644:12;5624:34;5692:6;5681:9;5677:22;5667:32;;5737:7;5730:4;5726:2;5722:13;5718:27;5708:55;;5759:1;5756;5749:12;5708:55;5799:2;5786:16;5825:2;5817:6;5814:14;5811:34;;;5841:1;5838;5831:12;5811:34;5886:7;5881:2;5872:6;5868:2;5864:15;5860:24;5857:37;5854:57;;;5907:1;5904;5897:12;5854:57;5938:2;5930:11;;;;;5960:6;;-1:-1:-1;5380:592:1;;-1:-1:-1;;;;5380:592:1:o;5977:180::-;6036:6;6089:2;6077:9;6068:7;6064:23;6060:32;6057:52;;;6105:1;6102;6095:12;6057:52;-1:-1:-1;6128:23:1;;5977:180;-1:-1:-1;5977:180:1:o;6162:257::-;6203:3;6241:5;6235:12;6268:6;6263:3;6256:19;6284:63;6340:6;6333:4;6328:3;6324:14;6317:4;6310:5;6306:16;6284:63;:::i;:::-;6401:2;6380:15;-1:-1:-1;;6376:29:1;6367:39;;;;6408:4;6363:50;;6162:257;-1:-1:-1;;6162:257:1:o;6424:973::-;6509:12;;6474:3;;6564:1;6584:18;;;;6637;;;;6664:61;;6718:4;6710:6;6706:17;6696:27;;6664:61;6744:2;6792;6784:6;6781:14;6761:18;6758:38;6755:161;;;6838:10;6833:3;6829:20;6826:1;6819:31;6873:4;6870:1;6863:15;6901:4;6898:1;6891:15;6755:161;6932:18;6959:104;;;;7077:1;7072:319;;;;6925:466;;6959:104;-1:-1:-1;;6992:24:1;;6980:37;;7037:16;;;;-1:-1:-1;6959:104:1;;7072:319;18101:1;18094:14;;;18138:4;18125:18;;7166:1;7180:165;7194:6;7191:1;7188:13;7180:165;;;7272:14;;7259:11;;;7252:35;7315:16;;;;7209:10;;7180:165;;;7184:3;;7374:6;7369:3;7365:16;7358:23;;6925:466;;;;;;;6424:973;;;;:::o;7402:274::-;7531:3;7569:6;7563:13;7585:53;7631:6;7626:3;7619:4;7611:6;7607:17;7585:53;:::i;:::-;7654:16;;;;;7402:274;-1:-1:-1;;7402:274:1:o;7681:456::-;7902:3;7930:38;7964:3;7956:6;7930:38;:::i;:::-;7997:6;7991:13;8013:52;8058:6;8054:2;8047:4;8039:6;8035:17;8013:52;:::i;:::-;8081:50;8123:6;8119:2;8115:15;8107:6;8081:50;:::i;:::-;8074:57;7681:456;-1:-1:-1;;;;;;;7681:456:1:o;8560:488::-;-1:-1:-1;;;;;8829:15:1;;;8811:34;;8881:15;;8876:2;8861:18;;8854:43;8928:2;8913:18;;8906:34;;;8976:3;8971:2;8956:18;;8949:31;;;8754:4;;8997:45;;9022:19;;9014:6;8997:45;:::i;:::-;8989:53;8560:488;-1:-1:-1;;;;;;8560:488:1:o;9053:632::-;9224:2;9276:21;;;9346:13;;9249:18;;;9368:22;;;9195:4;;9224:2;9447:15;;;;9421:2;9406:18;;;9195:4;9490:169;9504:6;9501:1;9498:13;9490:169;;;9565:13;;9553:26;;9634:15;;;;9599:12;;;;9526:1;9519:9;9490:169;;;-1:-1:-1;9676:3:1;;9053:632;-1:-1:-1;;;;;;9053:632:1:o;9882:219::-;10031:2;10020:9;10013:21;9994:4;10051:44;10091:2;10080:9;10076:18;10068:6;10051:44;:::i;13715:356::-;13917:2;13899:21;;;13936:18;;;13929:30;13995:34;13990:2;13975:18;;13968:62;14062:2;14047:18;;13715:356::o;17748:275::-;17819:2;17813:9;17884:2;17865:13;;-1:-1:-1;;17861:27:1;17849:40;;17919:18;17904:34;;17940:22;;;17901:62;17898:88;;;17966:18;;:::i;:::-;18002:2;17995:22;17748:275;;-1:-1:-1;17748:275:1:o;18154:128::-;18194:3;18225:1;18221:6;18218:1;18215:13;18212:39;;;18231:18;;:::i;:::-;-1:-1:-1;18267:9:1;;18154:128::o;18287:120::-;18327:1;18353;18343:35;;18358:18;;:::i;:::-;-1:-1:-1;18392:9:1;;18287:120::o;18412:168::-;18452:7;18518:1;18514;18510:6;18506:14;18503:1;18500:21;18495:1;18488:9;18481:17;18477:45;18474:71;;;18525:18;;:::i;:::-;-1:-1:-1;18565:9:1;;18412:168::o;18585:125::-;18625:4;18653:1;18650;18647:8;18644:34;;;18658:18;;:::i;:::-;-1:-1:-1;18695:9:1;;18585:125::o;18715:258::-;18787:1;18797:113;18811:6;18808:1;18805:13;18797:113;;;18887:11;;;18881:18;18868:11;;;18861:39;18833:2;18826:10;18797:113;;;18928:6;18925:1;18922:13;18919:48;;;-1:-1:-1;;18963:1:1;18945:16;;18938:27;18715:258::o;18978:136::-;19017:3;19045:5;19035:39;;19054:18;;:::i;:::-;-1:-1:-1;;;19090:18:1;;18978:136::o;19119:380::-;19198:1;19194:12;;;;19241;;;19262:61;;19316:4;19308:6;19304:17;19294:27;;19262:61;19369:2;19361:6;19358:14;19338:18;19335:38;19332:161;;;19415:10;19410:3;19406:20;19403:1;19396:31;19450:4;19447:1;19440:15;19478:4;19475:1;19468:15;19332:161;;19119:380;;;:::o;19504:135::-;19543:3;-1:-1:-1;;19564:17:1;;19561:43;;;19584:18;;:::i;:::-;-1:-1:-1;19631:1:1;19620:13;;19504:135::o;19644:112::-;19676:1;19702;19692:35;;19707:18;;:::i;:::-;-1:-1:-1;19741:9:1;;19644:112::o;19761:127::-;19822:10;19817:3;19813:20;19810:1;19803:31;19853:4;19850:1;19843:15;19877:4;19874:1;19867:15;19893:127;19954:10;19949:3;19945:20;19942:1;19935:31;19985:4;19982:1;19975:15;20009:4;20006:1;19999:15;20025:127;20086:10;20081:3;20077:20;20074:1;20067:31;20117:4;20114:1;20107:15;20141:4;20138:1;20131:15;20157:127;20218:10;20213:3;20209:20;20206:1;20199:31;20249:4;20246:1;20239:15;20273:4;20270:1;20263:15;20289:131;-1:-1:-1;;;;;;20363:32:1;;20353:43;;20343:71;;20410:1;20407;20400:12

Swarm Source

ipfs://8fa0b40b2093c087a0a6cbf68a49c3cc6e4d4c3e1ee36ffd63f4c2c35924ed61
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.