ETH Price: $3,297.18 (-0.59%)

Token

TOOMUCHLAG EDITIONS (TML721)
 

Overview

Max Total Supply

0 TML721

Holders

26

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
abana.eth
Balance
3 TML721
0x7F6417eCc59685F4363DD7662D0cB26F2E5e5E5c
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:
ERC721_Editions

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-17
*/

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

//            _____            _____                     _____          
//           /\    \          /\    \                   /\    \         
//          /::\____\        /::\    \                 /::\    \        
//         /:::/    /       /::::\    \               /::::\    \       
//        /:::/    /       /::::::\    \             /::::::\    \      
//       /:::/    /       /:::/\:::\    \           /:::/\:::\    \     
//      /:::/    /       /:::/__\:::\    \         /:::/  \:::\    \    
//     /:::/    /       /::::\   \:::\    \       /:::/    \:::\    \   
//    /:::/    /       /::::::\   \:::\    \     /:::/    / \:::\    \  
//   /:::/    /       /:::/\:::\   \:::\    \   /:::/    /   \:::\ ___\ 
//  /:::/____/       /:::/  \:::\   \:::\____\ /:::/____/  ___\:::|    |
//  \:::\    \       \::/    \:::\  /:::/    / \:::\    \ /\  /:::|____|
//   \:::\    \       \/____/ \:::\/:::/    /   \:::\    /::\ \::/    / 
//    \:::\    \               \::::::/    /     \:::\   \:::\ \/____/  
//     \:::\    \               \::::/    /       \:::\   \:::\____\    
//      \:::\    \              /:::/    /         \:::\  /:::/    /    
//       \:::\    \            /:::/    /           \:::\/:::/    /     
//        \:::\    \          /:::/    /             \::::::/    /      
//         \:::\____\        /:::/    /               \::::/    /       
//          \::/    /        \::/    /                 \::/    /        
//           \/____/          \/____/                   \/____/



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

// Implementation of a custom tokenURI
interface ITokenURICustom {
    function constructTokenURI(uint256 tokenId) external view returns (string memory);
}

// Ownable From OpenZeppelin Contracts v4.4.1 (Ownable.sol)

abstract contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(msg.sender);
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// ERC721 Contract with customisable URI

contract ERC721_Editions is Ownable {

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

    // NFT contract metadata
    string public name;

    string public symbol;

    // Mapping from token ID to owner address
    mapping(uint256 => address) private _owners;

    // Mapping owner address to token count
    mapping(address => uint256) private _balances;

    // Mapping from token ID to approved address
    mapping(uint256 => address) private _tokenApprovals;

    // Mapping from owner to operator approvals
    mapping(address => mapping(address => bool)) private _operatorApprovals;

    // Mapping for token URIs
    mapping(uint256 => string) private _tokenURIs;

    // Mapping from token ID to URIs custom contract
    mapping(uint256 => address) public customURI;

    // Mapping from token ID to token URIs locked
    mapping(uint256 => bool) public lockedURI;

    // Minter contract
    address public minterContract;

    // ERC-2981: NFT Royalty Standard
    address payable private _royaltyRecipient;
    uint256 private _royaltyBps;

    // Mapping from token ID to non-default royaltyBps
    mapping(uint256 => uint256) private _royaltyBpsTokenId;


    // CONSTRUCTOR
    constructor(string memory name_, string memory symbol_) {
        name = name_;
        symbol = symbol_;

        _royaltyRecipient = payable(msg.sender);
        _royaltyBps = 1000;

    }

    // ADMIN FUNCTIONS

    function setMinterContract (address minterContract_) public onlyOwner {
        minterContract = minterContract_;
    }

    // ERC165

    function supportsInterface(bytes4 interfaceId) public pure returns (bool) {
        return 
            interfaceId == 0x01ffc9a7 || // ERC165 = 0x01ffc9a7
            interfaceId == 0x80ac58cd || // ERC721 = 0x80ac58cd
            interfaceId == 0x5b5e139f || // ERC721 Metadata = 0x5b5e139f
            interfaceId == 0x2a55205a;  // ERC2981 = 0x2a55205a;

        // ERC721 = 0x80ac58cd
        // ERC721 Metadata = 0x5b5e139f
        // ERC721 Enumerable = 0x780e9d63
        // ERC721 Receiver = 0x150b7a02
        // ERC165 = 0x01ffc9a7
        // ERC2981 = 0x2a55205a;
    }

    // URI SECTION

    function tokenURI(uint256 tokenId) public view returns (string memory) {
        require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");

        if(customURI[tokenId] != address(0)) {
            return ITokenURICustom(customURI[tokenId]).constructTokenURI(tokenId);
        }
        else {
            return _tokenURIs[tokenId];
        }
 
    }

    function setTokenURI(uint256 tokenId, string calldata tokenURI_) public onlyOwner {
        require(!lockedURI[tokenId], "URI finalised");
        _tokenURIs[tokenId] = tokenURI_;

    }

    function setTokenURIBatch(uint256[] calldata tokenIDs, string[] calldata tokenURI_) public onlyOwner {
        for (uint256 i = 0; i < tokenIDs.length; ++i) {
            require(!lockedURI[tokenIDs[i]], "URI finalised");
            _tokenURIs[tokenIDs[i]] = tokenURI_[i];
        }
    }

    function setCustomURI(uint256 tokenId, address contractURI) public onlyOwner {
        require(!lockedURI[tokenId], "URI finalised");
        customURI[tokenId] = contractURI;
    }

    function lockURIs(uint256[] calldata tokenIDs) public onlyOwner {
        for (uint256 i = 0; i < tokenIDs.length; ++i) {
            require(!lockedURI[tokenIDs[i]], "URI finalised");
            lockedURI[tokenIDs[i]] = true;
        }
    }

    // ERC721 SECTION

    function balanceOf(address owner) public view returns (uint256) {
        require(owner != address(0), "ERC721: balance query for the zero address");
        return _balances[owner];
    }

    function ownerOf(uint256 tokenId) public view returns (address) {
        address owner = _owners[tokenId];
        require(owner != address(0), "ERC721: owner query for nonexistent token");
        return owner;
    }

    function approve(address to, uint256 tokenId) public {
        address owner = ownerOf(tokenId);
        require(to != owner, "ERC721: approval to current owner");

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

        _approve(to, tokenId);
    }

    function getApproved(uint256 tokenId) public view returns (address) {
        require(_exists(tokenId), "ERC721: approved query for nonexistent token");

        return _tokenApprovals[tokenId];
    }

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

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

    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public {
        require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved");

        _transfer(from, to, tokenId);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public {
        safeTransferFrom(from, to, tokenId, "");
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) public {
        require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved");
        _safeTransfer(from, to, tokenId, _data);
    }

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

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

    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {
        require(_exists(tokenId), "ERC721: operator query for nonexistent token");
        address owner = ownerOf(tokenId);
        return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));
    }

    function mintBatch(address to, uint256 startId, uint256 quantity, string[] calldata tokenURI_) public onlyOwner {
        for (uint256 i = 0; i < quantity; ++i) {
            _mint(to, startId + i);
            _tokenURIs[startId + i] = tokenURI_[i];
        }
        
    }

    function mintCustomUri(address to, uint256 tokenId, address contractURI) public onlyOwner {
        _mint(to, tokenId);
        customURI[tokenId] = contractURI;
    }

    function mintExternal(address to, uint256 tokenId, string calldata tokenURI_) public {
        require(msg.sender == minterContract, "Not Allowed");

        _mint(to, tokenId);
        _tokenURIs[tokenId] = tokenURI_;
    }

    function mintCustomExternal(address to, uint256 tokenId, address contractURI) public {
        require(msg.sender == minterContract, "Not Allowed");
        
        _mint(to, tokenId);
        customURI[tokenId] = contractURI;
    }

    function burn(uint256 tokenId) public {
        require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: caller is not owner nor approved");
        _burn(tokenId);
        delete _tokenURIs[tokenId];
        delete customURI[tokenId];
        delete lockedURI[tokenId];
    }

    function _mint(address to, uint256 tokenId) internal virtual {
        require(to != address(0), "ERC721: mint to the zero address");
        require(!_exists(tokenId), "ERC721: token already minted");

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

        emit Transfer(address(0), to, tokenId);

    }

    function _burn(uint256 tokenId) internal {
        address owner = ownerOf(tokenId);

        // Clear approvals
        _approve(address(0), tokenId);

        _balances[owner] -= 1;
        delete _owners[tokenId];

        emit Transfer(owner, address(0), tokenId);

    }

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


        // Clear approvals from the previous owner
        _approve(address(0), tokenId);

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

        emit Transfer(from, to, tokenId);

    }

    function _approve(address to, uint256 tokenId) internal virtual {
        _tokenApprovals[tokenId] = to;
        emit Approval(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 _checkOnERC721Received(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) private returns (bool) {
        if (to.code.length > 0) {
            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;
        }
    }


    // EIP-2981 ROYALTY STANDARD
    function setRoyaltyBps(uint256 royaltyPercentageBasisPoints) public onlyOwner {
        _royaltyBps = royaltyPercentageBasisPoints;
    }

    function setRoyaltyBpsForTokenId(uint256 tokenId, uint256 royaltyPercentageBasisPoints) public onlyOwner {
        _royaltyBpsTokenId[tokenId] = royaltyPercentageBasisPoints;
    }

    function setRoyaltyReceipientAddress(address payable royaltyReceipientAddress) public onlyOwner {
        _royaltyRecipient = royaltyReceipientAddress;
    }

    function royaltyInfo(uint256 tokenId, uint256 salePrice) external view returns (address receiver, uint256 royaltyAmount) {
        uint256 bps;

        if(_royaltyBpsTokenId[tokenId] > 0) {
            bps = _royaltyBpsTokenId[tokenId];
        }
        else {
            bps = _royaltyBps;
        }

        uint256 royalty = (salePrice * bps) / 10000;
        return (_royaltyRecipient, royalty);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"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":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"customURI","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"uint256[]","name":"tokenIDs","type":"uint256[]"}],"name":"lockURIs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lockedURI","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"startId","type":"uint256"},{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"string[]","name":"tokenURI_","type":"string[]"}],"name":"mintBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"contractURI","type":"address"}],"name":"mintCustomExternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"contractURI","type":"address"}],"name":"mintCustomUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenURI_","type":"string"}],"name":"mintExternal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minterContract","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"royaltyAmount","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":"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":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"contractURI","type":"address"}],"name":"setCustomURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"minterContract_","type":"address"}],"name":"setMinterContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"royaltyPercentageBasisPoints","type":"uint256"}],"name":"setRoyaltyBps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"royaltyPercentageBasisPoints","type":"uint256"}],"name":"setRoyaltyBpsForTokenId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"royaltyReceipientAddress","type":"address"}],"name":"setRoyaltyReceipientAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenURI_","type":"string"}],"name":"setTokenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIDs","type":"uint256[]"},{"internalType":"string[]","name":"tokenURI_","type":"string[]"}],"name":"setTokenURIBatch","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":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"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"}]

608060405234801561000f575f80fd5b50604051612a2e380380612a2e83398101604081905261002e9161015b565b61003733610070565b6001610043838261023e565b506002610050828261023e565b5050600b80546001600160a01b03191633179055506103e8600c556102fd565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126100e2575f80fd5b81516001600160401b03808211156100fc576100fc6100bf565b604051601f8301601f19908116603f01168101908282118183101715610124576101246100bf565b8160405283815286602085880101111561013c575f80fd5b8360208701602083015e5f602085830101528094505050505092915050565b5f806040838503121561016c575f80fd5b82516001600160401b0380821115610182575f80fd5b61018e868387016100d3565b935060208501519150808211156101a3575f80fd5b506101b0858286016100d3565b9150509250929050565b600181811c908216806101ce57607f821691505b6020821081036101ec57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561023957805f5260205f20601f840160051c810160208510156102175750805b601f840160051c820191505b81811015610236575f8155600101610223565b50505b505050565b81516001600160401b03811115610257576102576100bf565b61026b8161026584546101ba565b846101f2565b602080601f83116001811461029e575f84156102875750858301515b5f19600386901b1c1916600185901b1785556102f5565b5f85815260208120601f198616915b828110156102cc578886015182559484019460019091019084016102ad565b50858210156102e957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6127248061030a5f395ff3fe608060405234801561000f575f80fd5b5060043610610200575f3560e01c80634bb9935111610123578063945bc2f8116100b8578063c87b56dd11610088578063e985e9c51161006e578063e985e9c5146104a7578063f2fde38b146104e2578063f74c165d146104f5575f80fd5b8063c87b56dd14610481578063e804125214610494575f80fd5b8063945bc2f81461044057806395d89b4114610453578063a22cb4651461045b578063b88d4fde1461046e575f80fd5b8063715018a6116100f3578063715018a6146103ed57806383a75cd7146103f55780638da5cb5b1461041d57806392f002331461042d575f80fd5b80634bb993511461039357806362e0504f146103a65780636352211e146103b957806370a08231146103cc575f80fd5b8063215e61ae1161019957806338478ae71161016957806338478ae7146103475780633a38333b1461035a57806342842e0e1461036d57806342966c6814610380575f80fd5b8063215e61ae146102cd57806323b872dd146102ef5780632a55205a1461030257806333373cea14610334575f80fd5b8063095ea7b3116101d4578063095ea7b314610281578063150f6dba14610294578063162094c4146102a75780631f72d831146102ba575f80fd5b80629ee39c1461020457806301ffc9a71461021957806306fdde0314610241578063081812fc14610256575b5f80fd5b610217610212366004611eda565b610508565b005b61022c610227366004611f11565b610584565b60405190151581526020015b60405180910390f35b610249610654565b6040516102389190611f5a565b610269610264366004611f6c565b6106e0565b6040516001600160a01b039091168152602001610238565b61021761028f366004611f83565b610773565b6102176102a2366004611fee565b6108c0565b6102176102b5366004612091565b61098e565b6102176102c8366004611f6c565b610a4f565b61022c6102db366004611f6c565b60096020525f908152604090205460ff1681565b6102176102fd3660046120d9565b610aa9565b610315610310366004612117565b610b30565b604080516001600160a01b039093168352602083019190915201610238565b610217610342366004612117565b610b92565b610217610355366004611eda565b610bf8565b610217610368366004612137565b610c6f565b61021761037b3660046120d9565b610ce0565b61021761038e366004611f6c565b610cfa565b6102176103a136600461218f565b610dc4565b6102176103b43660046121ea565b610ef4565b6102696103c7366004611f6c565b610f81565b6103df6103da366004611eda565b61100b565b604051908152602001610238565b6102176110a3565b610269610403366004611f6c565b60086020525f90815260409020546001600160a01b031681565b5f546001600160a01b0316610269565b600a54610269906001600160a01b031681565b61021761044e3660046121ea565b611103565b61024961114b565b610217610469366004612229565b611158565b61021761047c3660046122d0565b611167565b61024961048f366004611f6c565b6111ef565b6102176104a2366004612378565b6113c4565b61022c6104b53660046123b7565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205460ff1690565b6102176104f0366004611eda565b6114d7565b6102176105033660046123e3565b6115b4565b3361051a5f546001600160a01b031690565b6001600160a01b0316146105625760405162461bcd60e51b815260206004820181905260248201525f805160206126cf83398151915260448201526064015b60405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b0319831614806105e657507f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b8061061a57507f5b5e139f000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b8061064e57507f2a55205a000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6001805461066190612406565b80601f016020809104026020016040519081016040528092919081815260200182805461068d90612406565b80156106d85780601f106106af576101008083540402835291602001916106d8565b820191905f5260205f20905b8154815290600101906020018083116106bb57829003601f168201915b505050505081565b5f818152600360205260408120546001600160a01b03166107585760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610559565b505f908152600560205260409020546001600160a01b031690565b5f61077d82610f81565b9050806001600160a01b0316836001600160a01b0316036108065760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610559565b336001600160a01b038216148061083f57506001600160a01b0381165f90815260066020908152604080832033845290915290205460ff165b6108b15760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610559565b6108bb8383611684565b505050565b336108d25f546001600160a01b031690565b6001600160a01b0316146109155760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b5f5b83811015610986576109328661092d8388612452565b6116f1565b82828281811061094457610944612465565b90506020028101906109569190612479565b60075f610963858a612452565b81526020019081526020015f20918261097d929190612500565b50600101610917565b505050505050565b336109a05f546001600160a01b031690565b6001600160a01b0316146109e35760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b5f8381526009602052604090205460ff1615610a315760405162461bcd60e51b815260206004820152600d60248201526c15549248199a5b985b1a5cd959609a1b6044820152606401610559565b5f838152600760205260409020610a49828483612500565b50505050565b33610a615f546001600160a01b031690565b6001600160a01b031614610aa45760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b600c55565b610ab33382611830565b610b255760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610559565b6108bb838383611924565b5f828152600d60205260408120548190819015610b5b57505f848152600d6020526040902054610b60565b50600c545b5f612710610b6e83876125ba565b610b7891906125d1565b600b546001600160a01b03169450925050505b9250929050565b33610ba45f546001600160a01b031690565b6001600160a01b031614610be75760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b5f918252600d602052604090912055565b33610c0a5f546001600160a01b031690565b6001600160a01b031614610c4d5760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b03163314610cb75760405162461bcd60e51b815260206004820152600b60248201526a139bdd08105b1b1bddd95960aa1b6044820152606401610559565b610cc184846116f1565b5f838152600760205260409020610cd9828483612500565b5050505050565b6108bb83838360405180602001604052805f815250611167565b610d043382611830565b610d765760405162461bcd60e51b815260206004820152602860248201527f4552433732313a2063616c6c6572206973206e6f74206f776e6572206e6f722060448201527f617070726f7665640000000000000000000000000000000000000000000000006064820152608401610559565b610d7f81611aed565b5f818152600760205260408120610d9591611e7c565b5f90815260086020908152604080832080546001600160a01b031916905560099091529020805460ff19169055565b33610dd65f546001600160a01b031690565b6001600160a01b031614610e195760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b5f5b83811015610cd95760095f868684818110610e3857610e38612465565b602090810292909201358352508101919091526040015f205460ff1615610e915760405162461bcd60e51b815260206004820152600d60248201526c15549248199a5b985b1a5cd959609a1b6044820152606401610559565b828282818110610ea357610ea3612465565b9050602002810190610eb59190612479565b60075f888886818110610eca57610eca612465565b9050602002013581526020019081526020015f209182610eeb929190612500565b50600101610e1b565b33610f065f546001600160a01b031690565b6001600160a01b031614610f495760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b610f5383836116f1565b5f9182526008602052604090912080546001600160a01b0319166001600160a01b0390921691909117905550565b5f818152600360205260408120546001600160a01b03168061064e5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610559565b5f6001600160a01b0382166110885760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610559565b506001600160a01b03165f9081526004602052604090205490565b336110b55f546001600160a01b031690565b6001600160a01b0316146110f85760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b6111015f611b84565b565b600a546001600160a01b03163314610f495760405162461bcd60e51b815260206004820152600b60248201526a139bdd08105b1b1bddd95960aa1b6044820152606401610559565b6002805461066190612406565b611163338383611bd3565b5050565b6111713383611830565b6111e35760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610559565b610a4984848484611ca0565b5f818152600360205260409020546060906001600160a01b031661127b5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610559565b5f828152600860205260409020546001600160a01b031615611329575f82815260086020526040908190205490517f894b4c2e000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b039091169063894b4c2e906024015f60405180830381865afa158015611302573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261064e91908101906125f0565b5f828152600760205260409020805461134190612406565b80601f016020809104026020016040519081016040528092919081815260200182805461136d90612406565b80156113b85780601f1061138f576101008083540402835291602001916113b8565b820191905f5260205f20905b81548152906001019060200180831161139b57829003601f168201915b50505050509050919050565b336113d65f546001600160a01b031690565b6001600160a01b0316146114195760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b5f5b818110156108bb5760095f84848481811061143857611438612465565b602090810292909201358352508101919091526040015f205460ff16156114915760405162461bcd60e51b815260206004820152600d60248201526c15549248199a5b985b1a5cd959609a1b6044820152606401610559565b600160095f8585858181106114a8576114a8612465565b602090810292909201358352508101919091526040015f20805460ff191691151591909117905560010161141b565b336114e95f546001600160a01b031690565b6001600160a01b03161461152c5760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b6001600160a01b0381166115a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610559565b6115b181611b84565b50565b336115c65f546001600160a01b031690565b6001600160a01b0316146116095760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b5f8281526009602052604090205460ff16156116575760405162461bcd60e51b815260206004820152600d60248201526c15549248199a5b985b1a5cd959609a1b6044820152606401610559565b5f9182526008602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f81815260056020526040902080546001600160a01b0319166001600160a01b03841690811790915581906116b882610f81565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6001600160a01b0382166117475760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610559565b5f818152600360205260409020546001600160a01b0316156117ab5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610559565b6001600160a01b0382165f9081526004602052604081208054600192906117d3908490612452565b90915550505f8181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5f818152600360205260408120546001600160a01b03166118a85760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610559565b5f6118b283610f81565b9050806001600160a01b0316846001600160a01b031614806118ed5750836001600160a01b03166118e2846106e0565b6001600160a01b0316145b8061191c57506001600160a01b038082165f9081526006602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b031661193782610f81565b6001600160a01b0316146119b35760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610559565b6001600160a01b038216611a2e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610559565b611a385f82611684565b6001600160a01b0383165f908152600460205260408120805460019290611a60908490612665565b90915550506001600160a01b0382165f908152600460205260408120805460019290611a8d908490612452565b90915550505f8181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5f611af782610f81565b9050611b035f83611684565b6001600160a01b0381165f908152600460205260408120805460019290611b2b908490612665565b90915550505f8281526003602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b816001600160a01b0316836001600160a01b031603611c345760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610559565b6001600160a01b038381165f81815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611cab848484611924565b611cb784848484611d29565b610a495760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610559565b5f6001600160a01b0384163b15611e7157604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611d6c903390899088908890600401612678565b6020604051808303815f875af1925050508015611da6575060408051601f3d908101601f19168201909252611da3918101906126b3565b60015b611e57573d808015611dd3576040519150601f19603f3d011682016040523d82523d5f602084013e611dd8565b606091505b5080515f03611e4f5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610559565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061191c565b506001949350505050565b508054611e8890612406565b5f825580601f10611e97575050565b601f0160209004905f5260205f20908101906115b191905b80821115611ec2575f8155600101611eaf565b5090565b6001600160a01b03811681146115b1575f80fd5b5f60208284031215611eea575f80fd5b8135611ef581611ec6565b9392505050565b6001600160e01b0319811681146115b1575f80fd5b5f60208284031215611f21575f80fd5b8135611ef581611efc565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f611ef56020830184611f2c565b5f60208284031215611f7c575f80fd5b5035919050565b5f8060408385031215611f94575f80fd5b8235611f9f81611ec6565b946020939093013593505050565b5f8083601f840112611fbd575f80fd5b50813567ffffffffffffffff811115611fd4575f80fd5b6020830191508360208260051b8501011115610b8b575f80fd5b5f805f805f60808688031215612002575f80fd5b853561200d81611ec6565b94506020860135935060408601359250606086013567ffffffffffffffff811115612036575f80fd5b61204288828901611fad565b969995985093965092949392505050565b5f8083601f840112612063575f80fd5b50813567ffffffffffffffff81111561207a575f80fd5b602083019150836020828501011115610b8b575f80fd5b5f805f604084860312156120a3575f80fd5b83359250602084013567ffffffffffffffff8111156120c0575f80fd5b6120cc86828701612053565b9497909650939450505050565b5f805f606084860312156120eb575f80fd5b83356120f681611ec6565b9250602084013561210681611ec6565b929592945050506040919091013590565b5f8060408385031215612128575f80fd5b50508035926020909101359150565b5f805f806060858703121561214a575f80fd5b843561215581611ec6565b935060208501359250604085013567ffffffffffffffff811115612177575f80fd5b61218387828801612053565b95989497509550505050565b5f805f80604085870312156121a2575f80fd5b843567ffffffffffffffff808211156121b9575f80fd5b6121c588838901611fad565b909650945060208701359150808211156121dd575f80fd5b5061218387828801611fad565b5f805f606084860312156121fc575f80fd5b833561220781611ec6565b925060208401359150604084013561221e81611ec6565b809150509250925092565b5f806040838503121561223a575f80fd5b823561224581611ec6565b915060208301358015158114612259575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156122a1576122a1612264565b604052919050565b5f67ffffffffffffffff8211156122c2576122c2612264565b50601f01601f191660200190565b5f805f80608085870312156122e3575f80fd5b84356122ee81611ec6565b935060208501356122fe81611ec6565b925060408501359150606085013567ffffffffffffffff811115612320575f80fd5b8501601f81018713612330575f80fd5b803561234361233e826122a9565b612278565b818152886020838501011115612357575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b5f8060208385031215612389575f80fd5b823567ffffffffffffffff81111561239f575f80fd5b6123ab85828601611fad565b90969095509350505050565b5f80604083850312156123c8575f80fd5b82356123d381611ec6565b9150602083013561225981611ec6565b5f80604083850312156123f4575f80fd5b82359150602083013561225981611ec6565b600181811c9082168061241a57607f821691505b60208210810361243857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561064e5761064e61243e565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e1984360301811261248e575f80fd5b83018035915067ffffffffffffffff8211156124a8575f80fd5b602001915036819003821315610b8b575f80fd5b601f8211156108bb57805f5260205f20601f840160051c810160208510156124e15750805b601f840160051c820191505b81811015610cd9575f81556001016124ed565b67ffffffffffffffff83111561251857612518612264565b61252c836125268354612406565b836124bc565b5f601f84116001811461255d575f85156125465750838201355b5f19600387901b1c1916600186901b178355610cd9565b5f83815260208120601f198716915b8281101561258c578685013582556020948501946001909201910161256c565b50868210156125a8575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b808202811582820484141761064e5761064e61243e565b5f826125eb57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612600575f80fd5b815167ffffffffffffffff811115612616575f80fd5b8201601f81018413612626575f80fd5b805161263461233e826122a9565b818152856020838501011115612648575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b8181038181111561064e5761064e61243e565b5f6001600160a01b038087168352808616602084015250836040830152608060608301526126a96080830184611f2c565b9695505050505050565b5f602082840312156126c3575f80fd5b8151611ef581611efc56fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212207f34a2c4f54e5a1b380c1caf3ef6e93ead750d87dabe2aead77369df262e13ab64736f6c63430008190033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000013544f4f4d5543484c41472045444954494f4e53000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006544d4c3732310000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610200575f3560e01c80634bb9935111610123578063945bc2f8116100b8578063c87b56dd11610088578063e985e9c51161006e578063e985e9c5146104a7578063f2fde38b146104e2578063f74c165d146104f5575f80fd5b8063c87b56dd14610481578063e804125214610494575f80fd5b8063945bc2f81461044057806395d89b4114610453578063a22cb4651461045b578063b88d4fde1461046e575f80fd5b8063715018a6116100f3578063715018a6146103ed57806383a75cd7146103f55780638da5cb5b1461041d57806392f002331461042d575f80fd5b80634bb993511461039357806362e0504f146103a65780636352211e146103b957806370a08231146103cc575f80fd5b8063215e61ae1161019957806338478ae71161016957806338478ae7146103475780633a38333b1461035a57806342842e0e1461036d57806342966c6814610380575f80fd5b8063215e61ae146102cd57806323b872dd146102ef5780632a55205a1461030257806333373cea14610334575f80fd5b8063095ea7b3116101d4578063095ea7b314610281578063150f6dba14610294578063162094c4146102a75780631f72d831146102ba575f80fd5b80629ee39c1461020457806301ffc9a71461021957806306fdde0314610241578063081812fc14610256575b5f80fd5b610217610212366004611eda565b610508565b005b61022c610227366004611f11565b610584565b60405190151581526020015b60405180910390f35b610249610654565b6040516102389190611f5a565b610269610264366004611f6c565b6106e0565b6040516001600160a01b039091168152602001610238565b61021761028f366004611f83565b610773565b6102176102a2366004611fee565b6108c0565b6102176102b5366004612091565b61098e565b6102176102c8366004611f6c565b610a4f565b61022c6102db366004611f6c565b60096020525f908152604090205460ff1681565b6102176102fd3660046120d9565b610aa9565b610315610310366004612117565b610b30565b604080516001600160a01b039093168352602083019190915201610238565b610217610342366004612117565b610b92565b610217610355366004611eda565b610bf8565b610217610368366004612137565b610c6f565b61021761037b3660046120d9565b610ce0565b61021761038e366004611f6c565b610cfa565b6102176103a136600461218f565b610dc4565b6102176103b43660046121ea565b610ef4565b6102696103c7366004611f6c565b610f81565b6103df6103da366004611eda565b61100b565b604051908152602001610238565b6102176110a3565b610269610403366004611f6c565b60086020525f90815260409020546001600160a01b031681565b5f546001600160a01b0316610269565b600a54610269906001600160a01b031681565b61021761044e3660046121ea565b611103565b61024961114b565b610217610469366004612229565b611158565b61021761047c3660046122d0565b611167565b61024961048f366004611f6c565b6111ef565b6102176104a2366004612378565b6113c4565b61022c6104b53660046123b7565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205460ff1690565b6102176104f0366004611eda565b6114d7565b6102176105033660046123e3565b6115b4565b3361051a5f546001600160a01b031690565b6001600160a01b0316146105625760405162461bcd60e51b815260206004820181905260248201525f805160206126cf83398151915260448201526064015b60405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b0319831614806105e657507f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b8061061a57507f5b5e139f000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b8061064e57507f2a55205a000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6001805461066190612406565b80601f016020809104026020016040519081016040528092919081815260200182805461068d90612406565b80156106d85780601f106106af576101008083540402835291602001916106d8565b820191905f5260205f20905b8154815290600101906020018083116106bb57829003601f168201915b505050505081565b5f818152600360205260408120546001600160a01b03166107585760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610559565b505f908152600560205260409020546001600160a01b031690565b5f61077d82610f81565b9050806001600160a01b0316836001600160a01b0316036108065760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610559565b336001600160a01b038216148061083f57506001600160a01b0381165f90815260066020908152604080832033845290915290205460ff165b6108b15760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610559565b6108bb8383611684565b505050565b336108d25f546001600160a01b031690565b6001600160a01b0316146109155760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b5f5b83811015610986576109328661092d8388612452565b6116f1565b82828281811061094457610944612465565b90506020028101906109569190612479565b60075f610963858a612452565b81526020019081526020015f20918261097d929190612500565b50600101610917565b505050505050565b336109a05f546001600160a01b031690565b6001600160a01b0316146109e35760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b5f8381526009602052604090205460ff1615610a315760405162461bcd60e51b815260206004820152600d60248201526c15549248199a5b985b1a5cd959609a1b6044820152606401610559565b5f838152600760205260409020610a49828483612500565b50505050565b33610a615f546001600160a01b031690565b6001600160a01b031614610aa45760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b600c55565b610ab33382611830565b610b255760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610559565b6108bb838383611924565b5f828152600d60205260408120548190819015610b5b57505f848152600d6020526040902054610b60565b50600c545b5f612710610b6e83876125ba565b610b7891906125d1565b600b546001600160a01b03169450925050505b9250929050565b33610ba45f546001600160a01b031690565b6001600160a01b031614610be75760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b5f918252600d602052604090912055565b33610c0a5f546001600160a01b031690565b6001600160a01b031614610c4d5760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b03163314610cb75760405162461bcd60e51b815260206004820152600b60248201526a139bdd08105b1b1bddd95960aa1b6044820152606401610559565b610cc184846116f1565b5f838152600760205260409020610cd9828483612500565b5050505050565b6108bb83838360405180602001604052805f815250611167565b610d043382611830565b610d765760405162461bcd60e51b815260206004820152602860248201527f4552433732313a2063616c6c6572206973206e6f74206f776e6572206e6f722060448201527f617070726f7665640000000000000000000000000000000000000000000000006064820152608401610559565b610d7f81611aed565b5f818152600760205260408120610d9591611e7c565b5f90815260086020908152604080832080546001600160a01b031916905560099091529020805460ff19169055565b33610dd65f546001600160a01b031690565b6001600160a01b031614610e195760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b5f5b83811015610cd95760095f868684818110610e3857610e38612465565b602090810292909201358352508101919091526040015f205460ff1615610e915760405162461bcd60e51b815260206004820152600d60248201526c15549248199a5b985b1a5cd959609a1b6044820152606401610559565b828282818110610ea357610ea3612465565b9050602002810190610eb59190612479565b60075f888886818110610eca57610eca612465565b9050602002013581526020019081526020015f209182610eeb929190612500565b50600101610e1b565b33610f065f546001600160a01b031690565b6001600160a01b031614610f495760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b610f5383836116f1565b5f9182526008602052604090912080546001600160a01b0319166001600160a01b0390921691909117905550565b5f818152600360205260408120546001600160a01b03168061064e5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610559565b5f6001600160a01b0382166110885760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610559565b506001600160a01b03165f9081526004602052604090205490565b336110b55f546001600160a01b031690565b6001600160a01b0316146110f85760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b6111015f611b84565b565b600a546001600160a01b03163314610f495760405162461bcd60e51b815260206004820152600b60248201526a139bdd08105b1b1bddd95960aa1b6044820152606401610559565b6002805461066190612406565b611163338383611bd3565b5050565b6111713383611830565b6111e35760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610559565b610a4984848484611ca0565b5f818152600360205260409020546060906001600160a01b031661127b5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610559565b5f828152600860205260409020546001600160a01b031615611329575f82815260086020526040908190205490517f894b4c2e000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b039091169063894b4c2e906024015f60405180830381865afa158015611302573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261064e91908101906125f0565b5f828152600760205260409020805461134190612406565b80601f016020809104026020016040519081016040528092919081815260200182805461136d90612406565b80156113b85780601f1061138f576101008083540402835291602001916113b8565b820191905f5260205f20905b81548152906001019060200180831161139b57829003601f168201915b50505050509050919050565b336113d65f546001600160a01b031690565b6001600160a01b0316146114195760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b5f5b818110156108bb5760095f84848481811061143857611438612465565b602090810292909201358352508101919091526040015f205460ff16156114915760405162461bcd60e51b815260206004820152600d60248201526c15549248199a5b985b1a5cd959609a1b6044820152606401610559565b600160095f8585858181106114a8576114a8612465565b602090810292909201358352508101919091526040015f20805460ff191691151591909117905560010161141b565b336114e95f546001600160a01b031690565b6001600160a01b03161461152c5760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b6001600160a01b0381166115a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610559565b6115b181611b84565b50565b336115c65f546001600160a01b031690565b6001600160a01b0316146116095760405162461bcd60e51b815260206004820181905260248201525f805160206126cf8339815191526044820152606401610559565b5f8281526009602052604090205460ff16156116575760405162461bcd60e51b815260206004820152600d60248201526c15549248199a5b985b1a5cd959609a1b6044820152606401610559565b5f9182526008602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b5f81815260056020526040902080546001600160a01b0319166001600160a01b03841690811790915581906116b882610f81565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6001600160a01b0382166117475760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610559565b5f818152600360205260409020546001600160a01b0316156117ab5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610559565b6001600160a01b0382165f9081526004602052604081208054600192906117d3908490612452565b90915550505f8181526003602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b5f818152600360205260408120546001600160a01b03166118a85760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610559565b5f6118b283610f81565b9050806001600160a01b0316846001600160a01b031614806118ed5750836001600160a01b03166118e2846106e0565b6001600160a01b0316145b8061191c57506001600160a01b038082165f9081526006602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b031661193782610f81565b6001600160a01b0316146119b35760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610559565b6001600160a01b038216611a2e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610559565b611a385f82611684565b6001600160a01b0383165f908152600460205260408120805460019290611a60908490612665565b90915550506001600160a01b0382165f908152600460205260408120805460019290611a8d908490612452565b90915550505f8181526003602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5f611af782610f81565b9050611b035f83611684565b6001600160a01b0381165f908152600460205260408120805460019290611b2b908490612665565b90915550505f8281526003602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b816001600160a01b0316836001600160a01b031603611c345760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610559565b6001600160a01b038381165f81815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611cab848484611924565b611cb784848484611d29565b610a495760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610559565b5f6001600160a01b0384163b15611e7157604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611d6c903390899088908890600401612678565b6020604051808303815f875af1925050508015611da6575060408051601f3d908101601f19168201909252611da3918101906126b3565b60015b611e57573d808015611dd3576040519150601f19603f3d011682016040523d82523d5f602084013e611dd8565b606091505b5080515f03611e4f5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610559565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061191c565b506001949350505050565b508054611e8890612406565b5f825580601f10611e97575050565b601f0160209004905f5260205f20908101906115b191905b80821115611ec2575f8155600101611eaf565b5090565b6001600160a01b03811681146115b1575f80fd5b5f60208284031215611eea575f80fd5b8135611ef581611ec6565b9392505050565b6001600160e01b0319811681146115b1575f80fd5b5f60208284031215611f21575f80fd5b8135611ef581611efc565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f611ef56020830184611f2c565b5f60208284031215611f7c575f80fd5b5035919050565b5f8060408385031215611f94575f80fd5b8235611f9f81611ec6565b946020939093013593505050565b5f8083601f840112611fbd575f80fd5b50813567ffffffffffffffff811115611fd4575f80fd5b6020830191508360208260051b8501011115610b8b575f80fd5b5f805f805f60808688031215612002575f80fd5b853561200d81611ec6565b94506020860135935060408601359250606086013567ffffffffffffffff811115612036575f80fd5b61204288828901611fad565b969995985093965092949392505050565b5f8083601f840112612063575f80fd5b50813567ffffffffffffffff81111561207a575f80fd5b602083019150836020828501011115610b8b575f80fd5b5f805f604084860312156120a3575f80fd5b83359250602084013567ffffffffffffffff8111156120c0575f80fd5b6120cc86828701612053565b9497909650939450505050565b5f805f606084860312156120eb575f80fd5b83356120f681611ec6565b9250602084013561210681611ec6565b929592945050506040919091013590565b5f8060408385031215612128575f80fd5b50508035926020909101359150565b5f805f806060858703121561214a575f80fd5b843561215581611ec6565b935060208501359250604085013567ffffffffffffffff811115612177575f80fd5b61218387828801612053565b95989497509550505050565b5f805f80604085870312156121a2575f80fd5b843567ffffffffffffffff808211156121b9575f80fd5b6121c588838901611fad565b909650945060208701359150808211156121dd575f80fd5b5061218387828801611fad565b5f805f606084860312156121fc575f80fd5b833561220781611ec6565b925060208401359150604084013561221e81611ec6565b809150509250925092565b5f806040838503121561223a575f80fd5b823561224581611ec6565b915060208301358015158114612259575f80fd5b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156122a1576122a1612264565b604052919050565b5f67ffffffffffffffff8211156122c2576122c2612264565b50601f01601f191660200190565b5f805f80608085870312156122e3575f80fd5b84356122ee81611ec6565b935060208501356122fe81611ec6565b925060408501359150606085013567ffffffffffffffff811115612320575f80fd5b8501601f81018713612330575f80fd5b803561234361233e826122a9565b612278565b818152886020838501011115612357575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b5f8060208385031215612389575f80fd5b823567ffffffffffffffff81111561239f575f80fd5b6123ab85828601611fad565b90969095509350505050565b5f80604083850312156123c8575f80fd5b82356123d381611ec6565b9150602083013561225981611ec6565b5f80604083850312156123f4575f80fd5b82359150602083013561225981611ec6565b600181811c9082168061241a57607f821691505b60208210810361243857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561064e5761064e61243e565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e1984360301811261248e575f80fd5b83018035915067ffffffffffffffff8211156124a8575f80fd5b602001915036819003821315610b8b575f80fd5b601f8211156108bb57805f5260205f20601f840160051c810160208510156124e15750805b601f840160051c820191505b81811015610cd9575f81556001016124ed565b67ffffffffffffffff83111561251857612518612264565b61252c836125268354612406565b836124bc565b5f601f84116001811461255d575f85156125465750838201355b5f19600387901b1c1916600186901b178355610cd9565b5f83815260208120601f198716915b8281101561258c578685013582556020948501946001909201910161256c565b50868210156125a8575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b808202811582820484141761064e5761064e61243e565b5f826125eb57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612600575f80fd5b815167ffffffffffffffff811115612616575f80fd5b8201601f81018413612626575f80fd5b805161263461233e826122a9565b818152856020838501011115612648575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b8181038181111561064e5761064e61243e565b5f6001600160a01b038087168352808616602084015250836040830152608060608301526126a96080830184611f2c565b9695505050505050565b5f602082840312156126c3575f80fd5b8151611ef581611efc56fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212207f34a2c4f54e5a1b380c1caf3ef6e93ead750d87dabe2aead77369df262e13ab64736f6c63430008190033

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

000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000013544f4f4d5543484c41472045444954494f4e53000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006544d4c3732310000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): TOOMUCHLAG EDITIONS
Arg [1] : symbol_ (string): TML721

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000013
Arg [3] : 544f4f4d5543484c41472045444954494f4e5300000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [5] : 544d4c3732310000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

3008:11390:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13806:159;;;;;;:::i;:::-;;:::i;:::-;;4870:594;;;;;;:::i;:::-;;:::i;:::-;;;1046:14:1;;1039:22;1021:41;;1009:2;994:18;4870:594:0;;;;;;;;3381:18;;;:::i;:::-;;;;;;;:::i;7677:204::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1941:55:1;;;1923:74;;1911:2;1896:18;7677:204:0;1777:226:1;7286:383:0;;;;;;:::i;:::-;;:::i;9739:281::-;;;;;;:::i;:::-;;:::i;5884:190::-;;;;;;:::i;:::-;;:::i;13469:139::-;;;;;;:::i;:::-;;:::i;4117:41::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8188:267;;;;;;:::i;:::-;;:::i;13973:420::-;;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;5217:55:1;;;5199:74;;5304:2;5289:18;;5282:34;;;;5172:18;13973:420:0;5025:297:1;13616:182:0;;;;;;:::i;:::-;;:::i;4724:121::-;;;;;;:::i;:::-;;:::i;10206:229::-;;;;;;:::i;:::-;;:::i;8463:168::-;;;;;;:::i;:::-;;:::i;10689:283::-;;;;;;:::i;:::-;;:::i;6082:294::-;;;;;;:::i;:::-;;:::i;10028:170::-;;;;;;:::i;:::-;;:::i;7056:222::-;;;;;;:::i;:::-;;:::i;6857:191::-;;;;;;:::i;:::-;;:::i;:::-;;;7643:25:1;;;7631:2;7616:18;6857:191:0;7497:177:1;2446:103:0;;;:::i;4013:44::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;4013:44:0;;;2225:87;2271:7;2298:6;-1:-1:-1;;;;;2298:6:0;2225:87;;4191:29;;;;;-1:-1:-1;;;;;4191:29:0;;;10443:238;;;;;;:::i;:::-;;:::i;3408:20::-;;;:::i;7889:136::-;;;;;;:::i;:::-;;:::i;8639:309::-;;;;;;:::i;:::-;;:::i;5494:382::-;;;;;;:::i;:::-;;:::i;6576:248::-;;;;;;:::i;:::-;;:::i;8033:147::-;;;;;;:::i;:::-;-1:-1:-1;;;;;8137:25:0;;;8113:4;8137:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;8033:147;2557:201;;;;;;:::i;:::-;;:::i;6384:184::-;;;;;;:::i;:::-;;:::i;13806:159::-;2371:10;2360:7;2271;2298:6;-1:-1:-1;;;;;2298:6:0;;2225:87;2360:7;-1:-1:-1;;;;;2360:21:0;;2352:66;;;;-1:-1:-1;;;2352:66:0;;11194:2:1;2352:66:0;;;11176:21:1;;;11213:18;;;11206:30;-1:-1:-1;;;;;;;;;;;11252:18:1;;;11245:62;11324:18;;2352:66:0;;;;;;;;;13913:17:::1;:44:::0;;-1:-1:-1;;;;;;13913:44:0::1;-1:-1:-1::0;;;;;13913:44:0;;;::::1;::::0;;;::::1;::::0;;13806:159::o;4870:594::-;4938:4;4976:25;-1:-1:-1;;;;;;4976:25:0;;;;:90;;-1:-1:-1;5041:25:0;-1:-1:-1;;;;;;5041:25:0;;;4976:90;:155;;;-1:-1:-1;5106:25:0;-1:-1:-1;;;;;;5106:25:0;;;4976:155;:229;;;-1:-1:-1;5180:25:0;-1:-1:-1;;;;;;5180:25:0;;;4976:229;4955:250;4870:594;-1:-1:-1;;4870:594:0:o;3381:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7677:204::-;7736:7;9352:16;;;:7;:16;;;;;;-1:-1:-1;;;;;9352:16:0;7756:73;;;;-1:-1:-1;;;7756:73:0;;11997:2:1;7756:73:0;;;11979:21:1;12036:2;12016:18;;;12009:30;12075:34;12055:18;;;12048:62;-1:-1:-1;;;12126:18:1;;;12119:42;12178:19;;7756:73:0;11795:408:1;7756:73:0;-1:-1:-1;7849:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;7849:24:0;;7677:204::o;7286:383::-;7350:13;7366:16;7374:7;7366;:16::i;:::-;7350:32;;7407:5;-1:-1:-1;;;;;7401:11:0;:2;-1:-1:-1;;;;;7401:11:0;;7393:57;;;;-1:-1:-1;;;7393:57:0;;12410:2:1;7393:57:0;;;12392:21:1;12449:2;12429:18;;;12422:30;12488:34;12468:18;;;12461:62;12559:3;12539:18;;;12532:31;12580:19;;7393:57:0;12208:397:1;7393:57:0;7485:10;-1:-1:-1;;;;;7485:19:0;;;;:58;;-1:-1:-1;;;;;;8137:25:0;;8113:4;8137:25;;;:18;:25;;;;;;;;7532:10;8137:35;;;;;;;;;;7508;7463:164;;;;-1:-1:-1;;;7463:164:0;;12812:2:1;7463:164:0;;;12794:21:1;12851:2;12831:18;;;12824:30;12890:34;12870:18;;;12863:62;12961:26;12941:18;;;12934:54;13005:19;;7463:164:0;12610:420:1;7463:164:0;7640:21;7649:2;7653:7;7640:8;:21::i;:::-;7339:330;7286:383;;:::o;9739:281::-;2371:10;2360:7;2271;2298:6;-1:-1:-1;;;;;2298:6:0;;2225:87;2360:7;-1:-1:-1;;;;;2360:21:0;;2352:66;;;;-1:-1:-1;;;2352:66:0;;11194:2:1;2352:66:0;;;11176:21:1;;;11213:18;;;11206:30;-1:-1:-1;;;;;;;;;;;11252:18:1;;;11245:62;11324:18;;2352:66:0;10992:356:1;2352:66:0;9867:9:::1;9862:141;9886:8;9882:1;:12;9862:141;;;9916:22;9922:2:::0;9926:11:::1;9936:1:::0;9926:7;:11:::1;:::i;:::-;9916:5;:22::i;:::-;9979:9;;9989:1;9979:12;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;9953:10;:23;9964:11;9974:1:::0;9964:7;:11:::1;:::i;:::-;9953:23;;;;;;;;;;;:38;;;;;;;:::i;:::-;-1:-1:-1::0;9896:3:0::1;;9862:141;;;;9739:281:::0;;;;;:::o;5884:190::-;2371:10;2360:7;2271;2298:6;-1:-1:-1;;;;;2298:6:0;;2225:87;2360:7;-1:-1:-1;;;;;2360:21:0;;2352:66;;;;-1:-1:-1;;;2352:66:0;;11194:2:1;2352:66:0;;;11176:21:1;;;11213:18;;;11206:30;-1:-1:-1;;;;;;;;;;;11252:18:1;;;11245:62;11324:18;;2352:66:0;10992:356:1;2352:66:0;5986:18:::1;::::0;;;:9:::1;:18;::::0;;;;;::::1;;5985:19;5977:45;;;::::0;-1:-1:-1;;;5977:45:0;;16295:2:1;5977:45:0::1;::::0;::::1;16277:21:1::0;16334:2;16314:18;;;16307:30;-1:-1:-1;;;16353:18:1;;;16346:43;16406:18;;5977:45:0::1;16093:337:1::0;5977:45:0::1;6033:19;::::0;;;:10:::1;:19;::::0;;;;:31:::1;6055:9:::0;;6033:19;:31:::1;:::i;:::-;;5884:190:::0;;;:::o;13469:139::-;2371:10;2360:7;2271;2298:6;-1:-1:-1;;;;;2298:6:0;;2225:87;2360:7;-1:-1:-1;;;;;2360:21:0;;2352:66;;;;-1:-1:-1;;;2352:66:0;;11194:2:1;2352:66:0;;;11176:21:1;;;11213:18;;;11206:30;-1:-1:-1;;;;;;;;;;;11252:18:1;;;11245:62;11324:18;;2352:66:0;10992:356:1;2352:66:0;13558:11:::1;:42:::0;13469:139::o;8188:267::-;8313:39;8332:10;8344:7;8313:18;:39::i;:::-;8305:101;;;;-1:-1:-1;;;8305:101:0;;16637:2:1;8305:101:0;;;16619:21:1;16676:2;16656:18;;;16649:30;16715:34;16695:18;;;16688:62;16786:19;16766:18;;;16759:47;16823:19;;8305:101:0;16435:413:1;8305:101:0;8419:28;8429:4;8435:2;8439:7;8419:9;:28::i;13973:420::-;14053:16;14132:27;;;:18;:27;;;;;;14053:16;;;;14132:31;14129:155;;-1:-1:-1;14186:27:0;;;;:18;:27;;;;;;14129:155;;;-1:-1:-1;14261:11:0;;14129:155;14296:15;14334:5;14315:15;14327:3;14315:9;:15;:::i;:::-;14314:25;;;;:::i;:::-;14358:17;;-1:-1:-1;;;;;14358:17:0;;-1:-1:-1;14296:43:0;-1:-1:-1;;;13973:420:0;;;;;;:::o;13616:182::-;2371:10;2360:7;2271;2298:6;-1:-1:-1;;;;;2298:6:0;;2225:87;2360:7;-1:-1:-1;;;;;2360:21:0;;2352:66;;;;-1:-1:-1;;;2352:66:0;;11194:2:1;2352:66:0;;;11176:21:1;;;11213:18;;;11206:30;-1:-1:-1;;;;;;;;;;;11252:18:1;;;11245:62;11324:18;;2352:66:0;10992:356:1;2352:66:0;13732:27:::1;::::0;;;:18:::1;:27;::::0;;;;;:58;13616:182::o;4724:121::-;2371:10;2360:7;2271;2298:6;-1:-1:-1;;;;;2298:6:0;;2225:87;2360:7;-1:-1:-1;;;;;2360:21:0;;2352:66;;;;-1:-1:-1;;;2352:66:0;;11194:2:1;2352:66:0;;;11176:21:1;;;11213:18;;;11206:30;-1:-1:-1;;;;;;;;;;;11252:18:1;;;11245:62;11324:18;;2352:66:0;10992:356:1;2352:66:0;4805:14:::1;:32:::0;;-1:-1:-1;;;;;;4805:32:0::1;-1:-1:-1::0;;;;;4805:32:0;;;::::1;::::0;;;::::1;::::0;;4724:121::o;10206:229::-;10324:14;;-1:-1:-1;;;;;10324:14:0;10310:10;:28;10302:52;;;;-1:-1:-1;;;10302:52:0;;17507:2:1;10302:52:0;;;17489:21:1;17546:2;17526:18;;;17519:30;-1:-1:-1;;;17565:18:1;;;17558:41;17616:18;;10302:52:0;17305:335:1;10302:52:0;10367:18;10373:2;10377:7;10367:5;:18::i;:::-;10396:19;;;;:10;:19;;;;;:31;10418:9;;10396:19;:31;:::i;:::-;;10206:229;;;;:::o;8463:168::-;8584:39;8601:4;8607:2;8611:7;8584:39;;;;;;;;;;;;:16;:39::i;10689:283::-;10746:39;10765:10;10777:7;10746:18;:39::i;:::-;10738:92;;;;-1:-1:-1;;;10738:92:0;;17847:2:1;10738:92:0;;;17829:21:1;17886:2;17866:18;;;17859:30;17925:34;17905:18;;;17898:62;17996:10;17976:18;;;17969:38;18024:19;;10738:92:0;17645:404:1;10738:92:0;10841:14;10847:7;10841:5;:14::i;:::-;10873:19;;;;:10;:19;;;;;10866:26;;;:::i;:::-;10910:18;;;;:9;:18;;;;;;;;10903:25;;-1:-1:-1;;;;;;10903:25:0;;;10946:9;:18;;;;;10939:25;;-1:-1:-1;;10939:25:0;;;10689:283::o;6082:294::-;2371:10;2360:7;2271;2298:6;-1:-1:-1;;;;;2298:6:0;;2225:87;2360:7;-1:-1:-1;;;;;2360:21:0;;2352:66;;;;-1:-1:-1;;;2352:66:0;;11194:2:1;2352:66:0;;;11176:21:1;;;11213:18;;;11206:30;-1:-1:-1;;;;;;;;;;;11252:18:1;;;11245:62;11324:18;;2352:66:0;10992:356:1;2352:66:0;6199:9:::1;6194:175;6214:19:::0;;::::1;6194:175;;;6264:9;:22;6274:8;;6283:1;6274:11;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;6264:22:::0;;-1:-1:-1;6264:22:0;::::1;::::0;;;;;;-1:-1:-1;6264:22:0;;::::1;;6263:23;6255:49;;;::::0;-1:-1:-1;;;6255:49:0;;16295:2:1;6255:49:0::1;::::0;::::1;16277:21:1::0;16334:2;16314:18;;;16307:30;-1:-1:-1;;;16353:18:1;;;16346:43;16406:18;;6255:49:0::1;16093:337:1::0;6255:49:0::1;6345:9;;6355:1;6345:12;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;6319:10;:23;6330:8;;6339:1;6330:11;;;;;;;:::i;:::-;;;;;;;6319:23;;;;;;;;;;;:38;;;;;;;:::i;:::-;-1:-1:-1::0;6235:3:0::1;;6194:175;;10028:170:::0;2371:10;2360:7;2271;2298:6;-1:-1:-1;;;;;2298:6:0;;2225:87;2360:7;-1:-1:-1;;;;;2360:21:0;;2352:66;;;;-1:-1:-1;;;2352:66:0;;11194:2:1;2352:66:0;;;11176:21:1;;;11213:18;;;11206:30;-1:-1:-1;;;;;;;;;;;11252:18:1;;;11245:62;11324:18;;2352:66:0;10992:356:1;2352:66:0;10129:18:::1;10135:2;10139:7;10129:5;:18::i;:::-;10158;::::0;;;:9:::1;:18;::::0;;;;;:32;;-1:-1:-1;;;;;;10158:32:0::1;-1:-1:-1::0;;;;;10158:32:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;10028:170:0:o;7056:222::-;7111:7;7147:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7147:16:0;;7174:73;;;;-1:-1:-1;;;7174:73:0;;18256:2:1;7174:73:0;;;18238:21:1;18295:2;18275:18;;;18268:30;18334:34;18314:18;;;18307:62;18405:11;18385:18;;;18378:39;18434:19;;7174:73:0;18054:405:1;6857:191:0;6912:7;-1:-1:-1;;;;;6940:19:0;;6932:74;;;;-1:-1:-1;;;6932:74:0;;18666:2:1;6932:74:0;;;18648:21:1;18705:2;18685:18;;;18678:30;18744:34;18724:18;;;18717:62;18815:12;18795:18;;;18788:40;18845:19;;6932:74:0;18464:406:1;6932:74:0;-1:-1:-1;;;;;;7024:16:0;;;;;:9;:16;;;;;;;6857:191::o;2446:103::-;2371:10;2360:7;2271;2298:6;-1:-1:-1;;;;;2298:6:0;;2225:87;2360:7;-1:-1:-1;;;;;2360:21:0;;2352:66;;;;-1:-1:-1;;;2352:66:0;;11194:2:1;2352:66:0;;;11176:21:1;;;11213:18;;;11206:30;-1:-1:-1;;;;;;;;;;;11252:18:1;;;11245:62;11324:18;;2352:66:0;10992:356:1;2352:66:0;2511:30:::1;2538:1;2511:18;:30::i;:::-;2446:103::o:0;10443:238::-;10561:14;;-1:-1:-1;;;;;10561:14:0;10547:10;:28;10539:52;;;;-1:-1:-1;;;10539:52:0;;17507:2:1;10539:52:0;;;17489:21:1;17546:2;17526:18;;;17519:30;-1:-1:-1;;;17565:18:1;;;17558:41;17616:18;;10539:52:0;17305:335:1;3408:20:0;;;;;;;:::i;7889:136::-;7967:50;7986:10;7998:8;8008;7967:18;:50::i;:::-;7889:136;;:::o;8639:309::-;8797:39;8816:10;8828:7;8797:18;:39::i;:::-;8789:101;;;;-1:-1:-1;;;8789:101:0;;16637:2:1;8789:101:0;;;16619:21:1;16676:2;16656:18;;;16649:30;16715:34;16695:18;;;16688:62;16786:19;16766:18;;;16759:47;16823:19;;8789:101:0;16435:413:1;8789:101:0;8901:39;8915:4;8921:2;8925:7;8934:5;8901:13;:39::i;5494:382::-;9328:4;9352:16;;;:7;:16;;;;;;5550:13;;-1:-1:-1;;;;;9352:16:0;5576:76;;;;-1:-1:-1;;;5576:76:0;;19077:2:1;5576:76:0;;;19059:21:1;19116:2;19096:18;;;19089:30;19155:34;19135:18;;;19128:62;19226:17;19206:18;;;19199:45;19261:19;;5576:76:0;18875:411:1;5576:76:0;5698:1;5668:18;;;:9;:18;;;;;;-1:-1:-1;;;;;5668:18:0;:32;5665:201;;5740:18;;;;:9;:18;;;;;;;;5724:62;;;;;;;;7643:25:1;;;-1:-1:-1;;;;;5740:18:0;;;;5724:53;;7616:18:1;;5724:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5724:62:0;;;;;;;;;;;;:::i;5665:201::-;5835:19;;;;:10;:19;;;;;5828:26;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5494:382;;;:::o;6576:248::-;2371:10;2360:7;2271;2298:6;-1:-1:-1;;;;;2298:6:0;;2225:87;2360:7;-1:-1:-1;;;;;2360:21:0;;2352:66;;;;-1:-1:-1;;;2352:66:0;;11194:2:1;2352:66:0;;;11176:21:1;;;11213:18;;;11206:30;-1:-1:-1;;;;;;;;;;;11252:18:1;;;11245:62;11324:18;;2352:66:0;10992:356:1;2352:66:0;6656:9:::1;6651:166;6671:19:::0;;::::1;6651:166;;;6721:9;:22;6731:8;;6740:1;6731:11;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;6721:22:::0;;-1:-1:-1;6721:22:0;::::1;::::0;;;;;;-1:-1:-1;6721:22:0;;::::1;;6720:23;6712:49;;;::::0;-1:-1:-1;;;6712:49:0;;16295:2:1;6712:49:0::1;::::0;::::1;16277:21:1::0;16334:2;16314:18;;;16307:30;-1:-1:-1;;;16353:18:1;;;16346:43;16406:18;;6712:49:0::1;16093:337:1::0;6712:49:0::1;6801:4;6776:9;:22;6786:8;;6795:1;6786:11;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;6776:22:::0;;-1:-1:-1;6776:22:0;::::1;::::0;;;;;;-1:-1:-1;6776:22:0;:29;;-1:-1:-1;;6776:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;6692:3:0::1;6651:166;;2557:201:::0;2371:10;2360:7;2271;2298:6;-1:-1:-1;;;;;2298:6:0;;2225:87;2360:7;-1:-1:-1;;;;;2360:21:0;;2352:66;;;;-1:-1:-1;;;2352:66:0;;11194:2:1;2352:66:0;;;11176:21:1;;;11213:18;;;11206:30;-1:-1:-1;;;;;;;;;;;11252:18:1;;;11245:62;11324:18;;2352:66:0;10992:356:1;2352:66:0;-1:-1:-1;;;;;2646:22:0;::::1;2638:73;;;::::0;-1:-1:-1;;;2638:73:0;;20160:2:1;2638:73:0::1;::::0;::::1;20142:21:1::0;20199:2;20179:18;;;20172:30;20238:34;20218:18;;;20211:62;20309:8;20289:18;;;20282:36;20335:19;;2638:73:0::1;19958:402:1::0;2638:73:0::1;2722:28;2741:8;2722:18;:28::i;:::-;2557:201:::0;:::o;6384:184::-;2371:10;2360:7;2271;2298:6;-1:-1:-1;;;;;2298:6:0;;2225:87;2360:7;-1:-1:-1;;;;;2360:21:0;;2352:66;;;;-1:-1:-1;;;2352:66:0;;11194:2:1;2352:66:0;;;11176:21:1;;;11213:18;;;11206:30;-1:-1:-1;;;;;;;;;;;11252:18:1;;;11245:62;11324:18;;2352:66:0;10992:356:1;2352:66:0;6481:18:::1;::::0;;;:9:::1;:18;::::0;;;;;::::1;;6480:19;6472:45;;;::::0;-1:-1:-1;;;6472:45:0;;16295:2:1;6472:45:0::1;::::0;::::1;16277:21:1::0;16334:2;16314:18;;;16307:30;-1:-1:-1;;;16353:18:1;;;16346:43;16406:18;;6472:45:0::1;16093:337:1::0;6472:45:0::1;6528:18;::::0;;;:9:::1;:18;::::0;;;;;:32;;-1:-1:-1;;;;;;6528:32:0::1;-1:-1:-1::0;;;;;6528:32:0;;::::1;::::0;;;::::1;::::0;;6384:184::o;12127:167::-;12202:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;12202:29:0;-1:-1:-1;;;;;12202:29:0;;;;;;;;:24;;12256:16;12202:24;12256:7;:16::i;:::-;-1:-1:-1;;;;;12247:39:0;;;;;;;;;;;12127:167;;:::o;10980:326::-;-1:-1:-1;;;;;11060:16:0;;11052:61;;;;-1:-1:-1;;;11052:61:0;;20567:2:1;11052:61:0;;;20549:21:1;;;20586:18;;;20579:30;20645:34;20625:18;;;20618:62;20697:18;;11052:61:0;20365:356:1;11052:61:0;9328:4;9352:16;;;:7;:16;;;;;;-1:-1:-1;;;;;9352:16:0;:30;11124:58;;;;-1:-1:-1;;;11124:58:0;;20928:2:1;11124:58:0;;;20910:21:1;20967:2;20947:18;;;20940:30;21006;20986:18;;;20979:58;21054:18;;11124:58:0;20726:352:1;11124:58:0;-1:-1:-1;;;;;11195:13:0;;;;;;:9;:13;;;;;:18;;11212:1;;11195:13;:18;;11212:1;;11195:18;:::i;:::-;;;;-1:-1:-1;;11224:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;11224:21:0;-1:-1:-1;;;;;11224:21:0;;;;;;;;11263:33;;11224:16;;;11263:33;;11224:16;;11263:33;10980:326;;:::o;9398:333::-;9483:4;9352:16;;;:7;:16;;;;;;-1:-1:-1;;;;;9352:16:0;9500:73;;;;-1:-1:-1;;;9500:73:0;;21285:2:1;9500:73:0;;;21267:21:1;21324:2;21304:18;;;21297:30;21363:34;21343:18;;;21336:62;-1:-1:-1;;;21414:18:1;;;21407:42;21466:19;;9500:73:0;21083:408:1;9500:73:0;9584:13;9600:16;9608:7;9600;:16::i;:::-;9584:32;;9646:5;-1:-1:-1;;;;;9635:16:0;:7;-1:-1:-1;;;;;9635:16:0;;:51;;;;9679:7;-1:-1:-1;;;;;9655:31:0;:20;9667:7;9655:11;:20::i;:::-;-1:-1:-1;;;;;9655:31:0;;9635:51;:87;;;-1:-1:-1;;;;;;8137:25:0;;;8113:4;8137:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;9690:32;9627:96;9398:333;-1:-1:-1;;;;9398:333:0:o;11608:511::-;11752:4;-1:-1:-1;;;;;11732:24:0;:16;11740:7;11732;:16::i;:::-;-1:-1:-1;;;;;11732:24:0;;11724:74;;;;-1:-1:-1;;;11724:74:0;;21698:2:1;11724:74:0;;;21680:21:1;21737:2;21717:18;;;21710:30;21776:34;21756:18;;;21749:62;21847:7;21827:18;;;21820:35;21872:19;;11724:74:0;21496:401:1;11724:74:0;-1:-1:-1;;;;;11817:16:0;;11809:65;;;;-1:-1:-1;;;11809:65:0;;22104:2:1;11809:65:0;;;22086:21:1;22143:2;22123:18;;;22116:30;22182:34;22162:18;;;22155:62;22253:6;22233:18;;;22226:34;22277:19;;11809:65:0;21902:400:1;11809:65:0;11941:29;11958:1;11962:7;11941:8;:29::i;:::-;-1:-1:-1;;;;;11983:15:0;;;;;;:9;:15;;;;;:20;;12002:1;;11983:15;:20;;12002:1;;11983:20;:::i;:::-;;;;-1:-1:-1;;;;;;;12014:13:0;;;;;;:9;:13;;;;;:18;;12031:1;;12014:13;:18;;12031:1;;12014:18;:::i;:::-;;;;-1:-1:-1;;12043:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;12043:21:0;-1:-1:-1;;;;;12043:21:0;;;;;;;;;12082:27;;12043:16;;12082:27;;;;;;;11608:511;;;:::o;11314:286::-;11366:13;11382:16;11390:7;11382;:16::i;:::-;11366:32;;11439:29;11456:1;11460:7;11439:8;:29::i;:::-;-1:-1:-1;;;;;11481:16:0;;;;;;:9;:16;;;;;:21;;11501:1;;11481:16;:21;;11501:1;;11481:21;:::i;:::-;;;;-1:-1:-1;;11520:16:0;;;;:7;:16;;;;;;11513:23;;-1:-1:-1;;;;;;11513:23:0;;;11554:36;11528:7;;11520:16;-1:-1:-1;;;;;11554:36:0;;;;;11520:16;;11554:36;11355:245;11314:286;:::o;2766:191::-;2840:16;2859:6;;-1:-1:-1;;;;;2876:17:0;;;-1:-1:-1;;;;;;2876:17:0;;;;;;2909:40;;2859:6;;;;;;;2909:40;;2840:16;2909:40;2829:128;2766:191;:::o;12302:315::-;12457:8;-1:-1:-1;;;;;12448:17:0;:5;-1:-1:-1;;;;;12448:17:0;;12440:55;;;;-1:-1:-1;;;12440:55:0;;22642:2:1;12440:55:0;;;22624:21:1;22681:2;22661:18;;;22654:30;22720:27;22700:18;;;22693:55;22765:18;;12440:55:0;22440:349:1;12440:55:0;-1:-1:-1;;;;;12506:25:0;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;12506:46:0;;;;;;;;;;12568:41;;1021::1;;;12568::0;;994:18:1;12568:41:0;;;;;;;12302:315;;;:::o;8956:307::-;9105:28;9115:4;9121:2;9125:7;9105:9;:28::i;:::-;9152:48;9175:4;9181:2;9185:7;9194:5;9152:22;:48::i;:::-;9144:111;;;;-1:-1:-1;;;9144:111:0;;22996:2:1;9144:111:0;;;22978:21:1;23035:2;23015:18;;;23008:30;23074:34;23054:18;;;23047:62;23145:20;23125:18;;;23118:48;23183:19;;9144:111:0;22794:414:1;12625:800:0;12780:4;-1:-1:-1;;;;;12801:14:0;;;:18;12797:621;;12840:70;;-1:-1:-1;;;12840:70:0;;-1:-1:-1;;;;;12840:36:0;;;;;:70;;12877:10;;12889:4;;12895:7;;12904:5;;12840:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12840:70:0;;;;;;;;-1:-1:-1;;12840:70:0;;;;;;;;;;;;:::i;:::-;;;12836:527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13080:6;:13;13097:1;13080:18;13076:272;;13123:60;;-1:-1:-1;;;13123:60:0;;22996:2:1;13123:60:0;;;22978:21:1;23035:2;23015:18;;;23008:30;23074:34;23054:18;;;23047:62;23145:20;23125:18;;;23118:48;23183:19;;13123:60:0;22794:414:1;13076:272:0;13298:6;13292:13;13283:6;13279:2;13275:15;13268:38;12836:527;-1:-1:-1;;;;;;12961:51:0;-1:-1:-1;;;12961:51:0;;-1:-1:-1;12954:58:0;;12797:621;-1:-1:-1;13402:4:0;12625:800;;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:162:1:-;-1:-1:-1;;;;;101:5:1;97:54;90:5;87:65;77:93;;166:1;163;156:12;181:263;248:6;301:2;289:9;280:7;276:23;272:32;269:52;;;317:1;314;307:12;269:52;356:9;343:23;375:39;408:5;375:39;:::i;:::-;433:5;181:263;-1:-1:-1;;;181:263:1:o;449:177::-;-1:-1:-1;;;;;;527:5:1;523:78;516:5;513:89;503:117;;616:1;613;606:12;631:245;689:6;742:2;730:9;721:7;717:23;713:32;710:52;;;758:1;755;748:12;710:52;797:9;784:23;816:30;840:5;816:30;:::i;1073:289::-;1115:3;1153:5;1147:12;1180:6;1175:3;1168:19;1236:6;1229:4;1222:5;1218:16;1211:4;1206:3;1202:14;1196:47;1288:1;1281:4;1272:6;1267:3;1263:16;1259:27;1252:38;1351:4;1344:2;1340:7;1335:2;1327:6;1323:15;1319:29;1314:3;1310:39;1306:50;1299:57;;;1073:289;;;;:::o;1367:220::-;1516:2;1505:9;1498:21;1479:4;1536:45;1577:2;1566:9;1562:18;1554:6;1536:45;:::i;1592:180::-;1651:6;1704:2;1692:9;1683:7;1679:23;1675:32;1672:52;;;1720:1;1717;1710:12;1672:52;-1:-1:-1;1743:23:1;;1592:180;-1:-1:-1;1592:180:1:o;2008:323::-;2076:6;2084;2137:2;2125:9;2116:7;2112:23;2108:32;2105:52;;;2153:1;2150;2143:12;2105:52;2192:9;2179:23;2211:39;2244:5;2211:39;:::i;:::-;2269:5;2321:2;2306:18;;;;2293:32;;-1:-1:-1;;;2008:323:1:o;2336:375::-;2407:8;2417:6;2471:3;2464:4;2456:6;2452:17;2448:27;2438:55;;2489:1;2486;2479:12;2438:55;-1:-1:-1;2512:20:1;;2555:18;2544:30;;2541:50;;;2587:1;2584;2577:12;2541:50;2624:4;2616:6;2612:17;2600:29;;2684:3;2677:4;2667:6;2664:1;2660:14;2652:6;2648:27;2644:38;2641:47;2638:67;;;2701:1;2698;2691:12;2716:737;2841:6;2849;2857;2865;2873;2926:3;2914:9;2905:7;2901:23;2897:33;2894:53;;;2943:1;2940;2933:12;2894:53;2982:9;2969:23;3001:39;3034:5;3001:39;:::i;:::-;3059:5;-1:-1:-1;3111:2:1;3096:18;;3083:32;;-1:-1:-1;3162:2:1;3147:18;;3134:32;;-1:-1:-1;3217:2:1;3202:18;;3189:32;3244:18;3233:30;;3230:50;;;3276:1;3273;3266:12;3230:50;3315:78;3385:7;3376:6;3365:9;3361:22;3315:78;:::i;:::-;2716:737;;;;-1:-1:-1;2716:737:1;;-1:-1:-1;3412:8:1;;3289:104;2716:737;-1:-1:-1;;;2716:737:1:o;3458:348::-;3510:8;3520:6;3574:3;3567:4;3559:6;3555:17;3551:27;3541:55;;3592:1;3589;3582:12;3541:55;-1:-1:-1;3615:20:1;;3658:18;3647:30;;3644:50;;;3690:1;3687;3680:12;3644:50;3727:4;3719:6;3715:17;3703:29;;3779:3;3772:4;3763:6;3755;3751:19;3747:30;3744:39;3741:59;;;3796:1;3793;3786:12;3811:479;3891:6;3899;3907;3960:2;3948:9;3939:7;3935:23;3931:32;3928:52;;;3976:1;3973;3966:12;3928:52;4012:9;3999:23;3989:33;;4073:2;4062:9;4058:18;4045:32;4100:18;4092:6;4089:30;4086:50;;;4132:1;4129;4122:12;4086:50;4171:59;4222:7;4213:6;4202:9;4198:22;4171:59;:::i;:::-;3811:479;;4249:8;;-1:-1:-1;4145:85:1;;-1:-1:-1;;;;3811:479:1:o;4295:472::-;4372:6;4380;4388;4441:2;4429:9;4420:7;4416:23;4412:32;4409:52;;;4457:1;4454;4447:12;4409:52;4496:9;4483:23;4515:39;4548:5;4515:39;:::i;:::-;4573:5;-1:-1:-1;4630:2:1;4615:18;;4602:32;4643:41;4602:32;4643:41;:::i;:::-;4295:472;;4703:7;;-1:-1:-1;;;4757:2:1;4742:18;;;;4729:32;;4295:472::o;4772:248::-;4840:6;4848;4901:2;4889:9;4880:7;4876:23;4872:32;4869:52;;;4917:1;4914;4907:12;4869:52;-1:-1:-1;;4940:23:1;;;5010:2;4995:18;;;4982:32;;-1:-1:-1;4772:248:1:o;5587:622::-;5676:6;5684;5692;5700;5753:2;5741:9;5732:7;5728:23;5724:32;5721:52;;;5769:1;5766;5759:12;5721:52;5808:9;5795:23;5827:39;5860:5;5827:39;:::i;:::-;5885:5;-1:-1:-1;5937:2:1;5922:18;;5909:32;;-1:-1:-1;5992:2:1;5977:18;;5964:32;6019:18;6008:30;;6005:50;;;6051:1;6048;6041:12;6005:50;6090:59;6141:7;6132:6;6121:9;6117:22;6090:59;:::i;:::-;5587:622;;;;-1:-1:-1;6168:8:1;-1:-1:-1;;;;5587:622:1:o;6214:801::-;6348:6;6356;6364;6372;6425:2;6413:9;6404:7;6400:23;6396:32;6393:52;;;6441:1;6438;6431:12;6393:52;6481:9;6468:23;6510:18;6551:2;6543:6;6540:14;6537:34;;;6567:1;6564;6557:12;6537:34;6606:78;6676:7;6667:6;6656:9;6652:22;6606:78;:::i;:::-;6703:8;;-1:-1:-1;6580:104:1;-1:-1:-1;6791:2:1;6776:18;;6763:32;;-1:-1:-1;6807:16:1;;;6804:36;;;6836:1;6833;6826:12;6804:36;;6875:80;6947:7;6936:8;6925:9;6921:24;6875:80;:::i;7020:472::-;7097:6;7105;7113;7166:2;7154:9;7145:7;7141:23;7137:32;7134:52;;;7182:1;7179;7172:12;7134:52;7221:9;7208:23;7240:39;7273:5;7240:39;:::i;:::-;7298:5;-1:-1:-1;7350:2:1;7335:18;;7322:32;;-1:-1:-1;7406:2:1;7391:18;;7378:32;7419:41;7378:32;7419:41;:::i;:::-;7479:7;7469:17;;;7020:472;;;;;:::o;7679:424::-;7744:6;7752;7805:2;7793:9;7784:7;7780:23;7776:32;7773:52;;;7821:1;7818;7811:12;7773:52;7860:9;7847:23;7879:39;7912:5;7879:39;:::i;:::-;7937:5;-1:-1:-1;7994:2:1;7979:18;;7966:32;8036:15;;8029:23;8017:36;;8007:64;;8067:1;8064;8057:12;8007:64;8090:7;8080:17;;;7679:424;;;;;:::o;8108:184::-;-1:-1:-1;;;8157:1:1;8150:88;8257:4;8254:1;8247:15;8281:4;8278:1;8271:15;8297:275;8368:2;8362:9;8433:2;8414:13;;-1:-1:-1;;8410:27:1;8398:40;;8468:18;8453:34;;8489:22;;;8450:62;8447:88;;;8515:18;;:::i;:::-;8551:2;8544:22;8297:275;;-1:-1:-1;8297:275:1:o;8577:186::-;8625:4;8658:18;8650:6;8647:30;8644:56;;;8680:18;;:::i;:::-;-1:-1:-1;8746:2:1;8725:15;-1:-1:-1;;8721:29:1;8752:4;8717:40;;8577:186::o;8768:1032::-;8863:6;8871;8879;8887;8940:3;8928:9;8919:7;8915:23;8911:33;8908:53;;;8957:1;8954;8947:12;8908:53;8996:9;8983:23;9015:39;9048:5;9015:39;:::i;:::-;9073:5;-1:-1:-1;9130:2:1;9115:18;;9102:32;9143:41;9102:32;9143:41;:::i;:::-;9203:7;-1:-1:-1;9257:2:1;9242:18;;9229:32;;-1:-1:-1;9312:2:1;9297:18;;9284:32;9339:18;9328:30;;9325:50;;;9371:1;9368;9361:12;9325:50;9394:22;;9447:4;9439:13;;9435:27;-1:-1:-1;9425:55:1;;9476:1;9473;9466:12;9425:55;9512:2;9499:16;9537:48;9553:31;9581:2;9553:31;:::i;:::-;9537:48;:::i;:::-;9608:2;9601:5;9594:17;9648:7;9643:2;9638;9634;9630:11;9626:20;9623:33;9620:53;;;9669:1;9666;9659:12;9620:53;9724:2;9719;9715;9711:11;9706:2;9699:5;9695:14;9682:45;9768:1;9763:2;9758;9751:5;9747:14;9743:23;9736:34;9789:5;9779:15;;;;;8768:1032;;;;;;;:::o;9805:445::-;9891:6;9899;9952:2;9940:9;9931:7;9927:23;9923:32;9920:52;;;9968:1;9965;9958:12;9920:52;10008:9;9995:23;10041:18;10033:6;10030:30;10027:50;;;10073:1;10070;10063:12;10027:50;10112:78;10182:7;10173:6;10162:9;10158:22;10112:78;:::i;:::-;10209:8;;10086:104;;-1:-1:-1;9805:445:1;-1:-1:-1;;;;9805:445:1:o;10255:404::-;10323:6;10331;10384:2;10372:9;10363:7;10359:23;10355:32;10352:52;;;10400:1;10397;10390:12;10352:52;10439:9;10426:23;10458:39;10491:5;10458:39;:::i;:::-;10516:5;-1:-1:-1;10573:2:1;10558:18;;10545:32;10586:41;10545:32;10586:41;:::i;10664:323::-;10732:6;10740;10793:2;10781:9;10772:7;10768:23;10764:32;10761:52;;;10809:1;10806;10799:12;10761:52;10845:9;10832:23;10822:33;;10905:2;10894:9;10890:18;10877:32;10918:39;10951:5;10918:39;:::i;11353:437::-;11432:1;11428:12;;;;11475;;;11496:61;;11550:4;11542:6;11538:17;11528:27;;11496:61;11603:2;11595:6;11592:14;11572:18;11569:38;11566:218;;-1:-1:-1;;;11637:1:1;11630:88;11741:4;11738:1;11731:15;11769:4;11766:1;11759:15;11566:218;;11353:437;;;:::o;13035:184::-;-1:-1:-1;;;13084:1:1;13077:88;13184:4;13181:1;13174:15;13208:4;13205:1;13198:15;13224:125;13289:9;;;13310:10;;;13307:36;;;13323:18;;:::i;13354:184::-;-1:-1:-1;;;13403:1:1;13396:88;13503:4;13500:1;13493:15;13527:4;13524:1;13517:15;13543:522;13621:4;13627:6;13687:11;13674:25;13781:2;13777:7;13766:8;13750:14;13746:29;13742:43;13722:18;13718:68;13708:96;;13800:1;13797;13790:12;13708:96;13827:33;;13879:20;;;-1:-1:-1;13922:18:1;13911:30;;13908:50;;;13954:1;13951;13944:12;13908:50;13987:4;13975:17;;-1:-1:-1;14018:14:1;14014:27;;;14004:38;;14001:58;;;14055:1;14052;14045:12;14196:518;14298:2;14293:3;14290:11;14287:421;;;14334:5;14331:1;14324:16;14378:4;14375:1;14365:18;14448:2;14436:10;14432:19;14429:1;14425:27;14419:4;14415:38;14484:4;14472:10;14469:20;14466:47;;;-1:-1:-1;14507:4:1;14466:47;14562:2;14557:3;14553:12;14550:1;14546:20;14540:4;14536:31;14526:41;;14617:81;14635:2;14628:5;14625:13;14617:81;;;14694:1;14680:16;;14661:1;14650:13;14617:81;;14890:1198;15014:18;15009:3;15006:27;15003:53;;;15036:18;;:::i;:::-;15065:94;15155:3;15115:38;15147:4;15141:11;15115:38;:::i;:::-;15109:4;15065:94;:::i;:::-;15185:1;15210:2;15205:3;15202:11;15227:1;15222:608;;;;15874:1;15891:3;15888:93;;;-1:-1:-1;15947:19:1;;;15934:33;15888:93;-1:-1:-1;;14847:1:1;14843:11;;;14839:24;14835:29;14825:40;14871:1;14867:11;;;14822:57;15994:78;;15195:887;;15222:608;14143:1;14136:14;;;14180:4;14167:18;;-1:-1:-1;;15258:17:1;;;15373:229;15387:7;15384:1;15381:14;15373:229;;;15476:19;;;15463:33;15448:49;;15583:4;15568:20;;;;15536:1;15524:14;;;;15403:12;15373:229;;;15377:3;15630;15621:7;15618:16;15615:159;;;15754:1;15750:6;15744:3;15738;15735:1;15731:11;15727:21;15723:34;15719:39;15706:9;15701:3;15697:19;15684:33;15680:79;15672:6;15665:95;15615:159;;;15817:1;15811:3;15808:1;15804:11;15800:19;15794:4;15787:33;15195:887;;14890:1198;;;:::o;16853:168::-;16926:9;;;16957;;16974:15;;;16968:22;;16954:37;16944:71;;16995:18;;:::i;17026:274::-;17066:1;17092;17082:189;;-1:-1:-1;;;17124:1:1;17117:88;17228:4;17225:1;17218:15;17256:4;17253:1;17246:15;17082:189;-1:-1:-1;17285:9:1;;17026:274::o;19291:662::-;19371:6;19424:2;19412:9;19403:7;19399:23;19395:32;19392:52;;;19440:1;19437;19430:12;19392:52;19473:9;19467:16;19506:18;19498:6;19495:30;19492:50;;;19538:1;19535;19528:12;19492:50;19561:22;;19614:4;19606:13;;19602:27;-1:-1:-1;19592:55:1;;19643:1;19640;19633:12;19592:55;19672:2;19666:9;19697:48;19713:31;19741:2;19713:31;:::i;19697:48::-;19768:2;19761:5;19754:17;19808:7;19803:2;19798;19794;19790:11;19786:20;19783:33;19780:53;;;19829:1;19826;19819:12;19780:53;19877:2;19872;19868;19864:11;19859:2;19852:5;19848:14;19842:38;19921:1;19900:14;;;19916:2;19896:23;19889:34;;;;19904:5;19291:662;-1:-1:-1;;;;19291:662:1:o;22307:128::-;22374:9;;;22395:11;;;22392:37;;;22409:18;;:::i;23213:512::-;23407:4;-1:-1:-1;;;;;23517:2:1;23509:6;23505:15;23494:9;23487:34;23569:2;23561:6;23557:15;23552:2;23541:9;23537:18;23530:43;;23609:6;23604:2;23593:9;23589:18;23582:34;23652:3;23647:2;23636:9;23632:18;23625:31;23673:46;23714:3;23703:9;23699:19;23691:6;23673:46;:::i;:::-;23665:54;23213:512;-1:-1:-1;;;;;;23213:512:1:o;23730:249::-;23799:6;23852:2;23840:9;23831:7;23827:23;23823:32;23820:52;;;23868:1;23865;23858:12;23820:52;23900:9;23894:16;23919:30;23943:5;23919:30;:::i

Swarm Source

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