ETH Price: $3,950.60 (+1.04%)

Token

Enchanted Artifact (EVART)
 

Overview

Max Total Supply

440 EVART

Holders

271

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
renshawdev.eth
Balance
1 EVART
0xf70e17b5afdf83899f9f4cb7c7f9d56867d138c7
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:
EnchantedValleyMintPass

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

pragma solidity >=0.8.7 <0.9.0;


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

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

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

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

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

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

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

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

    
    function approve(address to, uint256 tokenId) external;

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

    
    function setApprovalForAll(address operator, bool _approved) external;

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

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

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

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

library Address {
    
    function isContract(address account) internal view returns (bool) {
        
        
        

        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

    
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

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

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

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

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

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

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

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 {}
}

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

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

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

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

    
    mapping(uint256 => uint256) private _ownedTokensIndex;

    
    uint256[] private _allTokens;

    
    mapping(uint256 => uint256) private _allTokensIndex;

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

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

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

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

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

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

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

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

    
    function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {
        
        

        uint256 lastTokenIndex = ERC721.balanceOf(from) - 1;
        uint256 tokenIndex = _ownedTokensIndex[tokenId];

        
        if (tokenIndex != lastTokenIndex) {
            uint256 lastTokenId = _ownedTokens[from][lastTokenIndex];

            _ownedTokens[from][tokenIndex] = lastTokenId; 
            _ownedTokensIndex[lastTokenId] = tokenIndex; 
        }

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

    
    function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {
        
        

        uint256 lastTokenIndex = _allTokens.length - 1;
        uint256 tokenIndex = _allTokensIndex[tokenId];

        
        
        
        uint256 lastTokenId = _allTokens[lastTokenIndex];

        _allTokens[tokenIndex] = lastTokenId; 
        _allTokensIndex[lastTokenId] = tokenIndex; 

        
        delete _allTokensIndex[tokenId];
        _allTokens.pop();
    }
}

abstract contract Pausable is Context {
    
    event Paused(address account);

    
    event Unpaused(address account);

    bool private _paused;

    
    constructor() {
        _paused = false;
    }

    
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

library Counters {
    struct Counter {
        
        
        
        uint256 _value; 
    }

    function current(Counter storage counter) internal view returns (uint256) {
        return counter._value;
    }

    function increment(Counter storage counter) internal {
        unchecked {
            counter._value += 1;
        }
    }

    function decrement(Counter storage counter) internal {
        uint256 value = counter._value;
        require(value > 0, "Counter: decrement overflow");
        unchecked {
            counter._value = value - 1;
        }
    }

    function reset(Counter storage counter) internal {
        counter._value = 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);
    }
}

contract EnchantedValleyMintPass is
        Context,
        ERC721,
        ERC721Enumerable,
        Pausable,
        Ownable {
    using Counters for Counters.Counter;

    Counters.Counter private _tokenIdCounter;

    uint public maxSupply = 500;
    uint public limit = 20;
    uint public price = 0.032 ether;

    string public currentTokenURI = "https://arweave.net/x2d2gqZkBIfwlUSzbvnm_04S1iWzYAY_9yE5zcaycRE";
    string public currentContractURI = "https://arweave.net/MZPyMd5bqhTeN1mz54f0w3Cg3Cu2Lh4b1A7pMOvNsqg";

    bool public stopSales = false;

    address payable private bigH; 
    address payable private stargazer; 
    address payable private treasury; 

    constructor(
        address payable _bigH,
        address payable _stargazer,
        address payable _treasury
    ) ERC721("Enchanted Artifact", "EVART") {
        bigH = _bigH;
        stargazer = _stargazer;
        treasury = _treasury;
    }

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

        return _baseURI();
    }

    function _baseURI() override internal view returns (string memory) {
        return currentTokenURI;
    }

    function contractURI() public view returns (string memory) {
        return currentContractURI;
    }

    function setCurrentTokenURI(string memory newURI) public onlyOwner {
        currentTokenURI = newURI;
    }

    function setCurrentContractURI(string memory newURI) public onlyOwner {
        currentContractURI = newURI;
    }

    function setPrice(uint price_) public onlyOwner {
        price = price_;
    }

    function setLimit(uint limit_) public onlyOwner {
        limit = limit_;
    }

    function setMaxSupply(uint maxSupply_) public onlyOwner {
        maxSupply = maxSupply_;
    }

    function adminMint(address to, uint number) public payable onlyOwner {
        require(_tokenIdCounter.current() + number <= maxSupply, "Not enough tokens left");

        for (uint i = 0 ; i < number ; i ++) {
            _safeMint(to, _tokenIdCounter.current());
            _tokenIdCounter.increment();
        }
    }

    function safeMint(uint number, bool isTest) public payable {
        address to = msg.sender;
        require(stopSales == false, "Sales are now stopped");
        require(msg.value >= (price * number), "Not enough value provided to match or exceed price");
        require(number > 0, "Must request real number of tokens");
        require(_tokenIdCounter.current() + number <= maxSupply, "Not enough tokens left");
        require(balanceOf(to) + number <= limit, "You're requesting too many tokens");

        for (uint i = 0 ; i < number ; i ++) {
            _safeMint(to, _tokenIdCounter.current());
            _tokenIdCounter.increment();
        }

        uint funds = msg.value;
        uint five_points = funds / 20; 

        (bool sentBigH, ) = bigH.call{value:five_points}("");
        require(sentBigH, 'transfer to bigH failed.');
        (bool sentStargazer, ) = stargazer.call{value:five_points}("");
        require(sentStargazer, 'transfer to stargazer failed.');

        uint remainder = funds - (five_points + five_points);
        (bool sentTreasury, ) = treasury.call{value:remainder}("");
        require(sentTreasury, 'transfer to treasury failed.');

        require (!isTest, 'failing at end due to test mode.');
    }

    function setStopSales(bool value) public onlyOwner {
        stopSales = value;
    }

    function pause() public onlyOwner {
        _pause();
    }

    function unpause() public onlyOwner {
        _unpause();
    }

    function _beforeTokenTransfer(address from, address to, uint256 tokenId)
        internal
        whenNotPaused
        override(ERC721, ERC721Enumerable)
    {
        super._beforeTokenTransfer(from, to, tokenId);
    }

    function supportsInterface(bytes4 interfaceId)
        public
        view
        override(ERC721, ERC721Enumerable)
        returns (bool)
    {
        return super.supportsInterface(interfaceId);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"_bigH","type":"address"},{"internalType":"address payable","name":"_stargazer","type":"address"},{"internalType":"address payable","name":"_treasury","type":"address"}],"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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"number","type":"uint256"}],"name":"adminMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentContractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"number","type":"uint256"},{"internalType":"bool","name":"isTest","type":"bool"}],"name":"safeMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newURI","type":"string"}],"name":"setCurrentContractURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newURI","type":"string"}],"name":"setCurrentTokenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit_","type":"uint256"}],"name":"setLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxSupply_","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"price_","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setStopSales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopSales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526101f4600c556014600d556671afd498d00000600e556040518060600160405280603f815260200162005068603f9139600f90805190602001906200004b92919062000341565b506040518060600160405280603f815260200162005029603f9139601090805190602001906200007d92919062000341565b506000601160006101000a81548160ff021916908315150217905550348015620000a657600080fd5b50604051620050a7380380620050a78339818101604052810190620000cc91906200045b565b6040518060400160405280601281526020017f456e6368616e74656420417274696661637400000000000000000000000000008152506040518060400160405280600581526020017f455641525400000000000000000000000000000000000000000000000000000081525081600090805190602001906200015092919062000341565b5080600190805190602001906200016992919062000341565b5050506000600a60006101000a81548160ff021916908315150217905550620001a76200019b6200027360201b60201c565b6200027b60201b60201c565b82601160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200051c565b600033905090565b6000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200034f90620004e6565b90600052602060002090601f016020900481019282620003735760008555620003bf565b82601f106200038e57805160ff1916838001178555620003bf565b82800160010185558215620003bf579182015b82811115620003be578251825591602001919060010190620003a1565b5b509050620003ce9190620003d2565b5090565b5b80821115620003ed576000816000905550600101620003d3565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200042382620003f6565b9050919050565b620004358162000416565b81146200044157600080fd5b50565b60008151905062000455816200042a565b92915050565b600080600060608486031215620004775762000476620003f1565b5b6000620004878682870162000444565b93505060206200049a8682870162000444565b9250506040620004ad8682870162000444565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620004ff57607f821691505b60208210811415620005165762000515620004b7565b5b50919050565b614afd806200052c6000396000f3fe60806040526004361061021a5760003560e01c806370a0823111610123578063a035b1fe116100ab578063d5abeb011161006f578063d5abeb011461079c578063e58306f9146107c7578063e8a3d485146107e3578063e985e9c51461080e578063f2fde38b1461084b5761021a565b8063a035b1fe146106b7578063a22cb465146106e2578063a4d66daf1461070b578063b88d4fde14610736578063c87b56dd1461075f5761021a565b80638621fa9c116100f25780638621fa9c146105f15780638da5cb5b1461060d5780638e9673a51461063857806391b7f5ed1461066357806395d89b411461068c5761021a565b806370a082311461055d57806370b187e81461059a578063715018a6146105c35780638456cb59146105da5761021a565b80632f745c59116101a65780634f6ccce7116101755780634f6ccce71461046457806356cba008146104a15780635c975abb146104cc5780636352211e146104f75780636f8b44b0146105345761021a565b80632f745c59146103bc5780633f4ba83a146103f957806342842e0e146104105780634bf9b689146104395761021a565b8063095ea7b3116101ed578063095ea7b3146102ed57806318160ddd146103165780631ab345f41461034157806323b872dd1461036a57806327ea6f2b146103935761021a565b806301dd2a3a1461021f57806301ffc9a71461024857806306fdde0314610285578063081812fc146102b0575b600080fd5b34801561022b57600080fd5b50610246600480360381019061024191906132a1565b610874565b005b34801561025457600080fd5b5061026f600480360381019061026a9190613342565b61090a565b60405161027c919061338a565b60405180910390f35b34801561029157600080fd5b5061029a61091c565b6040516102a7919061342d565b60405180910390f35b3480156102bc57600080fd5b506102d760048036038101906102d29190613485565b6109ae565b6040516102e491906134f3565b60405180910390f35b3480156102f957600080fd5b50610314600480360381019061030f919061353a565b610a33565b005b34801561032257600080fd5b5061032b610b4b565b6040516103389190613589565b60405180910390f35b34801561034d57600080fd5b50610368600480360381019061036391906135d0565b610b58565b005b34801561037657600080fd5b50610391600480360381019061038c91906135fd565b610bf1565b005b34801561039f57600080fd5b506103ba60048036038101906103b59190613485565b610c51565b005b3480156103c857600080fd5b506103e360048036038101906103de919061353a565b610cd7565b6040516103f09190613589565b60405180910390f35b34801561040557600080fd5b5061040e610d7c565b005b34801561041c57600080fd5b50610437600480360381019061043291906135fd565b610e02565b005b34801561044557600080fd5b5061044e610e22565b60405161045b919061342d565b60405180910390f35b34801561047057600080fd5b5061048b60048036038101906104869190613485565b610eb0565b6040516104989190613589565b60405180910390f35b3480156104ad57600080fd5b506104b6610f21565b6040516104c3919061338a565b60405180910390f35b3480156104d857600080fd5b506104e1610f34565b6040516104ee919061338a565b60405180910390f35b34801561050357600080fd5b5061051e60048036038101906105199190613485565b610f4b565b60405161052b91906134f3565b60405180910390f35b34801561054057600080fd5b5061055b60048036038101906105569190613485565b610ffd565b005b34801561056957600080fd5b50610584600480360381019061057f9190613650565b611083565b6040516105919190613589565b60405180910390f35b3480156105a657600080fd5b506105c160048036038101906105bc91906132a1565b61113b565b005b3480156105cf57600080fd5b506105d86111d1565b005b3480156105e657600080fd5b506105ef611259565b005b61060b6004803603810190610606919061367d565b6112df565b005b34801561061957600080fd5b506106226117a1565b60405161062f91906134f3565b60405180910390f35b34801561064457600080fd5b5061064d6117cb565b60405161065a919061342d565b60405180910390f35b34801561066f57600080fd5b5061068a60048036038101906106859190613485565b611859565b005b34801561069857600080fd5b506106a16118df565b6040516106ae919061342d565b60405180910390f35b3480156106c357600080fd5b506106cc611971565b6040516106d99190613589565b60405180910390f35b3480156106ee57600080fd5b50610709600480360381019061070491906136bd565b611977565b005b34801561071757600080fd5b50610720611af8565b60405161072d9190613589565b60405180910390f35b34801561074257600080fd5b5061075d6004803603810190610758919061379e565b611afe565b005b34801561076b57600080fd5b5061078660048036038101906107819190613485565b611b60565b604051610793919061342d565b60405180910390f35b3480156107a857600080fd5b506107b1611bb9565b6040516107be9190613589565b60405180910390f35b6107e160048036038101906107dc919061353a565b611bbf565b005b3480156107ef57600080fd5b506107f8611cd4565b604051610805919061342d565b60405180910390f35b34801561081a57600080fd5b5061083560048036038101906108309190613821565b611d66565b604051610842919061338a565b60405180910390f35b34801561085757600080fd5b50610872600480360381019061086d9190613650565b611dfa565b005b61087c611ef2565b73ffffffffffffffffffffffffffffffffffffffff1661089a6117a1565b73ffffffffffffffffffffffffffffffffffffffff16146108f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e7906138ad565b60405180910390fd5b80600f90805190602001906109069291906130a4565b5050565b600061091582611efa565b9050919050565b60606000805461092b906138fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610957906138fc565b80156109a45780601f10610979576101008083540402835291602001916109a4565b820191906000526020600020905b81548152906001019060200180831161098757829003601f168201915b5050505050905090565b60006109b982611f74565b6109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef906139a0565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a3e82610f4b565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa690613a32565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610ace611ef2565b73ffffffffffffffffffffffffffffffffffffffff161480610afd5750610afc81610af7611ef2565b611d66565b5b610b3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3390613ac4565b60405180910390fd5b610b468383611fe0565b505050565b6000600880549050905090565b610b60611ef2565b73ffffffffffffffffffffffffffffffffffffffff16610b7e6117a1565b73ffffffffffffffffffffffffffffffffffffffff1614610bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcb906138ad565b60405180910390fd5b80601160006101000a81548160ff02191690831515021790555050565b610c02610bfc611ef2565b82612099565b610c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3890613b56565b60405180910390fd5b610c4c838383612177565b505050565b610c59611ef2565b73ffffffffffffffffffffffffffffffffffffffff16610c776117a1565b73ffffffffffffffffffffffffffffffffffffffff1614610ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc4906138ad565b60405180910390fd5b80600d8190555050565b6000610ce283611083565b8210610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a90613be8565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610d84611ef2565b73ffffffffffffffffffffffffffffffffffffffff16610da26117a1565b73ffffffffffffffffffffffffffffffffffffffff1614610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def906138ad565b60405180910390fd5b610e006123d3565b565b610e1d83838360405180602001604052806000815250611afe565b505050565b60108054610e2f906138fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610e5b906138fc565b8015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b505050505081565b6000610eba610b4b565b8210610efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef290613c7a565b60405180910390fd5b60088281548110610f0f57610f0e613c9a565b5b90600052602060002001549050919050565b601160009054906101000a900460ff1681565b6000600a60009054906101000a900460ff16905090565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610feb90613d3b565b60405180910390fd5b80915050919050565b611005611ef2565b73ffffffffffffffffffffffffffffffffffffffff166110236117a1565b73ffffffffffffffffffffffffffffffffffffffff1614611079576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611070906138ad565b60405180910390fd5b80600c8190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110eb90613dcd565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611143611ef2565b73ffffffffffffffffffffffffffffffffffffffff166111616117a1565b73ffffffffffffffffffffffffffffffffffffffff16146111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae906138ad565b60405180910390fd5b80601090805190602001906111cd9291906130a4565b5050565b6111d9611ef2565b73ffffffffffffffffffffffffffffffffffffffff166111f76117a1565b73ffffffffffffffffffffffffffffffffffffffff161461124d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611244906138ad565b60405180910390fd5b6112576000612475565b565b611261611ef2565b73ffffffffffffffffffffffffffffffffffffffff1661127f6117a1565b73ffffffffffffffffffffffffffffffffffffffff16146112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc906138ad565b60405180910390fd5b6112dd61253b565b565b600033905060001515601160009054906101000a900460ff1615151461133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190613e39565b60405180910390fd5b82600e546113489190613e88565b34101561138a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138190613f54565b60405180910390fd5b600083116113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c490613fe6565b60405180910390fd5b600c54836113db600b6125de565b6113e59190614006565b1115611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d906140a8565b60405180910390fd5b600d548361143383611083565b61143d9190614006565b111561147e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114759061413a565b60405180910390fd5b60005b838110156114b95761149c82611497600b6125de565b6125ec565b6114a6600b61260a565b80806114b19061415a565b915050611481565b50600034905060006014826114ce91906141d2565b90506000601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161151890614234565b60006040518083038185875af1925050503d8060008114611555576040519150601f19603f3d011682016040523d82523d6000602084013e61155a565b606091505b505090508061159e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159590614295565b60405180910390fd5b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516115e690614234565b60006040518083038185875af1925050503d8060008114611623576040519150601f19603f3d011682016040523d82523d6000602084013e611628565b606091505b505090508061166c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166390614301565b60405180910390fd5b6000838461167a9190614006565b856116859190614321565b90506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516116cf90614234565b60006040518083038185875af1925050503d806000811461170c576040519150601f19603f3d011682016040523d82523d6000602084013e611711565b606091505b5050905080611755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174c906143a1565b60405180910390fd5b8715611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d9061440d565b60405180910390fd5b505050505050505050565b6000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f80546117d8906138fc565b80601f0160208091040260200160405190810160405280929190818152602001828054611804906138fc565b80156118515780601f1061182657610100808354040283529160200191611851565b820191906000526020600020905b81548152906001019060200180831161183457829003601f168201915b505050505081565b611861611ef2565b73ffffffffffffffffffffffffffffffffffffffff1661187f6117a1565b73ffffffffffffffffffffffffffffffffffffffff16146118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc906138ad565b60405180910390fd5b80600e8190555050565b6060600180546118ee906138fc565b80601f016020809104026020016040519081016040528092919081815260200182805461191a906138fc565b80156119675780601f1061193c57610100808354040283529160200191611967565b820191906000526020600020905b81548152906001019060200180831161194a57829003601f168201915b5050505050905090565b600e5481565b61197f611ef2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e490614479565b60405180910390fd5b80600560006119fa611ef2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611aa7611ef2565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611aec919061338a565b60405180910390a35050565b600d5481565b611b0f611b09611ef2565b83612099565b611b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4590613b56565b60405180910390fd5b611b5a84848484612620565b50505050565b6060611b6b82611f74565b611baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba19061450b565b60405180910390fd5b611bb261267c565b9050919050565b600c5481565b611bc7611ef2565b73ffffffffffffffffffffffffffffffffffffffff16611be56117a1565b73ffffffffffffffffffffffffffffffffffffffff1614611c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c32906138ad565b60405180910390fd5b600c5481611c49600b6125de565b611c539190614006565b1115611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b906140a8565b60405180910390fd5b60005b81811015611ccf57611cb283611cad600b6125de565b6125ec565b611cbc600b61260a565b8080611cc79061415a565b915050611c97565b505050565b606060108054611ce3906138fc565b80601f0160208091040260200160405190810160405280929190818152602001828054611d0f906138fc565b8015611d5c5780601f10611d3157610100808354040283529160200191611d5c565b820191906000526020600020905b815481529060010190602001808311611d3f57829003601f168201915b5050505050905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611e02611ef2565b73ffffffffffffffffffffffffffffffffffffffff16611e206117a1565b73ffffffffffffffffffffffffffffffffffffffff1614611e76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6d906138ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edd9061459d565b60405180910390fd5b611eef81612475565b50565b600033905090565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611f6d5750611f6c8261270e565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661205383610f4b565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006120a482611f74565b6120e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120da9061462f565b60405180910390fd5b60006120ee83610f4b565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061215d57508373ffffffffffffffffffffffffffffffffffffffff16612145846109ae565b73ffffffffffffffffffffffffffffffffffffffff16145b8061216e575061216d8185611d66565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661219782610f4b565b73ffffffffffffffffffffffffffffffffffffffff16146121ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e4906146c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561225d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225490614753565b60405180910390fd5b6122688383836127f0565b612273600082611fe0565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122c39190614321565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461231a9190614006565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6123db610f34565b61241a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612411906147bf565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61245e611ef2565b60405161246b91906134f3565b60405180910390a1565b6000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612543610f34565b15612583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257a9061482b565b60405180910390fd5b6001600a60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586125c7611ef2565b6040516125d491906134f3565b60405180910390a1565b600081600001549050919050565b612606828260405180602001604052806000815250612848565b5050565b6001816000016000828254019250508190555050565b61262b848484612177565b612637848484846128a3565b612676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266d906148bd565b60405180910390fd5b50505050565b6060600f805461268b906138fc565b80601f01602080910402602001604051908101604052809291908181526020018280546126b7906138fc565b80156127045780601f106126d957610100808354040283529160200191612704565b820191906000526020600020905b8154815290600101906020018083116126e757829003601f168201915b5050505050905090565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806127d957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806127e957506127e882612a3a565b5b9050919050565b6127f8610f34565b15612838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282f9061482b565b60405180910390fd5b612843838383612aa4565b505050565b6128528383612bb8565b61285f60008484846128a3565b61289e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612895906148bd565b60405180910390fd5b505050565b60006128c48473ffffffffffffffffffffffffffffffffffffffff16612d86565b15612a2d578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026128ed611ef2565b8786866040518563ffffffff1660e01b815260040161290f9493929190614932565b602060405180830381600087803b15801561292957600080fd5b505af192505050801561295a57506040513d601f19601f820116820180604052508101906129579190614993565b60015b6129dd573d806000811461298a576040519150601f19603f3d011682016040523d82523d6000602084013e61298f565b606091505b506000815114156129d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cc906148bd565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612a32565b600190505b949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612aaf838383612d99565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612af257612aed81612d9e565b612b31565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612b3057612b2f8382612de7565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b7457612b6f81612f54565b612bb3565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612bb257612bb18282613025565b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1f90614a0c565b60405180910390fd5b612c3181611f74565b15612c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6890614a78565b60405180910390fd5b612c7d600083836127f0565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ccd9190614006565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001612df484611083565b612dfe9190614321565b9050600060076000848152602001908152602001600020549050818114612ee3576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050612f689190614321565b9050600060096000848152602001908152602001600020549050600060088381548110612f9857612f97613c9a565b5b906000526020600020015490508060088381548110612fba57612fb9613c9a565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548061300957613008614a98565b5b6001900381819060005260206000200160009055905550505050565b600061303083611083565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b8280546130b0906138fc565b90600052602060002090601f0160209004810192826130d25760008555613119565b82601f106130eb57805160ff1916838001178555613119565b82800160010185558215613119579182015b828111156131185782518255916020019190600101906130fd565b5b509050613126919061312a565b5090565b5b8082111561314357600081600090555060010161312b565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6131ae82613165565b810181811067ffffffffffffffff821117156131cd576131cc613176565b5b80604052505050565b60006131e0613147565b90506131ec82826131a5565b919050565b600067ffffffffffffffff82111561320c5761320b613176565b5b61321582613165565b9050602081019050919050565b82818337600083830152505050565b600061324461323f846131f1565b6131d6565b9050828152602081018484840111156132605761325f613160565b5b61326b848285613222565b509392505050565b600082601f8301126132885761328761315b565b5b8135613298848260208601613231565b91505092915050565b6000602082840312156132b7576132b6613151565b5b600082013567ffffffffffffffff8111156132d5576132d4613156565b5b6132e184828501613273565b91505092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61331f816132ea565b811461332a57600080fd5b50565b60008135905061333c81613316565b92915050565b60006020828403121561335857613357613151565b5b60006133668482850161332d565b91505092915050565b60008115159050919050565b6133848161336f565b82525050565b600060208201905061339f600083018461337b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133df5780820151818401526020810190506133c4565b838111156133ee576000848401525b50505050565b60006133ff826133a5565b61340981856133b0565b93506134198185602086016133c1565b61342281613165565b840191505092915050565b6000602082019050818103600083015261344781846133f4565b905092915050565b6000819050919050565b6134628161344f565b811461346d57600080fd5b50565b60008135905061347f81613459565b92915050565b60006020828403121561349b5761349a613151565b5b60006134a984828501613470565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134dd826134b2565b9050919050565b6134ed816134d2565b82525050565b600060208201905061350860008301846134e4565b92915050565b613517816134d2565b811461352257600080fd5b50565b6000813590506135348161350e565b92915050565b6000806040838503121561355157613550613151565b5b600061355f85828601613525565b925050602061357085828601613470565b9150509250929050565b6135838161344f565b82525050565b600060208201905061359e600083018461357a565b92915050565b6135ad8161336f565b81146135b857600080fd5b50565b6000813590506135ca816135a4565b92915050565b6000602082840312156135e6576135e5613151565b5b60006135f4848285016135bb565b91505092915050565b60008060006060848603121561361657613615613151565b5b600061362486828701613525565b935050602061363586828701613525565b925050604061364686828701613470565b9150509250925092565b60006020828403121561366657613665613151565b5b600061367484828501613525565b91505092915050565b6000806040838503121561369457613693613151565b5b60006136a285828601613470565b92505060206136b3858286016135bb565b9150509250929050565b600080604083850312156136d4576136d3613151565b5b60006136e285828601613525565b92505060206136f3858286016135bb565b9150509250929050565b600067ffffffffffffffff82111561371857613717613176565b5b61372182613165565b9050602081019050919050565b600061374161373c846136fd565b6131d6565b90508281526020810184848401111561375d5761375c613160565b5b613768848285613222565b509392505050565b600082601f8301126137855761378461315b565b5b813561379584826020860161372e565b91505092915050565b600080600080608085870312156137b8576137b7613151565b5b60006137c687828801613525565b94505060206137d787828801613525565b93505060406137e887828801613470565b925050606085013567ffffffffffffffff81111561380957613808613156565b5b61381587828801613770565b91505092959194509250565b6000806040838503121561383857613837613151565b5b600061384685828601613525565b925050602061385785828601613525565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138976020836133b0565b91506138a282613861565b602082019050919050565b600060208201905081810360008301526138c68161388a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061391457607f821691505b60208210811415613928576139276138cd565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b600061398a602c836133b0565b91506139958261392e565b604082019050919050565b600060208201905081810360008301526139b98161397d565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a1c6021836133b0565b9150613a27826139c0565b604082019050919050565b60006020820190508181036000830152613a4b81613a0f565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000613aae6038836133b0565b9150613ab982613a52565b604082019050919050565b60006020820190508181036000830152613add81613aa1565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000613b406031836133b0565b9150613b4b82613ae4565b604082019050919050565b60006020820190508181036000830152613b6f81613b33565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000613bd2602b836133b0565b9150613bdd82613b76565b604082019050919050565b60006020820190508181036000830152613c0181613bc5565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000613c64602c836133b0565b9150613c6f82613c08565b604082019050919050565b60006020820190508181036000830152613c9381613c57565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b6000613d256029836133b0565b9150613d3082613cc9565b604082019050919050565b60006020820190508181036000830152613d5481613d18565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613db7602a836133b0565b9150613dc282613d5b565b604082019050919050565b60006020820190508181036000830152613de681613daa565b9050919050565b7f53616c657320617265206e6f772073746f707065640000000000000000000000600082015250565b6000613e236015836133b0565b9150613e2e82613ded565b602082019050919050565b60006020820190508181036000830152613e5281613e16565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e938261344f565b9150613e9e8361344f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ed757613ed6613e59565b5b828202905092915050565b7f4e6f7420656e6f7567682076616c75652070726f766964656420746f206d617460008201527f6368206f72206578636565642070726963650000000000000000000000000000602082015250565b6000613f3e6032836133b0565b9150613f4982613ee2565b604082019050919050565b60006020820190508181036000830152613f6d81613f31565b9050919050565b7f4d7573742072657175657374207265616c206e756d626572206f6620746f6b6560008201527f6e73000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fd06022836133b0565b9150613fdb82613f74565b604082019050919050565b60006020820190508181036000830152613fff81613fc3565b9050919050565b60006140118261344f565b915061401c8361344f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561405157614050613e59565b5b828201905092915050565b7f4e6f7420656e6f75676820746f6b656e73206c65667400000000000000000000600082015250565b60006140926016836133b0565b915061409d8261405c565b602082019050919050565b600060208201905081810360008301526140c181614085565b9050919050565b7f596f752772652072657175657374696e6720746f6f206d616e7920746f6b656e60008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006141246021836133b0565b915061412f826140c8565b604082019050919050565b6000602082019050818103600083015261415381614117565b9050919050565b60006141658261344f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561419857614197613e59565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141dd8261344f565b91506141e88361344f565b9250826141f8576141f76141a3565b5b828204905092915050565b600081905092915050565b50565b600061421e600083614203565b91506142298261420e565b600082019050919050565b600061423f82614211565b9150819050919050565b7f7472616e7366657220746f2062696748206661696c65642e0000000000000000600082015250565b600061427f6018836133b0565b915061428a82614249565b602082019050919050565b600060208201905081810360008301526142ae81614272565b9050919050565b7f7472616e7366657220746f207374617267617a6572206661696c65642e000000600082015250565b60006142eb601d836133b0565b91506142f6826142b5565b602082019050919050565b6000602082019050818103600083015261431a816142de565b9050919050565b600061432c8261344f565b91506143378361344f565b92508282101561434a57614349613e59565b5b828203905092915050565b7f7472616e7366657220746f207472656173757279206661696c65642e00000000600082015250565b600061438b601c836133b0565b915061439682614355565b602082019050919050565b600060208201905081810360008301526143ba8161437e565b9050919050565b7f6661696c696e6720617420656e642064756520746f2074657374206d6f64652e600082015250565b60006143f76020836133b0565b9150614402826143c1565b602082019050919050565b60006020820190508181036000830152614426816143ea565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006144636019836133b0565b915061446e8261442d565b602082019050919050565b6000602082019050818103600083015261449281614456565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b60006144f5602f836133b0565b915061450082614499565b604082019050919050565b60006020820190508181036000830152614524816144e8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006145876026836133b0565b91506145928261452b565b604082019050919050565b600060208201905081810360008301526145b68161457a565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000614619602c836133b0565b9150614624826145bd565b604082019050919050565b600060208201905081810360008301526146488161460c565b9050919050565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b60006146ab6029836133b0565b91506146b68261464f565b604082019050919050565b600060208201905081810360008301526146da8161469e565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061473d6024836133b0565b9150614748826146e1565b604082019050919050565b6000602082019050818103600083015261476c81614730565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006147a96014836133b0565b91506147b482614773565b602082019050919050565b600060208201905081810360008301526147d88161479c565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006148156010836133b0565b9150614820826147df565b602082019050919050565b6000602082019050818103600083015261484481614808565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006148a76032836133b0565b91506148b28261484b565b604082019050919050565b600060208201905081810360008301526148d68161489a565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000614904826148dd565b61490e81856148e8565b935061491e8185602086016133c1565b61492781613165565b840191505092915050565b600060808201905061494760008301876134e4565b61495460208301866134e4565b614961604083018561357a565b818103606083015261497381846148f9565b905095945050505050565b60008151905061498d81613316565b92915050565b6000602082840312156149a9576149a8613151565b5b60006149b78482850161497e565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006149f66020836133b0565b9150614a01826149c0565b602082019050919050565b60006020820190508181036000830152614a25816149e9565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614a62601c836133b0565b9150614a6d82614a2c565b602082019050919050565b60006020820190508181036000830152614a9181614a55565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220162b7215908828125e627ea75812f51456dfd7323b722a181853e6368b4d827f64736f6c6343000809003368747470733a2f2f617277656176652e6e65742f4d5a50794d643562716854654e316d7a3534663077334367334375324c683462314137704d4f764e73716768747470733a2f2f617277656176652e6e65742f7832643267715a6b424966776c55537a62766e6d5f3034533169577a5941595f397945357a636179635245000000000000000000000000d9a834e47e65e92894916ac099fafc7105625240000000000000000000000000547e239e6efce67e2d767f814a66fca3229d948b000000000000000000000000f62c04fb8b3ecd1fb43bb791fd80008cccbe2406

Deployed Bytecode

0x60806040526004361061021a5760003560e01c806370a0823111610123578063a035b1fe116100ab578063d5abeb011161006f578063d5abeb011461079c578063e58306f9146107c7578063e8a3d485146107e3578063e985e9c51461080e578063f2fde38b1461084b5761021a565b8063a035b1fe146106b7578063a22cb465146106e2578063a4d66daf1461070b578063b88d4fde14610736578063c87b56dd1461075f5761021a565b80638621fa9c116100f25780638621fa9c146105f15780638da5cb5b1461060d5780638e9673a51461063857806391b7f5ed1461066357806395d89b411461068c5761021a565b806370a082311461055d57806370b187e81461059a578063715018a6146105c35780638456cb59146105da5761021a565b80632f745c59116101a65780634f6ccce7116101755780634f6ccce71461046457806356cba008146104a15780635c975abb146104cc5780636352211e146104f75780636f8b44b0146105345761021a565b80632f745c59146103bc5780633f4ba83a146103f957806342842e0e146104105780634bf9b689146104395761021a565b8063095ea7b3116101ed578063095ea7b3146102ed57806318160ddd146103165780631ab345f41461034157806323b872dd1461036a57806327ea6f2b146103935761021a565b806301dd2a3a1461021f57806301ffc9a71461024857806306fdde0314610285578063081812fc146102b0575b600080fd5b34801561022b57600080fd5b50610246600480360381019061024191906132a1565b610874565b005b34801561025457600080fd5b5061026f600480360381019061026a9190613342565b61090a565b60405161027c919061338a565b60405180910390f35b34801561029157600080fd5b5061029a61091c565b6040516102a7919061342d565b60405180910390f35b3480156102bc57600080fd5b506102d760048036038101906102d29190613485565b6109ae565b6040516102e491906134f3565b60405180910390f35b3480156102f957600080fd5b50610314600480360381019061030f919061353a565b610a33565b005b34801561032257600080fd5b5061032b610b4b565b6040516103389190613589565b60405180910390f35b34801561034d57600080fd5b50610368600480360381019061036391906135d0565b610b58565b005b34801561037657600080fd5b50610391600480360381019061038c91906135fd565b610bf1565b005b34801561039f57600080fd5b506103ba60048036038101906103b59190613485565b610c51565b005b3480156103c857600080fd5b506103e360048036038101906103de919061353a565b610cd7565b6040516103f09190613589565b60405180910390f35b34801561040557600080fd5b5061040e610d7c565b005b34801561041c57600080fd5b50610437600480360381019061043291906135fd565b610e02565b005b34801561044557600080fd5b5061044e610e22565b60405161045b919061342d565b60405180910390f35b34801561047057600080fd5b5061048b60048036038101906104869190613485565b610eb0565b6040516104989190613589565b60405180910390f35b3480156104ad57600080fd5b506104b6610f21565b6040516104c3919061338a565b60405180910390f35b3480156104d857600080fd5b506104e1610f34565b6040516104ee919061338a565b60405180910390f35b34801561050357600080fd5b5061051e60048036038101906105199190613485565b610f4b565b60405161052b91906134f3565b60405180910390f35b34801561054057600080fd5b5061055b60048036038101906105569190613485565b610ffd565b005b34801561056957600080fd5b50610584600480360381019061057f9190613650565b611083565b6040516105919190613589565b60405180910390f35b3480156105a657600080fd5b506105c160048036038101906105bc91906132a1565b61113b565b005b3480156105cf57600080fd5b506105d86111d1565b005b3480156105e657600080fd5b506105ef611259565b005b61060b6004803603810190610606919061367d565b6112df565b005b34801561061957600080fd5b506106226117a1565b60405161062f91906134f3565b60405180910390f35b34801561064457600080fd5b5061064d6117cb565b60405161065a919061342d565b60405180910390f35b34801561066f57600080fd5b5061068a60048036038101906106859190613485565b611859565b005b34801561069857600080fd5b506106a16118df565b6040516106ae919061342d565b60405180910390f35b3480156106c357600080fd5b506106cc611971565b6040516106d99190613589565b60405180910390f35b3480156106ee57600080fd5b50610709600480360381019061070491906136bd565b611977565b005b34801561071757600080fd5b50610720611af8565b60405161072d9190613589565b60405180910390f35b34801561074257600080fd5b5061075d6004803603810190610758919061379e565b611afe565b005b34801561076b57600080fd5b5061078660048036038101906107819190613485565b611b60565b604051610793919061342d565b60405180910390f35b3480156107a857600080fd5b506107b1611bb9565b6040516107be9190613589565b60405180910390f35b6107e160048036038101906107dc919061353a565b611bbf565b005b3480156107ef57600080fd5b506107f8611cd4565b604051610805919061342d565b60405180910390f35b34801561081a57600080fd5b5061083560048036038101906108309190613821565b611d66565b604051610842919061338a565b60405180910390f35b34801561085757600080fd5b50610872600480360381019061086d9190613650565b611dfa565b005b61087c611ef2565b73ffffffffffffffffffffffffffffffffffffffff1661089a6117a1565b73ffffffffffffffffffffffffffffffffffffffff16146108f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e7906138ad565b60405180910390fd5b80600f90805190602001906109069291906130a4565b5050565b600061091582611efa565b9050919050565b60606000805461092b906138fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610957906138fc565b80156109a45780601f10610979576101008083540402835291602001916109a4565b820191906000526020600020905b81548152906001019060200180831161098757829003601f168201915b5050505050905090565b60006109b982611f74565b6109f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ef906139a0565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a3e82610f4b565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa690613a32565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610ace611ef2565b73ffffffffffffffffffffffffffffffffffffffff161480610afd5750610afc81610af7611ef2565b611d66565b5b610b3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3390613ac4565b60405180910390fd5b610b468383611fe0565b505050565b6000600880549050905090565b610b60611ef2565b73ffffffffffffffffffffffffffffffffffffffff16610b7e6117a1565b73ffffffffffffffffffffffffffffffffffffffff1614610bd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcb906138ad565b60405180910390fd5b80601160006101000a81548160ff02191690831515021790555050565b610c02610bfc611ef2565b82612099565b610c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3890613b56565b60405180910390fd5b610c4c838383612177565b505050565b610c59611ef2565b73ffffffffffffffffffffffffffffffffffffffff16610c776117a1565b73ffffffffffffffffffffffffffffffffffffffff1614610ccd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc4906138ad565b60405180910390fd5b80600d8190555050565b6000610ce283611083565b8210610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a90613be8565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610d84611ef2565b73ffffffffffffffffffffffffffffffffffffffff16610da26117a1565b73ffffffffffffffffffffffffffffffffffffffff1614610df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610def906138ad565b60405180910390fd5b610e006123d3565b565b610e1d83838360405180602001604052806000815250611afe565b505050565b60108054610e2f906138fc565b80601f0160208091040260200160405190810160405280929190818152602001828054610e5b906138fc565b8015610ea85780601f10610e7d57610100808354040283529160200191610ea8565b820191906000526020600020905b815481529060010190602001808311610e8b57829003601f168201915b505050505081565b6000610eba610b4b565b8210610efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef290613c7a565b60405180910390fd5b60088281548110610f0f57610f0e613c9a565b5b90600052602060002001549050919050565b601160009054906101000a900460ff1681565b6000600a60009054906101000a900460ff16905090565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610feb90613d3b565b60405180910390fd5b80915050919050565b611005611ef2565b73ffffffffffffffffffffffffffffffffffffffff166110236117a1565b73ffffffffffffffffffffffffffffffffffffffff1614611079576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611070906138ad565b60405180910390fd5b80600c8190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110eb90613dcd565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611143611ef2565b73ffffffffffffffffffffffffffffffffffffffff166111616117a1565b73ffffffffffffffffffffffffffffffffffffffff16146111b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ae906138ad565b60405180910390fd5b80601090805190602001906111cd9291906130a4565b5050565b6111d9611ef2565b73ffffffffffffffffffffffffffffffffffffffff166111f76117a1565b73ffffffffffffffffffffffffffffffffffffffff161461124d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611244906138ad565b60405180910390fd5b6112576000612475565b565b611261611ef2565b73ffffffffffffffffffffffffffffffffffffffff1661127f6117a1565b73ffffffffffffffffffffffffffffffffffffffff16146112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc906138ad565b60405180910390fd5b6112dd61253b565b565b600033905060001515601160009054906101000a900460ff1615151461133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190613e39565b60405180910390fd5b82600e546113489190613e88565b34101561138a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138190613f54565b60405180910390fd5b600083116113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c490613fe6565b60405180910390fd5b600c54836113db600b6125de565b6113e59190614006565b1115611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d906140a8565b60405180910390fd5b600d548361143383611083565b61143d9190614006565b111561147e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114759061413a565b60405180910390fd5b60005b838110156114b95761149c82611497600b6125de565b6125ec565b6114a6600b61260a565b80806114b19061415a565b915050611481565b50600034905060006014826114ce91906141d2565b90506000601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161151890614234565b60006040518083038185875af1925050503d8060008114611555576040519150601f19603f3d011682016040523d82523d6000602084013e61155a565b606091505b505090508061159e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159590614295565b60405180910390fd5b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516115e690614234565b60006040518083038185875af1925050503d8060008114611623576040519150601f19603f3d011682016040523d82523d6000602084013e611628565b606091505b505090508061166c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166390614301565b60405180910390fd5b6000838461167a9190614006565b856116859190614321565b90506000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516116cf90614234565b60006040518083038185875af1925050503d806000811461170c576040519150601f19603f3d011682016040523d82523d6000602084013e611711565b606091505b5050905080611755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174c906143a1565b60405180910390fd5b8715611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d9061440d565b60405180910390fd5b505050505050505050565b6000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f80546117d8906138fc565b80601f0160208091040260200160405190810160405280929190818152602001828054611804906138fc565b80156118515780601f1061182657610100808354040283529160200191611851565b820191906000526020600020905b81548152906001019060200180831161183457829003601f168201915b505050505081565b611861611ef2565b73ffffffffffffffffffffffffffffffffffffffff1661187f6117a1565b73ffffffffffffffffffffffffffffffffffffffff16146118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc906138ad565b60405180910390fd5b80600e8190555050565b6060600180546118ee906138fc565b80601f016020809104026020016040519081016040528092919081815260200182805461191a906138fc565b80156119675780601f1061193c57610100808354040283529160200191611967565b820191906000526020600020905b81548152906001019060200180831161194a57829003601f168201915b5050505050905090565b600e5481565b61197f611ef2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e490614479565b60405180910390fd5b80600560006119fa611ef2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611aa7611ef2565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611aec919061338a565b60405180910390a35050565b600d5481565b611b0f611b09611ef2565b83612099565b611b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4590613b56565b60405180910390fd5b611b5a84848484612620565b50505050565b6060611b6b82611f74565b611baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba19061450b565b60405180910390fd5b611bb261267c565b9050919050565b600c5481565b611bc7611ef2565b73ffffffffffffffffffffffffffffffffffffffff16611be56117a1565b73ffffffffffffffffffffffffffffffffffffffff1614611c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c32906138ad565b60405180910390fd5b600c5481611c49600b6125de565b611c539190614006565b1115611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b906140a8565b60405180910390fd5b60005b81811015611ccf57611cb283611cad600b6125de565b6125ec565b611cbc600b61260a565b8080611cc79061415a565b915050611c97565b505050565b606060108054611ce3906138fc565b80601f0160208091040260200160405190810160405280929190818152602001828054611d0f906138fc565b8015611d5c5780601f10611d3157610100808354040283529160200191611d5c565b820191906000526020600020905b815481529060010190602001808311611d3f57829003601f168201915b5050505050905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611e02611ef2565b73ffffffffffffffffffffffffffffffffffffffff16611e206117a1565b73ffffffffffffffffffffffffffffffffffffffff1614611e76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6d906138ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edd9061459d565b60405180910390fd5b611eef81612475565b50565b600033905090565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611f6d5750611f6c8261270e565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661205383610f4b565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006120a482611f74565b6120e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120da9061462f565b60405180910390fd5b60006120ee83610f4b565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061215d57508373ffffffffffffffffffffffffffffffffffffffff16612145846109ae565b73ffffffffffffffffffffffffffffffffffffffff16145b8061216e575061216d8185611d66565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661219782610f4b565b73ffffffffffffffffffffffffffffffffffffffff16146121ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e4906146c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561225d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225490614753565b60405180910390fd5b6122688383836127f0565b612273600082611fe0565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122c39190614321565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461231a9190614006565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6123db610f34565b61241a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612411906147bf565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61245e611ef2565b60405161246b91906134f3565b60405180910390a1565b6000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612543610f34565b15612583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257a9061482b565b60405180910390fd5b6001600a60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586125c7611ef2565b6040516125d491906134f3565b60405180910390a1565b600081600001549050919050565b612606828260405180602001604052806000815250612848565b5050565b6001816000016000828254019250508190555050565b61262b848484612177565b612637848484846128a3565b612676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266d906148bd565b60405180910390fd5b50505050565b6060600f805461268b906138fc565b80601f01602080910402602001604051908101604052809291908181526020018280546126b7906138fc565b80156127045780601f106126d957610100808354040283529160200191612704565b820191906000526020600020905b8154815290600101906020018083116126e757829003601f168201915b5050505050905090565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806127d957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806127e957506127e882612a3a565b5b9050919050565b6127f8610f34565b15612838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282f9061482b565b60405180910390fd5b612843838383612aa4565b505050565b6128528383612bb8565b61285f60008484846128a3565b61289e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612895906148bd565b60405180910390fd5b505050565b60006128c48473ffffffffffffffffffffffffffffffffffffffff16612d86565b15612a2d578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026128ed611ef2565b8786866040518563ffffffff1660e01b815260040161290f9493929190614932565b602060405180830381600087803b15801561292957600080fd5b505af192505050801561295a57506040513d601f19601f820116820180604052508101906129579190614993565b60015b6129dd573d806000811461298a576040519150601f19603f3d011682016040523d82523d6000602084013e61298f565b606091505b506000815114156129d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cc906148bd565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612a32565b600190505b949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612aaf838383612d99565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612af257612aed81612d9e565b612b31565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612b3057612b2f8382612de7565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612b7457612b6f81612f54565b612bb3565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612bb257612bb18282613025565b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c1f90614a0c565b60405180910390fd5b612c3181611f74565b15612c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c6890614a78565b60405180910390fd5b612c7d600083836127f0565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ccd9190614006565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001612df484611083565b612dfe9190614321565b9050600060076000848152602001908152602001600020549050818114612ee3576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050612f689190614321565b9050600060096000848152602001908152602001600020549050600060088381548110612f9857612f97613c9a565b5b906000526020600020015490508060088381548110612fba57612fb9613c9a565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548061300957613008614a98565b5b6001900381819060005260206000200160009055905550505050565b600061303083611083565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b8280546130b0906138fc565b90600052602060002090601f0160209004810192826130d25760008555613119565b82601f106130eb57805160ff1916838001178555613119565b82800160010185558215613119579182015b828111156131185782518255916020019190600101906130fd565b5b509050613126919061312a565b5090565b5b8082111561314357600081600090555060010161312b565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6131ae82613165565b810181811067ffffffffffffffff821117156131cd576131cc613176565b5b80604052505050565b60006131e0613147565b90506131ec82826131a5565b919050565b600067ffffffffffffffff82111561320c5761320b613176565b5b61321582613165565b9050602081019050919050565b82818337600083830152505050565b600061324461323f846131f1565b6131d6565b9050828152602081018484840111156132605761325f613160565b5b61326b848285613222565b509392505050565b600082601f8301126132885761328761315b565b5b8135613298848260208601613231565b91505092915050565b6000602082840312156132b7576132b6613151565b5b600082013567ffffffffffffffff8111156132d5576132d4613156565b5b6132e184828501613273565b91505092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61331f816132ea565b811461332a57600080fd5b50565b60008135905061333c81613316565b92915050565b60006020828403121561335857613357613151565b5b60006133668482850161332d565b91505092915050565b60008115159050919050565b6133848161336f565b82525050565b600060208201905061339f600083018461337b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133df5780820151818401526020810190506133c4565b838111156133ee576000848401525b50505050565b60006133ff826133a5565b61340981856133b0565b93506134198185602086016133c1565b61342281613165565b840191505092915050565b6000602082019050818103600083015261344781846133f4565b905092915050565b6000819050919050565b6134628161344f565b811461346d57600080fd5b50565b60008135905061347f81613459565b92915050565b60006020828403121561349b5761349a613151565b5b60006134a984828501613470565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134dd826134b2565b9050919050565b6134ed816134d2565b82525050565b600060208201905061350860008301846134e4565b92915050565b613517816134d2565b811461352257600080fd5b50565b6000813590506135348161350e565b92915050565b6000806040838503121561355157613550613151565b5b600061355f85828601613525565b925050602061357085828601613470565b9150509250929050565b6135838161344f565b82525050565b600060208201905061359e600083018461357a565b92915050565b6135ad8161336f565b81146135b857600080fd5b50565b6000813590506135ca816135a4565b92915050565b6000602082840312156135e6576135e5613151565b5b60006135f4848285016135bb565b91505092915050565b60008060006060848603121561361657613615613151565b5b600061362486828701613525565b935050602061363586828701613525565b925050604061364686828701613470565b9150509250925092565b60006020828403121561366657613665613151565b5b600061367484828501613525565b91505092915050565b6000806040838503121561369457613693613151565b5b60006136a285828601613470565b92505060206136b3858286016135bb565b9150509250929050565b600080604083850312156136d4576136d3613151565b5b60006136e285828601613525565b92505060206136f3858286016135bb565b9150509250929050565b600067ffffffffffffffff82111561371857613717613176565b5b61372182613165565b9050602081019050919050565b600061374161373c846136fd565b6131d6565b90508281526020810184848401111561375d5761375c613160565b5b613768848285613222565b509392505050565b600082601f8301126137855761378461315b565b5b813561379584826020860161372e565b91505092915050565b600080600080608085870312156137b8576137b7613151565b5b60006137c687828801613525565b94505060206137d787828801613525565b93505060406137e887828801613470565b925050606085013567ffffffffffffffff81111561380957613808613156565b5b61381587828801613770565b91505092959194509250565b6000806040838503121561383857613837613151565b5b600061384685828601613525565b925050602061385785828601613525565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138976020836133b0565b91506138a282613861565b602082019050919050565b600060208201905081810360008301526138c68161388a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061391457607f821691505b60208210811415613928576139276138cd565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b600061398a602c836133b0565b91506139958261392e565b604082019050919050565b600060208201905081810360008301526139b98161397d565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a1c6021836133b0565b9150613a27826139c0565b604082019050919050565b60006020820190508181036000830152613a4b81613a0f565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000613aae6038836133b0565b9150613ab982613a52565b604082019050919050565b60006020820190508181036000830152613add81613aa1565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000613b406031836133b0565b9150613b4b82613ae4565b604082019050919050565b60006020820190508181036000830152613b6f81613b33565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000613bd2602b836133b0565b9150613bdd82613b76565b604082019050919050565b60006020820190508181036000830152613c0181613bc5565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000613c64602c836133b0565b9150613c6f82613c08565b604082019050919050565b60006020820190508181036000830152613c9381613c57565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b6000613d256029836133b0565b9150613d3082613cc9565b604082019050919050565b60006020820190508181036000830152613d5481613d18565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613db7602a836133b0565b9150613dc282613d5b565b604082019050919050565b60006020820190508181036000830152613de681613daa565b9050919050565b7f53616c657320617265206e6f772073746f707065640000000000000000000000600082015250565b6000613e236015836133b0565b9150613e2e82613ded565b602082019050919050565b60006020820190508181036000830152613e5281613e16565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e938261344f565b9150613e9e8361344f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ed757613ed6613e59565b5b828202905092915050565b7f4e6f7420656e6f7567682076616c75652070726f766964656420746f206d617460008201527f6368206f72206578636565642070726963650000000000000000000000000000602082015250565b6000613f3e6032836133b0565b9150613f4982613ee2565b604082019050919050565b60006020820190508181036000830152613f6d81613f31565b9050919050565b7f4d7573742072657175657374207265616c206e756d626572206f6620746f6b6560008201527f6e73000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fd06022836133b0565b9150613fdb82613f74565b604082019050919050565b60006020820190508181036000830152613fff81613fc3565b9050919050565b60006140118261344f565b915061401c8361344f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561405157614050613e59565b5b828201905092915050565b7f4e6f7420656e6f75676820746f6b656e73206c65667400000000000000000000600082015250565b60006140926016836133b0565b915061409d8261405c565b602082019050919050565b600060208201905081810360008301526140c181614085565b9050919050565b7f596f752772652072657175657374696e6720746f6f206d616e7920746f6b656e60008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006141246021836133b0565b915061412f826140c8565b604082019050919050565b6000602082019050818103600083015261415381614117565b9050919050565b60006141658261344f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561419857614197613e59565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006141dd8261344f565b91506141e88361344f565b9250826141f8576141f76141a3565b5b828204905092915050565b600081905092915050565b50565b600061421e600083614203565b91506142298261420e565b600082019050919050565b600061423f82614211565b9150819050919050565b7f7472616e7366657220746f2062696748206661696c65642e0000000000000000600082015250565b600061427f6018836133b0565b915061428a82614249565b602082019050919050565b600060208201905081810360008301526142ae81614272565b9050919050565b7f7472616e7366657220746f207374617267617a6572206661696c65642e000000600082015250565b60006142eb601d836133b0565b91506142f6826142b5565b602082019050919050565b6000602082019050818103600083015261431a816142de565b9050919050565b600061432c8261344f565b91506143378361344f565b92508282101561434a57614349613e59565b5b828203905092915050565b7f7472616e7366657220746f207472656173757279206661696c65642e00000000600082015250565b600061438b601c836133b0565b915061439682614355565b602082019050919050565b600060208201905081810360008301526143ba8161437e565b9050919050565b7f6661696c696e6720617420656e642064756520746f2074657374206d6f64652e600082015250565b60006143f76020836133b0565b9150614402826143c1565b602082019050919050565b60006020820190508181036000830152614426816143ea565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006144636019836133b0565b915061446e8261442d565b602082019050919050565b6000602082019050818103600083015261449281614456565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b60006144f5602f836133b0565b915061450082614499565b604082019050919050565b60006020820190508181036000830152614524816144e8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006145876026836133b0565b91506145928261452b565b604082019050919050565b600060208201905081810360008301526145b68161457a565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000614619602c836133b0565b9150614624826145bd565b604082019050919050565b600060208201905081810360008301526146488161460c565b9050919050565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b60006146ab6029836133b0565b91506146b68261464f565b604082019050919050565b600060208201905081810360008301526146da8161469e565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061473d6024836133b0565b9150614748826146e1565b604082019050919050565b6000602082019050818103600083015261476c81614730565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006147a96014836133b0565b91506147b482614773565b602082019050919050565b600060208201905081810360008301526147d88161479c565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b60006148156010836133b0565b9150614820826147df565b602082019050919050565b6000602082019050818103600083015261484481614808565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006148a76032836133b0565b91506148b28261484b565b604082019050919050565b600060208201905081810360008301526148d68161489a565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000614904826148dd565b61490e81856148e8565b935061491e8185602086016133c1565b61492781613165565b840191505092915050565b600060808201905061494760008301876134e4565b61495460208301866134e4565b614961604083018561357a565b818103606083015261497381846148f9565b905095945050505050565b60008151905061498d81613316565b92915050565b6000602082840312156149a9576149a8613151565b5b60006149b78482850161497e565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006149f66020836133b0565b9150614a01826149c0565b602082019050919050565b60006020820190508181036000830152614a25816149e9565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614a62601c836133b0565b9150614a6d82614a2c565b602082019050919050565b60006020820190508181036000830152614a9181614a55565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220162b7215908828125e627ea75812f51456dfd7323b722a181853e6368b4d827f64736f6c63430008090033

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

000000000000000000000000d9a834e47e65e92894916ac099fafc7105625240000000000000000000000000547e239e6efce67e2d767f814a66fca3229d948b000000000000000000000000f62c04fb8b3ecd1fb43bb791fd80008cccbe2406

-----Decoded View---------------
Arg [0] : _bigH (address): 0xd9A834e47e65e92894916Ac099fAFc7105625240
Arg [1] : _stargazer (address): 0x547e239e6EFCe67e2d767f814a66FCa3229d948B
Arg [2] : _treasury (address): 0xF62C04Fb8B3EcD1FB43bB791FD80008CccBe2406

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000d9a834e47e65e92894916ac099fafc7105625240
Arg [1] : 000000000000000000000000547e239e6efce67e2d767f814a66fca3229d948b
Arg [2] : 000000000000000000000000f62c04fb8b3ecd1fb43bb791fd80008cccbe2406


Deployed Bytecode Sourcemap

21444:4250:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22864:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25479:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8900:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10013:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9588:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16468:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25007:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10735:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23195:81;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16198:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25171:65;;;;;;;;;;;;;:::i;:::-;;11045:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21885:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16595:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21994:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19199:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8647:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23284:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8425:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22982:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20956:94;;;;;;;;;;;;;:::i;:::-;;25102:61;;;;;;;;;;;;;:::i;:::-;;23725:1274;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20721:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21781:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23106:81;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9014:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21741:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10248:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21712:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11244:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22416:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21678:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23389:328;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22753:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10557:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21064:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22864:110;20873:12;:10;:12::i;:::-;20862:23;;:7;:5;:7::i;:::-;:23;;;20854:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22960:6:::1;22942:15;:24;;;;;;;;;;;;:::i;:::-;;22864:110:::0;:::o;25479:212::-;25618:4;25647:36;25671:11;25647:23;:36::i;:::-;25640:43;;25479:212;;;:::o;8900:100::-;8954:13;8987:5;8980:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8900:100;:::o;10013:221::-;10089:7;10117:16;10125:7;10117;:16::i;:::-;10109:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10202:15;:24;10218:7;10202:24;;;;;;;;;;;;;;;;;;;;;10195:31;;10013:221;;;:::o;9588:411::-;9669:13;9685:23;9700:7;9685:14;:23::i;:::-;9669:39;;9733:5;9727:11;;:2;:11;;;;9719:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9827:5;9811:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;9836:37;9853:5;9860:12;:10;:12::i;:::-;9836:16;:37::i;:::-;9811:62;9789:168;;;;;;;;;;;;:::i;:::-;;;;;;;;;9970:21;9979:2;9983:7;9970:8;:21::i;:::-;9658:341;9588:411;;:::o;16468:113::-;16529:7;16556:10;:17;;;;16549:24;;16468:113;:::o;25007:87::-;20873:12;:10;:12::i;:::-;20862:23;;:7;:5;:7::i;:::-;:23;;;20854:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25081:5:::1;25069:9;;:17;;;;;;;;;;;;;;;;;;25007:87:::0;:::o;10735:296::-;10887:41;10906:12;:10;:12::i;:::-;10920:7;10887:18;:41::i;:::-;10879:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;10995:28;11005:4;11011:2;11015:7;10995:9;:28::i;:::-;10735:296;;;:::o;23195:81::-;20873:12;:10;:12::i;:::-;20862:23;;:7;:5;:7::i;:::-;:23;;;20854:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23262:6:::1;23254:5;:14;;;;23195:81:::0;:::o;16198:256::-;16295:7;16331:23;16348:5;16331:16;:23::i;:::-;16323:5;:31;16315:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;16420:12;:19;16433:5;16420:19;;;;;;;;;;;;;;;:26;16440:5;16420:26;;;;;;;;;;;;16413:33;;16198:256;;;;:::o;25171:65::-;20873:12;:10;:12::i;:::-;20862:23;;:7;:5;:7::i;:::-;:23;;;20854:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25218:10:::1;:8;:10::i;:::-;25171:65::o:0;11045:185::-;11183:39;11200:4;11206:2;11210:7;11183:39;;;;;;;;;;;;:16;:39::i;:::-;11045:185;;;:::o;21885:100::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16595:233::-;16670:7;16706:30;:28;:30::i;:::-;16698:5;:38;16690:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;16803:10;16814:5;16803:17;;;;;;;;:::i;:::-;;;;;;;;;;16796:24;;16595:233;;;:::o;21994:29::-;;;;;;;;;;;;;:::o;19199:86::-;19246:4;19270:7;;;;;;;;;;;19263:14;;19199:86;:::o;8647:239::-;8719:7;8739:13;8755:7;:16;8763:7;8755:16;;;;;;;;;;;;;;;;;;;;;8739:32;;8807:1;8790:19;;:5;:19;;;;8782:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8873:5;8866:12;;;8647:239;;;:::o;23284:97::-;20873:12;:10;:12::i;:::-;20862:23;;:7;:5;:7::i;:::-;:23;;;20854:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23363:10:::1;23351:9;:22;;;;23284:97:::0;:::o;8425:208::-;8497:7;8542:1;8525:19;;:5;:19;;;;8517:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8609:9;:16;8619:5;8609:16;;;;;;;;;;;;;;;;8602:23;;8425:208;;;:::o;22982:116::-;20873:12;:10;:12::i;:::-;20862:23;;:7;:5;:7::i;:::-;:23;;;20854:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23084:6:::1;23063:18;:27;;;;;;;;;;;;:::i;:::-;;22982:116:::0;:::o;20956:94::-;20873:12;:10;:12::i;:::-;20862:23;;:7;:5;:7::i;:::-;:23;;;20854:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21021:21:::1;21039:1;21021:9;:21::i;:::-;20956:94::o:0;25102:61::-;20873:12;:10;:12::i;:::-;20862:23;;:7;:5;:7::i;:::-;:23;;;20854:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25147:8:::1;:6;:8::i;:::-;25102:61::o:0;23725:1274::-;23795:10;23808;23795:23;;23850:5;23837:18;;:9;;;;;;;;;;;:18;;;23829:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;23922:6;23914:5;;:14;;;;:::i;:::-;23900:9;:29;;23892:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;24012:1;24003:6;:10;23995:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;24109:9;;24099:6;24071:25;:15;:23;:25::i;:::-;:34;;;;:::i;:::-;:47;;24063:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;24190:5;;24180:6;24164:13;24174:2;24164:9;:13::i;:::-;:22;;;;:::i;:::-;:31;;24156:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;24251:6;24246:146;24268:6;24264:1;:10;24246:146;;;24298:40;24308:2;24312:25;:15;:23;:25::i;:::-;24298:9;:40::i;:::-;24353:27;:15;:25;:27::i;:::-;24277:4;;;;;:::i;:::-;;;;24246:146;;;;24404:10;24417:9;24404:22;;24437:16;24464:2;24456:5;:10;;;;:::i;:::-;24437:29;;24481:13;24500:4;;;;;;;;;;;:9;;24516:11;24500:32;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24480:52;;;24551:8;24543:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;24600:18;24624:9;;;;;;;;;;;:14;;24645:11;24624:37;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24599:62;;;24680:13;24672:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;24740:14;24780:11;24766;:25;;;;:::i;:::-;24757:5;:35;;;;:::i;:::-;24740:52;;24804:17;24827:8;;;;;;;;;;;:13;;24847:9;24827:34;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24803:58;;;24880:12;24872:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;24948:6;24947:7;24938:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;23784:1215;;;;;;;23725:1274;;:::o;20721:87::-;20767:7;20794:6;;;;;;;;;;;20787:13;;20721:87;:::o;21781:97::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;23106:81::-;20873:12;:10;:12::i;:::-;20862:23;;:7;:5;:7::i;:::-;:23;;;20854:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23173:6:::1;23165:5;:14;;;;23106:81:::0;:::o;9014:104::-;9070:13;9103:7;9096:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9014:104;:::o;21741:31::-;;;;:::o;10248:295::-;10363:12;:10;:12::i;:::-;10351:24;;:8;:24;;;;10343:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10463:8;10418:18;:32;10437:12;:10;:12::i;:::-;10418:32;;;;;;;;;;;;;;;:42;10451:8;10418:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;10516:8;10487:48;;10502:12;:10;:12::i;:::-;10487:48;;;10526:8;10487:48;;;;;;:::i;:::-;;;;;;;;10248:295;;:::o;21712:22::-;;;;:::o;11244:328::-;11419:41;11438:12;:10;:12::i;:::-;11452:7;11419:18;:41::i;:::-;11411:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;11525:39;11539:4;11545:2;11549:7;11558:5;11525:13;:39::i;:::-;11244:328;;;;:::o;22416:213::-;22489:13;22523:16;22531:7;22523;:16::i;:::-;22515:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;22611:10;:8;:10::i;:::-;22604:17;;22416:213;;;:::o;21678:27::-;;;;:::o;23389:328::-;20873:12;:10;:12::i;:::-;20862:23;;:7;:5;:7::i;:::-;:23;;;20854:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23515:9:::1;;23505:6;23477:25;:15;:23;:25::i;:::-;:34;;;;:::i;:::-;:47;;23469:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;23569:6;23564:146;23586:6;23582:1;:10;23564:146;;;23616:40;23626:2;23630:25;:15;:23;:25::i;:::-;23616:9;:40::i;:::-;23671:27;:15;:25;:27::i;:::-;23595:4;;;;;:::i;:::-;;;;23564:146;;;;23389:328:::0;;:::o;22753:103::-;22797:13;22830:18;22823:25;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22753:103;:::o;10557:164::-;10654:4;10678:18;:25;10697:5;10678:25;;;;;;;;;;;;;;;:35;10704:8;10678:35;;;;;;;;;;;;;;;;;;;;;;;;;10671:42;;10557:164;;;;:::o;21064:192::-;20873:12;:10;:12::i;:::-;20862:23;;:7;:5;:7::i;:::-;:23;;;20854:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21173:1:::1;21153:22;;:8;:22;;;;21145:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;21229:19;21239:8;21229:9;:19::i;:::-;21064:192:::0;:::o;5591:98::-;5644:7;5671:10;5664:17;;5591:98;:::o;15960:224::-;16062:4;16101:35;16086:50;;;:11;:50;;;;:90;;;;16140:36;16164:11;16140:23;:36::i;:::-;16086:90;16079:97;;15960:224;;;:::o;11915:127::-;11980:4;12032:1;12004:30;;:7;:16;12012:7;12004:16;;;;;;;;;;;;;;;;;;;;;:30;;;;11997:37;;11915:127;;;:::o;14179:174::-;14281:2;14254:15;:24;14270:7;14254:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14337:7;14333:2;14299:46;;14308:23;14323:7;14308:14;:23::i;:::-;14299:46;;;;;;;;;;;;14179:174;;:::o;12056:348::-;12149:4;12174:16;12182:7;12174;:16::i;:::-;12166:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12250:13;12266:23;12281:7;12266:14;:23::i;:::-;12250:39;;12319:5;12308:16;;:7;:16;;;:51;;;;12352:7;12328:31;;:20;12340:7;12328:11;:20::i;:::-;:31;;;12308:51;:87;;;;12363:32;12380:5;12387:7;12363:16;:32::i;:::-;12308:87;12300:96;;;12056:348;;;;:::o;13629:536::-;13788:4;13761:31;;:23;13776:7;13761:14;:23::i;:::-;:31;;;13753:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13871:1;13857:16;;:2;:16;;;;13849:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13927:39;13948:4;13954:2;13958:7;13927:20;:39::i;:::-;13989:29;14006:1;14010:7;13989:8;:29::i;:::-;14050:1;14031:9;:15;14041:4;14031:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;14079:1;14062:9;:13;14072:2;14062:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;14110:2;14091:7;:16;14099:7;14091:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14149:7;14145:2;14130:27;;14139:4;14130:27;;;;;;;;;;;;13629:536;;;:::o;19647:120::-;19448:8;:6;:8::i;:::-;19440:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;19716:5:::1;19706:7;;:15;;;;;;;;;;;;;;;;;;19737:22;19746:12;:10;:12::i;:::-;19737:22;;;;;;:::i;:::-;;;;;;;;19647:120::o:0;21264:173::-;21320:16;21339:6;;;;;;;;;;;21320:25;;21365:8;21356:6;;:17;;;;;;;;;;;;;;;;;;21420:8;21389:40;;21410:8;21389:40;;;;;;;;;;;;21309:128;21264:173;:::o;19515:118::-;19344:8;:6;:8::i;:::-;19343:9;19335:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19585:4:::1;19575:7;;:14;;;;;;;;;;;;;;;;;;19605:20;19612:12;:10;:12::i;:::-;19605:20;;;;;;:::i;:::-;;;;;;;;19515:118::o:0;19885:114::-;19950:7;19977;:14;;;19970:21;;19885:114;;;:::o;12418:110::-;12494:26;12504:2;12508:7;12494:26;;;;;;;;;;;;:9;:26::i;:::-;12418:110;;:::o;20007:127::-;20114:1;20096:7;:14;;;:19;;;;;;;;;;;20007:127;:::o;11586:315::-;11743:28;11753:4;11759:2;11763:7;11743:9;:28::i;:::-;11790:48;11813:4;11819:2;11823:7;11832:5;11790:22;:48::i;:::-;11782:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;11586:315;;;;:::o;22637:108::-;22689:13;22722:15;22715:22;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22637:108;:::o;8106:305::-;8208:4;8260:25;8245:40;;;:11;:40;;;;:105;;;;8317:33;8302:48;;;:11;:48;;;;8245:105;:158;;;;8367:36;8391:11;8367:23;:36::i;:::-;8245:158;8225:178;;8106:305;;;:::o;25244:227::-;19344:8;:6;:8::i;:::-;19343:9;19335:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;25418:45:::1;25445:4;25451:2;25455:7;25418:26;:45::i;:::-;25244:227:::0;;;:::o;12542:321::-;12672:18;12678:2;12682:7;12672:5;:18::i;:::-;12723:54;12754:1;12758:2;12762:7;12771:5;12723:22;:54::i;:::-;12701:154;;;;;;;;;;;;:::i;:::-;;;;;;;;;12542:321;;;:::o;14367:799::-;14522:4;14543:15;:2;:13;;;:15::i;:::-;14539:620;;;14595:2;14579:36;;;14616:12;:10;:12::i;:::-;14630:4;14636:7;14645:5;14579:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14575:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14838:1;14821:6;:13;:18;14817:272;;;14864:60;;;;;;;;;;:::i;:::-;;;;;;;;14817:272;15039:6;15033:13;15024:6;15020:2;15016:15;15009:38;14575:529;14712:41;;;14702:51;;;:6;:51;;;;14695:58;;;;;14539:620;15143:4;15136:11;;14367:799;;;;;;;:::o;7330:157::-;7415:4;7454:25;7439:40;;;:11;:40;;;;7432:47;;7330:157;;;:::o;16842:589::-;16986:45;17013:4;17019:2;17023:7;16986:26;:45::i;:::-;17064:1;17048:18;;:4;:18;;;17044:187;;;17083:40;17115:7;17083:31;:40::i;:::-;17044:187;;;17153:2;17145:10;;:4;:10;;;17141:90;;17172:47;17205:4;17211:7;17172:32;:47::i;:::-;17141:90;17044:187;17259:1;17245:16;;:2;:16;;;17241:183;;;17278:45;17315:7;17278:36;:45::i;:::-;17241:183;;;17351:4;17345:10;;:2;:10;;;17341:83;;17372:40;17400:2;17404:7;17372:27;:40::i;:::-;17341:83;17241:183;16842:589;;;:::o;12877:382::-;12971:1;12957:16;;:2;:16;;;;12949:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13030:16;13038:7;13030;:16::i;:::-;13029:17;13021:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13092:45;13121:1;13125:2;13129:7;13092:20;:45::i;:::-;13167:1;13150:9;:13;13160:2;13150:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;13198:2;13179:7;:16;13187:7;13179:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13243:7;13239:2;13218:33;;13235:1;13218:33;;;;;;;;;;;;12877:382;;:::o;1918:228::-;1978:4;2027:12;2094:7;2082:20;2074:28;;2137:1;2130:4;:8;2123:15;;;1918:228;;;:::o;15180:126::-;;;;:::o;17680:164::-;17784:10;:17;;;;17757:15;:24;17773:7;17757:24;;;;;;;;;;;:44;;;;17812:10;17828:7;17812:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17680:164;:::o;17858:599::-;17972:22;18022:1;17997:22;18014:4;17997:16;:22::i;:::-;:26;;;;:::i;:::-;17972:51;;18034:18;18055:17;:26;18073:7;18055:26;;;;;;;;;;;;18034:47;;18122:14;18108:10;:28;18104:238;;18153:19;18175:12;:18;18188:4;18175:18;;;;;;;;;;;;;;;:34;18194:14;18175:34;;;;;;;;;;;;18153:56;;18259:11;18226:12;:18;18239:4;18226:18;;;;;;;;;;;;;;;:30;18245:10;18226:30;;;;;;;;;;;:44;;;;18319:10;18286:17;:30;18304:11;18286:30;;;;;;;;;;;:43;;;;18138:204;18104:238;18371:17;:26;18389:7;18371:26;;;;;;;;;;;18364:33;;;18415:12;:18;18428:4;18415:18;;;;;;;;;;;;;;;:34;18434:14;18415:34;;;;;;;;;;;18408:41;;;17939:518;;17858:599;;:::o;18471:489::-;18575:22;18620:1;18600:10;:17;;;;:21;;;;:::i;:::-;18575:46;;18632:18;18653:15;:24;18669:7;18653:24;;;;;;;;;;;;18632:45;;18720:19;18742:10;18753:14;18742:26;;;;;;;;:::i;:::-;;;;;;;;;;18720:48;;18806:11;18781:10;18792;18781:22;;;;;;;;:::i;:::-;;;;;;;;;:36;;;;18860:10;18829:15;:28;18845:11;18829:28;;;;;;;;;;;:41;;;;18901:15;:24;18917:7;18901:24;;;;;;;;;;;18894:31;;;18936:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18542:418;;;18471:489;:::o;17445:221::-;17530:14;17547:20;17564:2;17547:16;:20::i;:::-;17530:37;;17605:7;17578:12;:16;17591:2;17578:16;;;;;;;;;;;;;;;:24;17595:6;17578:24;;;;;;;;;;;:34;;;;17652:6;17623:17;:26;17641:7;17623:26;;;;;;;;;;;:35;;;;17519:147;17445:221;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:154::-;1694:6;1689:3;1684;1671:30;1756:1;1747:6;1742:3;1738:16;1731:27;1610:154;;;:::o;1770:412::-;1848:5;1873:66;1889:49;1931:6;1889:49;:::i;:::-;1873:66;:::i;:::-;1864:75;;1962:6;1955:5;1948:21;2000:4;1993:5;1989:16;2038:3;2029:6;2024:3;2020:16;2017:25;2014:112;;;2045:79;;:::i;:::-;2014:112;2135:41;2169:6;2164:3;2159;2135:41;:::i;:::-;1854:328;1770:412;;;;;:::o;2202:340::-;2258:5;2307:3;2300:4;2292:6;2288:17;2284:27;2274:122;;2315:79;;:::i;:::-;2274:122;2432:6;2419:20;2457:79;2532:3;2524:6;2517:4;2509:6;2505:17;2457:79;:::i;:::-;2448:88;;2264:278;2202:340;;;;:::o;2548:509::-;2617:6;2666:2;2654:9;2645:7;2641:23;2637:32;2634:119;;;2672:79;;:::i;:::-;2634:119;2820:1;2809:9;2805:17;2792:31;2850:18;2842:6;2839:30;2836:117;;;2872:79;;:::i;:::-;2836:117;2977:63;3032:7;3023:6;3012:9;3008:22;2977:63;:::i;:::-;2967:73;;2763:287;2548:509;;;;:::o;3063:149::-;3099:7;3139:66;3132:5;3128:78;3117:89;;3063:149;;;:::o;3218:120::-;3290:23;3307:5;3290:23;:::i;:::-;3283:5;3280:34;3270:62;;3328:1;3325;3318:12;3270:62;3218:120;:::o;3344:137::-;3389:5;3427:6;3414:20;3405:29;;3443:32;3469:5;3443:32;:::i;:::-;3344:137;;;;:::o;3487:327::-;3545:6;3594:2;3582:9;3573:7;3569:23;3565:32;3562:119;;;3600:79;;:::i;:::-;3562:119;3720:1;3745:52;3789:7;3780:6;3769:9;3765:22;3745:52;:::i;:::-;3735:62;;3691:116;3487:327;;;;:::o;3820:90::-;3854:7;3897:5;3890:13;3883:21;3872:32;;3820:90;;;:::o;3916:109::-;3997:21;4012:5;3997:21;:::i;:::-;3992:3;3985:34;3916:109;;:::o;4031:210::-;4118:4;4156:2;4145:9;4141:18;4133:26;;4169:65;4231:1;4220:9;4216:17;4207:6;4169:65;:::i;:::-;4031:210;;;;:::o;4247:99::-;4299:6;4333:5;4327:12;4317:22;;4247:99;;;:::o;4352:169::-;4436:11;4470:6;4465:3;4458:19;4510:4;4505:3;4501:14;4486:29;;4352:169;;;;:::o;4527:307::-;4595:1;4605:113;4619:6;4616:1;4613:13;4605:113;;;4704:1;4699:3;4695:11;4689:18;4685:1;4680:3;4676:11;4669:39;4641:2;4638:1;4634:10;4629:15;;4605:113;;;4736:6;4733:1;4730:13;4727:101;;;4816:1;4807:6;4802:3;4798:16;4791:27;4727:101;4576:258;4527:307;;;:::o;4840:364::-;4928:3;4956:39;4989:5;4956:39;:::i;:::-;5011:71;5075:6;5070:3;5011:71;:::i;:::-;5004:78;;5091:52;5136:6;5131:3;5124:4;5117:5;5113:16;5091:52;:::i;:::-;5168:29;5190:6;5168:29;:::i;:::-;5163:3;5159:39;5152:46;;4932:272;4840:364;;;;:::o;5210:313::-;5323:4;5361:2;5350:9;5346:18;5338:26;;5410:9;5404:4;5400:20;5396:1;5385:9;5381:17;5374:47;5438:78;5511:4;5502:6;5438:78;:::i;:::-;5430:86;;5210:313;;;;:::o;5529:77::-;5566:7;5595:5;5584:16;;5529:77;;;:::o;5612:122::-;5685:24;5703:5;5685:24;:::i;:::-;5678:5;5675:35;5665:63;;5724:1;5721;5714:12;5665:63;5612:122;:::o;5740:139::-;5786:5;5824:6;5811:20;5802:29;;5840:33;5867:5;5840:33;:::i;:::-;5740:139;;;;:::o;5885:329::-;5944:6;5993:2;5981:9;5972:7;5968:23;5964:32;5961:119;;;5999:79;;:::i;:::-;5961:119;6119:1;6144:53;6189:7;6180:6;6169:9;6165:22;6144:53;:::i;:::-;6134:63;;6090:117;5885:329;;;;:::o;6220:126::-;6257:7;6297:42;6290:5;6286:54;6275:65;;6220:126;;;:::o;6352:96::-;6389:7;6418:24;6436:5;6418:24;:::i;:::-;6407:35;;6352:96;;;:::o;6454:118::-;6541:24;6559:5;6541:24;:::i;:::-;6536:3;6529:37;6454:118;;:::o;6578:222::-;6671:4;6709:2;6698:9;6694:18;6686:26;;6722:71;6790:1;6779:9;6775:17;6766:6;6722:71;:::i;:::-;6578:222;;;;:::o;6806:122::-;6879:24;6897:5;6879:24;:::i;:::-;6872:5;6869:35;6859:63;;6918:1;6915;6908:12;6859:63;6806:122;:::o;6934:139::-;6980:5;7018:6;7005:20;6996:29;;7034:33;7061:5;7034:33;:::i;:::-;6934:139;;;;:::o;7079:474::-;7147:6;7155;7204:2;7192:9;7183:7;7179:23;7175:32;7172:119;;;7210:79;;:::i;:::-;7172:119;7330:1;7355:53;7400:7;7391:6;7380:9;7376:22;7355:53;:::i;:::-;7345:63;;7301:117;7457:2;7483:53;7528:7;7519:6;7508:9;7504:22;7483:53;:::i;:::-;7473:63;;7428:118;7079:474;;;;;:::o;7559:118::-;7646:24;7664:5;7646:24;:::i;:::-;7641:3;7634:37;7559:118;;:::o;7683:222::-;7776:4;7814:2;7803:9;7799:18;7791:26;;7827:71;7895:1;7884:9;7880:17;7871:6;7827:71;:::i;:::-;7683:222;;;;:::o;7911:116::-;7981:21;7996:5;7981:21;:::i;:::-;7974:5;7971:32;7961:60;;8017:1;8014;8007:12;7961:60;7911:116;:::o;8033:133::-;8076:5;8114:6;8101:20;8092:29;;8130:30;8154:5;8130:30;:::i;:::-;8033:133;;;;:::o;8172:323::-;8228:6;8277:2;8265:9;8256:7;8252:23;8248:32;8245:119;;;8283:79;;:::i;:::-;8245:119;8403:1;8428:50;8470:7;8461:6;8450:9;8446:22;8428:50;:::i;:::-;8418:60;;8374:114;8172:323;;;;:::o;8501:619::-;8578:6;8586;8594;8643:2;8631:9;8622:7;8618:23;8614:32;8611:119;;;8649:79;;:::i;:::-;8611:119;8769:1;8794:53;8839:7;8830:6;8819:9;8815:22;8794:53;:::i;:::-;8784:63;;8740:117;8896:2;8922:53;8967:7;8958:6;8947:9;8943:22;8922:53;:::i;:::-;8912:63;;8867:118;9024:2;9050:53;9095:7;9086:6;9075:9;9071:22;9050:53;:::i;:::-;9040:63;;8995:118;8501:619;;;;;:::o;9126:329::-;9185:6;9234:2;9222:9;9213:7;9209:23;9205:32;9202:119;;;9240:79;;:::i;:::-;9202:119;9360:1;9385:53;9430:7;9421:6;9410:9;9406:22;9385:53;:::i;:::-;9375:63;;9331:117;9126:329;;;;:::o;9461:468::-;9526:6;9534;9583:2;9571:9;9562:7;9558:23;9554:32;9551:119;;;9589:79;;:::i;:::-;9551:119;9709:1;9734:53;9779:7;9770:6;9759:9;9755:22;9734:53;:::i;:::-;9724:63;;9680:117;9836:2;9862:50;9904:7;9895:6;9884:9;9880:22;9862:50;:::i;:::-;9852:60;;9807:115;9461:468;;;;;:::o;9935:::-;10000:6;10008;10057:2;10045:9;10036:7;10032:23;10028:32;10025:119;;;10063:79;;:::i;:::-;10025:119;10183:1;10208:53;10253:7;10244:6;10233:9;10229:22;10208:53;:::i;:::-;10198:63;;10154:117;10310:2;10336:50;10378:7;10369:6;10358:9;10354:22;10336:50;:::i;:::-;10326:60;;10281:115;9935:468;;;;;:::o;10409:307::-;10470:4;10560:18;10552:6;10549:30;10546:56;;;10582:18;;:::i;:::-;10546:56;10620:29;10642:6;10620:29;:::i;:::-;10612:37;;10704:4;10698;10694:15;10686:23;;10409:307;;;:::o;10722:410::-;10799:5;10824:65;10840:48;10881:6;10840:48;:::i;:::-;10824:65;:::i;:::-;10815:74;;10912:6;10905:5;10898:21;10950:4;10943:5;10939:16;10988:3;10979:6;10974:3;10970:16;10967:25;10964:112;;;10995:79;;:::i;:::-;10964:112;11085:41;11119:6;11114:3;11109;11085:41;:::i;:::-;10805:327;10722:410;;;;;:::o;11151:338::-;11206:5;11255:3;11248:4;11240:6;11236:17;11232:27;11222:122;;11263:79;;:::i;:::-;11222:122;11380:6;11367:20;11405:78;11479:3;11471:6;11464:4;11456:6;11452:17;11405:78;:::i;:::-;11396:87;;11212:277;11151:338;;;;:::o;11495:943::-;11590:6;11598;11606;11614;11663:3;11651:9;11642:7;11638:23;11634:33;11631:120;;;11670:79;;:::i;:::-;11631:120;11790:1;11815:53;11860:7;11851:6;11840:9;11836:22;11815:53;:::i;:::-;11805:63;;11761:117;11917:2;11943:53;11988:7;11979:6;11968:9;11964:22;11943:53;:::i;:::-;11933:63;;11888:118;12045:2;12071:53;12116:7;12107:6;12096:9;12092:22;12071:53;:::i;:::-;12061:63;;12016:118;12201:2;12190:9;12186:18;12173:32;12232:18;12224:6;12221:30;12218:117;;;12254:79;;:::i;:::-;12218:117;12359:62;12413:7;12404:6;12393:9;12389:22;12359:62;:::i;:::-;12349:72;;12144:287;11495:943;;;;;;;:::o;12444:474::-;12512:6;12520;12569:2;12557:9;12548:7;12544:23;12540:32;12537:119;;;12575:79;;:::i;:::-;12537:119;12695:1;12720:53;12765:7;12756:6;12745:9;12741:22;12720:53;:::i;:::-;12710:63;;12666:117;12822:2;12848:53;12893:7;12884:6;12873:9;12869:22;12848:53;:::i;:::-;12838:63;;12793:118;12444:474;;;;;:::o;12924:182::-;13064:34;13060:1;13052:6;13048:14;13041:58;12924:182;:::o;13112:366::-;13254:3;13275:67;13339:2;13334:3;13275:67;:::i;:::-;13268:74;;13351:93;13440:3;13351:93;:::i;:::-;13469:2;13464:3;13460:12;13453:19;;13112:366;;;:::o;13484:419::-;13650:4;13688:2;13677:9;13673:18;13665:26;;13737:9;13731:4;13727:20;13723:1;13712:9;13708:17;13701:47;13765:131;13891:4;13765:131;:::i;:::-;13757:139;;13484:419;;;:::o;13909:180::-;13957:77;13954:1;13947:88;14054:4;14051:1;14044:15;14078:4;14075:1;14068:15;14095:320;14139:6;14176:1;14170:4;14166:12;14156:22;;14223:1;14217:4;14213:12;14244:18;14234:81;;14300:4;14292:6;14288:17;14278:27;;14234:81;14362:2;14354:6;14351:14;14331:18;14328:38;14325:84;;;14381:18;;:::i;:::-;14325:84;14146:269;14095:320;;;:::o;14421:231::-;14561:34;14557:1;14549:6;14545:14;14538:58;14630:14;14625:2;14617:6;14613:15;14606:39;14421:231;:::o;14658:366::-;14800:3;14821:67;14885:2;14880:3;14821:67;:::i;:::-;14814:74;;14897:93;14986:3;14897:93;:::i;:::-;15015:2;15010:3;15006:12;14999:19;;14658:366;;;:::o;15030:419::-;15196:4;15234:2;15223:9;15219:18;15211:26;;15283:9;15277:4;15273:20;15269:1;15258:9;15254:17;15247:47;15311:131;15437:4;15311:131;:::i;:::-;15303:139;;15030:419;;;:::o;15455:220::-;15595:34;15591:1;15583:6;15579:14;15572:58;15664:3;15659:2;15651:6;15647:15;15640:28;15455:220;:::o;15681:366::-;15823:3;15844:67;15908:2;15903:3;15844:67;:::i;:::-;15837:74;;15920:93;16009:3;15920:93;:::i;:::-;16038:2;16033:3;16029:12;16022:19;;15681:366;;;:::o;16053:419::-;16219:4;16257:2;16246:9;16242:18;16234:26;;16306:9;16300:4;16296:20;16292:1;16281:9;16277:17;16270:47;16334:131;16460:4;16334:131;:::i;:::-;16326:139;;16053:419;;;:::o;16478:243::-;16618:34;16614:1;16606:6;16602:14;16595:58;16687:26;16682:2;16674:6;16670:15;16663:51;16478:243;:::o;16727:366::-;16869:3;16890:67;16954:2;16949:3;16890:67;:::i;:::-;16883:74;;16966:93;17055:3;16966:93;:::i;:::-;17084:2;17079:3;17075:12;17068:19;;16727:366;;;:::o;17099:419::-;17265:4;17303:2;17292:9;17288:18;17280:26;;17352:9;17346:4;17342:20;17338:1;17327:9;17323:17;17316:47;17380:131;17506:4;17380:131;:::i;:::-;17372:139;;17099:419;;;:::o;17524:236::-;17664:34;17660:1;17652:6;17648:14;17641:58;17733:19;17728:2;17720:6;17716:15;17709:44;17524:236;:::o;17766:366::-;17908:3;17929:67;17993:2;17988:3;17929:67;:::i;:::-;17922:74;;18005:93;18094:3;18005:93;:::i;:::-;18123:2;18118:3;18114:12;18107:19;;17766:366;;;:::o;18138:419::-;18304:4;18342:2;18331:9;18327:18;18319:26;;18391:9;18385:4;18381:20;18377:1;18366:9;18362:17;18355:47;18419:131;18545:4;18419:131;:::i;:::-;18411:139;;18138:419;;;:::o;18563:230::-;18703:34;18699:1;18691:6;18687:14;18680:58;18772:13;18767:2;18759:6;18755:15;18748:38;18563:230;:::o;18799:366::-;18941:3;18962:67;19026:2;19021:3;18962:67;:::i;:::-;18955:74;;19038:93;19127:3;19038:93;:::i;:::-;19156:2;19151:3;19147:12;19140:19;;18799:366;;;:::o;19171:419::-;19337:4;19375:2;19364:9;19360:18;19352:26;;19424:9;19418:4;19414:20;19410:1;19399:9;19395:17;19388:47;19452:131;19578:4;19452:131;:::i;:::-;19444:139;;19171:419;;;:::o;19596:231::-;19736:34;19732:1;19724:6;19720:14;19713:58;19805:14;19800:2;19792:6;19788:15;19781:39;19596:231;:::o;19833:366::-;19975:3;19996:67;20060:2;20055:3;19996:67;:::i;:::-;19989:74;;20072:93;20161:3;20072:93;:::i;:::-;20190:2;20185:3;20181:12;20174:19;;19833:366;;;:::o;20205:419::-;20371:4;20409:2;20398:9;20394:18;20386:26;;20458:9;20452:4;20448:20;20444:1;20433:9;20429:17;20422:47;20486:131;20612:4;20486:131;:::i;:::-;20478:139;;20205:419;;;:::o;20630:180::-;20678:77;20675:1;20668:88;20775:4;20772:1;20765:15;20799:4;20796:1;20789:15;20816:228;20956:34;20952:1;20944:6;20940:14;20933:58;21025:11;21020:2;21012:6;21008:15;21001:36;20816:228;:::o;21050:366::-;21192:3;21213:67;21277:2;21272:3;21213:67;:::i;:::-;21206:74;;21289:93;21378:3;21289:93;:::i;:::-;21407:2;21402:3;21398:12;21391:19;;21050:366;;;:::o;21422:419::-;21588:4;21626:2;21615:9;21611:18;21603:26;;21675:9;21669:4;21665:20;21661:1;21650:9;21646:17;21639:47;21703:131;21829:4;21703:131;:::i;:::-;21695:139;;21422:419;;;:::o;21847:229::-;21987:34;21983:1;21975:6;21971:14;21964:58;22056:12;22051:2;22043:6;22039:15;22032:37;21847:229;:::o;22082:366::-;22224:3;22245:67;22309:2;22304:3;22245:67;:::i;:::-;22238:74;;22321:93;22410:3;22321:93;:::i;:::-;22439:2;22434:3;22430:12;22423:19;;22082:366;;;:::o;22454:419::-;22620:4;22658:2;22647:9;22643:18;22635:26;;22707:9;22701:4;22697:20;22693:1;22682:9;22678:17;22671:47;22735:131;22861:4;22735:131;:::i;:::-;22727:139;;22454:419;;;:::o;22879:171::-;23019:23;23015:1;23007:6;23003:14;22996:47;22879:171;:::o;23056:366::-;23198:3;23219:67;23283:2;23278:3;23219:67;:::i;:::-;23212:74;;23295:93;23384:3;23295:93;:::i;:::-;23413:2;23408:3;23404:12;23397:19;;23056:366;;;:::o;23428:419::-;23594:4;23632:2;23621:9;23617:18;23609:26;;23681:9;23675:4;23671:20;23667:1;23656:9;23652:17;23645:47;23709:131;23835:4;23709:131;:::i;:::-;23701:139;;23428:419;;;:::o;23853:180::-;23901:77;23898:1;23891:88;23998:4;23995:1;23988:15;24022:4;24019:1;24012:15;24039:348;24079:7;24102:20;24120:1;24102:20;:::i;:::-;24097:25;;24136:20;24154:1;24136:20;:::i;:::-;24131:25;;24324:1;24256:66;24252:74;24249:1;24246:81;24241:1;24234:9;24227:17;24223:105;24220:131;;;24331:18;;:::i;:::-;24220:131;24379:1;24376;24372:9;24361:20;;24039:348;;;;:::o;24393:237::-;24533:34;24529:1;24521:6;24517:14;24510:58;24602:20;24597:2;24589:6;24585:15;24578:45;24393:237;:::o;24636:366::-;24778:3;24799:67;24863:2;24858:3;24799:67;:::i;:::-;24792:74;;24875:93;24964:3;24875:93;:::i;:::-;24993:2;24988:3;24984:12;24977:19;;24636:366;;;:::o;25008:419::-;25174:4;25212:2;25201:9;25197:18;25189:26;;25261:9;25255:4;25251:20;25247:1;25236:9;25232:17;25225:47;25289:131;25415:4;25289:131;:::i;:::-;25281:139;;25008:419;;;:::o;25433:221::-;25573:34;25569:1;25561:6;25557:14;25550:58;25642:4;25637:2;25629:6;25625:15;25618:29;25433:221;:::o;25660:366::-;25802:3;25823:67;25887:2;25882:3;25823:67;:::i;:::-;25816:74;;25899:93;25988:3;25899:93;:::i;:::-;26017:2;26012:3;26008:12;26001:19;;25660:366;;;:::o;26032:419::-;26198:4;26236:2;26225:9;26221:18;26213:26;;26285:9;26279:4;26275:20;26271:1;26260:9;26256:17;26249:47;26313:131;26439:4;26313:131;:::i;:::-;26305:139;;26032:419;;;:::o;26457:305::-;26497:3;26516:20;26534:1;26516:20;:::i;:::-;26511:25;;26550:20;26568:1;26550:20;:::i;:::-;26545:25;;26704:1;26636:66;26632:74;26629:1;26626:81;26623:107;;;26710:18;;:::i;:::-;26623:107;26754:1;26751;26747:9;26740:16;;26457:305;;;;:::o;26768:172::-;26908:24;26904:1;26896:6;26892:14;26885:48;26768:172;:::o;26946:366::-;27088:3;27109:67;27173:2;27168:3;27109:67;:::i;:::-;27102:74;;27185:93;27274:3;27185:93;:::i;:::-;27303:2;27298:3;27294:12;27287:19;;26946:366;;;:::o;27318:419::-;27484:4;27522:2;27511:9;27507:18;27499:26;;27571:9;27565:4;27561:20;27557:1;27546:9;27542:17;27535:47;27599:131;27725:4;27599:131;:::i;:::-;27591:139;;27318:419;;;:::o;27743:220::-;27883:34;27879:1;27871:6;27867:14;27860:58;27952:3;27947:2;27939:6;27935:15;27928:28;27743:220;:::o;27969:366::-;28111:3;28132:67;28196:2;28191:3;28132:67;:::i;:::-;28125:74;;28208:93;28297:3;28208:93;:::i;:::-;28326:2;28321:3;28317:12;28310:19;;27969:366;;;:::o;28341:419::-;28507:4;28545:2;28534:9;28530:18;28522:26;;28594:9;28588:4;28584:20;28580:1;28569:9;28565:17;28558:47;28622:131;28748:4;28622:131;:::i;:::-;28614:139;;28341:419;;;:::o;28766:233::-;28805:3;28828:24;28846:5;28828:24;:::i;:::-;28819:33;;28874:66;28867:5;28864:77;28861:103;;;28944:18;;:::i;:::-;28861:103;28991:1;28984:5;28980:13;28973:20;;28766:233;;;:::o;29005:180::-;29053:77;29050:1;29043:88;29150:4;29147:1;29140:15;29174:4;29171:1;29164:15;29191:185;29231:1;29248:20;29266:1;29248:20;:::i;:::-;29243:25;;29282:20;29300:1;29282:20;:::i;:::-;29277:25;;29321:1;29311:35;;29326:18;;:::i;:::-;29311:35;29368:1;29365;29361:9;29356:14;;29191:185;;;;:::o;29382:147::-;29483:11;29520:3;29505:18;;29382:147;;;;:::o;29535:114::-;;:::o;29655:398::-;29814:3;29835:83;29916:1;29911:3;29835:83;:::i;:::-;29828:90;;29927:93;30016:3;29927:93;:::i;:::-;30045:1;30040:3;30036:11;30029:18;;29655:398;;;:::o;30059:379::-;30243:3;30265:147;30408:3;30265:147;:::i;:::-;30258:154;;30429:3;30422:10;;30059:379;;;:::o;30444:174::-;30584:26;30580:1;30572:6;30568:14;30561:50;30444:174;:::o;30624:366::-;30766:3;30787:67;30851:2;30846:3;30787:67;:::i;:::-;30780:74;;30863:93;30952:3;30863:93;:::i;:::-;30981:2;30976:3;30972:12;30965:19;;30624:366;;;:::o;30996:419::-;31162:4;31200:2;31189:9;31185:18;31177:26;;31249:9;31243:4;31239:20;31235:1;31224:9;31220:17;31213:47;31277:131;31403:4;31277:131;:::i;:::-;31269:139;;30996:419;;;:::o;31421:179::-;31561:31;31557:1;31549:6;31545:14;31538:55;31421:179;:::o;31606:366::-;31748:3;31769:67;31833:2;31828:3;31769:67;:::i;:::-;31762:74;;31845:93;31934:3;31845:93;:::i;:::-;31963:2;31958:3;31954:12;31947:19;;31606:366;;;:::o;31978:419::-;32144:4;32182:2;32171:9;32167:18;32159:26;;32231:9;32225:4;32221:20;32217:1;32206:9;32202:17;32195:47;32259:131;32385:4;32259:131;:::i;:::-;32251:139;;31978:419;;;:::o;32403:191::-;32443:4;32463:20;32481:1;32463:20;:::i;:::-;32458:25;;32497:20;32515:1;32497:20;:::i;:::-;32492:25;;32536:1;32533;32530:8;32527:34;;;32541:18;;:::i;:::-;32527:34;32586:1;32583;32579:9;32571:17;;32403:191;;;;:::o;32600:178::-;32740:30;32736:1;32728:6;32724:14;32717:54;32600:178;:::o;32784:366::-;32926:3;32947:67;33011:2;33006:3;32947:67;:::i;:::-;32940:74;;33023:93;33112:3;33023:93;:::i;:::-;33141:2;33136:3;33132:12;33125:19;;32784:366;;;:::o;33156:419::-;33322:4;33360:2;33349:9;33345:18;33337:26;;33409:9;33403:4;33399:20;33395:1;33384:9;33380:17;33373:47;33437:131;33563:4;33437:131;:::i;:::-;33429:139;;33156:419;;;:::o;33581:182::-;33721:34;33717:1;33709:6;33705:14;33698:58;33581:182;:::o;33769:366::-;33911:3;33932:67;33996:2;33991:3;33932:67;:::i;:::-;33925:74;;34008:93;34097:3;34008:93;:::i;:::-;34126:2;34121:3;34117:12;34110:19;;33769:366;;;:::o;34141:419::-;34307:4;34345:2;34334:9;34330:18;34322:26;;34394:9;34388:4;34384:20;34380:1;34369:9;34365:17;34358:47;34422:131;34548:4;34422:131;:::i;:::-;34414:139;;34141:419;;;:::o;34566:175::-;34706:27;34702:1;34694:6;34690:14;34683:51;34566:175;:::o;34747:366::-;34889:3;34910:67;34974:2;34969:3;34910:67;:::i;:::-;34903:74;;34986:93;35075:3;34986:93;:::i;:::-;35104:2;35099:3;35095:12;35088:19;;34747:366;;;:::o;35119:419::-;35285:4;35323:2;35312:9;35308:18;35300:26;;35372:9;35366:4;35362:20;35358:1;35347:9;35343:17;35336:47;35400:131;35526:4;35400:131;:::i;:::-;35392:139;;35119:419;;;:::o;35544:234::-;35684:34;35680:1;35672:6;35668:14;35661:58;35753:17;35748:2;35740:6;35736:15;35729:42;35544:234;:::o;35784:366::-;35926:3;35947:67;36011:2;36006:3;35947:67;:::i;:::-;35940:74;;36023:93;36112:3;36023:93;:::i;:::-;36141:2;36136:3;36132:12;36125:19;;35784:366;;;:::o;36156:419::-;36322:4;36360:2;36349:9;36345:18;36337:26;;36409:9;36403:4;36399:20;36395:1;36384:9;36380:17;36373:47;36437:131;36563:4;36437:131;:::i;:::-;36429:139;;36156:419;;;:::o;36581:225::-;36721:34;36717:1;36709:6;36705:14;36698:58;36790:8;36785:2;36777:6;36773:15;36766:33;36581:225;:::o;36812:366::-;36954:3;36975:67;37039:2;37034:3;36975:67;:::i;:::-;36968:74;;37051:93;37140:3;37051:93;:::i;:::-;37169:2;37164:3;37160:12;37153:19;;36812:366;;;:::o;37184:419::-;37350:4;37388:2;37377:9;37373:18;37365:26;;37437:9;37431:4;37427:20;37423:1;37412:9;37408:17;37401:47;37465:131;37591:4;37465:131;:::i;:::-;37457:139;;37184:419;;;:::o;37609:231::-;37749:34;37745:1;37737:6;37733:14;37726:58;37818:14;37813:2;37805:6;37801:15;37794:39;37609:231;:::o;37846:366::-;37988:3;38009:67;38073:2;38068:3;38009:67;:::i;:::-;38002:74;;38085:93;38174:3;38085:93;:::i;:::-;38203:2;38198:3;38194:12;38187:19;;37846:366;;;:::o;38218:419::-;38384:4;38422:2;38411:9;38407:18;38399:26;;38471:9;38465:4;38461:20;38457:1;38446:9;38442:17;38435:47;38499:131;38625:4;38499:131;:::i;:::-;38491:139;;38218:419;;;:::o;38643:228::-;38783:34;38779:1;38771:6;38767:14;38760:58;38852:11;38847:2;38839:6;38835:15;38828:36;38643:228;:::o;38877:366::-;39019:3;39040:67;39104:2;39099:3;39040:67;:::i;:::-;39033:74;;39116:93;39205:3;39116:93;:::i;:::-;39234:2;39229:3;39225:12;39218:19;;38877:366;;;:::o;39249:419::-;39415:4;39453:2;39442:9;39438:18;39430:26;;39502:9;39496:4;39492:20;39488:1;39477:9;39473:17;39466:47;39530:131;39656:4;39530:131;:::i;:::-;39522:139;;39249:419;;;:::o;39674:223::-;39814:34;39810:1;39802:6;39798:14;39791:58;39883:6;39878:2;39870:6;39866:15;39859:31;39674:223;:::o;39903:366::-;40045:3;40066:67;40130:2;40125:3;40066:67;:::i;:::-;40059:74;;40142:93;40231:3;40142:93;:::i;:::-;40260:2;40255:3;40251:12;40244:19;;39903:366;;;:::o;40275:419::-;40441:4;40479:2;40468:9;40464:18;40456:26;;40528:9;40522:4;40518:20;40514:1;40503:9;40499:17;40492:47;40556:131;40682:4;40556:131;:::i;:::-;40548:139;;40275:419;;;:::o;40700:170::-;40840:22;40836:1;40828:6;40824:14;40817:46;40700:170;:::o;40876:366::-;41018:3;41039:67;41103:2;41098:3;41039:67;:::i;:::-;41032:74;;41115:93;41204:3;41115:93;:::i;:::-;41233:2;41228:3;41224:12;41217:19;;40876:366;;;:::o;41248:419::-;41414:4;41452:2;41441:9;41437:18;41429:26;;41501:9;41495:4;41491:20;41487:1;41476:9;41472:17;41465:47;41529:131;41655:4;41529:131;:::i;:::-;41521:139;;41248:419;;;:::o;41673:166::-;41813:18;41809:1;41801:6;41797:14;41790:42;41673:166;:::o;41845:366::-;41987:3;42008:67;42072:2;42067:3;42008:67;:::i;:::-;42001:74;;42084:93;42173:3;42084:93;:::i;:::-;42202:2;42197:3;42193:12;42186:19;;41845:366;;;:::o;42217:419::-;42383:4;42421:2;42410:9;42406:18;42398:26;;42470:9;42464:4;42460:20;42456:1;42445:9;42441:17;42434:47;42498:131;42624:4;42498:131;:::i;:::-;42490:139;;42217:419;;;:::o;42642:237::-;42782:34;42778:1;42770:6;42766:14;42759:58;42851:20;42846:2;42838:6;42834:15;42827:45;42642:237;:::o;42885:366::-;43027:3;43048:67;43112:2;43107:3;43048:67;:::i;:::-;43041:74;;43124:93;43213:3;43124:93;:::i;:::-;43242:2;43237:3;43233:12;43226:19;;42885:366;;;:::o;43257:419::-;43423:4;43461:2;43450:9;43446:18;43438:26;;43510:9;43504:4;43500:20;43496:1;43485:9;43481:17;43474:47;43538:131;43664:4;43538:131;:::i;:::-;43530:139;;43257:419;;;:::o;43682:98::-;43733:6;43767:5;43761:12;43751:22;;43682:98;;;:::o;43786:168::-;43869:11;43903:6;43898:3;43891:19;43943:4;43938:3;43934:14;43919:29;;43786:168;;;;:::o;43960:360::-;44046:3;44074:38;44106:5;44074:38;:::i;:::-;44128:70;44191:6;44186:3;44128:70;:::i;:::-;44121:77;;44207:52;44252:6;44247:3;44240:4;44233:5;44229:16;44207:52;:::i;:::-;44284:29;44306:6;44284:29;:::i;:::-;44279:3;44275:39;44268:46;;44050:270;43960:360;;;;:::o;44326:640::-;44521:4;44559:3;44548:9;44544:19;44536:27;;44573:71;44641:1;44630:9;44626:17;44617:6;44573:71;:::i;:::-;44654:72;44722:2;44711:9;44707:18;44698:6;44654:72;:::i;:::-;44736;44804:2;44793:9;44789:18;44780:6;44736:72;:::i;:::-;44855:9;44849:4;44845:20;44840:2;44829:9;44825:18;44818:48;44883:76;44954:4;44945:6;44883:76;:::i;:::-;44875:84;;44326:640;;;;;;;:::o;44972:141::-;45028:5;45059:6;45053:13;45044:22;;45075:32;45101:5;45075:32;:::i;:::-;44972:141;;;;:::o;45119:349::-;45188:6;45237:2;45225:9;45216:7;45212:23;45208:32;45205:119;;;45243:79;;:::i;:::-;45205:119;45363:1;45388:63;45443:7;45434:6;45423:9;45419:22;45388:63;:::i;:::-;45378:73;;45334:127;45119:349;;;;:::o;45474:182::-;45614:34;45610:1;45602:6;45598:14;45591:58;45474:182;:::o;45662:366::-;45804:3;45825:67;45889:2;45884:3;45825:67;:::i;:::-;45818:74;;45901:93;45990:3;45901:93;:::i;:::-;46019:2;46014:3;46010:12;46003:19;;45662:366;;;:::o;46034:419::-;46200:4;46238:2;46227:9;46223:18;46215:26;;46287:9;46281:4;46277:20;46273:1;46262:9;46258:17;46251:47;46315:131;46441:4;46315:131;:::i;:::-;46307:139;;46034:419;;;:::o;46459:178::-;46599:30;46595:1;46587:6;46583:14;46576:54;46459:178;:::o;46643:366::-;46785:3;46806:67;46870:2;46865:3;46806:67;:::i;:::-;46799:74;;46882:93;46971:3;46882:93;:::i;:::-;47000:2;46995:3;46991:12;46984:19;;46643:366;;;:::o;47015:419::-;47181:4;47219:2;47208:9;47204:18;47196:26;;47268:9;47262:4;47258:20;47254:1;47243:9;47239:17;47232:47;47296:131;47422:4;47296:131;:::i;:::-;47288:139;;47015:419;;;:::o;47440:180::-;47488:77;47485:1;47478:88;47585:4;47582:1;47575:15;47609:4;47606:1;47599:15

Swarm Source

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