ETH Price: $3,813.39 (+0.59%)
Gas: 11 Gwei

Token

HexHeads (HH)
 

Overview

Max Total Supply

0 HH

Holders

1,299

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A

Other Info

Filtered by Token Holder
meoow.eth
Balance
1 HH
0xc9cb494a72a7943ad81dbb9974f14938a33de34c
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:
HexHeads

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 5 : HexHeads.sol
pragma solidity ^0.8.17;

import "../libs/ERC721.sol";
import "../libs/Owned.sol";
import "./utils/Strings.sol";

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//  β–ˆβ–ˆβ•—  β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—  β–ˆβ–ˆβ•— β–ˆβ–ˆβ•—  β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  //
//  β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β•β•β• β•šβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β•β•β• β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β•β•β•β•  //
//  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—    β•šβ–ˆβ–ˆβ–ˆβ•”β•  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  //
//  β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β•    β–ˆβ–ˆβ•”β–ˆβ–ˆβ•—  β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•”β•β•β•   β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘ β•šβ•β•β•β•β–ˆβ–ˆβ•‘  //
//  β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘  //
//  β•šβ•β•  β•šβ•β• β•šβ•β•β•β•β•β•β• β•šβ•β•  β•šβ•β• β•šβ•β•  β•šβ•β• β•šβ•β•β•β•β•β•β• β•šβ•β•  β•šβ•β• β•šβ•β•β•β•β•β•  β•šβ•β•β•β•β•β•β•  //
//                           The faces of Ethereum                           //
//                                hexheads.io                                //
///////////////////////////////////////////////////////////////////////////////

contract HexHeads is ERC721, Owned {

    //// PUBLIC STORAGE ////

    /// CONSTANTS ///
    uint256 constant public maxSupply = 1461501637330902918203684832716283019655932542975;
    
    /// MUTABLES ///
    mapping(uint256 => bool) public burnt;
    address public operator;

    //// PRIVATE STORAGE ////

    string private _baseURI;

    //// MODIFIERS ////

    modifier onlyOperator() {
        require(msg.sender == operator, "Only operator can call this function.");
        _;
    }

    //// CONSTRUCTOR ////

    constructor(
        address owner_,
        address operator_,
        string memory baseURI_
    ) ERC721("HexHeads", "HH") Owned(owner_) {
        operator = operator_;
        _baseURI = baseURI_;
    }

    //// PUBLIC FUNCTIONS ////

    function mint() external {
        uint256 id = uint256(uint160(msg.sender));
        require(!burnt[id], "TOKEN_IS_BURNT");

        _mint(msg.sender, id);
    }

    function tokenURI(
        uint256 id
    ) public view override returns (string memory) {
        return string.concat(_baseURI, Strings.toString(id));
    }

    //// ONLY OPERATOR ////

    function burn(
        uint256 id
    ) public onlyOperator {
        burnt[id] = true;
        _burn(id);
    }

    //// ONLY OWNER ////

    function setBaseUri(
        string memory baseURI
    ) public onlyOwner {
        _baseURI = baseURI;
    }

    function setOperator(
        address operator_
    ) public onlyOwner {
        operator = operator_;
    }

}

File 2 of 5 : Math.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (utils/math/Math.sol)

pragma solidity 0.8.17;

/**
 * @dev Standard math utilities missing in the Solidity language.
 */
library Math {

    /**
     * @dev Return the log in base 10, rounded down, of a positive value.
     * Returns 0 if given 0.
     */
    function log10(uint256 value) internal pure returns (uint256) {
        uint256 result = 0;
    unchecked {
        if (value >= 10**64) {
            value /= 10**64;
            result += 64;
        }
        if (value >= 10**32) {
            value /= 10**32;
            result += 32;
        }
        if (value >= 10**16) {
            value /= 10**16;
            result += 16;
        }
        if (value >= 10**8) {
            value /= 10**8;
            result += 8;
        }
        if (value >= 10**4) {
            value /= 10**4;
            result += 4;
        }
        if (value >= 10**2) {
            value /= 10**2;
            result += 2;
        }
        if (value >= 10**1) {
            result += 1;
        }
    }
        return result;
    }

}

File 3 of 5 : Strings.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol)

pragma solidity 0.8.17;

import "./Math.sol";

/**
 * @dev String operations.
 */
library Strings {
    bytes16 private constant _SYMBOLS = "0123456789abcdef";

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {
        unchecked {
            uint256 length = Math.log10(value) + 1;
            string memory buffer = new string(length);
            uint256 ptr;
            /// @solidity memory-safe-assembly
            assembly {
                ptr := add(buffer, add(32, length))
            }
            while (true) {
                ptr--;
                /// @solidity memory-safe-assembly
                assembly {
                    mstore8(ptr, byte(mod(value, 10), _SYMBOLS))
                }
                value /= 10;
                if (value == 0) break;
            }
            return buffer;
        }
    }

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

File 4 of 5 : ERC721.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Modern, minimalist, and gas efficient ERC-721 implementation.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)
abstract contract ERC721 {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event Transfer(address indexed from, address indexed to, uint256 indexed id);

    event Approval(address indexed owner, address indexed spender, uint256 indexed id);

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

    /*//////////////////////////////////////////////////////////////
                         METADATA STORAGE/LOGIC
    //////////////////////////////////////////////////////////////*/

    string public name;

    string public symbol;

    function tokenURI(uint256 id) public view virtual returns (string memory);

    /*//////////////////////////////////////////////////////////////
                      ERC721 BALANCE/OWNER STORAGE
    //////////////////////////////////////////////////////////////*/

    mapping(uint256 => address) internal _ownerOf;

    mapping(address => uint256) internal _balanceOf;

    function ownerOf(uint256 id) public view virtual returns (address owner) {
        require((owner = _ownerOf[id]) != address(0), "NOT_MINTED");
    }

    function balanceOf(address owner) public view virtual returns (uint256) {
        require(owner != address(0), "ZERO_ADDRESS");

        return _balanceOf[owner];
    }

    /*//////////////////////////////////////////////////////////////
                         ERC721 APPROVAL STORAGE
    //////////////////////////////////////////////////////////////*/

    mapping(uint256 => address) public getApproved;

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

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(string memory _name, string memory _symbol) {
        name = _name;
        symbol = _symbol;
    }

    /*//////////////////////////////////////////////////////////////
                              ERC721 LOGIC
    //////////////////////////////////////////////////////////////*/

    function approve(address spender, uint256 id) public virtual {
        address owner = _ownerOf[id];

        require(msg.sender == owner || isApprovedForAll[owner][msg.sender], "NOT_AUTHORIZED");

        getApproved[id] = spender;

        emit Approval(owner, spender, id);
    }

    function setApprovalForAll(address operator, bool approved) public virtual {
        isApprovedForAll[msg.sender][operator] = approved;

        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function transferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual {
        require(from == _ownerOf[id], "WRONG_FROM");

        require(to != address(0), "INVALID_RECIPIENT");

        require(
            msg.sender == from || isApprovedForAll[from][msg.sender] || msg.sender == getApproved[id],
            "NOT_AUTHORIZED"
        );

        // Underflow of the sender's balance is impossible because we check for
        // ownership above and the recipient's balance can't realistically overflow.
        unchecked {
            _balanceOf[from]--;

            _balanceOf[to]++;
        }

        _ownerOf[id] = to;

        delete getApproved[id];

        emit Transfer(from, to, id);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, "") ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        bytes calldata data
    ) public virtual {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, data) ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    /*//////////////////////////////////////////////////////////////
                              ERC165 LOGIC
    //////////////////////////////////////////////////////////////*/

    function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {
        return
            interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
            interfaceId == 0x80ac58cd || // ERC165 Interface ID for ERC721
            interfaceId == 0x5b5e139f; // ERC165 Interface ID for ERC721Metadata
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNAL MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(address to, uint256 id) internal virtual {
        require(to != address(0), "INVALID_RECIPIENT");

        require(_ownerOf[id] == address(0), "ALREADY_MINTED");

        // Counter overflow is incredibly unrealistic.
        unchecked {
            _balanceOf[to]++;
        }

        _ownerOf[id] = to;

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

    function _burn(uint256 id) internal virtual {
        address owner = _ownerOf[id];

        require(owner != address(0), "NOT_MINTED");

        // Ownership check above ensures no underflow.
        unchecked {
            _balanceOf[owner]--;
        }

        delete _ownerOf[id];

        delete getApproved[id];

        emit Transfer(owner, address(0), id);
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNAL SAFE MINT LOGIC
    //////////////////////////////////////////////////////////////*/

    function _safeMint(address to, uint256 id) internal virtual {
        _mint(to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, "") ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _safeMint(
        address to,
        uint256 id,
        bytes memory data
    ) internal virtual {
        _mint(to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, data) ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }
}

/// @notice A generic interface for a contract which properly accepts ERC721 tokens.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)
abstract contract ERC721TokenReceiver {
    function onERC721Received(
        address,
        address,
        uint256,
        bytes calldata
    ) external virtual returns (bytes4) {
        return ERC721TokenReceiver.onERC721Received.selector;
    }
}

File 5 of 5 : Owned.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Simple single owner authorization mixin.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Owned.sol)
abstract contract Owned {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

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

    /*//////////////////////////////////////////////////////////////
                            OWNERSHIP STORAGE
    //////////////////////////////////////////////////////////////*/

    address public owner;

    modifier onlyOwner() virtual {
        require(msg.sender == owner, "UNAUTHORIZED");

        _;
    }

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(address _owner) {
        owner = _owner;

        emit OwnershipTransferred(address(0), _owner);
    }

    /*//////////////////////////////////////////////////////////////
                             OWNERSHIP LOGIC
    //////////////////////////////////////////////////////////////*/

    function transferOwnership(address newOwner) public virtual onlyOwner {
        owner = newOwner;

        emit OwnershipTransferred(msg.sender, newOwner);
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"operator_","type":"address"},{"internalType":"string","name":"baseURI_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","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":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"burnt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","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":"id","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":"baseURI","type":"string"}],"name":"setBaseUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator_","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162003346380380620033468339818101604052810190620000379190620003bb565b826040518060400160405280600881526020017f48657848656164730000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f48480000000000000000000000000000000000000000000000000000000000008152508160009081620000b5919062000681565b508060019081620000c7919062000681565b50505080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060099081620001b9919062000681565b5050505062000768565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200020482620001d7565b9050919050565b6200021681620001f7565b81146200022257600080fd5b50565b60008151905062000236816200020b565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620002918262000246565b810181811067ffffffffffffffff82111715620002b357620002b262000257565b5b80604052505050565b6000620002c8620001c3565b9050620002d6828262000286565b919050565b600067ffffffffffffffff821115620002f957620002f862000257565b5b620003048262000246565b9050602081019050919050565b60005b838110156200033157808201518184015260208101905062000314565b60008484015250505050565b6000620003546200034e84620002db565b620002bc565b90508281526020810184848401111562000373576200037262000241565b5b6200038084828562000311565b509392505050565b600082601f830112620003a0576200039f6200023c565b5b8151620003b28482602086016200033d565b91505092915050565b600080600060608486031215620003d757620003d6620001cd565b5b6000620003e78682870162000225565b9350506020620003fa8682870162000225565b925050604084015167ffffffffffffffff8111156200041e576200041d620001d2565b5b6200042c8682870162000388565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200048957607f821691505b6020821081036200049f576200049e62000441565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004ca565b620005158683620004ca565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005626200055c62000556846200052d565b62000537565b6200052d565b9050919050565b6000819050919050565b6200057e8362000541565b620005966200058d8262000569565b848454620004d7565b825550505050565b600090565b620005ad6200059e565b620005ba81848462000573565b505050565b5b81811015620005e257620005d6600082620005a3565b600181019050620005c0565b5050565b601f8211156200063157620005fb81620004a5565b6200060684620004ba565b8101602085101562000616578190505b6200062e6200062585620004ba565b830182620005bf565b50505b505050565b600082821c905092915050565b6000620006566000198460080262000636565b1980831691505092915050565b600062000671838362000643565b9150826002028217905092915050565b6200068c8262000436565b67ffffffffffffffff811115620006a857620006a762000257565b5b620006b4825462000470565b620006c1828285620005e6565b600060209050601f831160018114620006f95760008415620006e4578287015190505b620006f0858262000663565b86555062000760565b601f1984166200070986620004a5565b60005b8281101562000733578489015182556001820191506020850194506020810190506200070c565b868310156200075357848901516200074f601f89168262000643565b8355505b6001600288020188555050505b505050505050565b612bce80620007786000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063b3ab15fb1161007c578063b3ab15fb14610361578063b88d4fde1461037d578063c87b56dd14610399578063d5abeb01146103c9578063e985e9c5146103e7578063f2fde38b1461041757610142565b80638da5cb5b146102bd5780638e089173146102db57806395d89b411461030b578063a0bcfc7f14610329578063a22cb4651461034557610142565b806323b872dd1161010a57806323b872dd146101eb57806342842e0e1461020757806342966c6814610223578063570ca7351461023f5780636352211e1461025d57806370a082311461028d57610142565b806301ffc9a71461014757806306fdde0314610177578063081812fc14610195578063095ea7b3146101c55780631249c58b146101e1575b600080fd5b610161600480360381019061015c9190611c10565b610433565b60405161016e9190611c58565b60405180910390f35b61017f6104c5565b60405161018c9190611d03565b60405180910390f35b6101af60048036038101906101aa9190611d5b565b610553565b6040516101bc9190611dc9565b60405180910390f35b6101df60048036038101906101da9190611e10565b610586565b005b6101e961076f565b005b61020560048036038101906102009190611e50565b6107f8565b005b610221600480360381019061021c9190611e50565b610bf7565b005b61023d60048036038101906102389190611d5b565b610d2f565b005b610247610df7565b6040516102549190611dc9565b60405180910390f35b61027760048036038101906102729190611d5b565b610e1d565b6040516102849190611dc9565b60405180910390f35b6102a760048036038101906102a29190611ea3565b610ec8565b6040516102b49190611edf565b60405180910390f35b6102c5610f7f565b6040516102d29190611dc9565b60405180910390f35b6102f560048036038101906102f09190611d5b565b610fa5565b6040516103029190611c58565b60405180910390f35b610313610fc5565b6040516103209190611d03565b60405180910390f35b610343600480360381019061033e919061202f565b611053565b005b61035f600480360381019061035a91906120a4565b6110f6565b005b61037b60048036038101906103769190611ea3565b6111f3565b005b61039760048036038101906103929190612144565b6112c7565b005b6103b360048036038101906103ae9190611d5b565b611405565b6040516103c09190611d03565b60405180910390f35b6103d1611439565b6040516103de9190611edf565b60405180910390f35b61040160048036038101906103fc91906121cc565b611451565b60405161040e9190611c58565b60405180910390f35b610431600480360381019061042c9190611ea3565b611480565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061048e57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104be5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600080546104d29061223b565b80601f01602080910402602001604051908101604052809291908181526020018280546104fe9061223b565b801561054b5780601f106105205761010080835404028352916020019161054b565b820191906000526020600020905b81548152906001019060200180831161052e57829003601f168201915b505050505081565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061067e5750600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6106bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b4906122b8565b60405180910390fd5b826004600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60003373ffffffffffffffffffffffffffffffffffffffff1690506007600082815260200190815260200160002060009054906101000a900460ff16156107eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e290612324565b60405180910390fd5b6107f533826115ae565b50565b6002600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089090612390565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ff906123fc565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806109c85750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80610a3157506004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a67906122b8565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b610c028383836107f8565b60008273ffffffffffffffffffffffffffffffffffffffff163b1480610ceb575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b8152600401610c8793929190612453565b6020604051808303816000875af1158015610ca6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cca91906124b2565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d219061252b565b60405180910390fd5b505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db6906125bd565b60405180910390fd5b60016007600083815260200190815260200160002060006101000a81548160ff021916908315150217905550610df4816117c0565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff1603610ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eba90612629565b60405180910390fd5b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f90612695565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b60018054610fd29061223b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ffe9061223b565b801561104b5780601f106110205761010080835404028352916020019161104b565b820191906000526020600020905b81548152906001019060200180831161102e57829003601f168201915b505050505081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110da90612701565b60405180910390fd5b80600990816110f291906128cd565b5050565b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111e79190611c58565b60405180910390a35050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611283576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127a90612701565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6112d28585856107f8565b60008473ffffffffffffffffffffffffffffffffffffffff163b14806113bf575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b815260040161135b9594939291906129cc565b6020604051808303816000875af115801561137a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139e91906124b2565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b6113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f59061252b565b60405180910390fd5b5050505050565b6060600961141283611983565b604051602001611423929190612ad9565b6040516020818303038152906040529050919050565b73ffffffffffffffffffffffffffffffffffffffff81565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150790612701565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361161d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611614906123fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b690612b49565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185e90612629565b60405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556004600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60606000600161199284611a51565b01905060008167ffffffffffffffff8111156119b1576119b0611f04565b5b6040519080825280601f01601f1916602001820160405280156119e35781602001600182028036833780820191505090505b509050600082602001820190505b600115611a46578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611a3a57611a39612b69565b5b049450600085036119f1575b819350505050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611aaf577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611aa557611aa4612b69565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611aec576d04ee2d6d415b85acef81000000008381611ae257611ae1612b69565b5b0492506020810190505b662386f26fc100008310611b1b57662386f26fc100008381611b1157611b10612b69565b5b0492506010810190505b6305f5e1008310611b44576305f5e1008381611b3a57611b39612b69565b5b0492506008810190505b6127108310611b69576127108381611b5f57611b5e612b69565b5b0492506004810190505b60648310611b8c5760648381611b8257611b81612b69565b5b0492506002810190505b600a8310611b9b576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611bed81611bb8565b8114611bf857600080fd5b50565b600081359050611c0a81611be4565b92915050565b600060208284031215611c2657611c25611bae565b5b6000611c3484828501611bfb565b91505092915050565b60008115159050919050565b611c5281611c3d565b82525050565b6000602082019050611c6d6000830184611c49565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cad578082015181840152602081019050611c92565b60008484015250505050565b6000601f19601f8301169050919050565b6000611cd582611c73565b611cdf8185611c7e565b9350611cef818560208601611c8f565b611cf881611cb9565b840191505092915050565b60006020820190508181036000830152611d1d8184611cca565b905092915050565b6000819050919050565b611d3881611d25565b8114611d4357600080fd5b50565b600081359050611d5581611d2f565b92915050565b600060208284031215611d7157611d70611bae565b5b6000611d7f84828501611d46565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611db382611d88565b9050919050565b611dc381611da8565b82525050565b6000602082019050611dde6000830184611dba565b92915050565b611ded81611da8565b8114611df857600080fd5b50565b600081359050611e0a81611de4565b92915050565b60008060408385031215611e2757611e26611bae565b5b6000611e3585828601611dfb565b9250506020611e4685828601611d46565b9150509250929050565b600080600060608486031215611e6957611e68611bae565b5b6000611e7786828701611dfb565b9350506020611e8886828701611dfb565b9250506040611e9986828701611d46565b9150509250925092565b600060208284031215611eb957611eb8611bae565b5b6000611ec784828501611dfb565b91505092915050565b611ed981611d25565b82525050565b6000602082019050611ef46000830184611ed0565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611f3c82611cb9565b810181811067ffffffffffffffff82111715611f5b57611f5a611f04565b5b80604052505050565b6000611f6e611ba4565b9050611f7a8282611f33565b919050565b600067ffffffffffffffff821115611f9a57611f99611f04565b5b611fa382611cb9565b9050602081019050919050565b82818337600083830152505050565b6000611fd2611fcd84611f7f565b611f64565b905082815260208101848484011115611fee57611fed611eff565b5b611ff9848285611fb0565b509392505050565b600082601f83011261201657612015611efa565b5b8135612026848260208601611fbf565b91505092915050565b60006020828403121561204557612044611bae565b5b600082013567ffffffffffffffff81111561206357612062611bb3565b5b61206f84828501612001565b91505092915050565b61208181611c3d565b811461208c57600080fd5b50565b60008135905061209e81612078565b92915050565b600080604083850312156120bb576120ba611bae565b5b60006120c985828601611dfb565b92505060206120da8582860161208f565b9150509250929050565b600080fd5b600080fd5b60008083601f84011261210457612103611efa565b5b8235905067ffffffffffffffff811115612121576121206120e4565b5b60208301915083600182028301111561213d5761213c6120e9565b5b9250929050565b6000806000806000608086880312156121605761215f611bae565b5b600061216e88828901611dfb565b955050602061217f88828901611dfb565b945050604061219088828901611d46565b935050606086013567ffffffffffffffff8111156121b1576121b0611bb3565b5b6121bd888289016120ee565b92509250509295509295909350565b600080604083850312156121e3576121e2611bae565b5b60006121f185828601611dfb565b925050602061220285828601611dfb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061225357607f821691505b6020821081036122665761226561220c565b5b50919050565b7f4e4f545f415554484f52495a4544000000000000000000000000000000000000600082015250565b60006122a2600e83611c7e565b91506122ad8261226c565b602082019050919050565b600060208201905081810360008301526122d181612295565b9050919050565b7f544f4b454e5f49535f4255524e54000000000000000000000000000000000000600082015250565b600061230e600e83611c7e565b9150612319826122d8565b602082019050919050565b6000602082019050818103600083015261233d81612301565b9050919050565b7f57524f4e475f46524f4d00000000000000000000000000000000000000000000600082015250565b600061237a600a83611c7e565b915061238582612344565b602082019050919050565b600060208201905081810360008301526123a98161236d565b9050919050565b7f494e56414c49445f524543495049454e54000000000000000000000000000000600082015250565b60006123e6601183611c7e565b91506123f1826123b0565b602082019050919050565b60006020820190508181036000830152612415816123d9565b9050919050565b600082825260208201905092915050565b50565b600061243d60008361241c565b91506124488261242d565b600082019050919050565b60006080820190506124686000830186611dba565b6124756020830185611dba565b6124826040830184611ed0565b818103606083015261249381612430565b9050949350505050565b6000815190506124ac81611be4565b92915050565b6000602082840312156124c8576124c7611bae565b5b60006124d68482850161249d565b91505092915050565b7f554e534146455f524543495049454e5400000000000000000000000000000000600082015250565b6000612515601083611c7e565b9150612520826124df565b602082019050919050565b6000602082019050818103600083015261254481612508565b9050919050565b7f4f6e6c79206f70657261746f722063616e2063616c6c20746869732066756e6360008201527f74696f6e2e000000000000000000000000000000000000000000000000000000602082015250565b60006125a7602583611c7e565b91506125b28261254b565b604082019050919050565b600060208201905081810360008301526125d68161259a565b9050919050565b7f4e4f545f4d494e54454400000000000000000000000000000000000000000000600082015250565b6000612613600a83611c7e565b915061261e826125dd565b602082019050919050565b6000602082019050818103600083015261264281612606565b9050919050565b7f5a45524f5f414444524553530000000000000000000000000000000000000000600082015250565b600061267f600c83611c7e565b915061268a82612649565b602082019050919050565b600060208201905081810360008301526126ae81612672565b9050919050565b7f554e415554484f52495a45440000000000000000000000000000000000000000600082015250565b60006126eb600c83611c7e565b91506126f6826126b5565b602082019050919050565b6000602082019050818103600083015261271a816126de565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026127837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612746565b61278d8683612746565b95508019841693508086168417925050509392505050565b6000819050919050565b60006127ca6127c56127c084611d25565b6127a5565b611d25565b9050919050565b6000819050919050565b6127e4836127af565b6127f86127f0826127d1565b848454612753565b825550505050565b600090565b61280d612800565b6128188184846127db565b505050565b5b8181101561283c57612831600082612805565b60018101905061281e565b5050565b601f8211156128815761285281612721565b61285b84612736565b8101602085101561286a578190505b61287e61287685612736565b83018261281d565b50505b505050565b600082821c905092915050565b60006128a460001984600802612886565b1980831691505092915050565b60006128bd8383612893565b9150826002028217905092915050565b6128d682611c73565b67ffffffffffffffff8111156128ef576128ee611f04565b5b6128f9825461223b565b612904828285612840565b600060209050601f8311600181146129375760008415612925578287015190505b61292f85826128b1565b865550612997565b601f19841661294586612721565b60005b8281101561296d57848901518255600182019150602085019450602081019050612948565b8683101561298a5784890151612986601f891682612893565b8355505b6001600288020188555050505b505050505050565b60006129ab838561241c565b93506129b8838584611fb0565b6129c183611cb9565b840190509392505050565b60006080820190506129e16000830188611dba565b6129ee6020830187611dba565b6129fb6040830186611ed0565b8181036060830152612a0e81848661299f565b90509695505050505050565b600081905092915050565b60008154612a328161223b565b612a3c8186612a1a565b94506001821660008114612a575760018114612a6c57612a9f565b60ff1983168652811515820286019350612a9f565b612a7585612721565b60005b83811015612a9757815481890152600182019150602081019050612a78565b838801955050505b50505092915050565b6000612ab382611c73565b612abd8185612a1a565b9350612acd818560208601611c8f565b80840191505092915050565b6000612ae58285612a25565b9150612af18284612aa8565b91508190509392505050565b7f414c52454144595f4d494e544544000000000000000000000000000000000000600082015250565b6000612b33600e83611c7e565b9150612b3e82612afd565b602082019050919050565b60006020820190508181036000830152612b6281612b26565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220798df642fddfbce7872109c5186313692c798312d0f90704f3fef22d264036a964736f6c634300081100330000000000000000000000003a205ecf286bbe11460638ace47d501a53fb91c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002468747470733a2f2f6170692e68657868656164732e696f2f6d657461646174613f69643d00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063b3ab15fb1161007c578063b3ab15fb14610361578063b88d4fde1461037d578063c87b56dd14610399578063d5abeb01146103c9578063e985e9c5146103e7578063f2fde38b1461041757610142565b80638da5cb5b146102bd5780638e089173146102db57806395d89b411461030b578063a0bcfc7f14610329578063a22cb4651461034557610142565b806323b872dd1161010a57806323b872dd146101eb57806342842e0e1461020757806342966c6814610223578063570ca7351461023f5780636352211e1461025d57806370a082311461028d57610142565b806301ffc9a71461014757806306fdde0314610177578063081812fc14610195578063095ea7b3146101c55780631249c58b146101e1575b600080fd5b610161600480360381019061015c9190611c10565b610433565b60405161016e9190611c58565b60405180910390f35b61017f6104c5565b60405161018c9190611d03565b60405180910390f35b6101af60048036038101906101aa9190611d5b565b610553565b6040516101bc9190611dc9565b60405180910390f35b6101df60048036038101906101da9190611e10565b610586565b005b6101e961076f565b005b61020560048036038101906102009190611e50565b6107f8565b005b610221600480360381019061021c9190611e50565b610bf7565b005b61023d60048036038101906102389190611d5b565b610d2f565b005b610247610df7565b6040516102549190611dc9565b60405180910390f35b61027760048036038101906102729190611d5b565b610e1d565b6040516102849190611dc9565b60405180910390f35b6102a760048036038101906102a29190611ea3565b610ec8565b6040516102b49190611edf565b60405180910390f35b6102c5610f7f565b6040516102d29190611dc9565b60405180910390f35b6102f560048036038101906102f09190611d5b565b610fa5565b6040516103029190611c58565b60405180910390f35b610313610fc5565b6040516103209190611d03565b60405180910390f35b610343600480360381019061033e919061202f565b611053565b005b61035f600480360381019061035a91906120a4565b6110f6565b005b61037b60048036038101906103769190611ea3565b6111f3565b005b61039760048036038101906103929190612144565b6112c7565b005b6103b360048036038101906103ae9190611d5b565b611405565b6040516103c09190611d03565b60405180910390f35b6103d1611439565b6040516103de9190611edf565b60405180910390f35b61040160048036038101906103fc91906121cc565b611451565b60405161040e9190611c58565b60405180910390f35b610431600480360381019061042c9190611ea3565b611480565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061048e57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104be5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600080546104d29061223b565b80601f01602080910402602001604051908101604052809291908181526020018280546104fe9061223b565b801561054b5780601f106105205761010080835404028352916020019161054b565b820191906000526020600020905b81548152906001019060200180831161052e57829003601f168201915b505050505081565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061067e5750600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6106bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b4906122b8565b60405180910390fd5b826004600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60003373ffffffffffffffffffffffffffffffffffffffff1690506007600082815260200190815260200160002060009054906101000a900460ff16156107eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e290612324565b60405180910390fd5b6107f533826115ae565b50565b6002600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610899576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089090612390565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ff906123fc565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806109c85750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80610a3157506004600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a67906122b8565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b610c028383836107f8565b60008273ffffffffffffffffffffffffffffffffffffffff163b1480610ceb575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b8152600401610c8793929190612453565b6020604051808303816000875af1158015610ca6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cca91906124b2565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d219061252b565b60405180910390fd5b505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db6906125bd565b60405180910390fd5b60016007600083815260200190815260200160002060006101000a81548160ff021916908315150217905550610df4816117c0565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff1603610ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eba90612629565b60405180910390fd5b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f90612695565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b60018054610fd29061223b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ffe9061223b565b801561104b5780601f106110205761010080835404028352916020019161104b565b820191906000526020600020905b81548152906001019060200180831161102e57829003601f168201915b505050505081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110da90612701565b60405180910390fd5b80600990816110f291906128cd565b5050565b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111e79190611c58565b60405180910390a35050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611283576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127a90612701565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6112d28585856107f8565b60008473ffffffffffffffffffffffffffffffffffffffff163b14806113bf575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b815260040161135b9594939291906129cc565b6020604051808303816000875af115801561137a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139e91906124b2565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b6113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f59061252b565b60405180910390fd5b5050505050565b6060600961141283611983565b604051602001611423929190612ad9565b6040516020818303038152906040529050919050565b73ffffffffffffffffffffffffffffffffffffffff81565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150790612701565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361161d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611614906123fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b690612b49565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185e90612629565b60405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556004600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60606000600161199284611a51565b01905060008167ffffffffffffffff8111156119b1576119b0611f04565b5b6040519080825280601f01601f1916602001820160405280156119e35781602001600182028036833780820191505090505b509050600082602001820190505b600115611a46578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611a3a57611a39612b69565b5b049450600085036119f1575b819350505050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611aaf577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611aa557611aa4612b69565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611aec576d04ee2d6d415b85acef81000000008381611ae257611ae1612b69565b5b0492506020810190505b662386f26fc100008310611b1b57662386f26fc100008381611b1157611b10612b69565b5b0492506010810190505b6305f5e1008310611b44576305f5e1008381611b3a57611b39612b69565b5b0492506008810190505b6127108310611b69576127108381611b5f57611b5e612b69565b5b0492506004810190505b60648310611b8c5760648381611b8257611b81612b69565b5b0492506002810190505b600a8310611b9b576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611bed81611bb8565b8114611bf857600080fd5b50565b600081359050611c0a81611be4565b92915050565b600060208284031215611c2657611c25611bae565b5b6000611c3484828501611bfb565b91505092915050565b60008115159050919050565b611c5281611c3d565b82525050565b6000602082019050611c6d6000830184611c49565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cad578082015181840152602081019050611c92565b60008484015250505050565b6000601f19601f8301169050919050565b6000611cd582611c73565b611cdf8185611c7e565b9350611cef818560208601611c8f565b611cf881611cb9565b840191505092915050565b60006020820190508181036000830152611d1d8184611cca565b905092915050565b6000819050919050565b611d3881611d25565b8114611d4357600080fd5b50565b600081359050611d5581611d2f565b92915050565b600060208284031215611d7157611d70611bae565b5b6000611d7f84828501611d46565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611db382611d88565b9050919050565b611dc381611da8565b82525050565b6000602082019050611dde6000830184611dba565b92915050565b611ded81611da8565b8114611df857600080fd5b50565b600081359050611e0a81611de4565b92915050565b60008060408385031215611e2757611e26611bae565b5b6000611e3585828601611dfb565b9250506020611e4685828601611d46565b9150509250929050565b600080600060608486031215611e6957611e68611bae565b5b6000611e7786828701611dfb565b9350506020611e8886828701611dfb565b9250506040611e9986828701611d46565b9150509250925092565b600060208284031215611eb957611eb8611bae565b5b6000611ec784828501611dfb565b91505092915050565b611ed981611d25565b82525050565b6000602082019050611ef46000830184611ed0565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611f3c82611cb9565b810181811067ffffffffffffffff82111715611f5b57611f5a611f04565b5b80604052505050565b6000611f6e611ba4565b9050611f7a8282611f33565b919050565b600067ffffffffffffffff821115611f9a57611f99611f04565b5b611fa382611cb9565b9050602081019050919050565b82818337600083830152505050565b6000611fd2611fcd84611f7f565b611f64565b905082815260208101848484011115611fee57611fed611eff565b5b611ff9848285611fb0565b509392505050565b600082601f83011261201657612015611efa565b5b8135612026848260208601611fbf565b91505092915050565b60006020828403121561204557612044611bae565b5b600082013567ffffffffffffffff81111561206357612062611bb3565b5b61206f84828501612001565b91505092915050565b61208181611c3d565b811461208c57600080fd5b50565b60008135905061209e81612078565b92915050565b600080604083850312156120bb576120ba611bae565b5b60006120c985828601611dfb565b92505060206120da8582860161208f565b9150509250929050565b600080fd5b600080fd5b60008083601f84011261210457612103611efa565b5b8235905067ffffffffffffffff811115612121576121206120e4565b5b60208301915083600182028301111561213d5761213c6120e9565b5b9250929050565b6000806000806000608086880312156121605761215f611bae565b5b600061216e88828901611dfb565b955050602061217f88828901611dfb565b945050604061219088828901611d46565b935050606086013567ffffffffffffffff8111156121b1576121b0611bb3565b5b6121bd888289016120ee565b92509250509295509295909350565b600080604083850312156121e3576121e2611bae565b5b60006121f185828601611dfb565b925050602061220285828601611dfb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061225357607f821691505b6020821081036122665761226561220c565b5b50919050565b7f4e4f545f415554484f52495a4544000000000000000000000000000000000000600082015250565b60006122a2600e83611c7e565b91506122ad8261226c565b602082019050919050565b600060208201905081810360008301526122d181612295565b9050919050565b7f544f4b454e5f49535f4255524e54000000000000000000000000000000000000600082015250565b600061230e600e83611c7e565b9150612319826122d8565b602082019050919050565b6000602082019050818103600083015261233d81612301565b9050919050565b7f57524f4e475f46524f4d00000000000000000000000000000000000000000000600082015250565b600061237a600a83611c7e565b915061238582612344565b602082019050919050565b600060208201905081810360008301526123a98161236d565b9050919050565b7f494e56414c49445f524543495049454e54000000000000000000000000000000600082015250565b60006123e6601183611c7e565b91506123f1826123b0565b602082019050919050565b60006020820190508181036000830152612415816123d9565b9050919050565b600082825260208201905092915050565b50565b600061243d60008361241c565b91506124488261242d565b600082019050919050565b60006080820190506124686000830186611dba565b6124756020830185611dba565b6124826040830184611ed0565b818103606083015261249381612430565b9050949350505050565b6000815190506124ac81611be4565b92915050565b6000602082840312156124c8576124c7611bae565b5b60006124d68482850161249d565b91505092915050565b7f554e534146455f524543495049454e5400000000000000000000000000000000600082015250565b6000612515601083611c7e565b9150612520826124df565b602082019050919050565b6000602082019050818103600083015261254481612508565b9050919050565b7f4f6e6c79206f70657261746f722063616e2063616c6c20746869732066756e6360008201527f74696f6e2e000000000000000000000000000000000000000000000000000000602082015250565b60006125a7602583611c7e565b91506125b28261254b565b604082019050919050565b600060208201905081810360008301526125d68161259a565b9050919050565b7f4e4f545f4d494e54454400000000000000000000000000000000000000000000600082015250565b6000612613600a83611c7e565b915061261e826125dd565b602082019050919050565b6000602082019050818103600083015261264281612606565b9050919050565b7f5a45524f5f414444524553530000000000000000000000000000000000000000600082015250565b600061267f600c83611c7e565b915061268a82612649565b602082019050919050565b600060208201905081810360008301526126ae81612672565b9050919050565b7f554e415554484f52495a45440000000000000000000000000000000000000000600082015250565b60006126eb600c83611c7e565b91506126f6826126b5565b602082019050919050565b6000602082019050818103600083015261271a816126de565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026127837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612746565b61278d8683612746565b95508019841693508086168417925050509392505050565b6000819050919050565b60006127ca6127c56127c084611d25565b6127a5565b611d25565b9050919050565b6000819050919050565b6127e4836127af565b6127f86127f0826127d1565b848454612753565b825550505050565b600090565b61280d612800565b6128188184846127db565b505050565b5b8181101561283c57612831600082612805565b60018101905061281e565b5050565b601f8211156128815761285281612721565b61285b84612736565b8101602085101561286a578190505b61287e61287685612736565b83018261281d565b50505b505050565b600082821c905092915050565b60006128a460001984600802612886565b1980831691505092915050565b60006128bd8383612893565b9150826002028217905092915050565b6128d682611c73565b67ffffffffffffffff8111156128ef576128ee611f04565b5b6128f9825461223b565b612904828285612840565b600060209050601f8311600181146129375760008415612925578287015190505b61292f85826128b1565b865550612997565b601f19841661294586612721565b60005b8281101561296d57848901518255600182019150602085019450602081019050612948565b8683101561298a5784890151612986601f891682612893565b8355505b6001600288020188555050505b505050505050565b60006129ab838561241c565b93506129b8838584611fb0565b6129c183611cb9565b840190509392505050565b60006080820190506129e16000830188611dba565b6129ee6020830187611dba565b6129fb6040830186611ed0565b8181036060830152612a0e81848661299f565b90509695505050505050565b600081905092915050565b60008154612a328161223b565b612a3c8186612a1a565b94506001821660008114612a575760018114612a6c57612a9f565b60ff1983168652811515820286019350612a9f565b612a7585612721565b60005b83811015612a9757815481890152600182019150602081019050612a78565b838801955050505b50505092915050565b6000612ab382611c73565b612abd8185612a1a565b9350612acd818560208601611c8f565b80840191505092915050565b6000612ae58285612a25565b9150612af18284612aa8565b91508190509392505050565b7f414c52454144595f4d494e544544000000000000000000000000000000000000600082015250565b6000612b33600e83611c7e565b9150612b3e82612afd565b602082019050919050565b60006020820190508181036000830152612b6281612b26565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220798df642fddfbce7872109c5186313692c798312d0f90704f3fef22d264036a964736f6c63430008110033

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

0000000000000000000000003a205ecf286bbe11460638ace47d501a53fb91c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002468747470733a2f2f6170692e68657868656164732e696f2f6d657461646174613f69643d00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : owner_ (address): 0x3A205ECf286bBe11460638aCe47D501A53fB91C0
Arg [1] : operator_ (address): 0x0000000000000000000000000000000000000000
Arg [2] : baseURI_ (string): https://api.hexheads.io/metadata?id=

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000003a205ecf286bbe11460638ace47d501a53fb91c0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000024
Arg [4] : 68747470733a2f2f6170692e68657868656164732e696f2f6d65746164617461
Arg [5] : 3f69643d00000000000000000000000000000000000000000000000000000000


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.