ETH Price: $2,527.03 (+0.15%)

Token

NFHoneyBadgers (NFHB)
 

Overview

Max Total Supply

172 NFHB

Holders

106

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
3 NFHB
0xD9Df187050058529e2fbF87eF156Ac34953a98d9
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:
NFHoneyBadgers

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-16
*/

/**
 *Submitted for verification at Etherscan.io on 2022-01-16
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

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

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
     */
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
     */
    function toHexString(uint256 value, uint256 length)
        internal
        pure
        returns (string memory)
    {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        (bool success, ) = recipient.call{value: amount}("");
        require(
            success,
            "Address: unable to send value, recipient may have reverted"
        );
    }

    function functionCall(address target, bytes memory data)
        internal
        returns (bytes memory)
    {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return
            functionCallWithValue(
                target,
                data,
                value,
                "Address: low-level call with value failed"
            );
    }

    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(
            address(this).balance >= value,
            "Address: insufficient balance for call"
        );
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(
            data
        );
        return verifyCallResult(success, returndata, errorMessage);
    }

    function functionStaticCall(address target, bytes memory data)
        internal
        view
        returns (bytes memory)
    {
        return
            functionStaticCall(
                target,
                data,
                "Address: low-level static call failed"
            );
    }

    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    function functionDelegateCall(address target, bytes memory data)
        internal
        returns (bytes memory)
    {
        return
            functionDelegateCall(
                target,
                data,
                "Address: low-level delegate call failed"
            );
    }

    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

interface IERC721 is IERC165 {
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 indexed tokenId
    );

    event Approval(
        address indexed owner,
        address indexed approved,
        uint256 indexed tokenId
    );

    event ApprovalForAll(
        address indexed owner,
        address indexed operator,
        bool approved
    );

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

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

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

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

    function approve(address to, uint256 tokenId) external;

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

    function setApprovalForAll(address operator, bool _approved) external;

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

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

interface IERC721Enumerable is IERC721 {
    function totalSupply() external view returns (uint256);

    function tokenOfOwnerByIndex(address owner, uint256 index)
        external
        view
        returns (uint256 tokenId);

    function tokenByIndex(uint256 index) external view returns (uint256);
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

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

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

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

contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {
    using Address for address;
    using Strings for uint256;

    string private _name;

    string private _symbol;
    mapping(uint256 => address) private _owners;

    mapping(address => uint256) private _balances;

    mapping(uint256 => address) private _tokenApprovals;

    mapping(address => mapping(address => bool)) private _operatorApprovals;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

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

        string memory baseURI = _baseURI();
        return
            bytes(baseURI).length > 0
                ? string(abi.encodePacked(baseURI, tokenId.toString()))
                : "";
    }

    function _baseURI() internal view virtual returns (string memory) {
        return "";
    }

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

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

        _approve(to, tokenId);
    }

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

        return _tokenApprovals[tokenId];
    }

    function setApprovalForAll(address operator, bool approved)
        public
        virtual
        override
    {
        require(operator != _msgSender(), "ERC721: approve to caller");

        _operatorApprovals[_msgSender()][operator] = approved;
        emit ApprovalForAll(_msgSender(), operator, approved);
    }

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

    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public virtual override {
        //solhint-disable-next-line max-line-length
        require(
            _isApprovedOrOwner(_msgSender(), tokenId),
            "ERC721: transfer caller is not owner nor approved"
        );

        _transfer(from, to, tokenId);
    }

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

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) public virtual override {
        require(
            _isApprovedOrOwner(_msgSender(), 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 virtual {
        _transfer(from, to, tokenId);
        require(
            _checkOnERC721Received(from, to, tokenId, _data),
            "ERC721: transfer to non ERC721Receiver implementer"
        );
    }

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

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

    function _safeMint(address to, uint256 tokenId) internal virtual {
        _safeMint(to, tokenId, "");
    }

    function _safeMint(
        address to,
        uint256 tokenId,
        bytes memory _data
    ) internal virtual {
        _mint(to, tokenId);
        require(
            _checkOnERC721Received(address(0), to, tokenId, _data),
            "ERC721: transfer to non ERC721Receiver implementer"
        );
    }

    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");

        _beforeTokenTransfer(address(0), to, tokenId);

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

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

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

        _beforeTokenTransfer(owner, address(0), 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 virtual {
        require(
            ERC721.ownerOf(tokenId) == from,
            "ERC721: transfer of token that is not own"
        );
        require(to != address(0), "ERC721: transfer to the zero address");

        _beforeTokenTransfer(from, to, tokenId);

        // 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(ERC721.ownerOf(tokenId), to, tokenId);
    }

    function _checkOnERC721Received(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) private returns (bool) {
        if (to.isContract()) {
            try
                IERC721Receiver(to).onERC721Received(
                    _msgSender(),
                    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;
        }
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {}
}

abstract contract ERC721Enumerable is ERC721, IERC721Enumerable {
    mapping(address => mapping(uint256 => uint256)) private _ownedTokens;

    mapping(uint256 => uint256) private _ownedTokensIndex;

    uint256[] private _allTokens;

    mapping(uint256 => uint256) private _allTokensIndex;

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

    function tokenOfOwnerByIndex(address owner, uint256 index)
        public
        view
        virtual
        override
        returns (uint256)
    {
        require(
            index < ERC721.balanceOf(owner),
            "ERC721Enumerable: owner index out of bounds"
        );
        return _ownedTokens[owner][index];
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _allTokens.length;
    }

    function tokenByIndex(uint256 index)
        public
        view
        virtual
        override
        returns (uint256)
    {
        require(
            index < ERC721Enumerable.totalSupply(),
            "ERC721Enumerable: global index out of bounds"
        );
        return _allTokens[index];
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual override {
        super._beforeTokenTransfer(from, to, tokenId);

        if (from == address(0)) {
            _addTokenToAllTokensEnumeration(tokenId);
        } else if (from != to) {
            _removeTokenFromOwnerEnumeration(from, tokenId);
        }
        if (to == address(0)) {
            _removeTokenFromAllTokensEnumeration(tokenId);
        } else if (to != from) {
            _addTokenToOwnerEnumeration(to, tokenId);
        }
    }

    function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private {
        uint256 length = ERC721.balanceOf(to);
        _ownedTokens[to][length] = tokenId;
        _ownedTokensIndex[tokenId] = length;
    }

    function _addTokenToAllTokensEnumeration(uint256 tokenId) private {
        _allTokensIndex[tokenId] = _allTokens.length;
        _allTokens.push(tokenId);
    }

    function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId)
        private
    {
        uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;
        uint256 tokenIndex = _ownedTokensIndex[tokenId];
        if (tokenIndex != lastTokenIndex) {
            uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];

            _ownedTokens[from][tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token
            _ownedTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index
        }

        delete _ownedTokensIndex[tokenId];
        delete _ownedTokens[from][lastTokenIndex];
    }

    function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {
        uint256 lastTokenIndex = _allTokens.length - 1;
        uint256 tokenIndex = _allTokensIndex[tokenId];

        uint256 lastTokenId = _allTokens[lastTokenIndex];

        _allTokens[tokenIndex] = lastTokenId; // Move the last token to the slot of the to-delete token
        _allTokensIndex[lastTokenId] = tokenIndex; // Update the moved token's index

        // This also deletes the contents at the last position of the array
        delete _allTokensIndex[tokenId];
        _allTokens.pop();
    }
}

contract NFHoneyBadgers is ERC721Enumerable, Ownable {
    using Strings for uint256 ; 

    bool public unreveal = false;
    bool public saleIsActive = false;
    bool public presaleActive = false;


    uint256 public reserved;
    uint256 public preSaleCount;
    uint256 public cost = 0.05 ether; //0.05eth
    uint256 public maxSupply = 10000 ;
    uint256 _price = 0.04 ether;

    string public baseURI ; 
    string public unrevealURI = "https://ipfs.io/ipfs/QmQ1ivSQyCFYy8gEz59oZ5cLMxwDMGP94q6YyNgvYFgMDk/" ;  
   

    mapping(address => uint8) public whiteList; 

    address[] internal list1 ; 
    address[] internal list2 ; 
    address[] internal list3 ; 

     constructor(
        string memory _name,
        string memory _symbol , 
        string memory _initURI
    ) ERC721(_name, _symbol) {
        setBaseURI(_initURI) ; 
     }
    

    // internal
    function _baseURI() internal view virtual override returns (string memory) {
        return baseURI ;
    } 

    function _unrevealURI() internal view returns (string memory) {
        return unrevealURI ;
    }

    function reserve(uint256 _numberOfTokens) public onlyOwner {
        require(
            reserved + _numberOfTokens <= 200, // reserved Number of NFTs
            "reserved: Exceeding reserve limit."
        );
        reserved = reserved + _numberOfTokens ;
        _mint(_numberOfTokens);
    }

    // public
    function mint(uint256 _mintAmount) external payable {
        uint256 supply = totalSupply();
        uint256 ownerTokenCount = balanceOf(_msgSender());

        require(saleIsActive, "Sale must be active to mint Badgers");
        require(
            _mintAmount > 0 && _mintAmount <= 9,
            "Can only mint 9 tokens at a time"
        );
        require(
            supply + _mintAmount <= maxSupply,
            "_mintAmount exceeds supply"
        );
        require(
            ownerTokenCount + _mintAmount <= 9,
            "Single Address Can only mint 9 tokens "
        );
        require(msg.value >= cost * _mintAmount );
        _mint(_mintAmount);
    }

    function _mint(uint256 _numberOfTokens) internal {
        uint256 supply = totalSupply();
        for (uint256 i = 1; i <= _numberOfTokens; i++) {
            _safeMint(msg.sender, supply + i);
        }
    }

    function tokenURI(uint256 tokenId)
        public
        view
        override
        returns (string memory)
    {
        require(
            _exists(tokenId),
            "ERC721Metadata: URI query for nonexistent token"
        );
        if (unreveal) {
            string memory currentBaseURI = _baseURI();
            return
                bytes(currentBaseURI).length > 0
                    ? string(
                        abi.encodePacked(currentBaseURI, tokenId.toString())
                    )
                    : "";
        } else { 
              
            string memory currentUnrevealURI = _unrevealURI();
            return
                bytes(currentUnrevealURI).length > 0
                    ? string(
                        abi.encodePacked(currentUnrevealURI, tokenId.toString(),".json")
                    )
                    : "";
            
            
        }
    }

    function preSaleBuy(uint8 _amount) external payable {
        require(presaleActive, "preSaleBuy: Presale is not active.");
        require(
            _amount > 0 && _amount <= checkInArr(msg.sender ) - whiteList[msg.sender] ,
            "preSaleBuy: Only for Whitelist users with specified amount"
        );
        require(
            preSaleCount + _amount  <= 350 , //preSaleLimit 350 
            "preSaleBuy: exceeding pre-sale limit."
        );
        require(
            msg.value >= _price * _amount ,
            "NFT25k::preSaleBuy: insufficient ethers"
        );
        preSaleCount = preSaleCount + _amount ;
        whiteList[msg.sender] += _amount ;
        _mint(_amount);
    }    

    function checkInArr(address _addr) view public returns(uint8) {
          
          for(uint256 i = 0 ;i < list1.length ; i++){
              if(list1[i] == _addr){
                  return 1 ; 
              }
          } 
          for(uint256 i = 0 ;i < list2.length ; i++){
              if(list2[i] == _addr){
                  return 2 ; 
              }
          }
          for(uint256 i = 0 ;i < list3.length ; i++){
              if(list3[i] == _addr){
                  return 3 ; 
              }
          }   
          return 0 ; 
    } 


    function addWhitelistUser( address[] memory l1, address[] memory l2, address[] memory l3 )
        external
        onlyOwner
    {
        list1 = l1 ; 
        list2 = l2 ;
        list3 = l3 ;  

    }

    function flipPresaleState() external onlyOwner {
        presaleActive = !presaleActive;
    }   

    function setMaxSupply(uint256 _maxSupply) external onlyOwner {
        maxSupply = _maxSupply ;
    } 
    
    function setBaseURI(string memory _newBaseURI) public onlyOwner {
        baseURI = _newBaseURI;
    } 

    function setUnrevealURI(string memory _newURI) external onlyOwner {
        unrevealURI = _newURI;
    }
   

    function flipSaleState() external onlyOwner {
        saleIsActive = !saleIsActive;
    }

    function setUnreveal() external onlyOwner {
        unreveal = !unreveal;
    }

    function withdraw() external payable onlyOwner {
       address payable _owner = payable(msg.sender);
        _owner.transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string","name":"_initURI","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":"l1","type":"address[]"},{"internalType":"address[]","name":"l2","type":"address[]"},{"internalType":"address[]","name":"l3","type":"address[]"}],"name":"addWhitelistUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"checkInArr","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flipPresaleState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flipSaleState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","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":[{"internalType":"uint8","name":"_amount","type":"uint8"}],"name":"preSaleBuy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"preSaleCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_numberOfTokens","type":"uint256"}],"name":"reserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reserved","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"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":[],"name":"saleIsActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxSupply","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setUnreveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newURI","type":"string"}],"name":"setUnrevealURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unreveal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unrevealURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whiteList","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}]

600a805462ffffff60a01b1916905566b1a2bc2ec50000600d55612710600e55668e1bc9bf040000600f55610100604052604460808181529062002ec660a03980516200005591601191602090910190620001b4565b503480156200006357600080fd5b5060405162002f0a38038062002f0a833981016040819052620000869162000311565b8251839083906200009f906000906020850190620001b4565b508051620000b5906001906020840190620001b4565b505050620000d2620000cc620000e660201b60201c565b620000ea565b620000dd816200013c565b505050620003f5565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600a546001600160a01b031633146200019b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b8051620001b0906010906020840190620001b4565b5050565b828054620001c290620003a2565b90600052602060002090601f016020900481019282620001e6576000855562000231565b82601f106200020157805160ff191683800117855562000231565b8280016001018555821562000231579182015b828111156200023157825182559160200191906001019062000214565b506200023f92915062000243565b5090565b5b808211156200023f576000815560010162000244565b600082601f8301126200026c57600080fd5b81516001600160401b0380821115620002895762000289620003df565b604051601f8301601f19908116603f01168101908282118183101715620002b457620002b4620003df565b81604052838152602092508683858801011115620002d157600080fd5b600091505b83821015620002f55785820183015181830184015290820190620002d6565b83821115620003075760008385830101525b9695505050505050565b6000806000606084860312156200032757600080fd5b83516001600160401b03808211156200033f57600080fd5b6200034d878388016200025a565b945060208601519150808211156200036457600080fd5b62000372878388016200025a565b935060408601519150808211156200038957600080fd5b5062000398868287016200025a565b9150509250925092565b600181811c90821680620003b757607f821691505b60208210811415620003d957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b612ac180620004056000396000f3fe6080604052600436106102465760003560e01c80636f8b44b011610139578063b88d4fde116100b6578063e985e9c51161007a578063e985e9c51461066f578063eb8d2444146106b8578063f2fde38b146106d9578063f61dabf4146106f9578063f81227d414610719578063fe60d12c1461072e57600080fd5b8063b88d4fde146105e3578063c87b56dd14610603578063d5abeb0114610623578063de0ec16414610639578063e7faa65c1461064f57600080fd5b80638da5cb5b116100fd5780638da5cb5b1461055d57806395d89b411461057b57806397bc411c14610590578063a0712d68146105b0578063a22cb465146105c357600080fd5b80636f8b44b0146104d357806370a08231146104f3578063715018a6146105135780637db1837214610528578063819b25ba1461053d57600080fd5b806334918dfd116101c75780634f6ccce71161018b5780634f6ccce71461043d57806353135ca01461045d57806355f804b31461047e5780636352211e1461049e5780636c0360eb146104be57600080fd5b806334918dfd146103ab578063372c12b1146103c057806338fe125e146104025780633ccfd60b1461041557806342842e0e1461041d57600080fd5b8063158756b91161020e578063158756b91461032057806318160ddd146103415780632126ea811461035657806323b872dd1461036b5780632f745c591461038b57600080fd5b806301ffc9a71461024b57806306fdde0314610280578063081812fc146102a2578063095ea7b3146102da57806313faede6146102fc575b600080fd5b34801561025757600080fd5b5061026b610266366004612615565b610744565b60405190151581526020015b60405180910390f35b34801561028c57600080fd5b5061029561076f565b60405161027791906127ab565b3480156102ae57600080fd5b506102c26102bd366004612698565b610801565b6040516001600160a01b039091168152602001610277565b3480156102e657600080fd5b506102fa6102f5366004612563565b61089b565b005b34801561030857600080fd5b50610312600d5481565b604051908152602001610277565b34801561032c57600080fd5b50600a5461026b90600160a01b900460ff1681565b34801561034d57600080fd5b50600854610312565b34801561036257600080fd5b506102956109b1565b34801561037757600080fd5b506102fa61038636600461246f565b610a3f565b34801561039757600080fd5b506103126103a6366004612563565b610a70565b3480156103b757600080fd5b506102fa610b06565b3480156103cc57600080fd5b506103f06103db366004612421565b60126020526000908152604090205460ff1681565b60405160ff9091168152602001610277565b6102fa6104103660046126b1565b610b51565b6102fa610da3565b34801561042957600080fd5b506102fa61043836600461246f565b610dff565b34801561044957600080fd5b50610312610458366004612698565b610e1a565b34801561046957600080fd5b50600a5461026b90600160b01b900460ff1681565b34801561048a57600080fd5b506102fa61049936600461264f565b610ead565b3480156104aa57600080fd5b506102c26104b9366004612698565b610eea565b3480156104ca57600080fd5b50610295610f61565b3480156104df57600080fd5b506102fa6104ee366004612698565b610f6e565b3480156104ff57600080fd5b5061031261050e366004612421565b610f9d565b34801561051f57600080fd5b506102fa611024565b34801561053457600080fd5b506102fa61105a565b34801561054957600080fd5b506102fa610558366004612698565b6110a5565b34801561056957600080fd5b50600a546001600160a01b03166102c2565b34801561058757600080fd5b50610295611152565b34801561059c57600080fd5b506102fa6105ab36600461264f565b611161565b6102fa6105be366004612698565b61119e565b3480156105cf57600080fd5b506102fa6105de366004612527565b611362565b3480156105ef57600080fd5b506102fa6105fe3660046124ab565b611427565b34801561060f57600080fd5b5061029561061e366004612698565b61145f565b34801561062f57600080fd5b50610312600e5481565b34801561064557600080fd5b50610312600c5481565b34801561065b57600080fd5b506102fa61066a36600461258d565b611596565b34801561067b57600080fd5b5061026b61068a36600461243c565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b3480156106c457600080fd5b50600a5461026b90600160a81b900460ff1681565b3480156106e557600080fd5b506102fa6106f4366004612421565b6115fb565b34801561070557600080fd5b506103f0610714366004612421565b611693565b34801561072557600080fd5b506102fa6117bf565b34801561073a57600080fd5b50610312600b5481565b60006001600160e01b0319821663780e9d6360e01b148061076957506107698261180a565b92915050565b60606000805461077e9061299d565b80601f01602080910402602001604051908101604052809291908181526020018280546107aa9061299d565b80156107f75780601f106107cc576101008083540402835291602001916107f7565b820191906000526020600020905b8154815290600101906020018083116107da57829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b031661087f5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006108a682610eea565b9050806001600160a01b0316836001600160a01b031614156109145760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610876565b336001600160a01b03821614806109305750610930813361068a565b6109a25760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610876565b6109ac838361185a565b505050565b601180546109be9061299d565b80601f01602080910402602001604051908101604052809291908181526020018280546109ea9061299d565b8015610a375780601f10610a0c57610100808354040283529160200191610a37565b820191906000526020600020905b815481529060010190602001808311610a1a57829003601f168201915b505050505081565b610a4933826118c8565b610a655760405162461bcd60e51b815260040161087690612845565b6109ac8383836119bf565b6000610a7b83610f9d565b8210610add5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610876565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600a546001600160a01b03163314610b305760405162461bcd60e51b815260040161087690612810565b600a805460ff60a81b198116600160a81b9182900460ff1615909102179055565b600a54600160b01b900460ff16610bb55760405162461bcd60e51b815260206004820152602260248201527f70726553616c654275793a2050726573616c65206973206e6f74206163746976604482015261329760f11b6064820152608401610876565b60008160ff16118015610bf457503360008181526012602052604090205460ff1690610be090611693565b610bea919061294e565b60ff168160ff1611155b610c665760405162461bcd60e51b815260206004820152603a60248201527f70726553616c654275793a204f6e6c7920666f722057686974656c697374207560448201527f7365727320776974682073706563696669656420616d6f756e740000000000006064820152608401610876565b61015e8160ff16600c54610c7a91906128c7565b1115610cd65760405162461bcd60e51b815260206004820152602560248201527f70726553616c654275793a20657863656564696e67207072652d73616c65206c60448201526434b6b4ba1760d91b6064820152608401610876565b8060ff16600f54610ce79190612918565b341015610d465760405162461bcd60e51b815260206004820152602760248201527f4e465432356b3a3a70726553616c654275793a20696e73756666696369656e746044820152662065746865727360c81b6064820152608401610876565b8060ff16600c54610d5791906128c7565b600c553360009081526012602052604081208054839290610d7c90849060ff166128df565b92506101000a81548160ff021916908360ff160217905550610da08160ff16611b6a565b50565b600a546001600160a01b03163314610dcd5760405162461bcd60e51b815260040161087690612810565b604051339081904780156108fc02916000818181858888f19350505050158015610dfb573d6000803e3d6000fd5b5050565b6109ac83838360405180602001604052806000815250611427565b6000610e2560085490565b8210610e885760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610876565b60088281548110610e9b57610e9b612a49565b90600052602060002001549050919050565b600a546001600160a01b03163314610ed75760405162461bcd60e51b815260040161087690612810565b8051610dfb906010906020840190612237565b6000818152600260205260408120546001600160a01b0316806107695760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610876565b601080546109be9061299d565b600a546001600160a01b03163314610f985760405162461bcd60e51b815260040161087690612810565b600e55565b60006001600160a01b0382166110085760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610876565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b0316331461104e5760405162461bcd60e51b815260040161087690612810565b6110586000611ba6565b565b600a546001600160a01b031633146110845760405162461bcd60e51b815260040161087690612810565b600a805460ff60a01b198116600160a01b9182900460ff1615909102179055565b600a546001600160a01b031633146110cf5760405162461bcd60e51b815260040161087690612810565b60c881600b546110df91906128c7565b11156111385760405162461bcd60e51b815260206004820152602260248201527f72657365727665643a20457863656564696e672072657365727665206c696d696044820152613a1760f11b6064820152608401610876565b80600b5461114691906128c7565b600b55610da081611b6a565b60606001805461077e9061299d565b600a546001600160a01b0316331461118b5760405162461bcd60e51b815260040161087690612810565b8051610dfb906011906020840190612237565b60006111a960085490565b905060006111b633610f9d565b600a54909150600160a81b900460ff1661121e5760405162461bcd60e51b815260206004820152602360248201527f53616c65206d7573742062652061637469766520746f206d696e74204261646760448201526265727360e81b6064820152608401610876565b60008311801561122f575060098311155b61127b5760405162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206d696e74203920746f6b656e7320617420612074696d656044820152606401610876565b600e5461128884846128c7565b11156112d65760405162461bcd60e51b815260206004820152601a60248201527f5f6d696e74416d6f756e74206578636565647320737570706c790000000000006044820152606401610876565b60096112e284836128c7565b111561133f5760405162461bcd60e51b815260206004820152602660248201527f53696e676c6520416464726573732043616e206f6e6c79206d696e7420392074604482015265037b5b2b739960d51b6064820152608401610876565b82600d5461134d9190612918565b34101561135957600080fd5b6109ac83611b6a565b6001600160a01b0382163314156113bb5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610876565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61143133836118c8565b61144d5760405162461bcd60e51b815260040161087690612845565b61145984848484611bf8565b50505050565b6000818152600260205260409020546060906001600160a01b03166114de5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610876565b600a54600160a01b900460ff161561154c5760006114fa611c2b565b9050600081511161151a5760405180602001604052806000815250611545565b8061152484611c3a565b604051602001611535929190612700565b6040516020818303038152906040525b9392505050565b6000611556611d38565b905060008151116115765760405180602001604052806000815250611545565b8061158084611c3a565b60405160200161153592919061272f565b919050565b600a546001600160a01b031633146115c05760405162461bcd60e51b815260040161087690612810565b82516115d39060139060208601906122bb565b5081516115e79060149060208501906122bb565b5080516114599060159060208401906122bb565b600a546001600160a01b031633146116255760405162461bcd60e51b815260040161087690612810565b6001600160a01b03811661168a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610876565b610da081611ba6565b6000805b6013548110156116f457826001600160a01b0316601382815481106116be576116be612a49565b6000918252602090912001546001600160a01b031614156116e25750600192915050565b806116ec816129d8565b915050611697565b5060005b60145481101561175557826001600160a01b03166014828154811061171f5761171f612a49565b6000918252602090912001546001600160a01b031614156117435750600292915050565b8061174d816129d8565b9150506116f8565b5060005b6015548110156117b657826001600160a01b03166015828154811061178057611780612a49565b6000918252602090912001546001600160a01b031614156117a45750600392915050565b806117ae816129d8565b915050611759565b50600092915050565b600a546001600160a01b031633146117e95760405162461bcd60e51b815260040161087690612810565b600a805460ff60b01b198116600160b01b9182900460ff1615909102179055565b60006001600160e01b031982166380ac58cd60e01b148061183b57506001600160e01b03198216635b5e139f60e01b145b8061076957506301ffc9a760e01b6001600160e01b0319831614610769565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061188f82610eea565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b03166119415760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610876565b600061194c83610eea565b9050806001600160a01b0316846001600160a01b031614806119875750836001600160a01b031661197c84610801565b6001600160a01b0316145b806119b757506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166119d282610eea565b6001600160a01b031614611a3a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610876565b6001600160a01b038216611a9c5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610876565b611aa7838383611d47565b611ab260008261185a565b6001600160a01b0383166000908152600360205260408120805460019290611adb908490612937565b90915550506001600160a01b0382166000908152600360205260408120805460019290611b099084906128c7565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000611b7560085490565b905060015b8281116109ac57611b9433611b8f83856128c7565b611dff565b80611b9e816129d8565b915050611b7a565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611c038484846119bf565b611c0f84848484611e19565b6114595760405162461bcd60e51b8152600401610876906127be565b60606010805461077e9061299d565b606081611c5e5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611c885780611c72816129d8565b9150611c819050600a83612904565b9150611c62565b60008167ffffffffffffffff811115611ca357611ca3612a5f565b6040519080825280601f01601f191660200182016040528015611ccd576020820181803683370190505b5090505b84156119b757611ce2600183612937565b9150611cef600a866129f3565b611cfa9060306128c7565b60f81b818381518110611d0f57611d0f612a49565b60200101906001600160f81b031916908160001a905350611d31600a86612904565b9450611cd1565b60606011805461077e9061299d565b6001600160a01b038316611da257611d9d81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611dc5565b816001600160a01b0316836001600160a01b031614611dc557611dc58382611f26565b6001600160a01b038216611ddc576109ac81611fc3565b826001600160a01b0316826001600160a01b0316146109ac576109ac8282612072565b610dfb8282604051806020016040528060008152506120b6565b60006001600160a01b0384163b15611f1b57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611e5d90339089908890889060040161276e565b602060405180830381600087803b158015611e7757600080fd5b505af1925050508015611ea7575060408051601f3d908101601f19168201909252611ea491810190612632565b60015b611f01573d808015611ed5576040519150601f19603f3d011682016040523d82523d6000602084013e611eda565b606091505b508051611ef95760405162461bcd60e51b8152600401610876906127be565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506119b7565b506001949350505050565b60006001611f3384610f9d565b611f3d9190612937565b600083815260076020526040902054909150808214611f90576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611fd590600190612937565b60008381526009602052604081205460088054939450909284908110611ffd57611ffd612a49565b90600052602060002001549050806008838154811061201e5761201e612a49565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061205657612056612a33565b6001900381819060005260206000200160009055905550505050565b600061207d83610f9d565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6120c083836120e9565b6120cd6000848484611e19565b6109ac5760405162461bcd60e51b8152600401610876906127be565b6001600160a01b03821661213f5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610876565b6000818152600260205260409020546001600160a01b0316156121a45760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610876565b6121b060008383611d47565b6001600160a01b03821660009081526003602052604081208054600192906121d99084906128c7565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280546122439061299d565b90600052602060002090601f01602090048101928261226557600085556122ab565b82601f1061227e57805160ff19168380011785556122ab565b828001600101855582156122ab579182015b828111156122ab578251825591602001919060010190612290565b506122b7929150612310565b5090565b8280548282559060005260206000209081019282156122ab579160200282015b828111156122ab57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906122db565b5b808211156122b75760008155600101612311565b600067ffffffffffffffff83111561233f5761233f612a5f565b612352601f8401601f1916602001612896565b905082815283838301111561236657600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b038116811461159157600080fd5b600082601f8301126123a557600080fd5b8135602067ffffffffffffffff8211156123c1576123c1612a5f565b8160051b6123d0828201612896565b8381528281019086840183880185018910156123eb57600080fd5b600093505b85841015612415576124018161237d565b8352600193909301929184019184016123f0565b50979650505050505050565b60006020828403121561243357600080fd5b6115458261237d565b6000806040838503121561244f57600080fd5b6124588361237d565b91506124666020840161237d565b90509250929050565b60008060006060848603121561248457600080fd5b61248d8461237d565b925061249b6020850161237d565b9150604084013590509250925092565b600080600080608085870312156124c157600080fd5b6124ca8561237d565b93506124d86020860161237d565b925060408501359150606085013567ffffffffffffffff8111156124fb57600080fd5b8501601f8101871361250c57600080fd5b61251b87823560208401612325565b91505092959194509250565b6000806040838503121561253a57600080fd5b6125438361237d565b91506020830135801515811461255857600080fd5b809150509250929050565b6000806040838503121561257657600080fd5b61257f8361237d565b946020939093013593505050565b6000806000606084860312156125a257600080fd5b833567ffffffffffffffff808211156125ba57600080fd5b6125c687838801612394565b945060208601359150808211156125dc57600080fd5b6125e887838801612394565b935060408601359150808211156125fe57600080fd5b5061260b86828701612394565b9150509250925092565b60006020828403121561262757600080fd5b813561154581612a75565b60006020828403121561264457600080fd5b815161154581612a75565b60006020828403121561266157600080fd5b813567ffffffffffffffff81111561267857600080fd5b8201601f8101841361268957600080fd5b6119b784823560208401612325565b6000602082840312156126aa57600080fd5b5035919050565b6000602082840312156126c357600080fd5b813560ff8116811461154557600080fd5b600081518084526126ec816020860160208601612971565b601f01601f19169290920160200192915050565b60008351612712818460208801612971565b835190830190612726818360208801612971565b01949350505050565b60008351612741818460208801612971565b835190830190612755818360208801612971565b64173539b7b760d91b9101908152600501949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906127a1908301846126d4565b9695505050505050565b60208152600061154560208301846126d4565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff811182821017156128bf576128bf612a5f565b604052919050565b600082198211156128da576128da612a07565b500190565b600060ff821660ff84168060ff038211156128fc576128fc612a07565b019392505050565b60008261291357612913612a1d565b500490565b600081600019048311821515161561293257612932612a07565b500290565b60008282101561294957612949612a07565b500390565b600060ff821660ff84168082101561296857612968612a07565b90039392505050565b60005b8381101561298c578181015183820152602001612974565b838111156114595750506000910152565b600181811c908216806129b157607f821691505b602082108114156129d257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156129ec576129ec612a07565b5060010190565b600082612a0257612a02612a1d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610da057600080fdfea2646970667358221220bc01c71211e93b2ef67f54cf61cce718dd34ae6d9a28c90640f4fdc5bb0eeeeb64736f6c6343000807003368747470733a2f2f697066732e696f2f697066732f516d51316976535179434659793867457a35396f5a35634c4d7877444d47503934713659794e67765946674d446b2f000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000e4e46486f6e65794261646765727300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044e46484200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002468747470733a2f2f6e66686f6e6579626164676572732e636f6d2f6d657461646174612f00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106102465760003560e01c80636f8b44b011610139578063b88d4fde116100b6578063e985e9c51161007a578063e985e9c51461066f578063eb8d2444146106b8578063f2fde38b146106d9578063f61dabf4146106f9578063f81227d414610719578063fe60d12c1461072e57600080fd5b8063b88d4fde146105e3578063c87b56dd14610603578063d5abeb0114610623578063de0ec16414610639578063e7faa65c1461064f57600080fd5b80638da5cb5b116100fd5780638da5cb5b1461055d57806395d89b411461057b57806397bc411c14610590578063a0712d68146105b0578063a22cb465146105c357600080fd5b80636f8b44b0146104d357806370a08231146104f3578063715018a6146105135780637db1837214610528578063819b25ba1461053d57600080fd5b806334918dfd116101c75780634f6ccce71161018b5780634f6ccce71461043d57806353135ca01461045d57806355f804b31461047e5780636352211e1461049e5780636c0360eb146104be57600080fd5b806334918dfd146103ab578063372c12b1146103c057806338fe125e146104025780633ccfd60b1461041557806342842e0e1461041d57600080fd5b8063158756b91161020e578063158756b91461032057806318160ddd146103415780632126ea811461035657806323b872dd1461036b5780632f745c591461038b57600080fd5b806301ffc9a71461024b57806306fdde0314610280578063081812fc146102a2578063095ea7b3146102da57806313faede6146102fc575b600080fd5b34801561025757600080fd5b5061026b610266366004612615565b610744565b60405190151581526020015b60405180910390f35b34801561028c57600080fd5b5061029561076f565b60405161027791906127ab565b3480156102ae57600080fd5b506102c26102bd366004612698565b610801565b6040516001600160a01b039091168152602001610277565b3480156102e657600080fd5b506102fa6102f5366004612563565b61089b565b005b34801561030857600080fd5b50610312600d5481565b604051908152602001610277565b34801561032c57600080fd5b50600a5461026b90600160a01b900460ff1681565b34801561034d57600080fd5b50600854610312565b34801561036257600080fd5b506102956109b1565b34801561037757600080fd5b506102fa61038636600461246f565b610a3f565b34801561039757600080fd5b506103126103a6366004612563565b610a70565b3480156103b757600080fd5b506102fa610b06565b3480156103cc57600080fd5b506103f06103db366004612421565b60126020526000908152604090205460ff1681565b60405160ff9091168152602001610277565b6102fa6104103660046126b1565b610b51565b6102fa610da3565b34801561042957600080fd5b506102fa61043836600461246f565b610dff565b34801561044957600080fd5b50610312610458366004612698565b610e1a565b34801561046957600080fd5b50600a5461026b90600160b01b900460ff1681565b34801561048a57600080fd5b506102fa61049936600461264f565b610ead565b3480156104aa57600080fd5b506102c26104b9366004612698565b610eea565b3480156104ca57600080fd5b50610295610f61565b3480156104df57600080fd5b506102fa6104ee366004612698565b610f6e565b3480156104ff57600080fd5b5061031261050e366004612421565b610f9d565b34801561051f57600080fd5b506102fa611024565b34801561053457600080fd5b506102fa61105a565b34801561054957600080fd5b506102fa610558366004612698565b6110a5565b34801561056957600080fd5b50600a546001600160a01b03166102c2565b34801561058757600080fd5b50610295611152565b34801561059c57600080fd5b506102fa6105ab36600461264f565b611161565b6102fa6105be366004612698565b61119e565b3480156105cf57600080fd5b506102fa6105de366004612527565b611362565b3480156105ef57600080fd5b506102fa6105fe3660046124ab565b611427565b34801561060f57600080fd5b5061029561061e366004612698565b61145f565b34801561062f57600080fd5b50610312600e5481565b34801561064557600080fd5b50610312600c5481565b34801561065b57600080fd5b506102fa61066a36600461258d565b611596565b34801561067b57600080fd5b5061026b61068a36600461243c565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b3480156106c457600080fd5b50600a5461026b90600160a81b900460ff1681565b3480156106e557600080fd5b506102fa6106f4366004612421565b6115fb565b34801561070557600080fd5b506103f0610714366004612421565b611693565b34801561072557600080fd5b506102fa6117bf565b34801561073a57600080fd5b50610312600b5481565b60006001600160e01b0319821663780e9d6360e01b148061076957506107698261180a565b92915050565b60606000805461077e9061299d565b80601f01602080910402602001604051908101604052809291908181526020018280546107aa9061299d565b80156107f75780601f106107cc576101008083540402835291602001916107f7565b820191906000526020600020905b8154815290600101906020018083116107da57829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b031661087f5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b60006108a682610eea565b9050806001600160a01b0316836001600160a01b031614156109145760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610876565b336001600160a01b03821614806109305750610930813361068a565b6109a25760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610876565b6109ac838361185a565b505050565b601180546109be9061299d565b80601f01602080910402602001604051908101604052809291908181526020018280546109ea9061299d565b8015610a375780601f10610a0c57610100808354040283529160200191610a37565b820191906000526020600020905b815481529060010190602001808311610a1a57829003601f168201915b505050505081565b610a4933826118c8565b610a655760405162461bcd60e51b815260040161087690612845565b6109ac8383836119bf565b6000610a7b83610f9d565b8210610add5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610876565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600a546001600160a01b03163314610b305760405162461bcd60e51b815260040161087690612810565b600a805460ff60a81b198116600160a81b9182900460ff1615909102179055565b600a54600160b01b900460ff16610bb55760405162461bcd60e51b815260206004820152602260248201527f70726553616c654275793a2050726573616c65206973206e6f74206163746976604482015261329760f11b6064820152608401610876565b60008160ff16118015610bf457503360008181526012602052604090205460ff1690610be090611693565b610bea919061294e565b60ff168160ff1611155b610c665760405162461bcd60e51b815260206004820152603a60248201527f70726553616c654275793a204f6e6c7920666f722057686974656c697374207560448201527f7365727320776974682073706563696669656420616d6f756e740000000000006064820152608401610876565b61015e8160ff16600c54610c7a91906128c7565b1115610cd65760405162461bcd60e51b815260206004820152602560248201527f70726553616c654275793a20657863656564696e67207072652d73616c65206c60448201526434b6b4ba1760d91b6064820152608401610876565b8060ff16600f54610ce79190612918565b341015610d465760405162461bcd60e51b815260206004820152602760248201527f4e465432356b3a3a70726553616c654275793a20696e73756666696369656e746044820152662065746865727360c81b6064820152608401610876565b8060ff16600c54610d5791906128c7565b600c553360009081526012602052604081208054839290610d7c90849060ff166128df565b92506101000a81548160ff021916908360ff160217905550610da08160ff16611b6a565b50565b600a546001600160a01b03163314610dcd5760405162461bcd60e51b815260040161087690612810565b604051339081904780156108fc02916000818181858888f19350505050158015610dfb573d6000803e3d6000fd5b5050565b6109ac83838360405180602001604052806000815250611427565b6000610e2560085490565b8210610e885760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610876565b60088281548110610e9b57610e9b612a49565b90600052602060002001549050919050565b600a546001600160a01b03163314610ed75760405162461bcd60e51b815260040161087690612810565b8051610dfb906010906020840190612237565b6000818152600260205260408120546001600160a01b0316806107695760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610876565b601080546109be9061299d565b600a546001600160a01b03163314610f985760405162461bcd60e51b815260040161087690612810565b600e55565b60006001600160a01b0382166110085760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610876565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b0316331461104e5760405162461bcd60e51b815260040161087690612810565b6110586000611ba6565b565b600a546001600160a01b031633146110845760405162461bcd60e51b815260040161087690612810565b600a805460ff60a01b198116600160a01b9182900460ff1615909102179055565b600a546001600160a01b031633146110cf5760405162461bcd60e51b815260040161087690612810565b60c881600b546110df91906128c7565b11156111385760405162461bcd60e51b815260206004820152602260248201527f72657365727665643a20457863656564696e672072657365727665206c696d696044820152613a1760f11b6064820152608401610876565b80600b5461114691906128c7565b600b55610da081611b6a565b60606001805461077e9061299d565b600a546001600160a01b0316331461118b5760405162461bcd60e51b815260040161087690612810565b8051610dfb906011906020840190612237565b60006111a960085490565b905060006111b633610f9d565b600a54909150600160a81b900460ff1661121e5760405162461bcd60e51b815260206004820152602360248201527f53616c65206d7573742062652061637469766520746f206d696e74204261646760448201526265727360e81b6064820152608401610876565b60008311801561122f575060098311155b61127b5760405162461bcd60e51b815260206004820181905260248201527f43616e206f6e6c79206d696e74203920746f6b656e7320617420612074696d656044820152606401610876565b600e5461128884846128c7565b11156112d65760405162461bcd60e51b815260206004820152601a60248201527f5f6d696e74416d6f756e74206578636565647320737570706c790000000000006044820152606401610876565b60096112e284836128c7565b111561133f5760405162461bcd60e51b815260206004820152602660248201527f53696e676c6520416464726573732043616e206f6e6c79206d696e7420392074604482015265037b5b2b739960d51b6064820152608401610876565b82600d5461134d9190612918565b34101561135957600080fd5b6109ac83611b6a565b6001600160a01b0382163314156113bb5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610876565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61143133836118c8565b61144d5760405162461bcd60e51b815260040161087690612845565b61145984848484611bf8565b50505050565b6000818152600260205260409020546060906001600160a01b03166114de5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610876565b600a54600160a01b900460ff161561154c5760006114fa611c2b565b9050600081511161151a5760405180602001604052806000815250611545565b8061152484611c3a565b604051602001611535929190612700565b6040516020818303038152906040525b9392505050565b6000611556611d38565b905060008151116115765760405180602001604052806000815250611545565b8061158084611c3a565b60405160200161153592919061272f565b919050565b600a546001600160a01b031633146115c05760405162461bcd60e51b815260040161087690612810565b82516115d39060139060208601906122bb565b5081516115e79060149060208501906122bb565b5080516114599060159060208401906122bb565b600a546001600160a01b031633146116255760405162461bcd60e51b815260040161087690612810565b6001600160a01b03811661168a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610876565b610da081611ba6565b6000805b6013548110156116f457826001600160a01b0316601382815481106116be576116be612a49565b6000918252602090912001546001600160a01b031614156116e25750600192915050565b806116ec816129d8565b915050611697565b5060005b60145481101561175557826001600160a01b03166014828154811061171f5761171f612a49565b6000918252602090912001546001600160a01b031614156117435750600292915050565b8061174d816129d8565b9150506116f8565b5060005b6015548110156117b657826001600160a01b03166015828154811061178057611780612a49565b6000918252602090912001546001600160a01b031614156117a45750600392915050565b806117ae816129d8565b915050611759565b50600092915050565b600a546001600160a01b031633146117e95760405162461bcd60e51b815260040161087690612810565b600a805460ff60b01b198116600160b01b9182900460ff1615909102179055565b60006001600160e01b031982166380ac58cd60e01b148061183b57506001600160e01b03198216635b5e139f60e01b145b8061076957506301ffc9a760e01b6001600160e01b0319831614610769565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061188f82610eea565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b03166119415760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610876565b600061194c83610eea565b9050806001600160a01b0316846001600160a01b031614806119875750836001600160a01b031661197c84610801565b6001600160a01b0316145b806119b757506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166119d282610eea565b6001600160a01b031614611a3a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610876565b6001600160a01b038216611a9c5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610876565b611aa7838383611d47565b611ab260008261185a565b6001600160a01b0383166000908152600360205260408120805460019290611adb908490612937565b90915550506001600160a01b0382166000908152600360205260408120805460019290611b099084906128c7565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000611b7560085490565b905060015b8281116109ac57611b9433611b8f83856128c7565b611dff565b80611b9e816129d8565b915050611b7a565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611c038484846119bf565b611c0f84848484611e19565b6114595760405162461bcd60e51b8152600401610876906127be565b60606010805461077e9061299d565b606081611c5e5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611c885780611c72816129d8565b9150611c819050600a83612904565b9150611c62565b60008167ffffffffffffffff811115611ca357611ca3612a5f565b6040519080825280601f01601f191660200182016040528015611ccd576020820181803683370190505b5090505b84156119b757611ce2600183612937565b9150611cef600a866129f3565b611cfa9060306128c7565b60f81b818381518110611d0f57611d0f612a49565b60200101906001600160f81b031916908160001a905350611d31600a86612904565b9450611cd1565b60606011805461077e9061299d565b6001600160a01b038316611da257611d9d81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611dc5565b816001600160a01b0316836001600160a01b031614611dc557611dc58382611f26565b6001600160a01b038216611ddc576109ac81611fc3565b826001600160a01b0316826001600160a01b0316146109ac576109ac8282612072565b610dfb8282604051806020016040528060008152506120b6565b60006001600160a01b0384163b15611f1b57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611e5d90339089908890889060040161276e565b602060405180830381600087803b158015611e7757600080fd5b505af1925050508015611ea7575060408051601f3d908101601f19168201909252611ea491810190612632565b60015b611f01573d808015611ed5576040519150601f19603f3d011682016040523d82523d6000602084013e611eda565b606091505b508051611ef95760405162461bcd60e51b8152600401610876906127be565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506119b7565b506001949350505050565b60006001611f3384610f9d565b611f3d9190612937565b600083815260076020526040902054909150808214611f90576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611fd590600190612937565b60008381526009602052604081205460088054939450909284908110611ffd57611ffd612a49565b90600052602060002001549050806008838154811061201e5761201e612a49565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061205657612056612a33565b6001900381819060005260206000200160009055905550505050565b600061207d83610f9d565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6120c083836120e9565b6120cd6000848484611e19565b6109ac5760405162461bcd60e51b8152600401610876906127be565b6001600160a01b03821661213f5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610876565b6000818152600260205260409020546001600160a01b0316156121a45760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610876565b6121b060008383611d47565b6001600160a01b03821660009081526003602052604081208054600192906121d99084906128c7565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280546122439061299d565b90600052602060002090601f01602090048101928261226557600085556122ab565b82601f1061227e57805160ff19168380011785556122ab565b828001600101855582156122ab579182015b828111156122ab578251825591602001919060010190612290565b506122b7929150612310565b5090565b8280548282559060005260206000209081019282156122ab579160200282015b828111156122ab57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906122db565b5b808211156122b75760008155600101612311565b600067ffffffffffffffff83111561233f5761233f612a5f565b612352601f8401601f1916602001612896565b905082815283838301111561236657600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b038116811461159157600080fd5b600082601f8301126123a557600080fd5b8135602067ffffffffffffffff8211156123c1576123c1612a5f565b8160051b6123d0828201612896565b8381528281019086840183880185018910156123eb57600080fd5b600093505b85841015612415576124018161237d565b8352600193909301929184019184016123f0565b50979650505050505050565b60006020828403121561243357600080fd5b6115458261237d565b6000806040838503121561244f57600080fd5b6124588361237d565b91506124666020840161237d565b90509250929050565b60008060006060848603121561248457600080fd5b61248d8461237d565b925061249b6020850161237d565b9150604084013590509250925092565b600080600080608085870312156124c157600080fd5b6124ca8561237d565b93506124d86020860161237d565b925060408501359150606085013567ffffffffffffffff8111156124fb57600080fd5b8501601f8101871361250c57600080fd5b61251b87823560208401612325565b91505092959194509250565b6000806040838503121561253a57600080fd5b6125438361237d565b91506020830135801515811461255857600080fd5b809150509250929050565b6000806040838503121561257657600080fd5b61257f8361237d565b946020939093013593505050565b6000806000606084860312156125a257600080fd5b833567ffffffffffffffff808211156125ba57600080fd5b6125c687838801612394565b945060208601359150808211156125dc57600080fd5b6125e887838801612394565b935060408601359150808211156125fe57600080fd5b5061260b86828701612394565b9150509250925092565b60006020828403121561262757600080fd5b813561154581612a75565b60006020828403121561264457600080fd5b815161154581612a75565b60006020828403121561266157600080fd5b813567ffffffffffffffff81111561267857600080fd5b8201601f8101841361268957600080fd5b6119b784823560208401612325565b6000602082840312156126aa57600080fd5b5035919050565b6000602082840312156126c357600080fd5b813560ff8116811461154557600080fd5b600081518084526126ec816020860160208601612971565b601f01601f19169290920160200192915050565b60008351612712818460208801612971565b835190830190612726818360208801612971565b01949350505050565b60008351612741818460208801612971565b835190830190612755818360208801612971565b64173539b7b760d91b9101908152600501949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906127a1908301846126d4565b9695505050505050565b60208152600061154560208301846126d4565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff811182821017156128bf576128bf612a5f565b604052919050565b600082198211156128da576128da612a07565b500190565b600060ff821660ff84168060ff038211156128fc576128fc612a07565b019392505050565b60008261291357612913612a1d565b500490565b600081600019048311821515161561293257612932612a07565b500290565b60008282101561294957612949612a07565b500390565b600060ff821660ff84168082101561296857612968612a07565b90039392505050565b60005b8381101561298c578181015183820152602001612974565b838111156114595750506000910152565b600181811c908216806129b157607f821691505b602082108114156129d257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156129ec576129ec612a07565b5060010190565b600082612a0257612a02612a1d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610da057600080fdfea2646970667358221220bc01c71211e93b2ef67f54cf61cce718dd34ae6d9a28c90640f4fdc5bb0eeeeb64736f6c63430008070033

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000e4e46486f6e65794261646765727300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044e46484200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002468747470733a2f2f6e66686f6e6579626164676572732e636f6d2f6d657461646174612f00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): NFHoneyBadgers
Arg [1] : _symbol (string): NFHB
Arg [2] : _initURI (string): https://nfhoneybadgers.com/metadata/

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [4] : 4e46486f6e657942616467657273000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 4e46484200000000000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000024
Arg [8] : 68747470733a2f2f6e66686f6e6579626164676572732e636f6d2f6d65746164
Arg [9] : 6174612f00000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

22212:5687:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18838:300;;;;;;;;;;-1:-1:-1;18838:300:0;;;;;:::i;:::-;;:::i;:::-;;;7897:14:1;;7890:22;7872:41;;7860:2;7845:18;18838:300:0;;;;;;;;11405:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12622:308::-;;;;;;;;;;-1:-1:-1;12622:308:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;7195:32:1;;;7177:51;;7165:2;7150:18;12622:308:0;7031:203:1;12203:411:0;;;;;;;;;;-1:-1:-1;12203:411:0;;;;;:::i;:::-;;:::i;:::-;;22490:32;;;;;;;;;;;;;;;;;;;19075:25:1;;;19063:2;19048:18;22490:32:0;18929:177:1;22308:28:0;;;;;;;;;;-1:-1:-1;22308:28:0;;;;-1:-1:-1;;;22308:28:0;;;;;;19497:113;;;;;;;;;;-1:-1:-1;19585:10:0;:17;19497:113;;22645:98;;;;;;;;;;;;;:::i;13495:376::-;;;;;;;;;;-1:-1:-1;13495:376:0;;;;;:::i;:::-;;:::i;19146:343::-;;;;;;;;;;-1:-1:-1;19146:343:0;;;;;:::i;:::-;;:::i;27550:91::-;;;;;;;;;;;;;:::i;22760:42::-;;;;;;;;;;-1:-1:-1;22760:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19283:4:1;19271:17;;;19253:36;;19241:2;19226:18;22760:42:0;19111:184:1;25560:721:0;;;;;;:::i;:::-;;:::i;27738:158::-;;;:::i;13879:185::-;;;;;;;;;;-1:-1:-1;13879:185:0;;;;;:::i;:::-;;:::i;19618:320::-;;;;;;;;;;-1:-1:-1;19618:320:0;;;;;:::i;:::-;;:::i;22382:33::-;;;;;;;;;;-1:-1:-1;22382:33:0;;;;-1:-1:-1;;;22382:33:0;;;;;;27318:104;;;;;;;;;;-1:-1:-1;27318:104:0;;;;;:::i;:::-;;:::i;11071:326::-;;;;;;;;;;-1:-1:-1;11071:326:0;;;;;:::i;:::-;;:::i;22615:21::-;;;;;;;;;;;;;:::i;27202:103::-;;;;;;;;;;-1:-1:-1;27202:103:0;;;;;:::i;:::-;;:::i;10768:295::-;;;;;;;;;;-1:-1:-1;10768:295:0;;;;;:::i;:::-;;:::i;8612:94::-;;;;;;;;;;;;;:::i;27649:81::-;;;;;;;;;;;;;:::i;23352:304::-;;;;;;;;;;-1:-1:-1;23352:304:0;;;;;:::i;:::-;;:::i;8389:87::-;;;;;;;;;;-1:-1:-1;8462:6:0;;-1:-1:-1;;;;;8462:6:0;8389:87;;11513:104;;;;;;;;;;;;;:::i;27431:106::-;;;;;;;;;;-1:-1:-1;27431:106:0;;;;;:::i;:::-;;:::i;23679:696::-;;;;;;:::i;:::-;;:::i;12938:327::-;;;;;;;;;;-1:-1:-1;12938:327:0;;;;;:::i;:::-;;:::i;14072:365::-;;;;;;;;;;-1:-1:-1;14072:365:0;;;;;:::i;:::-;;:::i;24606:946::-;;;;;;;;;;-1:-1:-1;24606:946:0;;;;;:::i;:::-;;:::i;22539:32::-;;;;;;;;;;;;;;;;22456:27;;;;;;;;;;;;;;;;26875:212;;;;;;;;;;-1:-1:-1;26875:212:0;;;;;:::i;:::-;;:::i;13273:214::-;;;;;;;;;;-1:-1:-1;13273:214:0;;;;;:::i;:::-;-1:-1:-1;;;;;13444:25:0;;;13415:4;13444:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;13273:214;22343:32;;;;;;;;;;-1:-1:-1;22343:32:0;;;;-1:-1:-1;;;22343:32:0;;;;;;8714:229;;;;;;;;;;-1:-1:-1;8714:229:0;;;;;:::i;:::-;;:::i;26293:571::-;;;;;;;;;;-1:-1:-1;26293:571:0;;;;;:::i;:::-;;:::i;27095:96::-;;;;;;;;;;;;;:::i;22426:23::-;;;;;;;;;;;;;;;;18838:300;18985:4;-1:-1:-1;;;;;;19027:50:0;;-1:-1:-1;;;19027:50:0;;:103;;;19094:36;19118:11;19094:23;:36::i;:::-;19007:123;18838:300;-1:-1:-1;;18838:300:0:o;11405:100::-;11459:13;11492:5;11485:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11405:100;:::o;12622:308::-;12743:7;14894:16;;;:7;:16;;;;;;-1:-1:-1;;;;;14894:16:0;12768:110;;;;-1:-1:-1;;;12768:110:0;;14300:2:1;12768:110:0;;;14282:21:1;14339:2;14319:18;;;14312:30;14378:34;14358:18;;;14351:62;-1:-1:-1;;;14429:18:1;;;14422:42;14481:19;;12768:110:0;;;;;;;;;-1:-1:-1;12898:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;12898:24:0;;12622:308::o;12203:411::-;12284:13;12300:23;12315:7;12300:14;:23::i;:::-;12284:39;;12348:5;-1:-1:-1;;;;;12342:11:0;:2;-1:-1:-1;;;;;12342:11:0;;;12334:57;;;;-1:-1:-1;;;12334:57:0;;16327:2:1;12334:57:0;;;16309:21:1;16366:2;16346:18;;;16339:30;16405:34;16385:18;;;16378:62;-1:-1:-1;;;16456:18:1;;;16449:31;16497:19;;12334:57:0;16125:397:1;12334:57:0;7999:10;-1:-1:-1;;;;;12426:21:0;;;;:62;;-1:-1:-1;12451:37:0;12468:5;7999:10;13273:214;:::i;12451:37::-;12404:168;;;;-1:-1:-1;;;12404:168:0;;11878:2:1;12404:168:0;;;11860:21:1;11917:2;11897:18;;;11890:30;11956:34;11936:18;;;11929:62;12027:26;12007:18;;;12000:54;12071:19;;12404:168:0;11676:420:1;12404:168:0;12585:21;12594:2;12598:7;12585:8;:21::i;:::-;12273:341;12203:411;;:::o;22645:98::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13495:376::-;13704:41;7999:10;13737:7;13704:18;:41::i;:::-;13682:140;;;;-1:-1:-1;;;13682:140:0;;;;;;;:::i;:::-;13835:28;13845:4;13851:2;13855:7;13835:9;:28::i;19146:343::-;19288:7;19343:23;19360:5;19343:16;:23::i;:::-;19335:5;:31;19313:124;;;;-1:-1:-1;;;19313:124:0;;8705:2:1;19313:124:0;;;8687:21:1;8744:2;8724:18;;;8717:30;8783:34;8763:18;;;8756:62;-1:-1:-1;;;8834:18:1;;;8827:41;8885:19;;19313:124:0;8503:407:1;19313:124:0;-1:-1:-1;;;;;;19455:19:0;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;19146:343::o;27550:91::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27621:12:::1;::::0;;-1:-1:-1;;;;27605:28:0;::::1;-1:-1:-1::0;;;27621:12:0;;;::::1;;;27620:13;27605:28:::0;;::::1;;::::0;;27550:91::o;25560:721::-;25631:13;;-1:-1:-1;;;25631:13:0;;;;25623:60;;;;-1:-1:-1;;;25623:60:0;;18367:2:1;25623:60:0;;;18349:21:1;18406:2;18386:18;;;18379:30;18445:34;18425:18;;;18418:62;-1:-1:-1;;;18496:18:1;;;18489:32;18538:19;;25623:60:0;18165:398:1;25623:60:0;25726:1;25716:7;:11;;;:73;;;;-1:-1:-1;25778:10:0;25768:21;;;;:9;:21;;;;;;;;;25742:23;;:10;:23::i;:::-;:47;;;;:::i;:::-;25731:58;;:7;:58;;;;25716:73;25694:182;;;;-1:-1:-1;;;25694:182:0;;15900:2:1;25694:182:0;;;15882:21:1;15939:2;15919:18;;;15912:30;15978:34;15958:18;;;15951:62;16049:28;16029:18;;;16022:56;16095:19;;25694:182:0;15698:422:1;25694:182:0;25936:3;25924:7;25909:22;;:12;;:22;;;;:::i;:::-;:30;;25887:138;;;;-1:-1:-1;;;25887:138:0;;11472:2:1;25887:138:0;;;11454:21:1;11511:2;11491:18;;;11484:30;11550:34;11530:18;;;11523:62;-1:-1:-1;;;11601:18:1;;;11594:35;11646:19;;25887:138:0;11270:401:1;25887:138:0;26080:7;26071:16;;:6;;:16;;;;:::i;:::-;26058:9;:29;;26036:119;;;;-1:-1:-1;;;26036:119:0;;13124:2:1;26036:119:0;;;13106:21:1;13163:2;13143:18;;;13136:30;13202:34;13182:18;;;13175:62;-1:-1:-1;;;13253:18:1;;;13246:37;13300:19;;26036:119:0;12922:403:1;26036:119:0;26196:7;26181:22;;:12;;:22;;;;:::i;:::-;26166:12;:37;26225:10;26215:21;;;;:9;:21;;;;;:32;;26240:7;;26215:21;:32;;26240:7;;26215:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;26259:14;26265:7;26259:14;;:5;:14::i;:::-;25560:721;:::o;27738:158::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27850:38:::1;::::0;27828:10:::1;::::0;;;27866:21:::1;27850:38:::0;::::1;;;::::0;27795:22:::1;27850:38:::0;27795:22;27850:38;27866:21;27828:10;27850:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;27785:111;27738:158::o:0;13879:185::-;14017:39;14034:4;14040:2;14044:7;14017:39;;;;;;;;;;;;:16;:39::i;19618:320::-;19738:7;19793:30;19585:10;:17;;19497:113;19793:30;19785:5;:38;19763:132;;;;-1:-1:-1;;;19763:132:0;;17954:2:1;19763:132:0;;;17936:21:1;17993:2;17973:18;;;17966:30;18032:34;18012:18;;;18005:62;-1:-1:-1;;;18083:18:1;;;18076:42;18135:19;;19763:132:0;17752:408:1;19763:132:0;19913:10;19924:5;19913:17;;;;;;;;:::i;:::-;;;;;;;;;19906:24;;19618:320;;;:::o;27318:104::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27393:21;;::::1;::::0;:7:::1;::::0;:21:::1;::::0;::::1;::::0;::::1;:::i;11071:326::-:0;11188:7;11229:16;;;:7;:16;;;;;;-1:-1:-1;;;;;11229:16:0;11278:19;11256:110;;;;-1:-1:-1;;;11256:110:0;;12714:2:1;11256:110:0;;;12696:21:1;12753:2;12733:18;;;12726:30;12792:34;12772:18;;;12765:62;-1:-1:-1;;;12843:18:1;;;12836:39;12892:19;;11256:110:0;12512:405:1;22615:21:0;;;;;;;:::i;27202:103::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27274:9:::1;:22:::0;27202:103::o;10768:295::-;10885:7;-1:-1:-1;;;;;10932:19:0;;10910:111;;;;-1:-1:-1;;;10910:111:0;;12303:2:1;10910:111:0;;;12285:21:1;12342:2;12322:18;;;12315:30;12381:34;12361:18;;;12354:62;-1:-1:-1;;;12432:18:1;;;12425:40;12482:19;;10910:111:0;12101:406:1;10910:111:0;-1:-1:-1;;;;;;11039:16:0;;;;;:9;:16;;;;;;;10768:295::o;8612:94::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;8677:21:::1;8695:1;8677:9;:21::i;:::-;8612:94::o:0;27649:81::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27714:8:::1;::::0;;-1:-1:-1;;;;27702:20:0;::::1;-1:-1:-1::0;;;27714:8:0;;;::::1;;;27713:9;27702:20:::0;;::::1;;::::0;;27649:81::o;23352:304::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;23474:3:::1;23455:15;23444:8;;:26;;;;:::i;:::-;:33;;23422:144;;;::::0;-1:-1:-1;;;23422:144:0;;16729:2:1;23422:144:0::1;::::0;::::1;16711:21:1::0;16768:2;16748:18;;;16741:30;16807:34;16787:18;;;16780:62;-1:-1:-1;;;16858:18:1;;;16851:32;16900:19;;23422:144:0::1;16527:398:1::0;23422:144:0::1;23599:15;23588:8;;:26;;;;:::i;:::-;23577:8;:37:::0;23626:22:::1;23632:15:::0;23626:5:::1;:22::i;11513:104::-:0;11569:13;11602:7;11595:14;;;;;:::i;27431:106::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27508:21;;::::1;::::0;:11:::1;::::0;:21:::1;::::0;::::1;::::0;::::1;:::i;23679:696::-:0;23742:14;23759:13;19585:10;:17;;19497:113;23759:13;23742:30;-1:-1:-1;23783:23:0;23809;7999:10;10768:295;:::i;23809:23::-;23853:12;;23783:49;;-1:-1:-1;;;;23853:12:0;;;;23845:60;;;;-1:-1:-1;;;23845:60:0;;17550:2:1;23845:60:0;;;17532:21:1;17589:2;17569:18;;;17562:30;17628:34;17608:18;;;17601:62;-1:-1:-1;;;17679:18:1;;;17672:33;17722:19;;23845:60:0;17348:399:1;23845:60:0;23952:1;23938:11;:15;:35;;;;;23972:1;23957:11;:16;;23938:35;23916:117;;;;-1:-1:-1;;;23916:117:0;;18770:2:1;23916:117:0;;;18752:21:1;;;18789:18;;;18782:30;18848:34;18828:18;;;18821:62;18900:18;;23916:117:0;18568:356:1;23916:117:0;24090:9;;24066:20;24075:11;24066:6;:20;:::i;:::-;:33;;24044:109;;;;-1:-1:-1;;;24044:109:0;;8350:2:1;24044:109:0;;;8332:21:1;8389:2;8369:18;;;8362:30;8428:28;8408:18;;;8401:56;8474:18;;24044:109:0;8148:350:1;24044:109:0;24219:1;24186:29;24204:11;24186:15;:29;:::i;:::-;:34;;24164:122;;;;-1:-1:-1;;;24164:122:0;;13893:2:1;24164:122:0;;;13875:21:1;13932:2;13912:18;;;13905:30;13971:34;13951:18;;;13944:62;-1:-1:-1;;;14022:18:1;;;14015:36;14068:19;;24164:122:0;13691:402:1;24164:122:0;24325:11;24318:4;;:18;;;;:::i;:::-;24305:9;:31;;24297:41;;;;;;24349:18;24355:11;24349:5;:18::i;12938:327::-;-1:-1:-1;;;;;13073:24:0;;7999:10;13073:24;;13065:62;;;;-1:-1:-1;;;13065:62:0;;10705:2:1;13065:62:0;;;10687:21:1;10744:2;10724:18;;;10717:30;10783:27;10763:18;;;10756:55;10828:18;;13065:62:0;10503:349:1;13065:62:0;7999:10;13140:32;;;;:18;:32;;;;;;;;-1:-1:-1;;;;;13140:42:0;;;;;;;;;;;;:53;;-1:-1:-1;;13140:53:0;;;;;;;;;;13209:48;;7872:41:1;;;13140:42:0;;7999:10;13209:48;;7845:18:1;13209:48:0;;;;;;;12938:327;;:::o;14072:365::-;14261:41;7999:10;14294:7;14261:18;:41::i;:::-;14239:140;;;;-1:-1:-1;;;14239:140:0;;;;;;;:::i;:::-;14390:39;14404:4;14410:2;14414:7;14423:5;14390:13;:39::i;:::-;14072:365;;;;:::o;24606:946::-;14870:4;14894:16;;;:7;:16;;;;;;24707:13;;-1:-1:-1;;;;;14894:16:0;24738:113;;;;-1:-1:-1;;;24738:113:0;;15484:2:1;24738:113:0;;;15466:21:1;15523:2;15503:18;;;15496:30;15562:34;15542:18;;;15535:62;-1:-1:-1;;;15613:18:1;;;15606:45;15668:19;;24738:113:0;15282:411:1;24738:113:0;24866:8;;-1:-1:-1;;;24866:8:0;;;;24862:683;;;24891:28;24922:10;:8;:10::i;:::-;24891:41;;25002:1;24977:14;24971:28;:32;:190;;;;;;;;;;;;;;;;;25077:14;25093:18;:7;:16;:18::i;:::-;25060:52;;;;;;;;;:::i;:::-;;;;;;;;;;;;;24971:190;24947:214;24606:946;-1:-1:-1;;;24606:946:0:o;24862:683::-;25211:32;25246:14;:12;:14::i;:::-;25211:49;;25334:1;25305:18;25299:32;:36;:206;;;;;;;;;;;;;;;;;25409:18;25429;:7;:16;:18::i;:::-;25392:64;;;;;;;;;:::i;24862:683::-;24606:946;;;:::o;26875:212::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27019:10;;::::1;::::0;:5:::1;::::0;:10:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;27042:10:0;;::::1;::::0;:5:::1;::::0;:10:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;27064:10:0;;::::1;::::0;:5:::1;::::0;:10:::1;::::0;::::1;::::0;::::1;:::i;8714:229::-:0;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8817:22:0;::::1;8795:110;;;::::0;-1:-1:-1;;;8795:110:0;;9536:2:1;8795:110:0::1;::::0;::::1;9518:21:1::0;9575:2;9555:18;;;9548:30;9614:34;9594:18;;;9587:62;-1:-1:-1;;;9665:18:1;;;9658:36;9711:19;;8795:110:0::1;9334:402:1::0;8795:110:0::1;8916:19;8926:8;8916:9;:19::i;26293:571::-:0;26348:5;;26380:142;26403:5;:12;26399:16;;26380:142;;;26454:5;-1:-1:-1;;;;;26442:17:0;:5;26448:1;26442:8;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;26442:8:0;:17;26439:70;;;-1:-1:-1;26488:1:0;;26293:571;-1:-1:-1;;26293:571:0:o;26439:70::-;26418:3;;;;:::i;:::-;;;;26380:142;;;;26539:9;26535:142;26558:5;:12;26554:16;;26535:142;;;26609:5;-1:-1:-1;;;;;26597:17:0;:5;26603:1;26597:8;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;26597:8:0;:17;26594:70;;;-1:-1:-1;26643:1:0;;26293:571;-1:-1:-1;;26293:571:0:o;26594:70::-;26573:3;;;;:::i;:::-;;;;26535:142;;;;26693:9;26689:142;26712:5;:12;26708:16;;26689:142;;;26763:5;-1:-1:-1;;;;;26751:17:0;:5;26757:1;26751:8;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;26751:8:0;:17;26748:70;;;-1:-1:-1;26797:1:0;;26293:571;-1:-1:-1;;26293:571:0:o;26748:70::-;26727:3;;;;:::i;:::-;;;;26689:142;;;-1:-1:-1;26853:1:0;;26293:571;-1:-1:-1;;26293:571:0:o;27095:96::-;8462:6;;-1:-1:-1;;;;;8462:6:0;7999:10;8524:23;8516:68;;;;-1:-1:-1;;;8516:68:0;;;;;;;:::i;:::-;27170:13:::1;::::0;;-1:-1:-1;;;;27153:30:0;::::1;-1:-1:-1::0;;;27170:13:0;;;::::1;;;27169:14;27153:30:::0;;::::1;;::::0;;27095:96::o;10405:355::-;10552:4;-1:-1:-1;;;;;;10594:40:0;;-1:-1:-1;;;10594:40:0;;:105;;-1:-1:-1;;;;;;;10651:48:0;;-1:-1:-1;;;10651:48:0;10594:105;:158;;;-1:-1:-1;;;;;;;;;;9538:40:0;;;10716:36;9379:207;17228:174;17303:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;17303:29:0;-1:-1:-1;;;;;17303:29:0;;;;;;;;:24;;17357:23;17303:24;17357:14;:23::i;:::-;-1:-1:-1;;;;;17348:46:0;;;;;;;;;;;17228:174;;:::o;14940:452::-;15069:4;14894:16;;;:7;:16;;;;;;-1:-1:-1;;;;;14894:16:0;15091:110;;;;-1:-1:-1;;;15091:110:0;;11059:2:1;15091:110:0;;;11041:21:1;11098:2;11078:18;;;11071:30;11137:34;11117:18;;;11110:62;-1:-1:-1;;;11188:18:1;;;11181:42;11240:19;;15091:110:0;10857:408:1;15091:110:0;15212:13;15228:23;15243:7;15228:14;:23::i;:::-;15212:39;;15281:5;-1:-1:-1;;;;;15270:16:0;:7;-1:-1:-1;;;;;15270:16:0;;:64;;;;15327:7;-1:-1:-1;;;;;15303:31:0;:20;15315:7;15303:11;:20::i;:::-;-1:-1:-1;;;;;15303:31:0;;15270:64;:113;;;-1:-1:-1;;;;;;13444:25:0;;;13415:4;13444:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;15351:32;15262:122;14940:452;-1:-1:-1;;;;14940:452:0:o;16605:615::-;16778:4;-1:-1:-1;;;;;16751:31:0;:23;16766:7;16751:14;:23::i;:::-;-1:-1:-1;;;;;16751:31:0;;16729:122;;;;-1:-1:-1;;;16729:122:0;;15074:2:1;16729:122:0;;;15056:21:1;15113:2;15093:18;;;15086:30;15152:34;15132:18;;;15125:62;-1:-1:-1;;;15203:18:1;;;15196:39;15252:19;;16729:122:0;14872:405:1;16729:122:0;-1:-1:-1;;;;;16870:16:0;;16862:65;;;;-1:-1:-1;;;16862:65:0;;10300:2:1;16862:65:0;;;10282:21:1;10339:2;10319:18;;;10312:30;10378:34;10358:18;;;10351:62;-1:-1:-1;;;10429:18:1;;;10422:34;10473:19;;16862:65:0;10098:400:1;16862:65:0;16940:39;16961:4;16967:2;16971:7;16940:20;:39::i;:::-;17044:29;17061:1;17065:7;17044:8;:29::i;:::-;-1:-1:-1;;;;;17086:15:0;;;;;;:9;:15;;;;;:20;;17105:1;;17086:15;:20;;17105:1;;17086:20;:::i;:::-;;;;-1:-1:-1;;;;;;;17117:13:0;;;;;;:9;:13;;;;;:18;;17134:1;;17117:13;:18;;17134:1;;17117:18;:::i;:::-;;;;-1:-1:-1;;17146:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;17146:21:0;-1:-1:-1;;;;;17146:21:0;;;;;;;;;17185:27;;17146:16;;17185:27;;;;;;;16605:615;;;:::o;24383:215::-;24443:14;24460:13;19585:10;:17;;19497:113;24460:13;24443:30;-1:-1:-1;24501:1:0;24484:107;24509:15;24504:1;:20;24484:107;;24546:33;24556:10;24568;24577:1;24568:6;:10;:::i;:::-;24546:9;:33::i;:::-;24526:3;;;;:::i;:::-;;;;24484:107;;8951:173;9026:6;;;-1:-1:-1;;;;;9043:17:0;;;-1:-1:-1;;;;;;9043:17:0;;;;;;;9076:40;;9026:6;;;9043:17;9026:6;;9076:40;;9007:16;;9076:40;8996:128;8951:173;:::o;14445:352::-;14602:28;14612:4;14618:2;14622:7;14602:9;:28::i;:::-;14663:48;14686:4;14692:2;14696:7;14705:5;14663:22;:48::i;:::-;14641:148;;;;-1:-1:-1;;;14641:148:0;;;;;;;:::i;23126:109::-;23186:13;23219:7;23212:14;;;;;:::i;321:723::-;377:13;598:10;594:53;;-1:-1:-1;;625:10:0;;;;;;;;;;;;-1:-1:-1;;;625:10:0;;;;;321:723::o;594:53::-;672:5;657:12;713:78;720:9;;713:78;;746:8;;;;:::i;:::-;;-1:-1:-1;769:10:0;;-1:-1:-1;777:2:0;769:10;;:::i;:::-;;;713:78;;;801:19;833:6;823:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;823:17:0;;801:39;;851:154;858:10;;851:154;;885:11;895:1;885:11;;:::i;:::-;;-1:-1:-1;954:10:0;962:2;954:5;:10;:::i;:::-;941:24;;:2;:24;:::i;:::-;928:39;;911:6;918;911:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;911:56:0;;;;;;;;-1:-1:-1;982:11:0;991:2;982:11;;:::i;:::-;;;851:154;;23244:100;23291:13;23324:11;23317:18;;;;;:::i;19946:589::-;-1:-1:-1;;;;;20152:18:0;;20148:187;;20187:40;20219:7;20876:10;:17;;20849:24;;;;:15;:24;;;;;:44;;;20904:24;;;;;;;;;;;;20772:164;20187:40;20148:187;;;20257:2;-1:-1:-1;;;;;20249:10:0;:4;-1:-1:-1;;;;;20249:10:0;;20245:90;;20276:47;20309:4;20315:7;20276:32;:47::i;:::-;-1:-1:-1;;;;;20349:16:0;;20345:183;;20382:45;20419:7;20382:36;:45::i;20345:183::-;20455:4;-1:-1:-1;;;;;20449:10:0;:2;-1:-1:-1;;;;;20449:10:0;;20445:83;;20476:40;20504:2;20508:7;20476:27;:40::i;15400:110::-;15476:26;15486:2;15490:7;15476:26;;;;;;;;;;;;:9;:26::i;17410:980::-;17565:4;-1:-1:-1;;;;;17586:13:0;;2267:20;2315:8;17582:801;;17639:175;;-1:-1:-1;;;17639:175:0;;-1:-1:-1;;;;;17639:36:0;;;;;:175;;7999:10;;17733:4;;17760:7;;17790:5;;17639:175;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17639:175:0;;;;;;;;-1:-1:-1;;17639:175:0;;;;;;;;;;;;:::i;:::-;;;17618:710;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17997:13:0;;17993:320;;18040:108;;-1:-1:-1;;;18040:108:0;;;;;;;:::i;17993:320::-;18263:6;18257:13;18248:6;18244:2;18240:15;18233:38;17618:710;-1:-1:-1;;;;;;17878:51:0;-1:-1:-1;;;17878:51:0;;-1:-1:-1;17871:58:0;;17582:801;-1:-1:-1;18367:4:0;17410:980;;;;;;:::o;20944:659::-;21050:22;21100:1;21075:22;21092:4;21075:16;:22::i;:::-;:26;;;;:::i;:::-;21112:18;21133:26;;;:17;:26;;;;;;21050:51;;-1:-1:-1;21174:28:0;;;21170:328;;-1:-1:-1;;;;;21241:18:0;;21219:19;21241:18;;;:12;:18;;;;;;;;:34;;;;;;;;;21292:30;;;;;;:44;;;21409:30;;:17;:30;;;;;:43;;;21170:328;-1:-1:-1;21517:26:0;;;;:17;:26;;;;;;;;21510:33;;;-1:-1:-1;;;;;21561:18:0;;;;;:12;:18;;;;;:34;;;;;;;21554:41;20944:659::o;21611:594::-;21718:10;:17;21693:22;;21718:21;;21738:1;;21718:21;:::i;:::-;21750:18;21771:24;;;:15;:24;;;;;;21830:10;:26;;21693:46;;-1:-1:-1;21771:24:0;;21693:46;;21830:26;;;;;;:::i;:::-;;;;;;;;;21808:48;;21894:11;21869:10;21880;21869:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;;21974:28;;;:15;:28;;;;;;;:41;;;22146:24;;;;;22139:31;22181:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;21682:523;;;21611:594;:::o;20543:221::-;20628:14;20645:20;20662:2;20645:16;:20::i;:::-;-1:-1:-1;;;;;20676:16:0;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;20721:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;20543:221:0:o;15518:321::-;15648:18;15654:2;15658:7;15648:5;:18::i;:::-;15699:54;15730:1;15734:2;15738:7;15747:5;15699:22;:54::i;:::-;15677:154;;;;-1:-1:-1;;;15677:154:0;;;;;;;:::i;15847:382::-;-1:-1:-1;;;;;15927:16:0;;15919:61;;;;-1:-1:-1;;;15919:61:0;;13532:2:1;15919:61:0;;;13514:21:1;;;13551:18;;;13544:30;13610:34;13590:18;;;13583:62;13662:18;;15919:61:0;13330:356:1;15919:61:0;14870:4;14894:16;;;:7;:16;;;;;;-1:-1:-1;;;;;14894:16:0;:30;15991:58;;;;-1:-1:-1;;;15991:58:0;;9943:2:1;15991:58:0;;;9925:21:1;9982:2;9962:18;;;9955:30;10021;10001:18;;;9994:58;10069:18;;15991:58:0;9741:352:1;15991:58:0;16062:45;16091:1;16095:2;16099:7;16062:20;:45::i;:::-;-1:-1:-1;;;;;16120:13:0;;;;;;:9;:13;;;;;:18;;16137:1;;16120:13;:18;;16137:1;;16120:18;:::i;:::-;;;;-1:-1:-1;;16149:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;16149:21:0;-1:-1:-1;;;;;16149:21:0;;;;;;;;16188:33;;16149:16;;;16188:33;;16149:16;;16188:33;15847:382;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:406:1;78:5;112:18;104:6;101:30;98:56;;;134:18;;:::i;:::-;172:57;217:2;196:15;;-1:-1:-1;;192:29:1;223:4;188:40;172:57;:::i;:::-;163:66;;252:6;245:5;238:21;292:3;283:6;278:3;274:16;271:25;268:45;;;309:1;306;299:12;268:45;358:6;353:3;346:4;339:5;335:16;322:43;412:1;405:4;396:6;389:5;385:18;381:29;374:40;14:406;;;;;:::o;425:173::-;493:20;;-1:-1:-1;;;;;542:31:1;;532:42;;522:70;;588:1;585;578:12;603:729;657:5;710:3;703:4;695:6;691:17;687:27;677:55;;728:1;725;718:12;677:55;764:6;751:20;790:4;813:18;809:2;806:26;803:52;;;835:18;;:::i;:::-;881:2;878:1;874:10;904:28;928:2;924;920:11;904:28;:::i;:::-;966:15;;;997:12;;;;1029:15;;;1063;;;1059:24;;1056:33;-1:-1:-1;1053:53:1;;;1102:1;1099;1092:12;1053:53;1124:1;1115:10;;1134:169;1148:2;1145:1;1142:9;1134:169;;;1205:23;1224:3;1205:23;:::i;:::-;1193:36;;1166:1;1159:9;;;;;1249:12;;;;1281;;1134:169;;;-1:-1:-1;1321:5:1;603:729;-1:-1:-1;;;;;;;603:729:1:o;1337:186::-;1396:6;1449:2;1437:9;1428:7;1424:23;1420:32;1417:52;;;1465:1;1462;1455:12;1417:52;1488:29;1507:9;1488:29;:::i;1528:260::-;1596:6;1604;1657:2;1645:9;1636:7;1632:23;1628:32;1625:52;;;1673:1;1670;1663:12;1625:52;1696:29;1715:9;1696:29;:::i;:::-;1686:39;;1744:38;1778:2;1767:9;1763:18;1744:38;:::i;:::-;1734:48;;1528:260;;;;;:::o;1793:328::-;1870:6;1878;1886;1939:2;1927:9;1918:7;1914:23;1910:32;1907:52;;;1955:1;1952;1945:12;1907:52;1978:29;1997:9;1978:29;:::i;:::-;1968:39;;2026:38;2060:2;2049:9;2045:18;2026:38;:::i;:::-;2016:48;;2111:2;2100:9;2096:18;2083:32;2073:42;;1793:328;;;;;:::o;2126:666::-;2221:6;2229;2237;2245;2298:3;2286:9;2277:7;2273:23;2269:33;2266:53;;;2315:1;2312;2305:12;2266:53;2338:29;2357:9;2338:29;:::i;:::-;2328:39;;2386:38;2420:2;2409:9;2405:18;2386:38;:::i;:::-;2376:48;;2471:2;2460:9;2456:18;2443:32;2433:42;;2526:2;2515:9;2511:18;2498:32;2553:18;2545:6;2542:30;2539:50;;;2585:1;2582;2575:12;2539:50;2608:22;;2661:4;2653:13;;2649:27;-1:-1:-1;2639:55:1;;2690:1;2687;2680:12;2639:55;2713:73;2778:7;2773:2;2760:16;2755:2;2751;2747:11;2713:73;:::i;:::-;2703:83;;;2126:666;;;;;;;:::o;2797:347::-;2862:6;2870;2923:2;2911:9;2902:7;2898:23;2894:32;2891:52;;;2939:1;2936;2929:12;2891:52;2962:29;2981:9;2962:29;:::i;:::-;2952:39;;3041:2;3030:9;3026:18;3013:32;3088:5;3081:13;3074:21;3067:5;3064:32;3054:60;;3110:1;3107;3100:12;3054:60;3133:5;3123:15;;;2797:347;;;;;:::o;3149:254::-;3217:6;3225;3278:2;3266:9;3257:7;3253:23;3249:32;3246:52;;;3294:1;3291;3284:12;3246:52;3317:29;3336:9;3317:29;:::i;:::-;3307:39;3393:2;3378:18;;;;3365:32;;-1:-1:-1;;;3149:254:1:o;3408:821::-;3560:6;3568;3576;3629:2;3617:9;3608:7;3604:23;3600:32;3597:52;;;3645:1;3642;3635:12;3597:52;3685:9;3672:23;3714:18;3755:2;3747:6;3744:14;3741:34;;;3771:1;3768;3761:12;3741:34;3794:61;3847:7;3838:6;3827:9;3823:22;3794:61;:::i;:::-;3784:71;;3908:2;3897:9;3893:18;3880:32;3864:48;;3937:2;3927:8;3924:16;3921:36;;;3953:1;3950;3943:12;3921:36;3976:63;4031:7;4020:8;4009:9;4005:24;3976:63;:::i;:::-;3966:73;;4092:2;4081:9;4077:18;4064:32;4048:48;;4121:2;4111:8;4108:16;4105:36;;;4137:1;4134;4127:12;4105:36;;4160:63;4215:7;4204:8;4193:9;4189:24;4160:63;:::i;:::-;4150:73;;;3408:821;;;;;:::o;4234:245::-;4292:6;4345:2;4333:9;4324:7;4320:23;4316:32;4313:52;;;4361:1;4358;4351:12;4313:52;4400:9;4387:23;4419:30;4443:5;4419:30;:::i;4484:249::-;4553:6;4606:2;4594:9;4585:7;4581:23;4577:32;4574:52;;;4622:1;4619;4612:12;4574:52;4654:9;4648:16;4673:30;4697:5;4673:30;:::i;4738:450::-;4807:6;4860:2;4848:9;4839:7;4835:23;4831:32;4828:52;;;4876:1;4873;4866:12;4828:52;4916:9;4903:23;4949:18;4941:6;4938:30;4935:50;;;4981:1;4978;4971:12;4935:50;5004:22;;5057:4;5049:13;;5045:27;-1:-1:-1;5035:55:1;;5086:1;5083;5076:12;5035:55;5109:73;5174:7;5169:2;5156:16;5151:2;5147;5143:11;5109:73;:::i;5193:180::-;5252:6;5305:2;5293:9;5284:7;5280:23;5276:32;5273:52;;;5321:1;5318;5311:12;5273:52;-1:-1:-1;5344:23:1;;5193:180;-1:-1:-1;5193:180:1:o;5378:269::-;5435:6;5488:2;5476:9;5467:7;5463:23;5459:32;5456:52;;;5504:1;5501;5494:12;5456:52;5543:9;5530:23;5593:4;5586:5;5582:16;5575:5;5572:27;5562:55;;5613:1;5610;5603:12;5652:257;5693:3;5731:5;5725:12;5758:6;5753:3;5746:19;5774:63;5830:6;5823:4;5818:3;5814:14;5807:4;5800:5;5796:16;5774:63;:::i;:::-;5891:2;5870:15;-1:-1:-1;;5866:29:1;5857:39;;;;5898:4;5853:50;;5652:257;-1:-1:-1;;5652:257:1:o;5914:470::-;6093:3;6131:6;6125:13;6147:53;6193:6;6188:3;6181:4;6173:6;6169:17;6147:53;:::i;:::-;6263:13;;6222:16;;;;6285:57;6263:13;6222:16;6319:4;6307:17;;6285:57;:::i;:::-;6358:20;;5914:470;-1:-1:-1;;;;5914:470:1:o;6389:637::-;6669:3;6707:6;6701:13;6723:53;6769:6;6764:3;6757:4;6749:6;6745:17;6723:53;:::i;:::-;6839:13;;6798:16;;;;6861:57;6839:13;6798:16;6895:4;6883:17;;6861:57;:::i;:::-;-1:-1:-1;;;6940:20:1;;6969:22;;;7018:1;7007:13;;6389:637;-1:-1:-1;;;;6389:637:1:o;7239:488::-;-1:-1:-1;;;;;7508:15:1;;;7490:34;;7560:15;;7555:2;7540:18;;7533:43;7607:2;7592:18;;7585:34;;;7655:3;7650:2;7635:18;;7628:31;;;7433:4;;7676:45;;7701:19;;7693:6;7676:45;:::i;:::-;7668:53;7239:488;-1:-1:-1;;;;;;7239:488:1:o;7924:219::-;8073:2;8062:9;8055:21;8036:4;8093:44;8133:2;8122:9;8118:18;8110:6;8093:44;:::i;8915:414::-;9117:2;9099:21;;;9156:2;9136:18;;;9129:30;9195:34;9190:2;9175:18;;9168:62;-1:-1:-1;;;9261:2:1;9246:18;;9239:48;9319:3;9304:19;;8915:414::o;14511:356::-;14713:2;14695:21;;;14732:18;;;14725:30;14791:34;14786:2;14771:18;;14764:62;14858:2;14843:18;;14511:356::o;16930:413::-;17132:2;17114:21;;;17171:2;17151:18;;;17144:30;17210:34;17205:2;17190:18;;17183:62;-1:-1:-1;;;17276:2:1;17261:18;;17254:47;17333:3;17318:19;;16930:413::o;19300:275::-;19371:2;19365:9;19436:2;19417:13;;-1:-1:-1;;19413:27:1;19401:40;;19471:18;19456:34;;19492:22;;;19453:62;19450:88;;;19518:18;;:::i;:::-;19554:2;19547:22;19300:275;;-1:-1:-1;19300:275:1:o;19580:128::-;19620:3;19651:1;19647:6;19644:1;19641:13;19638:39;;;19657:18;;:::i;:::-;-1:-1:-1;19693:9:1;;19580:128::o;19713:204::-;19751:3;19787:4;19784:1;19780:12;19819:4;19816:1;19812:12;19854:3;19848:4;19844:14;19839:3;19836:23;19833:49;;;19862:18;;:::i;:::-;19898:13;;19713:204;-1:-1:-1;;;19713:204:1:o;19922:120::-;19962:1;19988;19978:35;;19993:18;;:::i;:::-;-1:-1:-1;20027:9:1;;19922:120::o;20047:168::-;20087:7;20153:1;20149;20145:6;20141:14;20138:1;20135:21;20130:1;20123:9;20116:17;20112:45;20109:71;;;20160:18;;:::i;:::-;-1:-1:-1;20200:9:1;;20047:168::o;20220:125::-;20260:4;20288:1;20285;20282:8;20279:34;;;20293:18;;:::i;:::-;-1:-1:-1;20330:9:1;;20220:125::o;20350:195::-;20388:4;20425;20422:1;20418:12;20457:4;20454:1;20450:12;20482:3;20477;20474:12;20471:38;;;20489:18;;:::i;:::-;20526:13;;;20350:195;-1:-1:-1;;;20350:195:1:o;20550:258::-;20622:1;20632:113;20646:6;20643:1;20640:13;20632:113;;;20722:11;;;20716:18;20703:11;;;20696:39;20668:2;20661:10;20632:113;;;20763:6;20760:1;20757:13;20754:48;;;-1:-1:-1;;20798:1:1;20780:16;;20773:27;20550:258::o;20813:380::-;20892:1;20888:12;;;;20935;;;20956:61;;21010:4;21002:6;20998:17;20988:27;;20956:61;21063:2;21055:6;21052:14;21032:18;21029:38;21026:161;;;21109:10;21104:3;21100:20;21097:1;21090:31;21144:4;21141:1;21134:15;21172:4;21169:1;21162:15;21026:161;;20813:380;;;:::o;21198:135::-;21237:3;-1:-1:-1;;21258:17:1;;21255:43;;;21278:18;;:::i;:::-;-1:-1:-1;21325:1:1;21314:13;;21198:135::o;21338:112::-;21370:1;21396;21386:35;;21401:18;;:::i;:::-;-1:-1:-1;21435:9:1;;21338:112::o;21455:127::-;21516:10;21511:3;21507:20;21504:1;21497:31;21547:4;21544:1;21537:15;21571:4;21568:1;21561:15;21587:127;21648:10;21643:3;21639:20;21636:1;21629:31;21679:4;21676:1;21669:15;21703:4;21700:1;21693:15;21719:127;21780:10;21775:3;21771:20;21768:1;21761:31;21811:4;21808:1;21801:15;21835:4;21832:1;21825:15;21851:127;21912:10;21907:3;21903:20;21900:1;21893:31;21943:4;21940:1;21933:15;21967:4;21964:1;21957:15;21983:127;22044:10;22039:3;22035:20;22032:1;22025:31;22075:4;22072:1;22065:15;22099:4;22096:1;22089:15;22115:131;-1:-1:-1;;;;;;22189:32:1;;22179:43;;22169:71;;22236:1;22233;22226:12

Swarm Source

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