ETH Price: $3,269.22 (-0.38%)
Gas: 2 Gwei

Token

HoodStarz (HSZ)
 

Overview

Max Total Supply

2,255 HSZ

Holders

83

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
1 HSZ
0x54f7df562278788259332c890aea31d7d127a714
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:
HoodStarz

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/**
 * @title HoodStarz
 * @author Shahid Ahmed
 * @dev Used for Ethereum projects compatible with OpenSea
 */
pragma solidity >=0.8.4;

pragma solidity ^0.8.0;
interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

pragma solidity ^0.8.0;
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;
}

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

pragma solidity ^0.8.0;
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);
}

pragma solidity ^0.8.0;
library Address {
    function isContract(address account) internal view returns (bool) {
        // construction, since the code is only stored at the end of the

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

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

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

pragma solidity ^0.8.0;
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
    function toString(uint256 value) internal pure returns (string memory) {
        // 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);
    }
    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);
    }
    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);
    }
}

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

pragma solidity ^0.8.0;
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 {
        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);
        _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);
        _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 {}
}

pragma solidity ^0.8.0;
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);
    }
}

pragma solidity ^0.8.0;
library MerkleProof {
    function verify(
        bytes32[] memory proof,
        bytes32 root,
        bytes32 leaf
    ) internal pure returns (bool) {
        return processProof(proof, leaf) == root;
    }

    function processProof(bytes32[] memory proof, bytes32 leaf)
        internal
        pure
        returns (bytes32)
    {
        bytes32 computedHash = leaf;
        for (uint256 i = 0; i < proof.length; i++) {
            bytes32 proofElement = proof[i];
            if (computedHash <= proofElement) {
                computedHash = _efficientHash(computedHash, proofElement);
            } else {
                computedHash = _efficientHash(proofElement, computedHash);
            }
        }
        return computedHash;
    }

    function _efficientHash(bytes32 a, bytes32 b)
        private
        pure
        returns (bytes32 value)
    {
        assembly {
            mstore(0x00, a)
            mstore(0x20, b)
            value := keccak256(0x00, 0x40)
        }
    }
}

contract HoodStarz is ERC721, Ownable { 

    using Strings for uint256;
    bytes32 root;
    
    bool    public  revealed            = false;
    bool    public  sale                = false;
    bool    public  isWhitelistedActive = false;
    uint16  public  nonce               = 0;
    uint    public  price               = 0.2 ether;
    uint    public  priceWL             = 0.15 ether;
    uint16  public  totalSupply         = 2255;
    uint8   public  maxTx               = 5;
    uint8   public  maxTxWL             = 3;
    string  private baseURI             = "https://hoodstarz.mypinata.cloud/ipfs/QmdggjbBsFCGbQpiZfsuz64ptWpoZqVZUGiWurFRFgLufR/";
    string  public  notRevealedUri      = "https://hoodstarz.mypinata.cloud/ipfs/QmPBCZLrjbzLhsayPrJJS9xYYACfhWn5LD5gDxp3Vy2AdG/";
    
    mapping (address => uint256) public mintedBalancePS;
    mapping (address => uint256) public mintedBalanceWL;

    constructor(
        string memory _name,
        string memory _ticker
    ) ERC721(_name, _ticker) {
    }

    function reveal() public onlyOwner {
        revealed                = !revealed;
    }

    function setBaseURI(string memory baseURI_) public onlyOwner {
        baseURI = baseURI_;
    }

    function setUnrevealedURI(string memory baseURI_) public onlyOwner {
        notRevealedUri = baseURI_;
    }

    function _baseURI() internal view virtual override returns (string memory) {
        if(revealed == false) {
            return notRevealedUri;
        }else{
            return baseURI;
        }
    }

    function setPrice(uint _newPrice) external onlyOwner {
        price = _newPrice;
    }

    function setPriceWL(uint _newPrice) external onlyOwner {
        priceWL = _newPrice;
    }

    function setTotalSupply(uint16 _newSupply) external onlyOwner {
        totalSupply = _newSupply;
    }

    function setWhitelistSale() public onlyOwner {
        isWhitelistedActive = !isWhitelistedActive;
    }

    function setSale() public onlyOwner {
        sale = !sale;
    }

    function setMaxTx(uint8 _newMax) external onlyOwner {
        maxTx = _newMax;
    }

    function setMaxTxWL(uint8 _newMax) external onlyOwner {
        maxTxWL = _newMax;
    }

    function setRoot(bytes32 _root) external onlyOwner {
        root = _root;
    }

    function whitelistMint(uint8 _qty, bytes32[] memory proof) external payable {
        require(isWhitelistedActive, "SALE_NOT_ACTIVE_YET");
        require(verify(proof), "ADDRESS_NOT_WHITELISTED");
        require(_qty <= maxTxWL, "CANT_BUY_MORE_THAN_ALLOWED");
        require(mintedBalanceWL[msg.sender] + _qty <= maxTxWL, "WHITELIST_LIMIT_EXCEED");
        require(uint16(_qty) + nonce - 1 <= totalSupply, "NO_MORE_SUPPLY");
        require(msg.value >= priceWL * _qty, "INVALID_PRICE");
        mintNFTs(msg.sender, _qty);
        mintedBalanceWL[msg.sender]+=_qty;
    }

    function publicMint(uint8 _qty) external payable {
        require(sale, "SALE_NOT_ACTIVE_YET");
        require(_qty <= maxTx, "CANT_BUY_MORE_THAN_ALLOWED");
        require(mintedBalancePS[msg.sender] + _qty <= maxTx, "LIMIT_EXCEED");
        require(uint16(_qty) + nonce - 1 <= totalSupply, "NO_MORE_SUPPLY");
        require(msg.value >= price * _qty, "INVALID_PRICE");
        mintNFTs(msg.sender, _qty);
        mintedBalancePS[msg.sender]+=_qty;
    }

    function giveaway(address _to, uint8 _qty) external onlyOwner {
        require(uint16(_qty) + nonce - 1 <= totalSupply, "NO_MORE_SUPPLY");
        mintNFTs(_to, _qty);
    }

    function mintNFTs(address _to, uint8 _qty) private {
        for (uint8 i = 0; i < _qty; i++) {
            nonce++;
            uint16 _tokenId = nonce;
            _safeMint(_to, _tokenId);
        }
    }

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

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

    function verify(bytes32[] memory proof) internal view returns (bool) {
        bytes32 leaf = keccak256(abi.encodePacked(msg.sender));
        return MerkleProof.verify(proof, root, leaf);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_ticker","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint8","name":"_qty","type":"uint8"}],"name":"giveaway","outputs":[],"stateMutability":"nonpayable","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":"isWhitelistedActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxWL","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mintedBalancePS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mintedBalanceWL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nonce","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notRevealedUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceWL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_qty","type":"uint8"}],"name":"publicMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"sale","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":"baseURI_","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_newMax","type":"uint8"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_newMax","type":"uint8"}],"name":"setMaxTxWL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"setPriceWL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_root","type":"bytes32"}],"name":"setRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_newSupply","type":"uint16"}],"name":"setTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI_","type":"string"}],"name":"setUnrevealedURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setWhitelistSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_qty","type":"uint8"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"whitelistMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526000600860006101000a81548160ff0219169083151502179055506000600860016101000a81548160ff0219169083151502179055506000600860026101000a81548160ff0219169083151502179055506000600860036101000a81548161ffff021916908361ffff1602179055506702c68af0bb140000600955670214e8348c4f0000600a556108cf600b60006101000a81548161ffff021916908361ffff1602179055506005600b60026101000a81548160ff021916908360ff1602179055506003600b60036101000a81548160ff021916908360ff160217905550604051806080016040528060558152602001620052cd60559139600c908051906020019062000113929190620002a5565b506040518060800160405280605581526020016200532260559139600d908051906020019062000145929190620002a5565b503480156200015357600080fd5b5060405162005377380380620053778339818101604052810190620001799190620003c7565b8181816000908051906020019062000193929190620002a5565b508060019080519060200190620001ac929190620002a5565b505050620001cf620001c3620001d760201b60201c565b620001df60201b60201c565b5050620005aa565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002b390620004cf565b90600052602060002090601f016020900481019282620002d7576000855562000323565b82601f10620002f257805160ff191683800117855562000323565b8280016001018555821562000323579182015b828111156200032257825182559160200191906001019062000305565b5b50905062000332919062000336565b5090565b5b808211156200035157600081600090555060010162000337565b5090565b60006200036c620003668462000463565b6200043a565b9050828152602081018484840111156200038557600080fd5b6200039284828562000499565b509392505050565b600082601f830112620003ac57600080fd5b8151620003be84826020860162000355565b91505092915050565b60008060408385031215620003db57600080fd5b600083015167ffffffffffffffff811115620003f657600080fd5b62000404858286016200039a565b925050602083015167ffffffffffffffff8111156200042257600080fd5b62000430858286016200039a565b9150509250929050565b60006200044662000459565b905062000454828262000505565b919050565b6000604051905090565b600067ffffffffffffffff8211156200048157620004806200056a565b5b6200048c8262000599565b9050602081019050919050565b60005b83811015620004b95780820151818401526020810190506200049c565b83811115620004c9576000848401525b50505050565b60006002820490506001821680620004e857607f821691505b60208210811415620004ff57620004fe6200053b565b5b50919050565b620005108262000599565b810181811067ffffffffffffffff821117156200053257620005316200056a565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b614d1380620005ba6000396000f3fe60806040526004361061025c5760003560e01c806381d8488f11610144578063b88d4fde116100b6578063dab5f3401161007a578063dab5f3401461086a578063dfc5f93014610893578063e985e9c5146108be578063f2fde38b146108fb578063fe2c7fee14610924578063ffeff5621461094d5761025c565b8063b88d4fde14610787578063c87b56dd146107b0578063c8a2bb8d146107ed578063cef216e214610816578063d082b87e1461082d5761025c565b80639db7863f116101085780639db7863f1461069d578063a035b1fe146106c8578063a22cb465146106f3578063a24ffbd41461071c578063a475b5dd14610745578063affed0e01461075c5761025c565b806381d8488f146105d9578063858e83b5146106025780638da5cb5b1461061e57806391b7f5ed1461064957806395d89b41146106725761025c565b806342842e0e116101dd5780636352211e116101a15780636352211e146104c957806365f48e62146105065780636ad1fe021461052f57806370a082311461055a578063715018a6146105975780637437681e146105ae5761025c565b806342842e0e14610407578063518302271461043057806355f804b31461045b578063562e438b1461048457806358381669146104ad5761025c565b806318160ddd1161022457806318160ddd1461035a5780631d9cfd6d1461038557806323b872dd1461039c5780633ccfd60b146103c5578063425f30a5146103dc5761025c565b806301ffc9a71461026157806306fdde031461029e578063081812fc146102c9578063081c8c4414610306578063095ea7b314610331575b600080fd5b34801561026d57600080fd5b5061028860048036038101906102839190613689565b61098a565b6040516102959190613d97565b60405180910390f35b3480156102aa57600080fd5b506102b3610a6c565b6040516102c09190613db2565b60405180910390f35b3480156102d557600080fd5b506102f060048036038101906102eb9190613745565b610afe565b6040516102fd9190613d30565b60405180910390f35b34801561031257600080fd5b5061031b610b83565b6040516103289190613db2565b60405180910390f35b34801561033d57600080fd5b50610358600480360381019061035391906135e8565b610c11565b005b34801561036657600080fd5b5061036f610d29565b60405161037c91906140b4565b60405180910390f35b34801561039157600080fd5b5061039a610d3d565b005b3480156103a857600080fd5b506103c360048036038101906103be91906134e2565b610de5565b005b3480156103d157600080fd5b506103da610e45565b005b3480156103e857600080fd5b506103f1610f0a565b6040516103fe9190613d97565b60405180910390f35b34801561041357600080fd5b5061042e600480360381019061042991906134e2565b610f1d565b005b34801561043c57600080fd5b50610445610f3d565b6040516104529190613d97565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d91906136db565b610f50565b005b34801561049057600080fd5b506104ab60048036038101906104a6919061371c565b610fe6565b005b6104c760048036038101906104c29190613797565b611082565b005b3480156104d557600080fd5b506104f060048036038101906104eb9190613745565b611352565b6040516104fd9190613d30565b60405180910390f35b34801561051257600080fd5b5061052d6004803603810190610528919061376e565b611404565b005b34801561053b57600080fd5b5061054461149e565b6040516105519190613d97565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c919061347d565b6114b1565b60405161058e91906140cf565b60405180910390f35b3480156105a357600080fd5b506105ac611569565b005b3480156105ba57600080fd5b506105c36115f1565b6040516105d091906140ea565b60405180910390f35b3480156105e557600080fd5b5061060060048036038101906105fb9190613745565b611604565b005b61061c6004803603810190610617919061376e565b61168a565b005b34801561062a57600080fd5b50610633611911565b6040516106409190613d30565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b9190613745565b61193b565b005b34801561067e57600080fd5b506106876119c1565b6040516106949190613db2565b60405180910390f35b3480156106a957600080fd5b506106b2611a53565b6040516106bf91906140ea565b60405180910390f35b3480156106d457600080fd5b506106dd611a66565b6040516106ea91906140cf565b60405180910390f35b3480156106ff57600080fd5b5061071a600480360381019061071591906135ac565b611a6c565b005b34801561072857600080fd5b50610743600480360381019061073e9190613624565b611bed565b005b34801561075157600080fd5b5061075a611cfc565b005b34801561076857600080fd5b50610771611da4565b60405161077e91906140b4565b60405180910390f35b34801561079357600080fd5b506107ae60048036038101906107a99190613531565b611db8565b005b3480156107bc57600080fd5b506107d760048036038101906107d29190613745565b611e1a565b6040516107e49190613db2565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f919061376e565b611f43565b005b34801561082257600080fd5b5061082b611fdd565b005b34801561083957600080fd5b50610854600480360381019061084f919061347d565b612085565b60405161086191906140cf565b60405180910390f35b34801561087657600080fd5b50610891600480360381019061088c9190613660565b61209d565b005b34801561089f57600080fd5b506108a8612123565b6040516108b591906140cf565b60405180910390f35b3480156108ca57600080fd5b506108e560048036038101906108e091906134a6565b612129565b6040516108f29190613d97565b60405180910390f35b34801561090757600080fd5b50610922600480360381019061091d919061347d565b6121bd565b005b34801561093057600080fd5b5061094b600480360381019061094691906136db565b6122b5565b005b34801561095957600080fd5b50610974600480360381019061096f919061347d565b61234b565b60405161098191906140cf565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a5557507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a655750610a6482612363565b5b9050919050565b606060008054610a7b9061446c565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa79061446c565b8015610af45780601f10610ac957610100808354040283529160200191610af4565b820191906000526020600020905b815481529060010190602001808311610ad757829003601f168201915b5050505050905090565b6000610b09826123cd565b610b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3f90613ff4565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600d8054610b909061446c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bbc9061446c565b8015610c095780601f10610bde57610100808354040283529160200191610c09565b820191906000526020600020905b815481529060010190602001808311610bec57829003601f168201915b505050505081565b6000610c1c82611352565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8490614074565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610cac612439565b73ffffffffffffffffffffffffffffffffffffffff161480610cdb5750610cda81610cd5612439565b612129565b5b610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1190613f74565b60405180910390fd5b610d248383612441565b505050565b600b60009054906101000a900461ffff1681565b610d45612439565b73ffffffffffffffffffffffffffffffffffffffff16610d63611911565b73ffffffffffffffffffffffffffffffffffffffff1614610db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db090614014565b60405180910390fd5b600860019054906101000a900460ff1615600860016101000a81548160ff021916908315150217905550565b610df6610df0612439565b826124fa565b610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c90614094565b60405180910390fd5b610e408383836125d8565b505050565b610e4d612439565b73ffffffffffffffffffffffffffffffffffffffff16610e6b611911565b73ffffffffffffffffffffffffffffffffffffffff1614610ec1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb890614014565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610f07573d6000803e3d6000fd5b50565b600860029054906101000a900460ff1681565b610f3883838360405180602001604052806000815250611db8565b505050565b600860009054906101000a900460ff1681565b610f58612439565b73ffffffffffffffffffffffffffffffffffffffff16610f76611911565b73ffffffffffffffffffffffffffffffffffffffff1614610fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc390614014565b60405180910390fd5b80600c9080519060200190610fe29291906131cc565b5050565b610fee612439565b73ffffffffffffffffffffffffffffffffffffffff1661100c611911565b73ffffffffffffffffffffffffffffffffffffffff1614611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105990614014565b60405180910390fd5b80600b60006101000a81548161ffff021916908361ffff16021790555050565b600860029054906101000a900460ff166110d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c890613f54565b60405180910390fd5b6110da81612834565b611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111090613e94565b60405180910390fd5b600b60039054906101000a900460ff1660ff168260ff161115611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116890613e74565b60405180910390fd5b600b60039054906101000a900460ff1660ff168260ff16600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111d29190614248565b1115611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a90613df4565b60405180910390fd5b600b60009054906101000a900461ffff1661ffff166001600860039054906101000a900461ffff168460ff166112499190614210565b6112539190614329565b61ffff161115611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90613dd4565b60405180910390fd5b8160ff16600a546112a991906142cf565b3410156112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e290613eb4565b60405180910390fd5b6112f53383612875565b8160ff16600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113479190614248565b925050819055505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290613fb4565b60405180910390fd5b80915050919050565b61140c612439565b73ffffffffffffffffffffffffffffffffffffffff1661142a611911565b73ffffffffffffffffffffffffffffffffffffffff1614611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790614014565b60405180910390fd5b80600b60026101000a81548160ff021916908360ff16021790555050565b600860019054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611522576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151990613f94565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611571612439565b73ffffffffffffffffffffffffffffffffffffffff1661158f611911565b73ffffffffffffffffffffffffffffffffffffffff16146115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc90614014565b60405180910390fd5b6115ef60006128fd565b565b600b60029054906101000a900460ff1681565b61160c612439565b73ffffffffffffffffffffffffffffffffffffffff1661162a611911565b73ffffffffffffffffffffffffffffffffffffffff1614611680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167790614014565b60405180910390fd5b80600a8190555050565b600860019054906101000a900460ff166116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090613f54565b60405180910390fd5b600b60029054906101000a900460ff1660ff168160ff161115611731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172890613e74565b60405180910390fd5b600b60029054906101000a900460ff1660ff168160ff16600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117929190614248565b11156117d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ca90613f34565b60405180910390fd5b600b60009054906101000a900461ffff1661ffff166001600860039054906101000a900461ffff168360ff166118099190614210565b6118139190614329565b61ffff161115611858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184f90613dd4565b60405180910390fd5b8060ff1660095461186991906142cf565b3410156118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a290613eb4565b60405180910390fd5b6118b53382612875565b8060ff16600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119079190614248565b9250508190555050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611943612439565b73ffffffffffffffffffffffffffffffffffffffff16611961611911565b73ffffffffffffffffffffffffffffffffffffffff16146119b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ae90614014565b60405180910390fd5b8060098190555050565b6060600180546119d09061446c565b80601f01602080910402602001604051908101604052809291908181526020018280546119fc9061446c565b8015611a495780601f10611a1e57610100808354040283529160200191611a49565b820191906000526020600020905b815481529060010190602001808311611a2c57829003601f168201915b5050505050905090565b600b60039054906101000a900460ff1681565b60095481565b611a74612439565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad990613ef4565b60405180910390fd5b8060056000611aef612439565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611b9c612439565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611be19190613d97565b60405180910390a35050565b611bf5612439565b73ffffffffffffffffffffffffffffffffffffffff16611c13611911565b73ffffffffffffffffffffffffffffffffffffffff1614611c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6090614014565b60405180910390fd5b600b60009054906101000a900461ffff1661ffff166001600860039054906101000a900461ffff168360ff16611c9f9190614210565b611ca99190614329565b61ffff161115611cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce590613dd4565b60405180910390fd5b611cf88282612875565b5050565b611d04612439565b73ffffffffffffffffffffffffffffffffffffffff16611d22611911565b73ffffffffffffffffffffffffffffffffffffffff1614611d78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6f90614014565b60405180910390fd5b600860009054906101000a900460ff1615600860006101000a81548160ff021916908315150217905550565b600860039054906101000a900461ffff1681565b611dc9611dc3612439565b836124fa565b611e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dff90614094565b60405180910390fd5b611e14848484846129c3565b50505050565b6060611e25826123cd565b611e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5b90614054565b60405180910390fd5b60001515600860009054906101000a900460ff1615151415611ede576000600d8054611e8f9061446c565b905011611eab5760405180602001604052806000815250611ed7565b600d611eb683612a1f565b604051602001611ec7929190613d01565b6040516020818303038152906040525b9050611f3e565b6000600c8054611eed9061446c565b905011611f095760405180602001604052806000815250611f3b565b611f11612bcc565b611f1a83612a1f565b604051602001611f2b929190613cd2565b6040516020818303038152906040525b90505b919050565b611f4b612439565b73ffffffffffffffffffffffffffffffffffffffff16611f69611911565b73ffffffffffffffffffffffffffffffffffffffff1614611fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb690614014565b60405180910390fd5b80600b60036101000a81548160ff021916908360ff16021790555050565b611fe5612439565b73ffffffffffffffffffffffffffffffffffffffff16612003611911565b73ffffffffffffffffffffffffffffffffffffffff1614612059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205090614014565b60405180910390fd5b600860029054906101000a900460ff1615600860026101000a81548160ff021916908315150217905550565b600e6020528060005260406000206000915090505481565b6120a5612439565b73ffffffffffffffffffffffffffffffffffffffff166120c3611911565b73ffffffffffffffffffffffffffffffffffffffff1614612119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211090614014565b60405180910390fd5b8060078190555050565b600a5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6121c5612439565b73ffffffffffffffffffffffffffffffffffffffff166121e3611911565b73ffffffffffffffffffffffffffffffffffffffff1614612239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223090614014565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156122a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a090613e34565b60405180910390fd5b6122b2816128fd565b50565b6122bd612439565b73ffffffffffffffffffffffffffffffffffffffff166122db611911565b73ffffffffffffffffffffffffffffffffffffffff1614612331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232890614014565b60405180910390fd5b80600d90805190602001906123479291906131cc565b5050565b600f6020528060005260406000206000915090505481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166124b483611352565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000612505826123cd565b612544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253b90613f14565b60405180910390fd5b600061254f83611352565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806125be57508373ffffffffffffffffffffffffffffffffffffffff166125a684610afe565b73ffffffffffffffffffffffffffffffffffffffff16145b806125cf57506125ce8185612129565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166125f882611352565b73ffffffffffffffffffffffffffffffffffffffff161461264e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264590614034565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b590613ed4565b60405180910390fd5b6126c9838383612d0d565b6126d4600082612441565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612724919061435d565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461277b9190614248565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600080336040516020016128489190613cb7565b60405160208183030381529060405280519060200120905061286d8360075483612d12565b915050919050565b60005b8160ff168160ff1610156128f8576008600381819054906101000a900461ffff16809291906128a6906144cf565b91906101000a81548161ffff021916908361ffff160217905550506000600860039054906101000a900461ffff1690506128e4848261ffff16612d29565b5080806128f090614543565b915050612878565b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6129ce8484846125d8565b6129da84848484612d47565b612a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1090613e14565b60405180910390fd5b50505050565b60606000821415612a67576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612bc7565b600082905060005b60008214612a99578080612a82906144fa565b915050600a82612a92919061429e565b9150612a6f565b60008167ffffffffffffffff811115612adb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612b0d5781602001600182028036833780820191505090505b5090505b60008514612bc057600182612b26919061435d565b9150600a85612b359190614591565b6030612b419190614248565b60f81b818381518110612b7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612bb9919061429e565b9450612b11565b8093505050505b919050565b606060001515600860009054906101000a900460ff1615151415612c7c57600d8054612bf79061446c565b80601f0160208091040260200160405190810160405280929190818152602001828054612c239061446c565b8015612c705780601f10612c4557610100808354040283529160200191612c70565b820191906000526020600020905b815481529060010190602001808311612c5357829003601f168201915b50505050509050612d0a565b600c8054612c899061446c565b80601f0160208091040260200160405190810160405280929190818152602001828054612cb59061446c565b8015612d025780601f10612cd757610100808354040283529160200191612d02565b820191906000526020600020905b815481529060010190602001808311612ce557829003601f168201915b505050505090505b90565b505050565b600082612d1f8584612ede565b1490509392505050565b612d43828260405180602001604052806000815250612f79565b5050565b6000612d688473ffffffffffffffffffffffffffffffffffffffff16612fd4565b15612ed1578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612d91612439565b8786866040518563ffffffff1660e01b8152600401612db39493929190613d4b565b602060405180830381600087803b158015612dcd57600080fd5b505af1925050508015612dfe57506040513d601f19601f82011682018060405250810190612dfb91906136b2565b60015b612e81573d8060008114612e2e576040519150601f19603f3d011682016040523d82523d6000602084013e612e33565b606091505b50600081511415612e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7090613e14565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612ed6565b600190505b949350505050565b60008082905060005b8451811015612f6e576000858281518110612f2b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101519050808311612f4d57612f468382612fe7565b9250612f5a565b612f578184612fe7565b92505b508080612f66906144fa565b915050612ee7565b508091505092915050565b612f838383612ffe565b612f906000848484612d47565b612fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc690613e14565b60405180910390fd5b505050565b600080823b905060008111915050919050565b600082600052816020526040600020905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561306e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306590613fd4565b60405180910390fd5b613077816123cd565b156130b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ae90613e54565b60405180910390fd5b6130c360008383612d0d565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131139190614248565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b8280546131d89061446c565b90600052602060002090601f0160209004810192826131fa5760008555613241565b82601f1061321357805160ff1916838001178555613241565b82800160010185558215613241579182015b82811115613240578251825591602001919060010190613225565b5b50905061324e9190613252565b5090565b5b8082111561326b576000816000905550600101613253565b5090565b600061328261327d8461412a565b614105565b905080838252602082019050828560208602820111156132a157600080fd5b60005b858110156132d157816132b788826133ab565b8452602084019350602083019250506001810190506132a4565b5050509392505050565b60006132ee6132e984614156565b614105565b90508281526020810184848401111561330657600080fd5b61331184828561442a565b509392505050565b600061332c61332784614187565b614105565b90508281526020810184848401111561334457600080fd5b61334f84828561442a565b509392505050565b60008135905061336681614c3c565b92915050565b600082601f83011261337d57600080fd5b813561338d84826020860161326f565b91505092915050565b6000813590506133a581614c53565b92915050565b6000813590506133ba81614c6a565b92915050565b6000813590506133cf81614c81565b92915050565b6000815190506133e481614c81565b92915050565b600082601f8301126133fb57600080fd5b813561340b8482602086016132db565b91505092915050565b600082601f83011261342557600080fd5b8135613435848260208601613319565b91505092915050565b60008135905061344d81614c98565b92915050565b60008135905061346281614caf565b92915050565b60008135905061347781614cc6565b92915050565b60006020828403121561348f57600080fd5b600061349d84828501613357565b91505092915050565b600080604083850312156134b957600080fd5b60006134c785828601613357565b92505060206134d885828601613357565b9150509250929050565b6000806000606084860312156134f757600080fd5b600061350586828701613357565b935050602061351686828701613357565b925050604061352786828701613453565b9150509250925092565b6000806000806080858703121561354757600080fd5b600061355587828801613357565b945050602061356687828801613357565b935050604061357787828801613453565b925050606085013567ffffffffffffffff81111561359457600080fd5b6135a0878288016133ea565b91505092959194509250565b600080604083850312156135bf57600080fd5b60006135cd85828601613357565b92505060206135de85828601613396565b9150509250929050565b600080604083850312156135fb57600080fd5b600061360985828601613357565b925050602061361a85828601613453565b9150509250929050565b6000806040838503121561363757600080fd5b600061364585828601613357565b925050602061365685828601613468565b9150509250929050565b60006020828403121561367257600080fd5b6000613680848285016133ab565b91505092915050565b60006020828403121561369b57600080fd5b60006136a9848285016133c0565b91505092915050565b6000602082840312156136c457600080fd5b60006136d2848285016133d5565b91505092915050565b6000602082840312156136ed57600080fd5b600082013567ffffffffffffffff81111561370757600080fd5b61371384828501613414565b91505092915050565b60006020828403121561372e57600080fd5b600061373c8482850161343e565b91505092915050565b60006020828403121561375757600080fd5b600061376584828501613453565b91505092915050565b60006020828403121561378057600080fd5b600061378e84828501613468565b91505092915050565b600080604083850312156137aa57600080fd5b60006137b885828601613468565b925050602083013567ffffffffffffffff8111156137d557600080fd5b6137e18582860161336c565b9150509250929050565b6137f481614391565b82525050565b61380b61380682614391565b61456d565b82525050565b61381a816143a3565b82525050565b600061382b826141cd565b61383581856141e3565b9350613845818560208601614439565b61384e8161467e565b840191505092915050565b6000613864826141d8565b61386e81856141f4565b935061387e818560208601614439565b6138878161467e565b840191505092915050565b600061389d826141d8565b6138a78185614205565b93506138b7818560208601614439565b80840191505092915050565b600081546138d08161446c565b6138da8186614205565b945060018216600081146138f5576001811461390657613939565b60ff19831686528186019350613939565b61390f856141b8565b60005b8381101561393157815481890152600182019150602081019050613912565b838801955050505b50505092915050565b600061394f600e836141f4565b915061395a8261469c565b602082019050919050565b60006139726016836141f4565b915061397d826146c5565b602082019050919050565b60006139956032836141f4565b91506139a0826146ee565b604082019050919050565b60006139b86026836141f4565b91506139c38261473d565b604082019050919050565b60006139db601c836141f4565b91506139e68261478c565b602082019050919050565b60006139fe601a836141f4565b9150613a09826147b5565b602082019050919050565b6000613a216017836141f4565b9150613a2c826147de565b602082019050919050565b6000613a44600d836141f4565b9150613a4f82614807565b602082019050919050565b6000613a676024836141f4565b9150613a7282614830565b604082019050919050565b6000613a8a6019836141f4565b9150613a958261487f565b602082019050919050565b6000613aad602c836141f4565b9150613ab8826148a8565b604082019050919050565b6000613ad0600c836141f4565b9150613adb826148f7565b602082019050919050565b6000613af36013836141f4565b9150613afe82614920565b602082019050919050565b6000613b166038836141f4565b9150613b2182614949565b604082019050919050565b6000613b39602a836141f4565b9150613b4482614998565b604082019050919050565b6000613b5c6029836141f4565b9150613b67826149e7565b604082019050919050565b6000613b7f6020836141f4565b9150613b8a82614a36565b602082019050919050565b6000613ba2602c836141f4565b9150613bad82614a5f565b604082019050919050565b6000613bc5600583614205565b9150613bd082614aae565b600582019050919050565b6000613be86020836141f4565b9150613bf382614ad7565b602082019050919050565b6000613c0b6029836141f4565b9150613c1682614b00565b604082019050919050565b6000613c2e602f836141f4565b9150613c3982614b4f565b604082019050919050565b6000613c516021836141f4565b9150613c5c82614b9e565b604082019050919050565b6000613c746031836141f4565b9150613c7f82614bed565b604082019050919050565b613c93816143e5565b82525050565b613ca281614413565b82525050565b613cb18161441d565b82525050565b6000613cc382846137fa565b60148201915081905092915050565b6000613cde8285613892565b9150613cea8284613892565b9150613cf582613bb8565b91508190509392505050565b6000613d0d82856138c3565b9150613d198284613892565b9150613d2482613bb8565b91508190509392505050565b6000602082019050613d4560008301846137eb565b92915050565b6000608082019050613d6060008301876137eb565b613d6d60208301866137eb565b613d7a6040830185613c99565b8181036060830152613d8c8184613820565b905095945050505050565b6000602082019050613dac6000830184613811565b92915050565b60006020820190508181036000830152613dcc8184613859565b905092915050565b60006020820190508181036000830152613ded81613942565b9050919050565b60006020820190508181036000830152613e0d81613965565b9050919050565b60006020820190508181036000830152613e2d81613988565b9050919050565b60006020820190508181036000830152613e4d816139ab565b9050919050565b60006020820190508181036000830152613e6d816139ce565b9050919050565b60006020820190508181036000830152613e8d816139f1565b9050919050565b60006020820190508181036000830152613ead81613a14565b9050919050565b60006020820190508181036000830152613ecd81613a37565b9050919050565b60006020820190508181036000830152613eed81613a5a565b9050919050565b60006020820190508181036000830152613f0d81613a7d565b9050919050565b60006020820190508181036000830152613f2d81613aa0565b9050919050565b60006020820190508181036000830152613f4d81613ac3565b9050919050565b60006020820190508181036000830152613f6d81613ae6565b9050919050565b60006020820190508181036000830152613f8d81613b09565b9050919050565b60006020820190508181036000830152613fad81613b2c565b9050919050565b60006020820190508181036000830152613fcd81613b4f565b9050919050565b60006020820190508181036000830152613fed81613b72565b9050919050565b6000602082019050818103600083015261400d81613b95565b9050919050565b6000602082019050818103600083015261402d81613bdb565b9050919050565b6000602082019050818103600083015261404d81613bfe565b9050919050565b6000602082019050818103600083015261406d81613c21565b9050919050565b6000602082019050818103600083015261408d81613c44565b9050919050565b600060208201905081810360008301526140ad81613c67565b9050919050565b60006020820190506140c96000830184613c8a565b92915050565b60006020820190506140e46000830184613c99565b92915050565b60006020820190506140ff6000830184613ca8565b92915050565b600061410f614120565b905061411b828261449e565b919050565b6000604051905090565b600067ffffffffffffffff8211156141455761414461464f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156141715761417061464f565b5b61417a8261467e565b9050602081019050919050565b600067ffffffffffffffff8211156141a2576141a161464f565b5b6141ab8261467e565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061421b826143e5565b9150614226836143e5565b92508261ffff0382111561423d5761423c6145c2565b5b828201905092915050565b600061425382614413565b915061425e83614413565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614293576142926145c2565b5b828201905092915050565b60006142a982614413565b91506142b483614413565b9250826142c4576142c36145f1565b5b828204905092915050565b60006142da82614413565b91506142e583614413565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561431e5761431d6145c2565b5b828202905092915050565b6000614334826143e5565b915061433f836143e5565b925082821015614352576143516145c2565b5b828203905092915050565b600061436882614413565b915061437383614413565b925082821015614386576143856145c2565b5b828203905092915050565b600061439c826143f3565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561445757808201518184015260208101905061443c565b83811115614466576000848401525b50505050565b6000600282049050600182168061448457607f821691505b6020821081141561449857614497614620565b5b50919050565b6144a78261467e565b810181811067ffffffffffffffff821117156144c6576144c561464f565b5b80604052505050565b60006144da826143e5565b915061ffff8214156144ef576144ee6145c2565b5b600182019050919050565b600061450582614413565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614538576145376145c2565b5b600182019050919050565b600061454e8261441d565b915060ff821415614562576145616145c2565b5b600182019050919050565b60006145788261457f565b9050919050565b600061458a8261468f565b9050919050565b600061459c82614413565b91506145a783614413565b9250826145b7576145b66145f1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f4e4f5f4d4f52455f535550504c59000000000000000000000000000000000000600082015250565b7f57484954454c4953545f4c494d49545f45584345454400000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f43414e545f4255595f4d4f52455f5448414e5f414c4c4f574544000000000000600082015250565b7f414444524553535f4e4f545f57484954454c4953544544000000000000000000600082015250565b7f494e56414c49445f505249434500000000000000000000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4c494d49545f4558434545440000000000000000000000000000000000000000600082015250565b7f53414c455f4e4f545f4143544956455f59455400000000000000000000000000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b614c4581614391565b8114614c5057600080fd5b50565b614c5c816143a3565b8114614c6757600080fd5b50565b614c73816143af565b8114614c7e57600080fd5b50565b614c8a816143b9565b8114614c9557600080fd5b50565b614ca1816143e5565b8114614cac57600080fd5b50565b614cb881614413565b8114614cc357600080fd5b50565b614ccf8161441d565b8114614cda57600080fd5b5056fea2646970667358221220ec32507fa9c0502419280a94d8aeff41cbc4f74e93433b54a0fcbef655a2d15b64736f6c6343000804003368747470733a2f2f686f6f64737461727a2e6d7970696e6174612e636c6f75642f697066732f516d6467676a624273464347625170695a6673757a3634707457706f5a71565a554769577572465246674c7566522f68747470733a2f2f686f6f64737461727a2e6d7970696e6174612e636c6f75642f697066732f516d5042435a4c726a627a4c6873617950724a4a533978595941436668576e354c443567447870335679324164472f000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000009486f6f64537461727a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000348535a0000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061025c5760003560e01c806381d8488f11610144578063b88d4fde116100b6578063dab5f3401161007a578063dab5f3401461086a578063dfc5f93014610893578063e985e9c5146108be578063f2fde38b146108fb578063fe2c7fee14610924578063ffeff5621461094d5761025c565b8063b88d4fde14610787578063c87b56dd146107b0578063c8a2bb8d146107ed578063cef216e214610816578063d082b87e1461082d5761025c565b80639db7863f116101085780639db7863f1461069d578063a035b1fe146106c8578063a22cb465146106f3578063a24ffbd41461071c578063a475b5dd14610745578063affed0e01461075c5761025c565b806381d8488f146105d9578063858e83b5146106025780638da5cb5b1461061e57806391b7f5ed1461064957806395d89b41146106725761025c565b806342842e0e116101dd5780636352211e116101a15780636352211e146104c957806365f48e62146105065780636ad1fe021461052f57806370a082311461055a578063715018a6146105975780637437681e146105ae5761025c565b806342842e0e14610407578063518302271461043057806355f804b31461045b578063562e438b1461048457806358381669146104ad5761025c565b806318160ddd1161022457806318160ddd1461035a5780631d9cfd6d1461038557806323b872dd1461039c5780633ccfd60b146103c5578063425f30a5146103dc5761025c565b806301ffc9a71461026157806306fdde031461029e578063081812fc146102c9578063081c8c4414610306578063095ea7b314610331575b600080fd5b34801561026d57600080fd5b5061028860048036038101906102839190613689565b61098a565b6040516102959190613d97565b60405180910390f35b3480156102aa57600080fd5b506102b3610a6c565b6040516102c09190613db2565b60405180910390f35b3480156102d557600080fd5b506102f060048036038101906102eb9190613745565b610afe565b6040516102fd9190613d30565b60405180910390f35b34801561031257600080fd5b5061031b610b83565b6040516103289190613db2565b60405180910390f35b34801561033d57600080fd5b50610358600480360381019061035391906135e8565b610c11565b005b34801561036657600080fd5b5061036f610d29565b60405161037c91906140b4565b60405180910390f35b34801561039157600080fd5b5061039a610d3d565b005b3480156103a857600080fd5b506103c360048036038101906103be91906134e2565b610de5565b005b3480156103d157600080fd5b506103da610e45565b005b3480156103e857600080fd5b506103f1610f0a565b6040516103fe9190613d97565b60405180910390f35b34801561041357600080fd5b5061042e600480360381019061042991906134e2565b610f1d565b005b34801561043c57600080fd5b50610445610f3d565b6040516104529190613d97565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d91906136db565b610f50565b005b34801561049057600080fd5b506104ab60048036038101906104a6919061371c565b610fe6565b005b6104c760048036038101906104c29190613797565b611082565b005b3480156104d557600080fd5b506104f060048036038101906104eb9190613745565b611352565b6040516104fd9190613d30565b60405180910390f35b34801561051257600080fd5b5061052d6004803603810190610528919061376e565b611404565b005b34801561053b57600080fd5b5061054461149e565b6040516105519190613d97565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c919061347d565b6114b1565b60405161058e91906140cf565b60405180910390f35b3480156105a357600080fd5b506105ac611569565b005b3480156105ba57600080fd5b506105c36115f1565b6040516105d091906140ea565b60405180910390f35b3480156105e557600080fd5b5061060060048036038101906105fb9190613745565b611604565b005b61061c6004803603810190610617919061376e565b61168a565b005b34801561062a57600080fd5b50610633611911565b6040516106409190613d30565b60405180910390f35b34801561065557600080fd5b50610670600480360381019061066b9190613745565b61193b565b005b34801561067e57600080fd5b506106876119c1565b6040516106949190613db2565b60405180910390f35b3480156106a957600080fd5b506106b2611a53565b6040516106bf91906140ea565b60405180910390f35b3480156106d457600080fd5b506106dd611a66565b6040516106ea91906140cf565b60405180910390f35b3480156106ff57600080fd5b5061071a600480360381019061071591906135ac565b611a6c565b005b34801561072857600080fd5b50610743600480360381019061073e9190613624565b611bed565b005b34801561075157600080fd5b5061075a611cfc565b005b34801561076857600080fd5b50610771611da4565b60405161077e91906140b4565b60405180910390f35b34801561079357600080fd5b506107ae60048036038101906107a99190613531565b611db8565b005b3480156107bc57600080fd5b506107d760048036038101906107d29190613745565b611e1a565b6040516107e49190613db2565b60405180910390f35b3480156107f957600080fd5b50610814600480360381019061080f919061376e565b611f43565b005b34801561082257600080fd5b5061082b611fdd565b005b34801561083957600080fd5b50610854600480360381019061084f919061347d565b612085565b60405161086191906140cf565b60405180910390f35b34801561087657600080fd5b50610891600480360381019061088c9190613660565b61209d565b005b34801561089f57600080fd5b506108a8612123565b6040516108b591906140cf565b60405180910390f35b3480156108ca57600080fd5b506108e560048036038101906108e091906134a6565b612129565b6040516108f29190613d97565b60405180910390f35b34801561090757600080fd5b50610922600480360381019061091d919061347d565b6121bd565b005b34801561093057600080fd5b5061094b600480360381019061094691906136db565b6122b5565b005b34801561095957600080fd5b50610974600480360381019061096f919061347d565b61234b565b60405161098191906140cf565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a5557507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a655750610a6482612363565b5b9050919050565b606060008054610a7b9061446c565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa79061446c565b8015610af45780601f10610ac957610100808354040283529160200191610af4565b820191906000526020600020905b815481529060010190602001808311610ad757829003601f168201915b5050505050905090565b6000610b09826123cd565b610b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3f90613ff4565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600d8054610b909061446c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bbc9061446c565b8015610c095780601f10610bde57610100808354040283529160200191610c09565b820191906000526020600020905b815481529060010190602001808311610bec57829003601f168201915b505050505081565b6000610c1c82611352565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8490614074565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610cac612439565b73ffffffffffffffffffffffffffffffffffffffff161480610cdb5750610cda81610cd5612439565b612129565b5b610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1190613f74565b60405180910390fd5b610d248383612441565b505050565b600b60009054906101000a900461ffff1681565b610d45612439565b73ffffffffffffffffffffffffffffffffffffffff16610d63611911565b73ffffffffffffffffffffffffffffffffffffffff1614610db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db090614014565b60405180910390fd5b600860019054906101000a900460ff1615600860016101000a81548160ff021916908315150217905550565b610df6610df0612439565b826124fa565b610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c90614094565b60405180910390fd5b610e408383836125d8565b505050565b610e4d612439565b73ffffffffffffffffffffffffffffffffffffffff16610e6b611911565b73ffffffffffffffffffffffffffffffffffffffff1614610ec1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb890614014565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610f07573d6000803e3d6000fd5b50565b600860029054906101000a900460ff1681565b610f3883838360405180602001604052806000815250611db8565b505050565b600860009054906101000a900460ff1681565b610f58612439565b73ffffffffffffffffffffffffffffffffffffffff16610f76611911565b73ffffffffffffffffffffffffffffffffffffffff1614610fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc390614014565b60405180910390fd5b80600c9080519060200190610fe29291906131cc565b5050565b610fee612439565b73ffffffffffffffffffffffffffffffffffffffff1661100c611911565b73ffffffffffffffffffffffffffffffffffffffff1614611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105990614014565b60405180910390fd5b80600b60006101000a81548161ffff021916908361ffff16021790555050565b600860029054906101000a900460ff166110d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c890613f54565b60405180910390fd5b6110da81612834565b611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111090613e94565b60405180910390fd5b600b60039054906101000a900460ff1660ff168260ff161115611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116890613e74565b60405180910390fd5b600b60039054906101000a900460ff1660ff168260ff16600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111d29190614248565b1115611213576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120a90613df4565b60405180910390fd5b600b60009054906101000a900461ffff1661ffff166001600860039054906101000a900461ffff168460ff166112499190614210565b6112539190614329565b61ffff161115611298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128f90613dd4565b60405180910390fd5b8160ff16600a546112a991906142cf565b3410156112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e290613eb4565b60405180910390fd5b6112f53383612875565b8160ff16600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113479190614248565b925050819055505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290613fb4565b60405180910390fd5b80915050919050565b61140c612439565b73ffffffffffffffffffffffffffffffffffffffff1661142a611911565b73ffffffffffffffffffffffffffffffffffffffff1614611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790614014565b60405180910390fd5b80600b60026101000a81548160ff021916908360ff16021790555050565b600860019054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611522576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151990613f94565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611571612439565b73ffffffffffffffffffffffffffffffffffffffff1661158f611911565b73ffffffffffffffffffffffffffffffffffffffff16146115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc90614014565b60405180910390fd5b6115ef60006128fd565b565b600b60029054906101000a900460ff1681565b61160c612439565b73ffffffffffffffffffffffffffffffffffffffff1661162a611911565b73ffffffffffffffffffffffffffffffffffffffff1614611680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167790614014565b60405180910390fd5b80600a8190555050565b600860019054906101000a900460ff166116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090613f54565b60405180910390fd5b600b60029054906101000a900460ff1660ff168160ff161115611731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172890613e74565b60405180910390fd5b600b60029054906101000a900460ff1660ff168160ff16600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117929190614248565b11156117d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ca90613f34565b60405180910390fd5b600b60009054906101000a900461ffff1661ffff166001600860039054906101000a900461ffff168360ff166118099190614210565b6118139190614329565b61ffff161115611858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184f90613dd4565b60405180910390fd5b8060ff1660095461186991906142cf565b3410156118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a290613eb4565b60405180910390fd5b6118b53382612875565b8060ff16600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119079190614248565b9250508190555050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611943612439565b73ffffffffffffffffffffffffffffffffffffffff16611961611911565b73ffffffffffffffffffffffffffffffffffffffff16146119b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ae90614014565b60405180910390fd5b8060098190555050565b6060600180546119d09061446c565b80601f01602080910402602001604051908101604052809291908181526020018280546119fc9061446c565b8015611a495780601f10611a1e57610100808354040283529160200191611a49565b820191906000526020600020905b815481529060010190602001808311611a2c57829003601f168201915b5050505050905090565b600b60039054906101000a900460ff1681565b60095481565b611a74612439565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad990613ef4565b60405180910390fd5b8060056000611aef612439565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611b9c612439565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611be19190613d97565b60405180910390a35050565b611bf5612439565b73ffffffffffffffffffffffffffffffffffffffff16611c13611911565b73ffffffffffffffffffffffffffffffffffffffff1614611c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6090614014565b60405180910390fd5b600b60009054906101000a900461ffff1661ffff166001600860039054906101000a900461ffff168360ff16611c9f9190614210565b611ca99190614329565b61ffff161115611cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce590613dd4565b60405180910390fd5b611cf88282612875565b5050565b611d04612439565b73ffffffffffffffffffffffffffffffffffffffff16611d22611911565b73ffffffffffffffffffffffffffffffffffffffff1614611d78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6f90614014565b60405180910390fd5b600860009054906101000a900460ff1615600860006101000a81548160ff021916908315150217905550565b600860039054906101000a900461ffff1681565b611dc9611dc3612439565b836124fa565b611e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dff90614094565b60405180910390fd5b611e14848484846129c3565b50505050565b6060611e25826123cd565b611e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5b90614054565b60405180910390fd5b60001515600860009054906101000a900460ff1615151415611ede576000600d8054611e8f9061446c565b905011611eab5760405180602001604052806000815250611ed7565b600d611eb683612a1f565b604051602001611ec7929190613d01565b6040516020818303038152906040525b9050611f3e565b6000600c8054611eed9061446c565b905011611f095760405180602001604052806000815250611f3b565b611f11612bcc565b611f1a83612a1f565b604051602001611f2b929190613cd2565b6040516020818303038152906040525b90505b919050565b611f4b612439565b73ffffffffffffffffffffffffffffffffffffffff16611f69611911565b73ffffffffffffffffffffffffffffffffffffffff1614611fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb690614014565b60405180910390fd5b80600b60036101000a81548160ff021916908360ff16021790555050565b611fe5612439565b73ffffffffffffffffffffffffffffffffffffffff16612003611911565b73ffffffffffffffffffffffffffffffffffffffff1614612059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205090614014565b60405180910390fd5b600860029054906101000a900460ff1615600860026101000a81548160ff021916908315150217905550565b600e6020528060005260406000206000915090505481565b6120a5612439565b73ffffffffffffffffffffffffffffffffffffffff166120c3611911565b73ffffffffffffffffffffffffffffffffffffffff1614612119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211090614014565b60405180910390fd5b8060078190555050565b600a5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6121c5612439565b73ffffffffffffffffffffffffffffffffffffffff166121e3611911565b73ffffffffffffffffffffffffffffffffffffffff1614612239576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223090614014565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156122a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a090613e34565b60405180910390fd5b6122b2816128fd565b50565b6122bd612439565b73ffffffffffffffffffffffffffffffffffffffff166122db611911565b73ffffffffffffffffffffffffffffffffffffffff1614612331576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232890614014565b60405180910390fd5b80600d90805190602001906123479291906131cc565b5050565b600f6020528060005260406000206000915090505481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166124b483611352565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000612505826123cd565b612544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253b90613f14565b60405180910390fd5b600061254f83611352565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806125be57508373ffffffffffffffffffffffffffffffffffffffff166125a684610afe565b73ffffffffffffffffffffffffffffffffffffffff16145b806125cf57506125ce8185612129565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166125f882611352565b73ffffffffffffffffffffffffffffffffffffffff161461264e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264590614034565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b590613ed4565b60405180910390fd5b6126c9838383612d0d565b6126d4600082612441565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612724919061435d565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461277b9190614248565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600080336040516020016128489190613cb7565b60405160208183030381529060405280519060200120905061286d8360075483612d12565b915050919050565b60005b8160ff168160ff1610156128f8576008600381819054906101000a900461ffff16809291906128a6906144cf565b91906101000a81548161ffff021916908361ffff160217905550506000600860039054906101000a900461ffff1690506128e4848261ffff16612d29565b5080806128f090614543565b915050612878565b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6129ce8484846125d8565b6129da84848484612d47565b612a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1090613e14565b60405180910390fd5b50505050565b60606000821415612a67576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612bc7565b600082905060005b60008214612a99578080612a82906144fa565b915050600a82612a92919061429e565b9150612a6f565b60008167ffffffffffffffff811115612adb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612b0d5781602001600182028036833780820191505090505b5090505b60008514612bc057600182612b26919061435d565b9150600a85612b359190614591565b6030612b419190614248565b60f81b818381518110612b7d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612bb9919061429e565b9450612b11565b8093505050505b919050565b606060001515600860009054906101000a900460ff1615151415612c7c57600d8054612bf79061446c565b80601f0160208091040260200160405190810160405280929190818152602001828054612c239061446c565b8015612c705780601f10612c4557610100808354040283529160200191612c70565b820191906000526020600020905b815481529060010190602001808311612c5357829003601f168201915b50505050509050612d0a565b600c8054612c899061446c565b80601f0160208091040260200160405190810160405280929190818152602001828054612cb59061446c565b8015612d025780601f10612cd757610100808354040283529160200191612d02565b820191906000526020600020905b815481529060010190602001808311612ce557829003601f168201915b505050505090505b90565b505050565b600082612d1f8584612ede565b1490509392505050565b612d43828260405180602001604052806000815250612f79565b5050565b6000612d688473ffffffffffffffffffffffffffffffffffffffff16612fd4565b15612ed1578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612d91612439565b8786866040518563ffffffff1660e01b8152600401612db39493929190613d4b565b602060405180830381600087803b158015612dcd57600080fd5b505af1925050508015612dfe57506040513d601f19601f82011682018060405250810190612dfb91906136b2565b60015b612e81573d8060008114612e2e576040519150601f19603f3d011682016040523d82523d6000602084013e612e33565b606091505b50600081511415612e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7090613e14565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612ed6565b600190505b949350505050565b60008082905060005b8451811015612f6e576000858281518110612f2b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101519050808311612f4d57612f468382612fe7565b9250612f5a565b612f578184612fe7565b92505b508080612f66906144fa565b915050612ee7565b508091505092915050565b612f838383612ffe565b612f906000848484612d47565b612fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc690613e14565b60405180910390fd5b505050565b600080823b905060008111915050919050565b600082600052816020526040600020905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561306e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306590613fd4565b60405180910390fd5b613077816123cd565b156130b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130ae90613e54565b60405180910390fd5b6130c360008383612d0d565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131139190614248565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b8280546131d89061446c565b90600052602060002090601f0160209004810192826131fa5760008555613241565b82601f1061321357805160ff1916838001178555613241565b82800160010185558215613241579182015b82811115613240578251825591602001919060010190613225565b5b50905061324e9190613252565b5090565b5b8082111561326b576000816000905550600101613253565b5090565b600061328261327d8461412a565b614105565b905080838252602082019050828560208602820111156132a157600080fd5b60005b858110156132d157816132b788826133ab565b8452602084019350602083019250506001810190506132a4565b5050509392505050565b60006132ee6132e984614156565b614105565b90508281526020810184848401111561330657600080fd5b61331184828561442a565b509392505050565b600061332c61332784614187565b614105565b90508281526020810184848401111561334457600080fd5b61334f84828561442a565b509392505050565b60008135905061336681614c3c565b92915050565b600082601f83011261337d57600080fd5b813561338d84826020860161326f565b91505092915050565b6000813590506133a581614c53565b92915050565b6000813590506133ba81614c6a565b92915050565b6000813590506133cf81614c81565b92915050565b6000815190506133e481614c81565b92915050565b600082601f8301126133fb57600080fd5b813561340b8482602086016132db565b91505092915050565b600082601f83011261342557600080fd5b8135613435848260208601613319565b91505092915050565b60008135905061344d81614c98565b92915050565b60008135905061346281614caf565b92915050565b60008135905061347781614cc6565b92915050565b60006020828403121561348f57600080fd5b600061349d84828501613357565b91505092915050565b600080604083850312156134b957600080fd5b60006134c785828601613357565b92505060206134d885828601613357565b9150509250929050565b6000806000606084860312156134f757600080fd5b600061350586828701613357565b935050602061351686828701613357565b925050604061352786828701613453565b9150509250925092565b6000806000806080858703121561354757600080fd5b600061355587828801613357565b945050602061356687828801613357565b935050604061357787828801613453565b925050606085013567ffffffffffffffff81111561359457600080fd5b6135a0878288016133ea565b91505092959194509250565b600080604083850312156135bf57600080fd5b60006135cd85828601613357565b92505060206135de85828601613396565b9150509250929050565b600080604083850312156135fb57600080fd5b600061360985828601613357565b925050602061361a85828601613453565b9150509250929050565b6000806040838503121561363757600080fd5b600061364585828601613357565b925050602061365685828601613468565b9150509250929050565b60006020828403121561367257600080fd5b6000613680848285016133ab565b91505092915050565b60006020828403121561369b57600080fd5b60006136a9848285016133c0565b91505092915050565b6000602082840312156136c457600080fd5b60006136d2848285016133d5565b91505092915050565b6000602082840312156136ed57600080fd5b600082013567ffffffffffffffff81111561370757600080fd5b61371384828501613414565b91505092915050565b60006020828403121561372e57600080fd5b600061373c8482850161343e565b91505092915050565b60006020828403121561375757600080fd5b600061376584828501613453565b91505092915050565b60006020828403121561378057600080fd5b600061378e84828501613468565b91505092915050565b600080604083850312156137aa57600080fd5b60006137b885828601613468565b925050602083013567ffffffffffffffff8111156137d557600080fd5b6137e18582860161336c565b9150509250929050565b6137f481614391565b82525050565b61380b61380682614391565b61456d565b82525050565b61381a816143a3565b82525050565b600061382b826141cd565b61383581856141e3565b9350613845818560208601614439565b61384e8161467e565b840191505092915050565b6000613864826141d8565b61386e81856141f4565b935061387e818560208601614439565b6138878161467e565b840191505092915050565b600061389d826141d8565b6138a78185614205565b93506138b7818560208601614439565b80840191505092915050565b600081546138d08161446c565b6138da8186614205565b945060018216600081146138f5576001811461390657613939565b60ff19831686528186019350613939565b61390f856141b8565b60005b8381101561393157815481890152600182019150602081019050613912565b838801955050505b50505092915050565b600061394f600e836141f4565b915061395a8261469c565b602082019050919050565b60006139726016836141f4565b915061397d826146c5565b602082019050919050565b60006139956032836141f4565b91506139a0826146ee565b604082019050919050565b60006139b86026836141f4565b91506139c38261473d565b604082019050919050565b60006139db601c836141f4565b91506139e68261478c565b602082019050919050565b60006139fe601a836141f4565b9150613a09826147b5565b602082019050919050565b6000613a216017836141f4565b9150613a2c826147de565b602082019050919050565b6000613a44600d836141f4565b9150613a4f82614807565b602082019050919050565b6000613a676024836141f4565b9150613a7282614830565b604082019050919050565b6000613a8a6019836141f4565b9150613a958261487f565b602082019050919050565b6000613aad602c836141f4565b9150613ab8826148a8565b604082019050919050565b6000613ad0600c836141f4565b9150613adb826148f7565b602082019050919050565b6000613af36013836141f4565b9150613afe82614920565b602082019050919050565b6000613b166038836141f4565b9150613b2182614949565b604082019050919050565b6000613b39602a836141f4565b9150613b4482614998565b604082019050919050565b6000613b5c6029836141f4565b9150613b67826149e7565b604082019050919050565b6000613b7f6020836141f4565b9150613b8a82614a36565b602082019050919050565b6000613ba2602c836141f4565b9150613bad82614a5f565b604082019050919050565b6000613bc5600583614205565b9150613bd082614aae565b600582019050919050565b6000613be86020836141f4565b9150613bf382614ad7565b602082019050919050565b6000613c0b6029836141f4565b9150613c1682614b00565b604082019050919050565b6000613c2e602f836141f4565b9150613c3982614b4f565b604082019050919050565b6000613c516021836141f4565b9150613c5c82614b9e565b604082019050919050565b6000613c746031836141f4565b9150613c7f82614bed565b604082019050919050565b613c93816143e5565b82525050565b613ca281614413565b82525050565b613cb18161441d565b82525050565b6000613cc382846137fa565b60148201915081905092915050565b6000613cde8285613892565b9150613cea8284613892565b9150613cf582613bb8565b91508190509392505050565b6000613d0d82856138c3565b9150613d198284613892565b9150613d2482613bb8565b91508190509392505050565b6000602082019050613d4560008301846137eb565b92915050565b6000608082019050613d6060008301876137eb565b613d6d60208301866137eb565b613d7a6040830185613c99565b8181036060830152613d8c8184613820565b905095945050505050565b6000602082019050613dac6000830184613811565b92915050565b60006020820190508181036000830152613dcc8184613859565b905092915050565b60006020820190508181036000830152613ded81613942565b9050919050565b60006020820190508181036000830152613e0d81613965565b9050919050565b60006020820190508181036000830152613e2d81613988565b9050919050565b60006020820190508181036000830152613e4d816139ab565b9050919050565b60006020820190508181036000830152613e6d816139ce565b9050919050565b60006020820190508181036000830152613e8d816139f1565b9050919050565b60006020820190508181036000830152613ead81613a14565b9050919050565b60006020820190508181036000830152613ecd81613a37565b9050919050565b60006020820190508181036000830152613eed81613a5a565b9050919050565b60006020820190508181036000830152613f0d81613a7d565b9050919050565b60006020820190508181036000830152613f2d81613aa0565b9050919050565b60006020820190508181036000830152613f4d81613ac3565b9050919050565b60006020820190508181036000830152613f6d81613ae6565b9050919050565b60006020820190508181036000830152613f8d81613b09565b9050919050565b60006020820190508181036000830152613fad81613b2c565b9050919050565b60006020820190508181036000830152613fcd81613b4f565b9050919050565b60006020820190508181036000830152613fed81613b72565b9050919050565b6000602082019050818103600083015261400d81613b95565b9050919050565b6000602082019050818103600083015261402d81613bdb565b9050919050565b6000602082019050818103600083015261404d81613bfe565b9050919050565b6000602082019050818103600083015261406d81613c21565b9050919050565b6000602082019050818103600083015261408d81613c44565b9050919050565b600060208201905081810360008301526140ad81613c67565b9050919050565b60006020820190506140c96000830184613c8a565b92915050565b60006020820190506140e46000830184613c99565b92915050565b60006020820190506140ff6000830184613ca8565b92915050565b600061410f614120565b905061411b828261449e565b919050565b6000604051905090565b600067ffffffffffffffff8211156141455761414461464f565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156141715761417061464f565b5b61417a8261467e565b9050602081019050919050565b600067ffffffffffffffff8211156141a2576141a161464f565b5b6141ab8261467e565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061421b826143e5565b9150614226836143e5565b92508261ffff0382111561423d5761423c6145c2565b5b828201905092915050565b600061425382614413565b915061425e83614413565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614293576142926145c2565b5b828201905092915050565b60006142a982614413565b91506142b483614413565b9250826142c4576142c36145f1565b5b828204905092915050565b60006142da82614413565b91506142e583614413565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561431e5761431d6145c2565b5b828202905092915050565b6000614334826143e5565b915061433f836143e5565b925082821015614352576143516145c2565b5b828203905092915050565b600061436882614413565b915061437383614413565b925082821015614386576143856145c2565b5b828203905092915050565b600061439c826143f3565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561445757808201518184015260208101905061443c565b83811115614466576000848401525b50505050565b6000600282049050600182168061448457607f821691505b6020821081141561449857614497614620565b5b50919050565b6144a78261467e565b810181811067ffffffffffffffff821117156144c6576144c561464f565b5b80604052505050565b60006144da826143e5565b915061ffff8214156144ef576144ee6145c2565b5b600182019050919050565b600061450582614413565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614538576145376145c2565b5b600182019050919050565b600061454e8261441d565b915060ff821415614562576145616145c2565b5b600182019050919050565b60006145788261457f565b9050919050565b600061458a8261468f565b9050919050565b600061459c82614413565b91506145a783614413565b9250826145b7576145b66145f1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f4e4f5f4d4f52455f535550504c59000000000000000000000000000000000000600082015250565b7f57484954454c4953545f4c494d49545f45584345454400000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f43414e545f4255595f4d4f52455f5448414e5f414c4c4f574544000000000000600082015250565b7f414444524553535f4e4f545f57484954454c4953544544000000000000000000600082015250565b7f494e56414c49445f505249434500000000000000000000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4c494d49545f4558434545440000000000000000000000000000000000000000600082015250565b7f53414c455f4e4f545f4143544956455f59455400000000000000000000000000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b614c4581614391565b8114614c5057600080fd5b50565b614c5c816143a3565b8114614c6757600080fd5b50565b614c73816143af565b8114614c7e57600080fd5b50565b614c8a816143b9565b8114614c9557600080fd5b50565b614ca1816143e5565b8114614cac57600080fd5b50565b614cb881614413565b8114614cc357600080fd5b50565b614ccf8161441d565b8114614cda57600080fd5b5056fea2646970667358221220ec32507fa9c0502419280a94d8aeff41cbc4f74e93433b54a0fcbef655a2d15b64736f6c63430008040033

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

000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000009486f6f64537461727a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000348535a0000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): HoodStarz
Arg [1] : _ticker (string): HSZ

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [3] : 486f6f64537461727a0000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [5] : 48535a0000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

17279:4672:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8277:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9047:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10120:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17962:125;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9703:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17689:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19301:67;;;;;;;;;;;;;:::i;:::-;;10818:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21130:109;;;;;;;;;;;;;:::i;:::-;;17484:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11110:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17384:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18435:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19074:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19658:584;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8802:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19376:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17434:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8588:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15729:94;;;;;;;;;;;;;:::i;:::-;;17738:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18973:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20250:466;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15510:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18876:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9153:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17784:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17580:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10347:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20724:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18338:89;;;;;;;;;;;;;:::i;:::-;;17534:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11301:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21247:494;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19470:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19187:106;;;;;;;;;;;;;:::i;:::-;;18100:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19568:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17634:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10648:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15829:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18541:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18158:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8277:305;8379:4;8431:25;8416:40;;;:11;:40;;;;:105;;;;8488:33;8473:48;;;:11;:48;;;;8416:105;:158;;;;8538:36;8562:11;8538:23;:36::i;:::-;8416:158;8396:178;;8277:305;;;:::o;9047:100::-;9101:13;9134:5;9127:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9047:100;:::o;10120:221::-;10196:7;10224:16;10232:7;10224;:16::i;:::-;10216:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10309:15;:24;10325:7;10309:24;;;;;;;;;;;;;;;;;;;;;10302:31;;10120:221;;;:::o;17962:125::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9703:411::-;9784:13;9800:23;9815:7;9800:14;:23::i;:::-;9784:39;;9848:5;9842:11;;:2;:11;;;;9834:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9942:5;9926:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;9951:37;9968:5;9975:12;:10;:12::i;:::-;9951:16;:37::i;:::-;9926:62;9904:168;;;;;;;;;;;;:::i;:::-;;;;;;;;;10085:21;10094:2;10098:7;10085:8;:21::i;:::-;9703:411;;;:::o;17689:42::-;;;;;;;;;;;;;:::o;19301:67::-;15654:12;:10;:12::i;:::-;15643:23;;:7;:5;:7::i;:::-;:23;;;15635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19356:4:::1;;;;;;;;;;;19355:5;19348:4;;:12;;;;;;;;;;;;;;;;;;19301:67::o:0;10818:286::-;10960:41;10979:12;:10;:12::i;:::-;10993:7;10960:18;:41::i;:::-;10952:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;11068:28;11078:4;11084:2;11088:7;11068:9;:28::i;:::-;10818:286;;;:::o;21130:109::-;15654:12;:10;:12::i;:::-;15643:23;;:7;:5;:7::i;:::-;:23;;;15635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21188:10:::1;21180:28;;:51;21209:21;21180:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21130:109::o:0;17484:43::-;;;;;;;;;;;;;:::o;11110:185::-;11248:39;11265:4;11271:2;11275:7;11248:39;;;;;;;;;;;;:16;:39::i;:::-;11110:185;;;:::o;17384:43::-;;;;;;;;;;;;;:::o;18435:98::-;15654:12;:10;:12::i;:::-;15643:23;;:7;:5;:7::i;:::-;:23;;;15635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18517:8:::1;18507:7;:18;;;;;;;;;;;;:::i;:::-;;18435:98:::0;:::o;19074:105::-;15654:12;:10;:12::i;:::-;15643:23;;:7;:5;:7::i;:::-;:23;;;15635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19161:10:::1;19147:11;;:24;;;;;;;;;;;;;;;;;;19074:105:::0;:::o;19658:584::-;19753:19;;;;;;;;;;;19745:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;19815:13;19822:5;19815:6;:13::i;:::-;19807:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;19883:7;;;;;;;;;;;19875:15;;:4;:15;;;;19867:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;19978:7;;;;;;;;;;;19940:45;;19970:4;19940:34;;:15;:27;19956:10;19940:27;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;:45;;19932:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;20059:11;;;;;;;;;;;20031:39;;20054:1;20046:5;;;;;;;;;;;20038:4;20031:12;;:20;;;;:::i;:::-;:24;;;;:::i;:::-;:39;;;;20023:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;20131:4;20121:14;;:7;;:14;;;;:::i;:::-;20108:9;:27;;20100:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;20164:26;20173:10;20185:4;20164:8;:26::i;:::-;20230:4;20201:33;;:15;:27;20217:10;20201:27;;;;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;19658:584;;:::o;8802:239::-;8874:7;8894:13;8910:7;:16;8918:7;8910:16;;;;;;;;;;;;;;;;;;;;;8894:32;;8962:1;8945:19;;:5;:19;;;;8937:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9028:5;9021:12;;;8802:239;;;:::o;19376:86::-;15654:12;:10;:12::i;:::-;15643:23;;:7;:5;:7::i;:::-;:23;;;15635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19447:7:::1;19439:5;;:15;;;;;;;;;;;;;;;;;;19376:86:::0;:::o;17434:43::-;;;;;;;;;;;;;:::o;8588:208::-;8660:7;8705:1;8688:19;;:5;:19;;;;8680:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8772:9;:16;8782:5;8772:16;;;;;;;;;;;;;;;;8765:23;;8588:208;;;:::o;15729:94::-;15654:12;:10;:12::i;:::-;15643:23;;:7;:5;:7::i;:::-;:23;;;15635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15794:21:::1;15812:1;15794:9;:21::i;:::-;15729:94::o:0;17738:39::-;;;;;;;;;;;;;:::o;18973:93::-;15654:12;:10;:12::i;:::-;15643:23;;:7;:5;:7::i;:::-;:23;;;15635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19049:9:::1;19039:7;:19;;;;18973:93:::0;:::o;20250:466::-;20318:4;;;;;;;;;;;20310:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;20373:5;;;;;;;;;;;20365:13;;:4;:13;;;;20357:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;20466:5;;;;;;;;;;;20428:43;;20458:4;20428:34;;:15;:27;20444:10;20428:27;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;:43;;20420:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20535:11;;;;;;;;;;;20507:39;;20530:1;20522:5;;;;;;;;;;;20514:4;20507:12;;:20;;;;:::i;:::-;:24;;;;:::i;:::-;:39;;;;20499:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;20605:4;20597:12;;:5;;:12;;;;:::i;:::-;20584:9;:25;;20576:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;20638:26;20647:10;20659:4;20638:8;:26::i;:::-;20704:4;20675:33;;:15;:27;20691:10;20675:27;;;;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;20250:466;:::o;15510:87::-;15556:7;15583:6;;;;;;;;;;;15576:13;;15510:87;:::o;18876:89::-;15654:12;:10;:12::i;:::-;15643:23;;:7;:5;:7::i;:::-;:23;;;15635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18948:9:::1;18940:5;:17;;;;18876:89:::0;:::o;9153:104::-;9209:13;9242:7;9235:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9153:104;:::o;17784:39::-;;;;;;;;;;;;;:::o;17580:47::-;;;;:::o;10347:295::-;10462:12;:10;:12::i;:::-;10450:24;;:8;:24;;;;10442:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10562:8;10517:18;:32;10536:12;:10;:12::i;:::-;10517:32;;;;;;;;;;;;;;;:42;10550:8;10517:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;10615:8;10586:48;;10601:12;:10;:12::i;:::-;10586:48;;;10625:8;10586:48;;;;;;:::i;:::-;;;;;;;;10347:295;;:::o;20724:177::-;15654:12;:10;:12::i;:::-;15643:23;;:7;:5;:7::i;:::-;:23;;;15635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20833:11:::1;;;;;;;;;;;20805:39;;20828:1;20820:5;;;;;;;;;;;20812:4;20805:12;;:20;;;;:::i;:::-;:24;;;;:::i;:::-;:39;;;;20797:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;20874:19;20883:3;20888:4;20874:8;:19::i;:::-;20724:177:::0;;:::o;18338:89::-;15654:12;:10;:12::i;:::-;15643:23;;:7;:5;:7::i;:::-;:23;;;15635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18411:8:::1;;;;;;;;;;;18410:9;18384:8;;:35;;;;;;;;;;;;;;;;;;18338:89::o:0;17534:39::-;;;;;;;;;;;;;:::o;11301:328::-;11476:41;11495:12;:10;:12::i;:::-;11509:7;11476:18;:41::i;:::-;11468:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;11582:39;11596:4;11602:2;11606:7;11615:5;11582:13;:39::i;:::-;11301:328;;;;:::o;21247:494::-;21320:13;21354:16;21362:7;21354;:16::i;:::-;21346:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;21448:5;21436:17;;:8;;;;;;;;;;;:17;;;21433:301;;;21508:1;21483:14;21477:28;;;;;:::i;:::-;;;:32;:109;;;;;;;;;;;;;;;;;21536:14;21552:18;:7;:16;:18::i;:::-;21519:61;;;;;;;;;:::i;:::-;;;;;;;;;;;;;21477:109;21470:116;;;;21433:301;21648:1;21630:7;21624:21;;;;;:::i;:::-;;;:25;:98;;;;;;;;;;;;;;;;;21676:10;:8;:10::i;:::-;21688:18;:7;:16;:18::i;:::-;21659:57;;;;;;;;;:::i;:::-;;;;;;;;;;;;;21624:98;21617:105;;21247:494;;;;:::o;19470:90::-;15654:12;:10;:12::i;:::-;15643:23;;:7;:5;:7::i;:::-;:23;;;15635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19545:7:::1;19535;;:17;;;;;;;;;;;;;;;;;;19470:90:::0;:::o;19187:106::-;15654:12;:10;:12::i;:::-;15643:23;;:7;:5;:7::i;:::-;:23;;;15635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19266:19:::1;;;;;;;;;;;19265:20;19243:19;;:42;;;;;;;;;;;;;;;;;;19187:106::o:0;18100:51::-;;;;;;;;;;;;;;;;;:::o;19568:82::-;15654:12;:10;:12::i;:::-;15643:23;;:7;:5;:7::i;:::-;:23;;;15635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19637:5:::1;19630:4;:12;;;;19568:82:::0;:::o;17634:48::-;;;;:::o;10648:164::-;10745:4;10769:18;:25;10788:5;10769:25;;;;;;;;;;;;;;;:35;10795:8;10769:35;;;;;;;;;;;;;;;;;;;;;;;;;10762:42;;10648:164;;;;:::o;15829:192::-;15654:12;:10;:12::i;:::-;15643:23;;:7;:5;:7::i;:::-;:23;;;15635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15938:1:::1;15918:22;;:8;:22;;;;15910:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15994:19;16004:8;15994:9;:19::i;:::-;15829:192:::0;:::o;18541:111::-;15654:12;:10;:12::i;:::-;15643:23;;:7;:5;:7::i;:::-;:23;;;15635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18636:8:::1;18619:14;:25;;;;;;;;;;;;:::i;:::-;;18541:111:::0;:::o;18158:51::-;;;;;;;;;;;;;;;;;:::o;7540:157::-;7625:4;7664:25;7649:40;;;:11;:40;;;;7642:47;;7540:157;;;:::o;11956:127::-;12021:4;12073:1;12045:30;;:7;:16;12053:7;12045:16;;;;;;;;;;;;;;;;;;;;;:30;;;;12038:37;;11956:127;;;:::o;5679:98::-;5732:7;5759:10;5752:17;;5679:98;:::o;14140:174::-;14242:2;14215:15;:24;14231:7;14215:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14298:7;14294:2;14260:46;;14269:23;14284:7;14269:14;:23::i;:::-;14260:46;;;;;;;;;;;;14140:174;;:::o;12089:348::-;12182:4;12207:16;12215:7;12207;:16::i;:::-;12199:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12283:13;12299:23;12314:7;12299:14;:23::i;:::-;12283:39;;12352:5;12341:16;;:7;:16;;;:51;;;;12385:7;12361:31;;:20;12373:7;12361:11;:20::i;:::-;:31;;;12341:51;:87;;;;12396:32;12413:5;12420:7;12396:16;:32::i;:::-;12341:87;12333:96;;;12089:348;;;;:::o;13610:524::-;13769:4;13742:31;;:23;13757:7;13742:14;:23::i;:::-;:31;;;13734:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13852:1;13838:16;;:2;:16;;;;13830:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13908:39;13929:4;13935:2;13939:7;13908:20;:39::i;:::-;13958:29;13975:1;13979:7;13958:8;:29::i;:::-;14019:1;14000:9;:15;14010:4;14000:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;14048:1;14031:9;:13;14041:2;14031:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;14079:2;14060:7;:16;14068:7;14060:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14118:7;14114:2;14099:27;;14108:4;14099:27;;;;;;;;;;;;13610:524;;;:::o;21749:197::-;21812:4;21829:12;21871:10;21854:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;21844:39;;;;;;21829:54;;21901:37;21920:5;21927:4;;21933;21901:18;:37::i;:::-;21894:44;;;21749:197;;;:::o;20909:213::-;20976:7;20971:144;20993:4;20989:8;;:1;:8;;;20971:144;;;21019:5;;:7;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;21041:15;21059:5;;;;;;;;;;;21041:23;;21079:24;21089:3;21094:8;21079:24;;:9;:24::i;:::-;20971:144;20999:3;;;;;:::i;:::-;;;;20971:144;;;;20909:213;;:::o;16029:173::-;16085:16;16104:6;;;;;;;;;;;16085:25;;16130:8;16121:6;;:17;;;;;;;;;;;;;;;;;;16185:8;16154:40;;16175:8;16154:40;;;;;;;;;;;;16029:173;;:::o;11635:315::-;11792:28;11802:4;11808:2;11812:7;11792:9;:28::i;:::-;11839:48;11862:4;11868:2;11872:7;11881:5;11839:22;:48::i;:::-;11831:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;11635:315;;;;:::o;6006:656::-;6062:13;6225:1;6216:5;:10;6212:53;;;6243:10;;;;;;;;;;;;;;;;;;;;;6212:53;6275:12;6290:5;6275:20;;6306:14;6331:78;6346:1;6338:4;:9;6331:78;;6364:8;;;;;:::i;:::-;;;;6395:2;6387:10;;;;;:::i;:::-;;;6331:78;;;6419:19;6451:6;6441:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6419:39;;6469:154;6485:1;6476:5;:10;6469:154;;6513:1;6503:11;;;;;:::i;:::-;;;6580:2;6572:5;:10;;;;:::i;:::-;6559:2;:24;;;;:::i;:::-;6546:39;;6529:6;6536;6529:14;;;;;;;;;;;;;;;;;;;:56;;;;;;;;;;;6609:2;6600:11;;;;;:::i;:::-;;;6469:154;;;6647:6;6633:21;;;;;6006:656;;;;:::o;18660:208::-;18720:13;18761:5;18749:17;;:8;;;;;;;;;;;:17;;;18746:115;;;18790:14;18783:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18746:115;18842:7;18835:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18660:208;;:::o;15125:126::-;;;;:::o;16261:190::-;16386:4;16439;16410:25;16423:5;16430:4;16410:12;:25::i;:::-;:33;16403:40;;16261:190;;;;;:::o;12443:110::-;12519:26;12529:2;12533:7;12519:26;;;;;;;;;;;;:9;:26::i;:::-;12443:110;;:::o;14320:799::-;14475:4;14496:15;:2;:13;;;:15::i;:::-;14492:620;;;14548:2;14532:36;;;14569:12;:10;:12::i;:::-;14583:4;14589:7;14598:5;14532:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14528:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14791:1;14774:6;:13;:18;14770:272;;;14817:60;;;;;;;;;;:::i;:::-;;;;;;;;14770:272;14992:6;14986:13;14977:6;14973:2;14969:15;14962:38;14528:529;14665:41;;;14655:51;;;:6;:51;;;;14648:58;;;;;14492:620;15096:4;15089:11;;14320:799;;;;;;;:::o;16459:549::-;16569:7;16594:20;16617:4;16594:27;;16637:9;16632:339;16656:5;:12;16652:1;:16;16632:339;;;16690:20;16713:5;16719:1;16713:8;;;;;;;;;;;;;;;;;;;;;;16690:31;;16756:12;16740;:28;16736:224;;16804:42;16819:12;16833;16804:14;:42::i;:::-;16789:57;;16736:224;;;16902:42;16917:12;16931;16902:14;:42::i;:::-;16887:57;;16736:224;16632:339;16670:3;;;;;:::i;:::-;;;;16632:339;;;;16988:12;16981:19;;;16459:549;;;;:::o;12559:321::-;12689:18;12695:2;12699:7;12689:5;:18::i;:::-;12740:54;12771:1;12775:2;12779:7;12788:5;12740:22;:54::i;:::-;12718:154;;;;;;;;;;;;:::i;:::-;;;;;;;;;12559:321;;;:::o;2049:272::-;2109:4;2202:12;2269:7;2257:20;2249:28;;2312:1;2305:4;:8;2298:15;;;2049:272;;;:::o;17016:256::-;17111:13;17179:1;17173:4;17166:15;17208:1;17202:4;17195:15;17249:4;17243;17233:21;17224:30;;17151:114;;;;:::o;12886:382::-;12980:1;12966:16;;:2;:16;;;;12958:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13039:16;13047:7;13039;:16::i;:::-;13038:17;13030:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13101:45;13130:1;13134:2;13138:7;13101:20;:45::i;:::-;13176:1;13159:9;:13;13169:2;13159:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;13207:2;13188:7;:16;13196:7;13188:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13252:7;13248:2;13227:33;;13244:1;13227:33;;;;;;;;;;;;12886:382;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:343::-;762:5;787:65;803:48;844:6;803:48;:::i;:::-;787:65;:::i;:::-;778:74;;875:6;868:5;861:21;913:4;906:5;902:16;951:3;942:6;937:3;933:16;930:25;927:2;;;968:1;965;958:12;927:2;981:41;1015:6;1010:3;1005;981:41;:::i;:::-;768:260;;;;;;:::o;1034:345::-;1112:5;1137:66;1153:49;1195:6;1153:49;:::i;:::-;1137:66;:::i;:::-;1128:75;;1226:6;1219:5;1212:21;1264:4;1257:5;1253:16;1302:3;1293:6;1288:3;1284:16;1281:25;1278:2;;;1319:1;1316;1309:12;1278:2;1332:41;1366:6;1361:3;1356;1332:41;:::i;:::-;1118:261;;;;;;:::o;1385:139::-;1431:5;1469:6;1456:20;1447:29;;1485:33;1512:5;1485:33;:::i;:::-;1437:87;;;;:::o;1547:303::-;1618:5;1667:3;1660:4;1652:6;1648:17;1644:27;1634:2;;1685:1;1682;1675:12;1634:2;1725:6;1712:20;1750:94;1840:3;1832:6;1825:4;1817:6;1813:17;1750:94;:::i;:::-;1741:103;;1624:226;;;;;:::o;1856:133::-;1899:5;1937:6;1924:20;1915:29;;1953:30;1977:5;1953:30;:::i;:::-;1905:84;;;;:::o;1995:139::-;2041:5;2079:6;2066:20;2057:29;;2095:33;2122:5;2095:33;:::i;:::-;2047:87;;;;:::o;2140:137::-;2185:5;2223:6;2210:20;2201:29;;2239:32;2265:5;2239:32;:::i;:::-;2191:86;;;;:::o;2283:141::-;2339:5;2370:6;2364:13;2355:22;;2386:32;2412:5;2386:32;:::i;:::-;2345:79;;;;:::o;2443:271::-;2498:5;2547:3;2540:4;2532:6;2528:17;2524:27;2514:2;;2565:1;2562;2555:12;2514:2;2605:6;2592:20;2630:78;2704:3;2696:6;2689:4;2681:6;2677:17;2630:78;:::i;:::-;2621:87;;2504:210;;;;;:::o;2734:273::-;2790:5;2839:3;2832:4;2824:6;2820:17;2816:27;2806:2;;2857:1;2854;2847:12;2806:2;2897:6;2884:20;2922:79;2997:3;2989:6;2982:4;2974:6;2970:17;2922:79;:::i;:::-;2913:88;;2796:211;;;;;:::o;3013:137::-;3058:5;3096:6;3083:20;3074:29;;3112:32;3138:5;3112:32;:::i;:::-;3064:86;;;;:::o;3156:139::-;3202:5;3240:6;3227:20;3218:29;;3256:33;3283:5;3256:33;:::i;:::-;3208:87;;;;:::o;3301:135::-;3345:5;3383:6;3370:20;3361:29;;3399:31;3424:5;3399:31;:::i;:::-;3351:85;;;;:::o;3442:262::-;3501:6;3550:2;3538:9;3529:7;3525:23;3521:32;3518:2;;;3566:1;3563;3556:12;3518:2;3609:1;3634:53;3679:7;3670:6;3659:9;3655:22;3634:53;:::i;:::-;3624:63;;3580:117;3508:196;;;;:::o;3710:407::-;3778:6;3786;3835:2;3823:9;3814:7;3810:23;3806:32;3803:2;;;3851:1;3848;3841:12;3803:2;3894:1;3919:53;3964:7;3955:6;3944:9;3940:22;3919:53;:::i;:::-;3909:63;;3865:117;4021:2;4047:53;4092:7;4083:6;4072:9;4068:22;4047:53;:::i;:::-;4037:63;;3992:118;3793:324;;;;;:::o;4123:552::-;4200:6;4208;4216;4265:2;4253:9;4244:7;4240:23;4236:32;4233:2;;;4281:1;4278;4271:12;4233:2;4324:1;4349:53;4394:7;4385:6;4374:9;4370:22;4349:53;:::i;:::-;4339:63;;4295:117;4451:2;4477:53;4522:7;4513:6;4502:9;4498:22;4477:53;:::i;:::-;4467:63;;4422:118;4579:2;4605:53;4650:7;4641:6;4630:9;4626:22;4605:53;:::i;:::-;4595:63;;4550:118;4223:452;;;;;:::o;4681:809::-;4776:6;4784;4792;4800;4849:3;4837:9;4828:7;4824:23;4820:33;4817:2;;;4866:1;4863;4856:12;4817:2;4909:1;4934:53;4979:7;4970:6;4959:9;4955:22;4934:53;:::i;:::-;4924:63;;4880:117;5036:2;5062:53;5107:7;5098:6;5087:9;5083:22;5062:53;:::i;:::-;5052:63;;5007:118;5164:2;5190:53;5235:7;5226:6;5215:9;5211:22;5190:53;:::i;:::-;5180:63;;5135:118;5320:2;5309:9;5305:18;5292:32;5351:18;5343:6;5340:30;5337:2;;;5383:1;5380;5373:12;5337:2;5411:62;5465:7;5456:6;5445:9;5441:22;5411:62;:::i;:::-;5401:72;;5263:220;4807:683;;;;;;;:::o;5496:401::-;5561:6;5569;5618:2;5606:9;5597:7;5593:23;5589:32;5586:2;;;5634:1;5631;5624:12;5586:2;5677:1;5702:53;5747:7;5738:6;5727:9;5723:22;5702:53;:::i;:::-;5692:63;;5648:117;5804:2;5830:50;5872:7;5863:6;5852:9;5848:22;5830:50;:::i;:::-;5820:60;;5775:115;5576:321;;;;;:::o;5903:407::-;5971:6;5979;6028:2;6016:9;6007:7;6003:23;5999:32;5996:2;;;6044:1;6041;6034:12;5996:2;6087:1;6112:53;6157:7;6148:6;6137:9;6133:22;6112:53;:::i;:::-;6102:63;;6058:117;6214:2;6240:53;6285:7;6276:6;6265:9;6261:22;6240:53;:::i;:::-;6230:63;;6185:118;5986:324;;;;;:::o;6316:403::-;6382:6;6390;6439:2;6427:9;6418:7;6414:23;6410:32;6407:2;;;6455:1;6452;6445:12;6407:2;6498:1;6523:53;6568:7;6559:6;6548:9;6544:22;6523:53;:::i;:::-;6513:63;;6469:117;6625:2;6651:51;6694:7;6685:6;6674:9;6670:22;6651:51;:::i;:::-;6641:61;;6596:116;6397:322;;;;;:::o;6725:262::-;6784:6;6833:2;6821:9;6812:7;6808:23;6804:32;6801:2;;;6849:1;6846;6839:12;6801:2;6892:1;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6863:117;6791:196;;;;:::o;6993:260::-;7051:6;7100:2;7088:9;7079:7;7075:23;7071:32;7068:2;;;7116:1;7113;7106:12;7068:2;7159:1;7184:52;7228:7;7219:6;7208:9;7204:22;7184:52;:::i;:::-;7174:62;;7130:116;7058:195;;;;:::o;7259:282::-;7328:6;7377:2;7365:9;7356:7;7352:23;7348:32;7345:2;;;7393:1;7390;7383:12;7345:2;7436:1;7461:63;7516:7;7507:6;7496:9;7492:22;7461:63;:::i;:::-;7451:73;;7407:127;7335:206;;;;:::o;7547:375::-;7616:6;7665:2;7653:9;7644:7;7640:23;7636:32;7633:2;;;7681:1;7678;7671:12;7633:2;7752:1;7741:9;7737:17;7724:31;7782:18;7774:6;7771:30;7768:2;;;7814:1;7811;7804:12;7768:2;7842:63;7897:7;7888:6;7877:9;7873:22;7842:63;:::i;:::-;7832:73;;7695:220;7623:299;;;;:::o;7928:260::-;7986:6;8035:2;8023:9;8014:7;8010:23;8006:32;8003:2;;;8051:1;8048;8041:12;8003:2;8094:1;8119:52;8163:7;8154:6;8143:9;8139:22;8119:52;:::i;:::-;8109:62;;8065:116;7993:195;;;;:::o;8194:262::-;8253:6;8302:2;8290:9;8281:7;8277:23;8273:32;8270:2;;;8318:1;8315;8308:12;8270:2;8361:1;8386:53;8431:7;8422:6;8411:9;8407:22;8386:53;:::i;:::-;8376:63;;8332:117;8260:196;;;;:::o;8462:258::-;8519:6;8568:2;8556:9;8547:7;8543:23;8539:32;8536:2;;;8584:1;8581;8574:12;8536:2;8627:1;8652:51;8695:7;8686:6;8675:9;8671:22;8652:51;:::i;:::-;8642:61;;8598:115;8526:194;;;;:::o;8726:546::-;8817:6;8825;8874:2;8862:9;8853:7;8849:23;8845:32;8842:2;;;8890:1;8887;8880:12;8842:2;8933:1;8958:51;9001:7;8992:6;8981:9;8977:22;8958:51;:::i;:::-;8948:61;;8904:115;9086:2;9075:9;9071:18;9058:32;9117:18;9109:6;9106:30;9103:2;;;9149:1;9146;9139:12;9103:2;9177:78;9247:7;9238:6;9227:9;9223:22;9177:78;:::i;:::-;9167:88;;9029:236;8832:440;;;;;:::o;9278:118::-;9365:24;9383:5;9365:24;:::i;:::-;9360:3;9353:37;9343:53;;:::o;9402:157::-;9507:45;9527:24;9545:5;9527:24;:::i;:::-;9507:45;:::i;:::-;9502:3;9495:58;9485:74;;:::o;9565:109::-;9646:21;9661:5;9646:21;:::i;:::-;9641:3;9634:34;9624:50;;:::o;9680:360::-;9766:3;9794:38;9826:5;9794:38;:::i;:::-;9848:70;9911:6;9906:3;9848:70;:::i;:::-;9841:77;;9927:52;9972:6;9967:3;9960:4;9953:5;9949:16;9927:52;:::i;:::-;10004:29;10026:6;10004:29;:::i;:::-;9999:3;9995:39;9988:46;;9770:270;;;;;:::o;10046:364::-;10134:3;10162:39;10195:5;10162:39;:::i;:::-;10217:71;10281:6;10276:3;10217:71;:::i;:::-;10210:78;;10297:52;10342:6;10337:3;10330:4;10323:5;10319:16;10297:52;:::i;:::-;10374:29;10396:6;10374:29;:::i;:::-;10369:3;10365:39;10358:46;;10138:272;;;;;:::o;10416:377::-;10522:3;10550:39;10583:5;10550:39;:::i;:::-;10605:89;10687:6;10682:3;10605:89;:::i;:::-;10598:96;;10703:52;10748:6;10743:3;10736:4;10729:5;10725:16;10703:52;:::i;:::-;10780:6;10775:3;10771:16;10764:23;;10526:267;;;;;:::o;10823:845::-;10926:3;10963:5;10957:12;10992:36;11018:9;10992:36;:::i;:::-;11044:89;11126:6;11121:3;11044:89;:::i;:::-;11037:96;;11164:1;11153:9;11149:17;11180:1;11175:137;;;;11326:1;11321:341;;;;11142:520;;11175:137;11259:4;11255:9;11244;11240:25;11235:3;11228:38;11295:6;11290:3;11286:16;11279:23;;11175:137;;11321:341;11388:38;11420:5;11388:38;:::i;:::-;11448:1;11462:154;11476:6;11473:1;11470:13;11462:154;;;11550:7;11544:14;11540:1;11535:3;11531:11;11524:35;11600:1;11591:7;11587:15;11576:26;;11498:4;11495:1;11491:12;11486:17;;11462:154;;;11645:6;11640:3;11636:16;11629:23;;11328:334;;11142:520;;10930:738;;;;;;:::o;11674:366::-;11816:3;11837:67;11901:2;11896:3;11837:67;:::i;:::-;11830:74;;11913:93;12002:3;11913:93;:::i;:::-;12031:2;12026:3;12022:12;12015:19;;11820:220;;;:::o;12046:366::-;12188:3;12209:67;12273:2;12268:3;12209:67;:::i;:::-;12202:74;;12285:93;12374:3;12285:93;:::i;:::-;12403:2;12398:3;12394:12;12387:19;;12192:220;;;:::o;12418:366::-;12560:3;12581:67;12645:2;12640:3;12581:67;:::i;:::-;12574:74;;12657:93;12746:3;12657:93;:::i;:::-;12775:2;12770:3;12766:12;12759:19;;12564:220;;;:::o;12790:366::-;12932:3;12953:67;13017:2;13012:3;12953:67;:::i;:::-;12946:74;;13029:93;13118:3;13029:93;:::i;:::-;13147:2;13142:3;13138:12;13131:19;;12936:220;;;:::o;13162:366::-;13304:3;13325:67;13389:2;13384:3;13325:67;:::i;:::-;13318:74;;13401:93;13490:3;13401:93;:::i;:::-;13519:2;13514:3;13510:12;13503:19;;13308:220;;;:::o;13534:366::-;13676:3;13697:67;13761:2;13756:3;13697:67;:::i;:::-;13690:74;;13773:93;13862:3;13773:93;:::i;:::-;13891:2;13886:3;13882:12;13875:19;;13680:220;;;:::o;13906:366::-;14048:3;14069:67;14133:2;14128:3;14069:67;:::i;:::-;14062:74;;14145:93;14234:3;14145:93;:::i;:::-;14263:2;14258:3;14254:12;14247:19;;14052:220;;;:::o;14278:366::-;14420:3;14441:67;14505:2;14500:3;14441:67;:::i;:::-;14434:74;;14517:93;14606:3;14517:93;:::i;:::-;14635:2;14630:3;14626:12;14619:19;;14424:220;;;:::o;14650:366::-;14792:3;14813:67;14877:2;14872:3;14813:67;:::i;:::-;14806:74;;14889:93;14978:3;14889:93;:::i;:::-;15007:2;15002:3;14998:12;14991:19;;14796:220;;;:::o;15022:366::-;15164:3;15185:67;15249:2;15244:3;15185:67;:::i;:::-;15178:74;;15261:93;15350:3;15261:93;:::i;:::-;15379:2;15374:3;15370:12;15363:19;;15168:220;;;:::o;15394:366::-;15536:3;15557:67;15621:2;15616:3;15557:67;:::i;:::-;15550:74;;15633:93;15722:3;15633:93;:::i;:::-;15751:2;15746:3;15742:12;15735:19;;15540:220;;;:::o;15766:366::-;15908:3;15929:67;15993:2;15988:3;15929:67;:::i;:::-;15922:74;;16005:93;16094:3;16005:93;:::i;:::-;16123:2;16118:3;16114:12;16107:19;;15912:220;;;:::o;16138:366::-;16280:3;16301:67;16365:2;16360:3;16301:67;:::i;:::-;16294:74;;16377:93;16466:3;16377:93;:::i;:::-;16495:2;16490:3;16486:12;16479:19;;16284:220;;;:::o;16510:366::-;16652:3;16673:67;16737:2;16732:3;16673:67;:::i;:::-;16666:74;;16749:93;16838:3;16749:93;:::i;:::-;16867:2;16862:3;16858:12;16851:19;;16656:220;;;:::o;16882:366::-;17024:3;17045:67;17109:2;17104:3;17045:67;:::i;:::-;17038:74;;17121:93;17210:3;17121:93;:::i;:::-;17239:2;17234:3;17230:12;17223:19;;17028:220;;;:::o;17254:366::-;17396:3;17417:67;17481:2;17476:3;17417:67;:::i;:::-;17410:74;;17493:93;17582:3;17493:93;:::i;:::-;17611:2;17606:3;17602:12;17595:19;;17400:220;;;:::o;17626:366::-;17768:3;17789:67;17853:2;17848:3;17789:67;:::i;:::-;17782:74;;17865:93;17954:3;17865:93;:::i;:::-;17983:2;17978:3;17974:12;17967:19;;17772:220;;;:::o;17998:366::-;18140:3;18161:67;18225:2;18220:3;18161:67;:::i;:::-;18154:74;;18237:93;18326:3;18237:93;:::i;:::-;18355:2;18350:3;18346:12;18339:19;;18144:220;;;:::o;18370:400::-;18530:3;18551:84;18633:1;18628:3;18551:84;:::i;:::-;18544:91;;18644:93;18733:3;18644:93;:::i;:::-;18762:1;18757:3;18753:11;18746:18;;18534:236;;;:::o;18776:366::-;18918:3;18939:67;19003:2;18998:3;18939:67;:::i;:::-;18932:74;;19015:93;19104:3;19015:93;:::i;:::-;19133:2;19128:3;19124:12;19117:19;;18922:220;;;:::o;19148:366::-;19290:3;19311:67;19375:2;19370:3;19311:67;:::i;:::-;19304:74;;19387:93;19476:3;19387:93;:::i;:::-;19505:2;19500:3;19496:12;19489:19;;19294:220;;;:::o;19520:366::-;19662:3;19683:67;19747:2;19742:3;19683:67;:::i;:::-;19676:74;;19759:93;19848:3;19759:93;:::i;:::-;19877:2;19872:3;19868:12;19861:19;;19666:220;;;:::o;19892:366::-;20034:3;20055:67;20119:2;20114:3;20055:67;:::i;:::-;20048:74;;20131:93;20220:3;20131:93;:::i;:::-;20249:2;20244:3;20240:12;20233:19;;20038:220;;;:::o;20264:366::-;20406:3;20427:67;20491:2;20486:3;20427:67;:::i;:::-;20420:74;;20503:93;20592:3;20503:93;:::i;:::-;20621:2;20616:3;20612:12;20605:19;;20410:220;;;:::o;20636:115::-;20721:23;20738:5;20721:23;:::i;:::-;20716:3;20709:36;20699:52;;:::o;20757:118::-;20844:24;20862:5;20844:24;:::i;:::-;20839:3;20832:37;20822:53;;:::o;20881:112::-;20964:22;20980:5;20964:22;:::i;:::-;20959:3;20952:35;20942:51;;:::o;20999:256::-;21111:3;21126:75;21197:3;21188:6;21126:75;:::i;:::-;21226:2;21221:3;21217:12;21210:19;;21246:3;21239:10;;21115:140;;;;:::o;21261:701::-;21542:3;21564:95;21655:3;21646:6;21564:95;:::i;:::-;21557:102;;21676:95;21767:3;21758:6;21676:95;:::i;:::-;21669:102;;21788:148;21932:3;21788:148;:::i;:::-;21781:155;;21953:3;21946:10;;21546:416;;;;;:::o;21968:695::-;22246:3;22268:92;22356:3;22347:6;22268:92;:::i;:::-;22261:99;;22377:95;22468:3;22459:6;22377:95;:::i;:::-;22370:102;;22489:148;22633:3;22489:148;:::i;:::-;22482:155;;22654:3;22647:10;;22250:413;;;;;:::o;22669:222::-;22762:4;22800:2;22789:9;22785:18;22777:26;;22813:71;22881:1;22870:9;22866:17;22857:6;22813:71;:::i;:::-;22767:124;;;;:::o;22897:640::-;23092:4;23130:3;23119:9;23115:19;23107:27;;23144:71;23212:1;23201:9;23197:17;23188:6;23144:71;:::i;:::-;23225:72;23293:2;23282:9;23278:18;23269:6;23225:72;:::i;:::-;23307;23375:2;23364:9;23360:18;23351:6;23307:72;:::i;:::-;23426:9;23420:4;23416:20;23411:2;23400:9;23396:18;23389:48;23454:76;23525:4;23516:6;23454:76;:::i;:::-;23446:84;;23097:440;;;;;;;:::o;23543:210::-;23630:4;23668:2;23657:9;23653:18;23645:26;;23681:65;23743:1;23732:9;23728:17;23719:6;23681:65;:::i;:::-;23635:118;;;;:::o;23759:313::-;23872:4;23910:2;23899:9;23895:18;23887:26;;23959:9;23953:4;23949:20;23945:1;23934:9;23930:17;23923:47;23987:78;24060:4;24051:6;23987:78;:::i;:::-;23979:86;;23877:195;;;;:::o;24078:419::-;24244:4;24282:2;24271:9;24267:18;24259:26;;24331:9;24325:4;24321:20;24317:1;24306:9;24302:17;24295:47;24359:131;24485:4;24359:131;:::i;:::-;24351:139;;24249:248;;;:::o;24503:419::-;24669:4;24707:2;24696:9;24692:18;24684:26;;24756:9;24750:4;24746:20;24742:1;24731:9;24727:17;24720:47;24784:131;24910:4;24784:131;:::i;:::-;24776:139;;24674:248;;;:::o;24928:419::-;25094:4;25132:2;25121:9;25117:18;25109:26;;25181:9;25175:4;25171:20;25167:1;25156:9;25152:17;25145:47;25209:131;25335:4;25209:131;:::i;:::-;25201:139;;25099:248;;;:::o;25353:419::-;25519:4;25557:2;25546:9;25542:18;25534:26;;25606:9;25600:4;25596:20;25592:1;25581:9;25577:17;25570:47;25634:131;25760:4;25634:131;:::i;:::-;25626:139;;25524:248;;;:::o;25778:419::-;25944:4;25982:2;25971:9;25967:18;25959:26;;26031:9;26025:4;26021:20;26017:1;26006:9;26002:17;25995:47;26059:131;26185:4;26059:131;:::i;:::-;26051:139;;25949:248;;;:::o;26203:419::-;26369:4;26407:2;26396:9;26392:18;26384:26;;26456:9;26450:4;26446:20;26442:1;26431:9;26427:17;26420:47;26484:131;26610:4;26484:131;:::i;:::-;26476:139;;26374:248;;;:::o;26628:419::-;26794:4;26832:2;26821:9;26817:18;26809:26;;26881:9;26875:4;26871:20;26867:1;26856:9;26852:17;26845:47;26909:131;27035:4;26909:131;:::i;:::-;26901:139;;26799:248;;;:::o;27053:419::-;27219:4;27257:2;27246:9;27242:18;27234:26;;27306:9;27300:4;27296:20;27292:1;27281:9;27277:17;27270:47;27334:131;27460:4;27334:131;:::i;:::-;27326:139;;27224:248;;;:::o;27478:419::-;27644:4;27682:2;27671:9;27667:18;27659:26;;27731:9;27725:4;27721:20;27717:1;27706:9;27702:17;27695:47;27759:131;27885:4;27759:131;:::i;:::-;27751:139;;27649:248;;;:::o;27903:419::-;28069:4;28107:2;28096:9;28092:18;28084:26;;28156:9;28150:4;28146:20;28142:1;28131:9;28127:17;28120:47;28184:131;28310:4;28184:131;:::i;:::-;28176:139;;28074:248;;;:::o;28328:419::-;28494:4;28532:2;28521:9;28517:18;28509:26;;28581:9;28575:4;28571:20;28567:1;28556:9;28552:17;28545:47;28609:131;28735:4;28609:131;:::i;:::-;28601:139;;28499:248;;;:::o;28753:419::-;28919:4;28957:2;28946:9;28942:18;28934:26;;29006:9;29000:4;28996:20;28992:1;28981:9;28977:17;28970:47;29034:131;29160:4;29034:131;:::i;:::-;29026:139;;28924:248;;;:::o;29178:419::-;29344:4;29382:2;29371:9;29367:18;29359:26;;29431:9;29425:4;29421:20;29417:1;29406:9;29402:17;29395:47;29459:131;29585:4;29459:131;:::i;:::-;29451:139;;29349:248;;;:::o;29603:419::-;29769:4;29807:2;29796:9;29792:18;29784:26;;29856:9;29850:4;29846:20;29842:1;29831:9;29827:17;29820:47;29884:131;30010:4;29884:131;:::i;:::-;29876:139;;29774:248;;;:::o;30028:419::-;30194:4;30232:2;30221:9;30217:18;30209:26;;30281:9;30275:4;30271:20;30267:1;30256:9;30252:17;30245:47;30309:131;30435:4;30309:131;:::i;:::-;30301:139;;30199:248;;;:::o;30453:419::-;30619:4;30657:2;30646:9;30642:18;30634:26;;30706:9;30700:4;30696:20;30692:1;30681:9;30677:17;30670:47;30734:131;30860:4;30734:131;:::i;:::-;30726:139;;30624:248;;;:::o;30878:419::-;31044:4;31082:2;31071:9;31067:18;31059:26;;31131:9;31125:4;31121:20;31117:1;31106:9;31102:17;31095:47;31159:131;31285:4;31159:131;:::i;:::-;31151:139;;31049:248;;;:::o;31303:419::-;31469:4;31507:2;31496:9;31492:18;31484:26;;31556:9;31550:4;31546:20;31542:1;31531:9;31527:17;31520:47;31584:131;31710:4;31584:131;:::i;:::-;31576:139;;31474:248;;;:::o;31728:419::-;31894:4;31932:2;31921:9;31917:18;31909:26;;31981:9;31975:4;31971:20;31967:1;31956:9;31952:17;31945:47;32009:131;32135:4;32009:131;:::i;:::-;32001:139;;31899:248;;;:::o;32153:419::-;32319:4;32357:2;32346:9;32342:18;32334:26;;32406:9;32400:4;32396:20;32392:1;32381:9;32377:17;32370:47;32434:131;32560:4;32434:131;:::i;:::-;32426:139;;32324:248;;;:::o;32578:419::-;32744:4;32782:2;32771:9;32767:18;32759:26;;32831:9;32825:4;32821:20;32817:1;32806:9;32802:17;32795:47;32859:131;32985:4;32859:131;:::i;:::-;32851:139;;32749:248;;;:::o;33003:419::-;33169:4;33207:2;33196:9;33192:18;33184:26;;33256:9;33250:4;33246:20;33242:1;33231:9;33227:17;33220:47;33284:131;33410:4;33284:131;:::i;:::-;33276:139;;33174:248;;;:::o;33428:419::-;33594:4;33632:2;33621:9;33617:18;33609:26;;33681:9;33675:4;33671:20;33667:1;33656:9;33652:17;33645:47;33709:131;33835:4;33709:131;:::i;:::-;33701:139;;33599:248;;;:::o;33853:218::-;33944:4;33982:2;33971:9;33967:18;33959:26;;33995:69;34061:1;34050:9;34046:17;34037:6;33995:69;:::i;:::-;33949:122;;;;:::o;34077:222::-;34170:4;34208:2;34197:9;34193:18;34185:26;;34221:71;34289:1;34278:9;34274:17;34265:6;34221:71;:::i;:::-;34175:124;;;;:::o;34305:214::-;34394:4;34432:2;34421:9;34417:18;34409:26;;34445:67;34509:1;34498:9;34494:17;34485:6;34445:67;:::i;:::-;34399:120;;;;:::o;34525:129::-;34559:6;34586:20;;:::i;:::-;34576:30;;34615:33;34643:4;34635:6;34615:33;:::i;:::-;34566:88;;;:::o;34660:75::-;34693:6;34726:2;34720:9;34710:19;;34700:35;:::o;34741:311::-;34818:4;34908:18;34900:6;34897:30;34894:2;;;34930:18;;:::i;:::-;34894:2;34980:4;34972:6;34968:17;34960:25;;35040:4;35034;35030:15;35022:23;;34823:229;;;:::o;35058:307::-;35119:4;35209:18;35201:6;35198:30;35195:2;;;35231:18;;:::i;:::-;35195:2;35269:29;35291:6;35269:29;:::i;:::-;35261:37;;35353:4;35347;35343:15;35335:23;;35124:241;;;:::o;35371:308::-;35433:4;35523:18;35515:6;35512:30;35509:2;;;35545:18;;:::i;:::-;35509:2;35583:29;35605:6;35583:29;:::i;:::-;35575:37;;35667:4;35661;35657:15;35649:23;;35438:241;;;:::o;35685:141::-;35734:4;35757:3;35749:11;;35780:3;35777:1;35770:14;35814:4;35811:1;35801:18;35793:26;;35739:87;;;:::o;35832:98::-;35883:6;35917:5;35911:12;35901:22;;35890:40;;;:::o;35936:99::-;35988:6;36022:5;36016:12;36006:22;;35995:40;;;:::o;36041:168::-;36124:11;36158:6;36153:3;36146:19;36198:4;36193:3;36189:14;36174:29;;36136:73;;;;:::o;36215:169::-;36299:11;36333:6;36328:3;36321:19;36373:4;36368:3;36364:14;36349:29;;36311:73;;;;:::o;36390:148::-;36492:11;36529:3;36514:18;;36504:34;;;;:::o;36544:242::-;36583:3;36602:19;36619:1;36602:19;:::i;:::-;36597:24;;36635:19;36652:1;36635:19;:::i;:::-;36630:24;;36728:1;36720:6;36716:14;36713:1;36710:21;36707:2;;;36734:18;;:::i;:::-;36707:2;36778:1;36775;36771:9;36764:16;;36587:199;;;;:::o;36792:305::-;36832:3;36851:20;36869:1;36851:20;:::i;:::-;36846:25;;36885:20;36903:1;36885:20;:::i;:::-;36880:25;;37039:1;36971:66;36967:74;36964:1;36961:81;36958:2;;;37045:18;;:::i;:::-;36958:2;37089:1;37086;37082:9;37075:16;;36836:261;;;;:::o;37103:185::-;37143:1;37160:20;37178:1;37160:20;:::i;:::-;37155:25;;37194:20;37212:1;37194:20;:::i;:::-;37189:25;;37233:1;37223:2;;37238:18;;:::i;:::-;37223:2;37280:1;37277;37273:9;37268:14;;37145:143;;;;:::o;37294:348::-;37334:7;37357:20;37375:1;37357:20;:::i;:::-;37352:25;;37391:20;37409:1;37391:20;:::i;:::-;37386:25;;37579:1;37511:66;37507:74;37504:1;37501:81;37496:1;37489:9;37482:17;37478:105;37475:2;;;37586:18;;:::i;:::-;37475:2;37634:1;37631;37627:9;37616:20;;37342:300;;;;:::o;37648:188::-;37687:4;37707:19;37724:1;37707:19;:::i;:::-;37702:24;;37740:19;37757:1;37740:19;:::i;:::-;37735:24;;37778:1;37775;37772:8;37769:2;;;37783:18;;:::i;:::-;37769:2;37828:1;37825;37821:9;37813:17;;37692:144;;;;:::o;37842:191::-;37882:4;37902:20;37920:1;37902:20;:::i;:::-;37897:25;;37936:20;37954:1;37936:20;:::i;:::-;37931:25;;37975:1;37972;37969:8;37966:2;;;37980:18;;:::i;:::-;37966:2;38025:1;38022;38018:9;38010:17;;37887:146;;;;:::o;38039:96::-;38076:7;38105:24;38123:5;38105:24;:::i;:::-;38094:35;;38084:51;;;:::o;38141:90::-;38175:7;38218:5;38211:13;38204:21;38193:32;;38183:48;;;:::o;38237:77::-;38274:7;38303:5;38292:16;;38282:32;;;:::o;38320:149::-;38356:7;38396:66;38389:5;38385:78;38374:89;;38364:105;;;:::o;38475:89::-;38511:7;38551:6;38544:5;38540:18;38529:29;;38519:45;;;:::o;38570:126::-;38607:7;38647:42;38640:5;38636:54;38625:65;;38615:81;;;:::o;38702:77::-;38739:7;38768:5;38757:16;;38747:32;;;:::o;38785:86::-;38820:7;38860:4;38853:5;38849:16;38838:27;;38828:43;;;:::o;38877:154::-;38961:6;38956:3;38951;38938:30;39023:1;39014:6;39009:3;39005:16;38998:27;38928:103;;;:::o;39037:307::-;39105:1;39115:113;39129:6;39126:1;39123:13;39115:113;;;39214:1;39209:3;39205:11;39199:18;39195:1;39190:3;39186:11;39179:39;39151:2;39148:1;39144:10;39139:15;;39115:113;;;39246:6;39243:1;39240:13;39237:2;;;39326:1;39317:6;39312:3;39308:16;39301:27;39237:2;39086:258;;;;:::o;39350:320::-;39394:6;39431:1;39425:4;39421:12;39411:22;;39478:1;39472:4;39468:12;39499:18;39489:2;;39555:4;39547:6;39543:17;39533:27;;39489:2;39617;39609:6;39606:14;39586:18;39583:38;39580:2;;;39636:18;;:::i;:::-;39580:2;39401:269;;;;:::o;39676:281::-;39759:27;39781:4;39759:27;:::i;:::-;39751:6;39747:40;39889:6;39877:10;39874:22;39853:18;39841:10;39838:34;39835:62;39832:2;;;39900:18;;:::i;:::-;39832:2;39940:10;39936:2;39929:22;39719:238;;;:::o;39963:171::-;40001:3;40024:23;40041:5;40024:23;:::i;:::-;40015:32;;40069:6;40062:5;40059:17;40056:2;;;40079:18;;:::i;:::-;40056:2;40126:1;40119:5;40115:13;40108:20;;40005:129;;;:::o;40140:233::-;40179:3;40202:24;40220:5;40202:24;:::i;:::-;40193:33;;40248:66;40241:5;40238:77;40235:2;;;40318:18;;:::i;:::-;40235:2;40365:1;40358:5;40354:13;40347:20;;40183:190;;;:::o;40379:167::-;40416:3;40439:22;40455:5;40439:22;:::i;:::-;40430:31;;40483:4;40476:5;40473:15;40470:2;;;40491:18;;:::i;:::-;40470:2;40538:1;40531:5;40527:13;40520:20;;40420:126;;;:::o;40552:100::-;40591:7;40620:26;40640:5;40620:26;:::i;:::-;40609:37;;40599:53;;;:::o;40658:94::-;40697:7;40726:20;40740:5;40726:20;:::i;:::-;40715:31;;40705:47;;;:::o;40758:176::-;40790:1;40807:20;40825:1;40807:20;:::i;:::-;40802:25;;40841:20;40859:1;40841:20;:::i;:::-;40836:25;;40880:1;40870:2;;40885:18;;:::i;:::-;40870:2;40926:1;40923;40919:9;40914:14;;40792:142;;;;:::o;40940:180::-;40988:77;40985:1;40978:88;41085:4;41082:1;41075:15;41109:4;41106:1;41099:15;41126:180;41174:77;41171:1;41164:88;41271:4;41268:1;41261:15;41295:4;41292:1;41285:15;41312:180;41360:77;41357:1;41350:88;41457:4;41454:1;41447:15;41481:4;41478:1;41471:15;41498:180;41546:77;41543:1;41536:88;41643:4;41640:1;41633:15;41667:4;41664:1;41657:15;41684:102;41725:6;41776:2;41772:7;41767:2;41760:5;41756:14;41752:28;41742:38;;41732:54;;;:::o;41792:94::-;41825:8;41873:5;41869:2;41865:14;41844:35;;41834:52;;;:::o;41892:164::-;42032:16;42028:1;42020:6;42016:14;42009:40;41998:58;:::o;42062:172::-;42202:24;42198:1;42190:6;42186:14;42179:48;42168:66;:::o;42240:237::-;42380:34;42376:1;42368:6;42364:14;42357:58;42449:20;42444:2;42436:6;42432:15;42425:45;42346:131;:::o;42483:225::-;42623:34;42619:1;42611:6;42607:14;42600:58;42692:8;42687:2;42679:6;42675:15;42668:33;42589:119;:::o;42714:178::-;42854:30;42850:1;42842:6;42838:14;42831:54;42820:72;:::o;42898:176::-;43038:28;43034:1;43026:6;43022:14;43015:52;43004:70;:::o;43080:173::-;43220:25;43216:1;43208:6;43204:14;43197:49;43186:67;:::o;43259:163::-;43399:15;43395:1;43387:6;43383:14;43376:39;43365:57;:::o;43428:223::-;43568:34;43564:1;43556:6;43552:14;43545:58;43637:6;43632:2;43624:6;43620:15;43613:31;43534:117;:::o;43657:175::-;43797:27;43793:1;43785:6;43781:14;43774:51;43763:69;:::o;43838:231::-;43978:34;43974:1;43966:6;43962:14;43955:58;44047:14;44042:2;44034:6;44030:15;44023:39;43944:125;:::o;44075:162::-;44215:14;44211:1;44203:6;44199:14;44192:38;44181:56;:::o;44243:169::-;44383:21;44379:1;44371:6;44367:14;44360:45;44349:63;:::o;44418:243::-;44558:34;44554:1;44546:6;44542:14;44535:58;44627:26;44622:2;44614:6;44610:15;44603:51;44524:137;:::o;44667:229::-;44807:34;44803:1;44795:6;44791:14;44784:58;44876:12;44871:2;44863:6;44859:15;44852:37;44773:123;:::o;44902:228::-;45042:34;45038:1;45030:6;45026:14;45019:58;45111:11;45106:2;45098:6;45094:15;45087:36;45008:122;:::o;45136:182::-;45276:34;45272:1;45264:6;45260:14;45253:58;45242:76;:::o;45324:231::-;45464:34;45460:1;45452:6;45448:14;45441:58;45533:14;45528:2;45520:6;45516:15;45509:39;45430:125;:::o;45561:155::-;45701:7;45697:1;45689:6;45685:14;45678:31;45667:49;:::o;45722:182::-;45862:34;45858:1;45850:6;45846:14;45839:58;45828:76;:::o;45910:228::-;46050:34;46046:1;46038:6;46034:14;46027:58;46119:11;46114:2;46106:6;46102:15;46095:36;46016:122;:::o;46144:234::-;46284:34;46280:1;46272:6;46268:14;46261:58;46353:17;46348:2;46340:6;46336:15;46329:42;46250:128;:::o;46384:220::-;46524:34;46520:1;46512:6;46508:14;46501:58;46593:3;46588:2;46580:6;46576:15;46569:28;46490:114;:::o;46610:236::-;46750:34;46746:1;46738:6;46734:14;46727:58;46819:19;46814:2;46806:6;46802:15;46795:44;46716:130;:::o;46852:122::-;46925:24;46943:5;46925:24;:::i;:::-;46918:5;46915:35;46905:2;;46964:1;46961;46954:12;46905:2;46895:79;:::o;46980:116::-;47050:21;47065:5;47050:21;:::i;:::-;47043:5;47040:32;47030:2;;47086:1;47083;47076:12;47030:2;47020:76;:::o;47102:122::-;47175:24;47193:5;47175:24;:::i;:::-;47168:5;47165:35;47155:2;;47214:1;47211;47204:12;47155:2;47145:79;:::o;47230:120::-;47302:23;47319:5;47302:23;:::i;:::-;47295:5;47292:34;47282:2;;47340:1;47337;47330:12;47282:2;47272:78;:::o;47356:120::-;47428:23;47445:5;47428:23;:::i;:::-;47421:5;47418:34;47408:2;;47466:1;47463;47456:12;47408:2;47398:78;:::o;47482:122::-;47555:24;47573:5;47555:24;:::i;:::-;47548:5;47545:35;47535:2;;47594:1;47591;47584:12;47535:2;47525:79;:::o;47610:118::-;47681:22;47697:5;47681:22;:::i;:::-;47674:5;47671:33;47661:2;;47718:1;47715;47708:12;47661:2;47651:77;:::o

Swarm Source

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