Contract 0x90859c1ceba5c6a466edc70732e54242a4caeb46

 

Contract Overview

Balance:
0.181 MATIC

MATIC Value:
$0.30 (@ $1.65/MATIC)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x018ca99ff339c5c09060a3cbc7036774d68690840eae24911c2881fea5be4f49Mint240520962022-01-23 4:20:445 hrs 44 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.022920608808 84.301346535
0x6727dc1cd92a6aa58c10647b374713109e55b7ae4b6461f497d81abd124c828fMint240520902022-01-23 4:20:285 hrs 44 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.022305247997 82.038066997
0x18e1dbd4a51d55f70ee65c3b4acc3bf3f4919f8dd700d4fac0154c4b75c4a34aMint240520292022-01-23 4:18:225 hrs 46 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.016840023025 61.937125171
0x9b82161652436da3a59ec1c41cb23bbdd8e7684df7ca0715143da930218541a9Safe Transfer Fr...240501142022-01-23 3:12:366 hrs 52 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.003637814301 40.665052891
0x17a4b7b1c76fb4a3b451b9b7309816a8b76e8b9f27cf34e541c03fd4e7da92e1Safe Transfer Fr...240501142022-01-23 3:12:366 hrs 52 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.003674101455 36.832358803
0x270defed9965d3ec8d4ef13edeaa46c01df025dbb0e99ef333d9ad4d1b3f3e94Safe Transfer Fr...240495492022-01-23 2:53:107 hrs 11 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.005181211317 57.917808556
0x36b03173ff251e9fd32f3a60030174c0f13d664120f8eafa2a77cade826dd2a2Safe Transfer Fr...240489732022-01-23 2:31:147 hrs 33 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.003807481095 38.169471241
0xe67f808f042bdbe82cdcb4e5d9d32ddfcdc107d3d63acaf16bef4c9ef806fdeeMint240485152022-01-23 2:13:227 hrs 51 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.011266960082 41.43955836
0x06c493b3628b8ffa8f067c80c74cd452d5a2083fee3930a776dcc3af38a6d817Safe Transfer Fr...240485152022-01-23 2:13:227 hrs 51 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.003684053759 41.181937437
0x19b8fa90e1cc80f08e62505f3964326e455029eb56c7ea6b6cc2a652e6ed364aSafe Transfer Fr...240479722022-01-23 1:54:408 hrs 10 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.005836119948 58.506295094
0xac4fd38b8f5fda90f9af921fefaa86f6a376f72be9b05db7ec5831438dfdb41fSafe Transfer Fr...240478962022-01-23 1:52:048 hrs 13 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.006447393133 64.634224209
0xdd02ed2b006cccbc056ce8866a7eefa4a8cdd11f0d2c77fa6836102feb574e92Safe Transfer Fr...240478432022-01-23 1:50:148 hrs 14 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.002259928514 75.080681547
0x18e8779e5dbd7b96586c3ea871ea96a96ce99173af1f5a1d5ff816d195197a90Safe Transfer Fr...240464082022-01-23 1:00:569 hrs 4 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.004269522909 129.66238184
0x613912a7c978687b476b6dd9c1944e962dae4b36b1e4c97c3438e8672cdc263dSafe Transfer Fr...240464082022-01-23 1:00:569 hrs 4 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.003168350952 96.220570724
0xd5d21b33ea853fd508f0605eb2fd3b8cc371daff449034af86172ff1c0f48d1eSafe Transfer Fr...240464082022-01-23 1:00:569 hrs 4 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.008753558054 87.753208505
0xe65724fa49be0f359e48b2852b83790c1c75e081b46d723f176507fe0d410134Mint240454522022-01-23 0:27:409 hrs 37 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.035041951078 128.883298251
0x90a7423da881a75373571a57bb2b1a0bd3298d9b141ab83fcaa9fee2b8af0b7cMint240454392022-01-23 0:27:109 hrs 37 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.028128902213 103.457301373
0x7c98eed0a0ca2e6fd8f5b4d6350bd6ac756660ee9f11386d82d5e70f5060df50Mint240454132022-01-23 0:26:189 hrs 38 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.027613351159 101.561119277
0x022d545665326a4bc83efde24ceb50effd58cc4705cb9a872064bff1f02cc11dSafe Transfer Fr...240454002022-01-23 0:25:529 hrs 39 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.009090612113 101.618772094
0xfbfb4609a2eb596dfe5e51b29412480d9c7128699d63bb89a3fa00d3f1872aa3Safe Transfer Fr...240453822022-01-23 0:25:169 hrs 39 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.010777661675 108.044567283
0x7d34b92156eb1298a18953aff6be5ea61dc1bfe5b6c24e1bde686057bb4d4c74Safe Transfer Fr...240453562022-01-23 0:24:209 hrs 40 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.013765269886 137.994926287
0x5b20ae6157d83da187fc8e940c22480500b7ef6d7af1a18985b29ebed663ce05Safe Transfer Fr...240453252022-01-23 0:23:189 hrs 41 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.011651790167 116.807584488
0x425d26cb384dcce83673d4b272845eb827d277750084bc69d7b01f273bef539eMint240449312022-01-23 0:09:469 hrs 55 mins ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.023110565 85
0xc3a97097fad15612511b961fc5f3d73f0c04fe5a89827a0daad1a1f8829dfe33Safe Transfer Fr...240447812022-01-23 0:04:3410 hrs ago0x6bb6e9f4745a986c4e786ebb2a71190fd910b3e4 IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.006137565776 61.528247824
0x7a876ea49b59930891bb724acdd5fb293b313e131e526d0b7b5ea1162483cf5aSet Approval For...240437332022-01-22 23:26:2610 hrs 38 mins ago0xdae86c1be55b213627d1aa3917fd45f4a6fd27fe IN  0x90859c1ceba5c6a466edc70732e54242a4caeb460 MATIC0.0029145097662.842506366
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Scary_Ghost

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2022-01-02
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

library LibRoyaltiesV2 {
    bytes4 constant _INTERFACE_ID_ROYALTIES = 0xcad96cca;
}


pragma solidity ^0.8.0;

library LibPart {
    bytes32 public constant TYPE_HASH = keccak256("Part(address account,uint96 value)");
    struct Part {
        address payable account;
        uint96 value;
    }
    function hash(Part memory part) internal pure returns (bytes32) {
        return keccak256(abi.encode(TYPE_HASH, part.account, part.value));
    }
}


pragma solidity ^0.8.0;

interface RoyaltiesV2 {
    event RoyaltiesSet(uint256 tokenId, LibPart.Part[] royalties);
    function getRaribleV2Royalties(uint256 id) external view returns (LibPart.Part[] memory);
}


pragma solidity ^0.8.0;

abstract contract AbstractRoyalties {
    mapping (uint256 => LibPart.Part[]) internal royalties;

    function _saveRoyalties(uint256 id, LibPart.Part[] memory _royalties) internal {
        uint256 totalValue;
        for (uint i = 0; i < _royalties.length; i++) {
            require(_royalties[i].account != address(0x0), "Recipient should be present");
            require(_royalties[i].value != 0, "Royalty value should be positive");
            totalValue += _royalties[i].value;
            royalties[id].push(_royalties[i]);
        }
        require(totalValue < 10000, "Royalty total value should be < 10000");
        _onRoyaltiesSet(id, _royalties);
    }


    function _updateAccount(uint256 _id, address _from, address _to) internal {
        uint length = royalties[_id].length;
        for(uint i = 0; i < length; i++) {
            if (royalties[_id][i].account == _from) {
                royalties[_id][i].account = payable(address(uint160(_to)));
            }
        }
    }

    function _onRoyaltiesSet(uint256 id, LibPart.Part[] memory _royalties) virtual internal;
}


pragma solidity ^0.8.0;

contract RoyaltiesV2Impl is AbstractRoyalties, RoyaltiesV2 {

    function getRaribleV2Royalties(uint256 id) override external view returns (LibPart.Part[] memory) {
        return royalties[id];
    }


    function _onRoyaltiesSet(uint256 id, LibPart.Part[] memory _royalties) override internal {
        emit RoyaltiesSet(id, _royalties);
    }
}


pragma solidity ^0.8.0;

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


pragma solidity ^0.8.0;

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

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


pragma solidity ^0.8.0;

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_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 {
        _transferOwnership(address(0));
    }


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


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


pragma solidity ^0.8.0;


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 {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

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


pragma solidity ^0.8.0;


interface IERC721Receiver {

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


pragma solidity ^0.8.0;


interface IERC165 {

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


pragma solidity ^0.8.0;

abstract contract ERC165 is IERC165 {

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


pragma solidity ^0.8.0;

interface IERC721 is IERC165 {

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

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

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

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

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

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

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


    function approve(address to, uint256 tokenId) external;

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

    function setApprovalForAll(address operator, bool _approved) external;

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

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


pragma solidity ^0.8.0;


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


pragma solidity ^0.8.0;


interface IERC721Metadata is IERC721 {

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

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

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


pragma solidity ^0.8.0;



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 {
        _setApprovalForAll(_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 _setApprovalForAll(
        address owner,
        address operator,
        bool approved
    ) internal virtual {
        require(owner != operator, "ERC721: approve to caller");
        _operatorApprovals[owner][operator] = approved;
        emit ApprovalForAll(owner, operator, approved);
    }


    function _checkOnERC721Received(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) private returns (bool) {
        if (to.isContract()) {
            try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) {
                return retval == IERC721Receiver.onERC721Received.selector;
            } catch (bytes memory reason) {
                if (reason.length == 0) {
                    revert("ERC721: transfer to non ERC721Receiver implementer");
                } else {
                    assembly {
                        revert(add(32, reason), mload(reason))
                    }
                }
            }
        } else {
            return true;
        }
    }


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


pragma solidity ^0.8.0;


abstract contract 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();
    }
}


pragma solidity >=0.7.0 <0.9.0;



contract Scary_Ghost is ERC721Enumerable, Ownable, RoyaltiesV2Impl {
  using Strings for uint256;

  string baseURI;
  string public baseExtension = ".json";
  uint256 public cost = 0.000 ether;
  uint256 public maxSupply = 1000;
  uint256 public maxMintAmount = 2;
  bool public paused = false;
  bool public revealed = true;
  string public notRevealedUri;

  bytes4 private constant _INTERFACE_ID_ERC2981 = 0x2a55205a;

  constructor(
    string memory _name,
    string memory _symbol,
    string memory _initBaseURI,
    string memory _initNotRevealedUri
  ) ERC721(_name, _symbol) {
    setBaseURI(_initBaseURI);
    setNotRevealedURI(_initNotRevealedUri);
  }



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


  function mint(uint256 _mintAmount) public payable {
    uint256 supply = totalSupply();
    require(!paused);
    require(_mintAmount > 0);
    require(_mintAmount <= maxMintAmount);
    require(supply + _mintAmount <= maxSupply);

    if (msg.sender != owner()) {
      require(msg.value >= cost * _mintAmount);
    }

    for (uint256 i = 1; i <= _mintAmount; i++) {
      _safeMint(msg.sender, supply + i);
    }
  }


  function walletOfOwner(address _owner)
    public
    view
    returns (uint256[] memory)
  {
    uint256 ownerTokenCount = balanceOf(_owner);
    uint256[] memory tokenIds = new uint256[](ownerTokenCount);
    for (uint256 i; i < ownerTokenCount; i++) {
      tokenIds[i] = tokenOfOwnerByIndex(_owner, i);
    }
    return tokenIds;
  }


  function tokenURI(uint256 tokenId)
    public
    view
    virtual
    override
    returns (string memory)
  {
    require(
      _exists(tokenId),
      "ERC721Metadata: URI query for nonexistent token"
    );
    
    if(revealed == false) {
        return notRevealedUri;
    }

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


  //only owner
  function reveal() public onlyOwner {
      revealed = true;
  }
  

  function setCost(uint256 _newCost) public onlyOwner {
    cost = _newCost;
  }


  function setmaxMintAmount(uint256 _newmaxMintAmount) public onlyOwner {
    maxMintAmount = _newmaxMintAmount;
  }
  

  function setNotRevealedURI(string memory _notRevealedURI) public onlyOwner {
    notRevealedUri = _notRevealedURI;
  }


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


  function setBaseExtension(string memory _newBaseExtension) public onlyOwner {
    baseExtension = _newBaseExtension;
  }


  function pause(bool _state) public onlyOwner {
    paused = _state;
  }
 

  function withdraw() public payable onlyOwner {
   
    (bool success, ) = payable(msg.sender).call{value: address(this).balance}("");
    require(success);
  }


    //Rar
    function setRoyalties(uint _tokenId, address payable _royaltiesRecipientAddress, uint96 _percentageBasisPoints) public onlyOwner {
        LibPart.Part[] memory _royalties = new LibPart.Part[](1);
        _royalties[0].value = _percentageBasisPoints;
        _royalties[0].account = _royaltiesRecipientAddress;
        _saveRoyalties(_tokenId, _royalties);
    }


    //2981 
    function royaltyInfo(uint256 _tokenId, uint256 _salePrice) external view returns (address receiver, uint256 royaltyAmount) {
      //use the same royalties that were saved for Rar
      LibPart.Part[] memory _royalties = royalties[_tokenId];
      if(_royalties.length > 0) {
        return (_royalties[0].account, (_salePrice * _royalties[0].value) / 10000);
      }
      return (address(0), 0);
    }


    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721Enumerable) returns (bool) {
        if(interfaceId == LibRoyaltiesV2._INTERFACE_ID_ROYALTIES) {
            return true;
        }

        if(interfaceId == _INTERFACE_ID_ERC2981) {
          return true;
        }

        return super.supportsInterface(interfaceId);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string","name":"_initBaseURI","type":"string"},{"internalType":"string","name":"_initNotRevealedUri","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"components":[{"internalType":"address payable","name":"account","type":"address"},{"internalType":"uint96","name":"value","type":"uint96"}],"indexed":false,"internalType":"struct LibPart.Part[]","name":"royalties","type":"tuple[]"}],"name":"RoyaltiesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseExtension","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getRaribleV2Royalties","outputs":[{"components":[{"internalType":"address payable","name":"account","type":"address"},{"internalType":"uint96","name":"value","type":"uint96"}],"internalType":"struct LibPart.Part[]","name":"","type":"tuple[]"}],"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":"maxMintAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notRevealedUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"royaltyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseExtension","type":"string"}],"name":"setBaseExtension","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newCost","type":"uint256"}],"name":"setCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_notRevealedURI","type":"string"}],"name":"setNotRevealedURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address payable","name":"_royaltiesRecipientAddress","type":"address"},{"internalType":"uint96","name":"_percentageBasisPoints","type":"uint96"}],"name":"setRoyalties","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newmaxMintAmount","type":"uint256"}],"name":"setmaxMintAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}]

60c06040526005608081905264173539b7b760d91b60a09081526200002891600d91906200020c565b506000600e556103e8600f5560026010556011805461ffff19166101001790553480156200005557600080fd5b506040516200323c3803806200323c83398101604081905262000078916200035d565b835184908490620000919060009060208501906200020c565b508051620000a79060019060208401906200020c565b505050620000c4620000be620000e460201b60201c565b620000e8565b620000cf826200013a565b620000da81620001a2565b5050505062000499565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62000144620000e4565b6001600160a01b031662000157620001fd565b6001600160a01b031614620001895760405162461bcd60e51b8152600401620001809062000411565b60405180910390fd5b80516200019e90600c9060208401906200020c565b5050565b620001ac620000e4565b6001600160a01b0316620001bf620001fd565b6001600160a01b031614620001e85760405162461bcd60e51b8152600401620001809062000411565b80516200019e9060129060208401906200020c565b600a546001600160a01b031690565b8280546200021a9062000446565b90600052602060002090601f0160209004810192826200023e576000855562000289565b82601f106200025957805160ff191683800117855562000289565b8280016001018555821562000289579182015b82811115620002895782518255916020019190600101906200026c565b50620002979291506200029b565b5090565b5b808211156200029757600081556001016200029c565b600082601f830112620002c3578081fd5b81516001600160401b0380821115620002e057620002e062000483565b6040516020601f8401601f191682018101838111838210171562000308576200030862000483565b60405283825285840181018710156200031f578485fd5b8492505b8383101562000342578583018101518284018201529182019162000323565b838311156200035357848185840101525b5095945050505050565b6000806000806080858703121562000373578384fd5b84516001600160401b03808211156200038a578586fd5b6200039888838901620002b2565b95506020870151915080821115620003ae578485fd5b620003bc88838901620002b2565b94506040870151915080821115620003d2578384fd5b620003e088838901620002b2565b93506060870151915080821115620003f6578283fd5b506200040587828801620002b2565b91505092959194509250565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6002810460018216806200045b57607f821691505b602082108114156200047d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b612d9380620004a96000396000f3fe6080604052600436106102305760003560e01c806355f804b31161012e578063a475b5dd116100ab578063d5abeb011161006f578063d5abeb0114610633578063da3ef23f14610648578063e985e9c514610668578063f2c4ce1e14610688578063f2fde38b146106a857610230565b8063a475b5dd1461059c578063b88d4fde146105b1578063c6682862146105d1578063c87b56dd146105e6578063cad96cca1461060657610230565b80637f00c7a6116100f25780637f00c7a61461051f5780638da5cb5b1461053f57806395d89b4114610554578063a0712d6814610569578063a22cb4651461057c57610230565b806355f804b3146104955780635c975abb146104b55780636352211e146104ca57806370a08231146104ea578063715018a61461050a57610230565b8063239c70ae116101bc57806342842e0e1161018057806342842e0e146103f3578063438b63001461041357806344a0d68a146104405780634f6ccce714610460578063518302271461048057610230565b8063239c70ae1461036857806323b872dd1461037d5780632a55205a1461039d5780632f745c59146103cb5780633ccfd60b146103eb57610230565b8063081c8c4411610203578063081c8c44146102dc578063095ea7b3146102f157806313faede614610311578063143094db1461033357806318160ddd1461035357610230565b806301ffc9a71461023557806302329a291461026b57806306fdde031461028d578063081812fc146102af575b600080fd5b34801561024157600080fd5b506102556102503660046122f2565b6106c8565b60405161026291906125fe565b60405180910390f35b34801561027757600080fd5b5061028b6102863660046122d8565b61071d565b005b34801561029957600080fd5b506102a2610778565b6040516102629190612609565b3480156102bb57600080fd5b506102cf6102ca366004612370565b61080a565b604051610262919061253d565b3480156102e857600080fd5b506102a261084d565b3480156102fd57600080fd5b5061028b61030c3660046122ad565b6108db565b34801561031d57600080fd5b50610326610973565b6040516102629190612bca565b34801561033f57600080fd5b5061028b61034e366004612388565b610979565b34801561035f57600080fd5b50610326610a7c565b34801561037457600080fd5b50610326610a82565b34801561038957600080fd5b5061028b6103983660046121bc565b610a88565b3480156103a957600080fd5b506103bd6103b83660046123d4565b610ac0565b60405161026292919061258e565b3480156103d757600080fd5b506103266103e63660046122ad565b610be2565b61028b610c34565b3480156103ff57600080fd5b5061028b61040e3660046121bc565b610cdf565b34801561041f57600080fd5b5061043361042e366004612168565b610cfa565b60405161026291906125ba565b34801561044c57600080fd5b5061028b61045b366004612370565b610db8565b34801561046c57600080fd5b5061032661047b366004612370565b610dfc565b34801561048c57600080fd5b50610255610e57565b3480156104a157600080fd5b5061028b6104b036600461232a565b610e65565b3480156104c157600080fd5b50610255610ebb565b3480156104d657600080fd5b506102cf6104e5366004612370565b610ec4565b3480156104f657600080fd5b50610326610505366004612168565b610ef9565b34801561051657600080fd5b5061028b610f3d565b34801561052b57600080fd5b5061028b61053a366004612370565b610f88565b34801561054b57600080fd5b506102cf610fcc565b34801561056057600080fd5b506102a2610fdb565b61028b610577366004612370565b610fea565b34801561058857600080fd5b5061028b610597366004612279565b6110a4565b3480156105a857600080fd5b5061028b6110b6565b3480156105bd57600080fd5b5061028b6105cc3660046121fc565b611106565b3480156105dd57600080fd5b506102a261113f565b3480156105f257600080fd5b506102a2610601366004612370565b61114c565b34801561061257600080fd5b50610626610621366004612370565b611273565b60405161026291906125a7565b34801561063f57600080fd5b50610326611302565b34801561065457600080fd5b5061028b61066336600461232a565b611308565b34801561067457600080fd5b50610255610683366004612184565b61135a565b34801561069457600080fd5b5061028b6106a336600461232a565b611388565b3480156106b457600080fd5b5061028b6106c3366004612168565b6113da565b60006001600160e01b0319821663656cb66560e11b14156106eb57506001610718565b6001600160e01b0319821663152a902d60e11b141561070c57506001610718565b61071582611448565b90505b919050565b61072561146d565b6001600160a01b0316610736610fcc565b6001600160a01b0316146107655760405162461bcd60e51b815260040161075c906129a3565b60405180910390fd5b6011805460ff1916911515919091179055565b60606000805461078790612c86565b80601f01602080910402602001604051908101604052809291908181526020018280546107b390612c86565b80156108005780601f106107d557610100808354040283529160200191610800565b820191906000526020600020905b8154815290600101906020018083116107e357829003601f168201915b5050505050905090565b600061081582611471565b6108315760405162461bcd60e51b815260040161075c90612957565b506000908152600460205260409020546001600160a01b031690565b6012805461085a90612c86565b80601f016020809104026020016040519081016040528092919081815260200182805461088690612c86565b80156108d35780601f106108a8576101008083540402835291602001916108d3565b820191906000526020600020905b8154815290600101906020018083116108b657829003601f168201915b505050505081565b60006108e682610ec4565b9050806001600160a01b0316836001600160a01b0316141561091a5760405162461bcd60e51b815260040161075c90612a70565b806001600160a01b031661092c61146d565b6001600160a01b0316148061094857506109488161068361146d565b6109645760405162461bcd60e51b815260040161075c90612832565b61096e838361148e565b505050565b600e5481565b61098161146d565b6001600160a01b0316610992610fcc565b6001600160a01b0316146109b85760405162461bcd60e51b815260040161075c906129a3565b604080516001808252818301909252600091816020015b6109d7612038565b8152602001906001900390816109cf5790505090508181600081518110610a0e57634e487b7160e01b600052603260045260246000fd5b6020026020010151602001906001600160601b031690816001600160601b0316815250508281600081518110610a5457634e487b7160e01b600052603260045260246000fd5b60209081029190910101516001600160a01b039091169052610a7684826114fc565b50505050565b60085490565b60105481565b610a99610a9361146d565b826116ca565b610ab55760405162461bcd60e51b815260040161075c90612ab1565b61096e83838361174f565b6000828152600b60209081526040808320805482518185028101850190935280835284938493929190849084015b82821015610b3d57600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b90046001600160601b031681830152825260019092019101610aee565b505050509050600081511115610bd25780600081518110610b6e57634e487b7160e01b600052603260045260246000fd5b60200260200101516000015161271082600081518110610b9e57634e487b7160e01b600052603260045260246000fd5b6020026020010151602001516001600160601b031686610bbe9190612c24565b610bc89190612c10565b9250925050610bdb565b60008092509250505b9250929050565b6000610bed83610ef9565b8210610c0b5760405162461bcd60e51b815260040161075c9061261c565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b610c3c61146d565b6001600160a01b0316610c4d610fcc565b6001600160a01b031614610c735760405162461bcd60e51b815260040161075c906129a3565b6000336001600160a01b031647604051610c8c9061253a565b60006040518083038185875af1925050503d8060008114610cc9576040519150601f19603f3d011682016040523d82523d6000602084013e610cce565b606091505b5050905080610cdc57600080fd5b50565b61096e83838360405180602001604052806000815250611106565b60606000610d0783610ef9565b905060008167ffffffffffffffff811115610d3257634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610d5b578160200160208202803683370190505b50905060005b82811015610db057610d738582610be2565b828281518110610d9357634e487b7160e01b600052603260045260246000fd5b602090810291909101015280610da881612cc1565b915050610d61565b509392505050565b610dc061146d565b6001600160a01b0316610dd1610fcc565b6001600160a01b031614610df75760405162461bcd60e51b815260040161075c906129a3565b600e55565b6000610e06610a7c565b8210610e245760405162461bcd60e51b815260040161075c90612b02565b60088281548110610e4557634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b601154610100900460ff1681565b610e6d61146d565b6001600160a01b0316610e7e610fcc565b6001600160a01b031614610ea45760405162461bcd60e51b815260040161075c906129a3565b8051610eb790600c90602084019061204f565b5050565b60115460ff1681565b6000818152600260205260408120546001600160a01b0316806107155760405162461bcd60e51b815260040161075c906128d9565b60006001600160a01b038216610f215760405162461bcd60e51b815260040161075c9061288f565b506001600160a01b031660009081526003602052604090205490565b610f4561146d565b6001600160a01b0316610f56610fcc565b6001600160a01b031614610f7c5760405162461bcd60e51b815260040161075c906129a3565b610f86600061187c565b565b610f9061146d565b6001600160a01b0316610fa1610fcc565b6001600160a01b031614610fc75760405162461bcd60e51b815260040161075c906129a3565b601055565b600a546001600160a01b031690565b60606001805461078790612c86565b6000610ff4610a7c565b60115490915060ff161561100757600080fd5b6000821161101457600080fd5b60105482111561102357600080fd5b600f546110308383612bf8565b111561103b57600080fd5b611043610fcc565b6001600160a01b0316336001600160a01b0316146110755781600e546110699190612c24565b34101561107557600080fd5b60015b82811161096e576110923361108d8385612bf8565b6118ce565b8061109c81612cc1565b915050611078565b610eb76110af61146d565b83836118e8565b6110be61146d565b6001600160a01b03166110cf610fcc565b6001600160a01b0316146110f55760405162461bcd60e51b815260040161075c906129a3565b6011805461ff001916610100179055565b61111761111161146d565b836116ca565b6111335760405162461bcd60e51b815260040161075c90612ab1565b610a768484848461198b565b600d805461085a90612c86565b606061115782611471565b6111735760405162461bcd60e51b815260040161075c90612a21565b601154610100900460ff16611214576012805461118f90612c86565b80601f01602080910402602001604051908101604052809291908181526020018280546111bb90612c86565b80156112085780601f106111dd57610100808354040283529160200191611208565b820191906000526020600020905b8154815290600101906020018083116111eb57829003601f168201915b50505050509050610718565b600061121e6119be565b9050600081511161123e576040518060200160405280600081525061126c565b80611248846119cd565b600d60405160200161125c93929190612478565b6040516020818303038152906040525b9392505050565b6060600b6000838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156112f757600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b90046001600160601b0316818301528252600190920191016112a8565b505050509050919050565b600f5481565b61131061146d565b6001600160a01b0316611321610fcc565b6001600160a01b0316146113475760405162461bcd60e51b815260040161075c906129a3565b8051610eb790600d90602084019061204f565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61139061146d565b6001600160a01b03166113a1610fcc565b6001600160a01b0316146113c75760405162461bcd60e51b815260040161075c906129a3565b8051610eb790601290602084019061204f565b6113e261146d565b6001600160a01b03166113f3610fcc565b6001600160a01b0316146114195760405162461bcd60e51b815260040161075c906129a3565b6001600160a01b03811661143f5760405162461bcd60e51b815260040161075c906126b9565b610cdc8161187c565b60006001600160e01b0319821663780e9d6360e01b1480610715575061071582611ae8565b3390565b6000908152600260205260409020546001600160a01b0316151590565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906114c382610ec4565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000805b825181101561169e5760006001600160a01b031683828151811061153457634e487b7160e01b600052603260045260246000fd5b6020026020010151600001516001600160a01b031614156115675760405162461bcd60e51b815260040161075c90612b93565b82818151811061158757634e487b7160e01b600052603260045260246000fd5b6020026020010151602001516001600160601b0316600014156115bc5760405162461bcd60e51b815260040161075c906127fd565b8281815181106115dc57634e487b7160e01b600052603260045260246000fd5b6020026020010151602001516001600160601b0316826115fc9190612bf8565b9150600b600085815260200190815260200160002083828151811061163157634e487b7160e01b600052603260045260246000fd5b602090810291909101810151825460018101845560009384529282902081519301805491909201516001600160601b0316600160a01b026001600160a01b039384166001600160a01b0319909216919091179092169190911790558061169681612cc1565b915050611500565b5061271081106116c05760405162461bcd60e51b815260040161075c90612b4e565b61096e8383611b28565b60006116d582611471565b6116f15760405162461bcd60e51b815260040161075c906127b1565b60006116fc83610ec4565b9050806001600160a01b0316846001600160a01b031614806117375750836001600160a01b031661172c8461080a565b6001600160a01b0316145b806117475750611747818561135a565b949350505050565b826001600160a01b031661176282610ec4565b6001600160a01b0316146117885760405162461bcd60e51b815260040161075c906129d8565b6001600160a01b0382166117ae5760405162461bcd60e51b815260040161075c90612736565b6117b9838383611b65565b6117c460008261148e565b6001600160a01b03831660009081526003602052604081208054600192906117ed908490612c43565b90915550506001600160a01b038216600090815260036020526040812080546001929061181b908490612bf8565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610eb7828260405180602001604052806000815250611bee565b816001600160a01b0316836001600160a01b0316141561191a5760405162461bcd60e51b815260040161075c9061277a565b6001600160a01b0383811660008181526005602090815260408083209487168084529490915290819020805460ff1916851515179055517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319061197e9085906125fe565b60405180910390a3505050565b61199684848461174f565b6119a284848484611c21565b610a765760405162461bcd60e51b815260040161075c90612667565b6060600c805461078790612c86565b6060816119f257506040805180820190915260018152600360fc1b6020820152610718565b8160005b8115611a1c5780611a0681612cc1565b9150611a159050600a83612c10565b91506119f6565b60008167ffffffffffffffff811115611a4557634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611a6f576020820181803683370190505b5090505b841561174757611a84600183612c43565b9150611a91600a86612cdc565b611a9c906030612bf8565b60f81b818381518110611abf57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611ae1600a86612c10565b9450611a73565b60006001600160e01b031982166380ac58cd60e01b1480611b1957506001600160e01b03198216635b5e139f60e01b145b80610715575061071582611d3c565b7f3fa96d7b6bcbfe71ef171666d84db3cf52fa2d1c8afdb1cc8e486177f208b7df8282604051611b59929190612bd3565b60405180910390a15050565b611b7083838361096e565b6001600160a01b038316611b8c57611b8781611d55565b611baf565b816001600160a01b0316836001600160a01b031614611baf57611baf8382611d99565b6001600160a01b038216611bcb57611bc681611e36565b61096e565b826001600160a01b0316826001600160a01b03161461096e5761096e8282611f0f565b611bf88383611f53565b611c056000848484611c21565b61096e5760405162461bcd60e51b815260040161075c90612667565b6000611c35846001600160a01b0316612032565b15611d3157836001600160a01b031663150b7a02611c5161146d565b8786866040518563ffffffff1660e01b8152600401611c739493929190612551565b602060405180830381600087803b158015611c8d57600080fd5b505af1925050508015611cbd575060408051601f3d908101601f19168201909252611cba9181019061230e565b60015b611d17573d808015611ceb576040519150601f19603f3d011682016040523d82523d6000602084013e611cf0565b606091505b508051611d0f5760405162461bcd60e51b815260040161075c90612667565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611747565b506001949350505050565b6001600160e01b031981166301ffc9a760e01b14919050565b600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b60006001611da684610ef9565b611db09190612c43565b600083815260076020526040902054909150808214611e03576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611e4890600190612c43565b60008381526009602052604081205460088054939450909284908110611e7e57634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508060088381548110611ead57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480611ef357634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000611f1a83610ef9565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160a01b038216611f795760405162461bcd60e51b815260040161075c90612922565b611f8281611471565b15611f9f5760405162461bcd60e51b815260040161075c906126ff565b611fab60008383611b65565b6001600160a01b0382166000908152600360205260408120805460019290611fd4908490612bf8565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b3b151590565b604080518082019091526000808252602082015290565b82805461205b90612c86565b90600052602060002090601f01602090048101928261207d57600085556120c3565b82601f1061209657805160ff19168380011785556120c3565b828001600101855582156120c3579182015b828111156120c35782518255916020019190600101906120a8565b506120cf9291506120d3565b5090565b5b808211156120cf57600081556001016120d4565b600067ffffffffffffffff8084111561210357612103612d1c565b604051601f8501601f19168101602001828111828210171561212757612127612d1c565b60405284815291508183850186101561213f57600080fd5b8484602083013760006020868301015250509392505050565b8035801515811461071857600080fd5b600060208284031215612179578081fd5b813561126c81612d32565b60008060408385031215612196578081fd5b82356121a181612d32565b915060208301356121b181612d32565b809150509250929050565b6000806000606084860312156121d0578081fd5b83356121db81612d32565b925060208401356121eb81612d32565b929592945050506040919091013590565b60008060008060808587031215612211578081fd5b843561221c81612d32565b9350602085013561222c81612d32565b925060408501359150606085013567ffffffffffffffff81111561224e578182fd5b8501601f8101871361225e578182fd5b61226d878235602084016120e8565b91505092959194509250565b6000806040838503121561228b578182fd5b823561229681612d32565b91506122a460208401612158565b90509250929050565b600080604083850312156122bf578182fd5b82356122ca81612d32565b946020939093013593505050565b6000602082840312156122e9578081fd5b61126c82612158565b600060208284031215612303578081fd5b813561126c81612d47565b60006020828403121561231f578081fd5b815161126c81612d47565b60006020828403121561233b578081fd5b813567ffffffffffffffff811115612351578182fd5b8201601f81018413612361578182fd5b611747848235602084016120e8565b600060208284031215612381578081fd5b5035919050565b60008060006060848603121561239c578283fd5b8335925060208401356123ae81612d32565b915060408401356001600160601b03811681146123c9578182fd5b809150509250925092565b600080604083850312156123e6578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b8381101561244157815180516001600160a01b031688528301516001600160601b03168388015260409096019590820190600101612408565b509495945050505050565b60008151808452612464816020860160208601612c5a565b601f01601f19169290920160200192915050565b60008451602061248b8285838a01612c5a565b85519184019161249e8184848a01612c5a565b85549201918390600281046001808316806124ba57607f831692505b8583108114156124d857634e487b7160e01b88526022600452602488fd5b8080156124ec57600181146124fd57612529565b60ff19851688528388019550612529565b6125068b612bec565b895b858110156125215781548a820152908401908801612508565b505083880195505b50939b9a5050505050505050505050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906125849083018461244c565b9695505050505050565b6001600160a01b03929092168252602082015260400190565b60006020825261126c60208301846123f5565b6020808252825182820181905260009190848201906040850190845b818110156125f2578351835292840192918401916001016125d6565b50909695505050505050565b901515815260200190565b60006020825261126c602083018461244c565b6020808252602b908201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201526a74206f6620626f756e647360a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f526f79616c74792076616c75652073686f756c6420626520706f736974697665604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201526839903737ba1037bbb760b91b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252602c908201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60408201526b7574206f6620626f756e647360a01b606082015260800190565b60208082526025908201527f526f79616c747920746f74616c2076616c75652073686f756c64206265203c20604082015264031303030360dc1b606082015260800190565b6020808252601b908201527f526563697069656e742073686f756c642062652070726573656e740000000000604082015260600190565b90815260200190565b60008382526040602083015261174760408301846123f5565b60009081526020902090565b60008219821115612c0b57612c0b612cf0565b500190565b600082612c1f57612c1f612d06565b500490565b6000816000190483118215151615612c3e57612c3e612cf0565b500290565b600082821015612c5557612c55612cf0565b500390565b60005b83811015612c75578181015183820152602001612c5d565b83811115610a765750506000910152565b600281046001821680612c9a57607f821691505b60208210811415612cbb57634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612cd557612cd5612cf0565b5060010190565b600082612ceb57612ceb612d06565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610cdc57600080fd5b6001600160e01b031981168114610cdc57600080fdfea264697066735822122058932e2eb8a1b8e80c83617417cbb0d4ca11dcc1353fa18be445d375bd2d20ca64736f6c63430008000033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000b53636172795f47686f7374000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000547484f53540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d595a635664324d6e646f763456536139724b58785251397458745459454a6150375548443552625071384c392f00000000000000000000000000000000000000000000000000000000000000000000000000000000003c697066733a2f2f516d59546a44716a79785577516b39543858414d6f5a554e71703363484b545a523253696d6f6f575a52794e4e432f312e6a736f6e00000000

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000b53636172795f47686f7374000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000547484f53540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d595a635664324d6e646f763456536139724b58785251397458745459454a6150375548443552625071384c392f00000000000000000000000000000000000000000000000000000000000000000000000000000000003c697066733a2f2f516d59546a44716a79785577516b39543858414d6f5a554e71703363484b545a523253696d6f6f575a52794e4e432f312e6a736f6e00000000

-----Decoded View---------------
Arg [0] : _name (string): Scary_Ghost
Arg [1] : _symbol (string): GHOST
Arg [2] : _initBaseURI (string): ipfs://QmYZcVd2Mndov4VSa9rKXxRQ9tXtTYEJaP7UHD5RbPq8L9/
Arg [3] : _initNotRevealedUri (string): ipfs://QmYTjDqjyxUwQk9T8XAMoZUNqp3cHKTZR2SimooWZRyNNC/1.json

-----Encoded View---------------
14 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [5] : 53636172795f47686f7374000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 47484f5354000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000036
Arg [9] : 697066733a2f2f516d595a635664324d6e646f763456536139724b5878525139
Arg [10] : 7458745459454a6150375548443552625071384c392f00000000000000000000
Arg [11] : 000000000000000000000000000000000000000000000000000000000000003c
Arg [12] : 697066733a2f2f516d59546a44716a79785577516b39543858414d6f5a554e71
Arg [13] : 703363484b545a523253696d6f6f575a52794e4e432f312e6a736f6e00000000


Deployed ByteCode Sourcemap

22379:4228:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26234:368;;;;;;;;;;-1:-1:-1;26234:368:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25158:73;;;;;;;;;;-1:-1:-1;25158:73:0;;;;;:::i;:::-;;:::i;:::-;;12631:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13724:221::-;;;;;;;;;;-1:-1:-1;13724:221:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;22718:28::-;;;;;;;;;;;;;:::i;13303:411::-;;;;;;;;;;-1:-1:-1;13303:411:0;;;;;:::i;:::-;;:::i;22544:33::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;25424:367::-;;;;;;;;;;-1:-1:-1;25424:367:0;;;;;:::i;:::-;;:::i;19957:113::-;;;;;;;;;;;;;:::i;22618:32::-;;;;;;;;;;;;;:::i;14294:288::-;;;;;;;;;;-1:-1:-1;14294:288:0;;;;;:::i;:::-;;:::i;25814:410::-;;;;;;;;;;-1:-1:-1;25814:410:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;19691:256::-;;;;;;;;;;-1:-1:-1;19691:256:0;;;;;:::i;:::-;;:::i;25240:163::-;;;:::i;14590:185::-;;;;;;;;;;-1:-1:-1;14590:185:0;;;;;:::i;:::-;;:::i;23628:348::-;;;;;;;;;;-1:-1:-1;23628:348:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;24580:80::-;;;;;;;;;;-1:-1:-1;24580:80:0;;;;;:::i;:::-;;:::i;20080:233::-;;;;;;;;;;-1:-1:-1;20080:233:0;;;;;:::i;:::-;;:::i;22686:27::-;;;;;;;;;;;;;:::i;24922:98::-;;;;;;;;;;-1:-1:-1;24922:98:0;;;;;:::i;:::-;;:::i;22655:26::-;;;;;;;;;;;;;:::i;12382:239::-;;;;;;;;;;-1:-1:-1;12382:239:0;;;;;:::i;:::-;;:::i;12164:208::-;;;;;;;;;;-1:-1:-1;12164:208:0;;;;;:::i;:::-;;:::i;4541:103::-;;;;;;;;;;;;;:::i;24668:116::-;;;;;;;;;;-1:-1:-1;24668:116:0;;;;;:::i;:::-;;:::i;4316:87::-;;;;;;;;;;;;;:::i;12741:104::-;;;;;;;;;;;;;:::i;23187:433::-;;;;;;:::i;:::-;;:::i;13955:155::-;;;;;;;;;;-1:-1:-1;13955:155:0;;;;;:::i;:::-;;:::i;24505:65::-;;;;;;;;;;;;;:::i;14785:328::-;;;;;;;;;;-1:-1:-1;14785:328:0;;;;;:::i;:::-;;:::i;22502:37::-;;;;;;;;;;;;;:::i;23984:497::-;;;;;;;;;;-1:-1:-1;23984:497:0;;;;;:::i;:::-;;:::i;2005:137::-;;;;;;;;;;-1:-1:-1;2005:137:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;22582:31::-;;;;;;;;;;;;;:::i;25028:122::-;;;;;;;;;;-1:-1:-1;25028:122:0;;;;;:::i;:::-;;:::i;14120:164::-;;;;;;;;;;-1:-1:-1;14120:164:0;;;;;:::i;:::-;;:::i;24794:120::-;;;;;;;;;;-1:-1:-1;24794:120:0;;;;;:::i;:::-;;:::i;4654:201::-;;;;;;;;;;-1:-1:-1;4654:201:0;;;;;:::i;:::-;;:::i;26234:368::-;26337:4;-1:-1:-1;;;;;;26357:53:0;;-1:-1:-1;;;26357:53:0;26354:96;;;-1:-1:-1;26434:4:0;26427:11;;26354:96;-1:-1:-1;;;;;;26465:36:0;;-1:-1:-1;;;26465:36:0;26462:77;;;-1:-1:-1;26523:4:0;26516:11;;26462:77;26558:36;26582:11;26558:23;:36::i;:::-;26551:43;;26234:368;;;;:::o;25158:73::-;4462:12;:10;:12::i;:::-;-1:-1:-1;;;;;4451:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4451:23:0;;4443:68;;;;-1:-1:-1;;;4443:68:0;;;;;;;:::i;:::-;;;;;;;;;25210:6:::1;:15:::0;;-1:-1:-1;;25210:15:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25158:73::o;12631:100::-;12685:13;12718:5;12711:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12631:100;:::o;13724:221::-;13800:7;13828:16;13836:7;13828;:16::i;:::-;13820:73;;;;-1:-1:-1;;;13820:73:0;;;;;;;:::i;:::-;-1:-1:-1;13913:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;13913:24:0;;13724:221::o;22718:28::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13303:411::-;13384:13;13400:23;13415:7;13400:14;:23::i;:::-;13384:39;;13448:5;-1:-1:-1;;;;;13442:11:0;:2;-1:-1:-1;;;;;13442:11:0;;;13434:57;;;;-1:-1:-1;;;13434:57:0;;;;;;;:::i;:::-;13542:5;-1:-1:-1;;;;;13526:21:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;13526:21:0;;:62;;;;13551:37;13568:5;13575:12;:10;:12::i;13551:37::-;13504:168;;;;-1:-1:-1;;;13504:168:0;;;;;;;:::i;:::-;13685:21;13694:2;13698:7;13685:8;:21::i;:::-;13303:411;;;:::o;22544:33::-;;;;:::o;25424:367::-;4462:12;:10;:12::i;:::-;-1:-1:-1;;;;;4451:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4451:23:0;;4443:68;;;;-1:-1:-1;;;4443:68:0;;;;;;;:::i;:::-;25599:21:::1;::::0;;25618:1:::1;25599:21:::0;;;;;::::1;::::0;;;25564:32:::1;::::0;25599:21:::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;25564:56;;25653:22;25631:10;25642:1;25631:13;;;;;;-1:-1:-1::0;;;25631:13:0::1;;;;;;;;;;;;;;;:19;;:44;-1:-1:-1::0;;;;;25631:44:0::1;;;-1:-1:-1::0;;;;;25631:44:0::1;;;::::0;::::1;25710:26;25686:10;25697:1;25686:13;;;;;;-1:-1:-1::0;;;25686:13:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;25686:50:0;;::::1;::::0;;25747:36:::1;25762:8:::0;25772:10;25747:14:::1;:36::i;:::-;4522:1;25424:367:::0;;;:::o;19957:113::-;20045:10;:17;19957:113;:::o;22618:32::-;;;;:::o;14294:288::-;14438:41;14457:12;:10;:12::i;:::-;14471:7;14438:18;:41::i;:::-;14430:103;;;;-1:-1:-1;;;14430:103:0;;;;;;;:::i;:::-;14546:28;14556:4;14562:2;14566:7;14546:9;:28::i;25814:410::-;25896:16;26037:19;;;:9;:19;;;;;;;;26002:54;;;;;;;;;;;;;;;;;25896:16;;;;26002:54;26037:19;26002:54;25896:16;;26002:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26002:54:0;;;;-1:-1:-1;;;26002:54:0;;-1:-1:-1;;;;;26002:54:0;;;;;;;;;;;;;;;;;;;;;;26088:1;26068:10;:17;:21;26065:121;;;26110:10;26121:1;26110:13;;;;;;-1:-1:-1;;;26110:13:0;;;;;;;;;;;;;;;:21;;;26170:5;26147:10;26158:1;26147:13;;;;;;-1:-1:-1;;;26147:13:0;;;;;;;;;;;;;;;:19;;;-1:-1:-1;;;;;26134:32:0;:10;:32;;;;:::i;:::-;26133:42;;;;:::i;:::-;26102:74;;;;;;;26065:121;26210:1;26214;26194:22;;;;;25814:410;;;;;;:::o;19691:256::-;19788:7;19824:23;19841:5;19824:16;:23::i;:::-;19816:5;:31;19808:87;;;;-1:-1:-1;;;19808:87:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;19913:19:0;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;19691:256::o;25240:163::-;4462:12;:10;:12::i;:::-;-1:-1:-1;;;;;4451:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4451:23:0;;4443:68;;;;-1:-1:-1;;;4443:68:0;;;;;;;:::i;:::-;25298:12:::1;25324:10;-1:-1:-1::0;;;;;25316:24:0::1;25348:21;25316:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25297:77;;;25389:7;25381:16;;;::::0;::::1;;4522:1;25240:163::o:0;14590:185::-;14728:39;14745:4;14751:2;14755:7;14728:39;;;;;;;;;;;;:16;:39::i;23628:348::-;23703:16;23731:23;23757:17;23767:6;23757:9;:17::i;:::-;23731:43;;23781:25;23823:15;23809:30;;;;;;-1:-1:-1;;;23809:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23809:30:0;;23781:58;;23851:9;23846:103;23866:15;23862:1;:19;23846:103;;;23911:30;23931:6;23939:1;23911:19;:30::i;:::-;23897:8;23906:1;23897:11;;;;;;-1:-1:-1;;;23897:11:0;;;;;;;;;;;;;;;;;;:44;23883:3;;;;:::i;:::-;;;;23846:103;;;-1:-1:-1;23962:8:0;23628:348;-1:-1:-1;;;23628:348:0:o;24580:80::-;4462:12;:10;:12::i;:::-;-1:-1:-1;;;;;4451:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4451:23:0;;4443:68;;;;-1:-1:-1;;;4443:68:0;;;;;;;:::i;:::-;24639:4:::1;:15:::0;24580:80::o;20080:233::-;20155:7;20191:30;:28;:30::i;:::-;20183:5;:38;20175:95;;;;-1:-1:-1;;;20175:95:0;;;;;;;:::i;:::-;20288:10;20299:5;20288:17;;;;;;-1:-1:-1;;;20288:17:0;;;;;;;;;;;;;;;;;20281:24;;20080:233;;;:::o;22686:27::-;;;;;;;;;:::o;24922:98::-;4462:12;:10;:12::i;:::-;-1:-1:-1;;;;;4451:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4451:23:0;;4443:68;;;;-1:-1:-1;;;4443:68:0;;;;;;;:::i;:::-;24993:21;;::::1;::::0;:7:::1;::::0;:21:::1;::::0;::::1;::::0;::::1;:::i;:::-;;24922:98:::0;:::o;22655:26::-;;;;;;:::o;12382:239::-;12454:7;12490:16;;;:7;:16;;;;;;-1:-1:-1;;;;;12490:16:0;12525:19;12517:73;;;;-1:-1:-1;;;12517:73:0;;;;;;;:::i;12164:208::-;12236:7;-1:-1:-1;;;;;12264:19:0;;12256:74;;;;-1:-1:-1;;;12256:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;12348:16:0;;;;;:9;:16;;;;;;;12164:208::o;4541:103::-;4462:12;:10;:12::i;:::-;-1:-1:-1;;;;;4451:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4451:23:0;;4443:68;;;;-1:-1:-1;;;4443:68:0;;;;;;;:::i;:::-;4606:30:::1;4633:1;4606:18;:30::i;:::-;4541:103::o:0;24668:116::-;4462:12;:10;:12::i;:::-;-1:-1:-1;;;;;4451:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4451:23:0;;4443:68;;;;-1:-1:-1;;;4443:68:0;;;;;;;:::i;:::-;24745:13:::1;:33:::0;24668:116::o;4316:87::-;4389:6;;-1:-1:-1;;;;;4389:6:0;4316:87;:::o;12741:104::-;12797:13;12830:7;12823:14;;;;;:::i;23187:433::-;23244:14;23261:13;:11;:13::i;:::-;23290:6;;23244:30;;-1:-1:-1;23290:6:0;;23289:7;23281:16;;;;;;23326:1;23312:11;:15;23304:24;;;;;;23358:13;;23343:11;:28;;23335:37;;;;;;23411:9;;23387:20;23396:11;23387:6;:20;:::i;:::-;:33;;23379:42;;;;;;23448:7;:5;:7::i;:::-;-1:-1:-1;;;;;23434:21:0;:10;-1:-1:-1;;;;;23434:21:0;;23430:84;;23494:11;23487:4;;:18;;;;:::i;:::-;23474:9;:31;;23466:40;;;;;;23539:1;23522:93;23547:11;23542:1;:16;23522:93;;23574:33;23584:10;23596;23605:1;23596:6;:10;:::i;:::-;23574:9;:33::i;:::-;23560:3;;;;:::i;:::-;;;;23522:93;;13955:155;14050:52;14069:12;:10;:12::i;:::-;14083:8;14093;14050:18;:52::i;24505:65::-;4462:12;:10;:12::i;:::-;-1:-1:-1;;;;;4451:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4451:23:0;;4443:68;;;;-1:-1:-1;;;4443:68:0;;;;;;;:::i;:::-;24549:8:::1;:15:::0;;-1:-1:-1;;24549:15:0::1;;;::::0;;24505:65::o;14785:328::-;14960:41;14979:12;:10;:12::i;:::-;14993:7;14960:18;:41::i;:::-;14952:103;;;;-1:-1:-1;;;14952:103:0;;;;;;;:::i;:::-;15066:39;15080:4;15086:2;15090:7;15099:5;15066:13;:39::i;22502:37::-;;;;;;;:::i;23984:497::-;24082:13;24123:16;24131:7;24123;:16::i;:::-;24107:97;;;;-1:-1:-1;;;24107:97:0;;;;;;;:::i;:::-;24220:8;;;;;;;24217:62;;24257:14;24250:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24217:62;24287:28;24318:10;:8;:10::i;:::-;24287:41;;24373:1;24348:14;24342:28;:32;:133;;;;;;;;;;;;;;;;;24410:14;24426:18;:7;:16;:18::i;:::-;24446:13;24393:67;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;24342:133;24335:140;23984:497;-1:-1:-1;;;23984:497:0:o;2005:137::-;2080:21;2121:9;:13;2131:2;2121:13;;;;;;;;;;;2114:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2114:20:0;;;;-1:-1:-1;;;2114:20:0;;-1:-1:-1;;;;;2114:20:0;;;;;;;;;;;;;;;;;;;;;;2005:137;;;:::o;22582:31::-;;;;:::o;25028:122::-;4462:12;:10;:12::i;:::-;-1:-1:-1;;;;;4451:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4451:23:0;;4443:68;;;;-1:-1:-1;;;4443:68:0;;;;;;;:::i;:::-;25111:33;;::::1;::::0;:13:::1;::::0;:33:::1;::::0;::::1;::::0;::::1;:::i;14120:164::-:0;-1:-1:-1;;;;;14241:25:0;;;14217:4;14241:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;14120:164::o;24794:120::-;4462:12;:10;:12::i;:::-;-1:-1:-1;;;;;4451:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4451:23:0;;4443:68;;;;-1:-1:-1;;;4443:68:0;;;;;;;:::i;:::-;24876:32;;::::1;::::0;:14:::1;::::0;:32:::1;::::0;::::1;::::0;::::1;:::i;4654:201::-:0;4462:12;:10;:12::i;:::-;-1:-1:-1;;;;;4451:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4451:23:0;;4443:68;;;;-1:-1:-1;;;4443:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4743:22:0;::::1;4735:73;;;;-1:-1:-1::0;;;4735:73:0::1;;;;;;;:::i;:::-;4819:28;4838:8;4819:18;:28::i;19457:224::-:0;19559:4;-1:-1:-1;;;;;;19583:50:0;;-1:-1:-1;;;19583:50:0;;:90;;;19637:36;19661:11;19637:23;:36::i;3833:98::-;3913:10;3833:98;:::o;15448:127::-;15513:4;15537:16;;;:7;:16;;;;;;-1:-1:-1;;;;;15537:16:0;:30;;;15448:127::o;17664:174::-;17739:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;17739:29:0;-1:-1:-1;;;;;17739:29:0;;;;;;;;:24;;17793:23;17739:24;17793:14;:23::i;:::-;-1:-1:-1;;;;;17784:46:0;;;;;;;;;;;17664:174;;:::o;889:576::-;979:18;;1008:329;1029:10;:17;1025:1;:21;1008:329;;;1109:3;-1:-1:-1;;;;;1076:37:0;:10;1087:1;1076:13;;;;;;-1:-1:-1;;;1076:13:0;;;;;;;;;;;;;;;:21;;;-1:-1:-1;;;;;1076:37:0;;;1068:77;;;;-1:-1:-1;;;1068:77:0;;;;;;;:::i;:::-;1168:10;1179:1;1168:13;;;;;;-1:-1:-1;;;1168:13:0;;;;;;;;;;;;;;;:19;;;-1:-1:-1;;;;;1168:24:0;1191:1;1168:24;;1160:69;;;;-1:-1:-1;;;1160:69:0;;;;;;;:::i;:::-;1258:10;1269:1;1258:13;;;;;;-1:-1:-1;;;1258:13:0;;;;;;;;;;;;;;;:19;;;-1:-1:-1;;;;;1244:33:0;;;;;;:::i;:::-;;;1292:9;:13;1302:2;1292:13;;;;;;;;;;;1311:10;1322:1;1311:13;;;;;;-1:-1:-1;;;1311:13:0;;;;;;;;;;;;;;;;;;;;1292:33;;;;;;;-1:-1:-1;1292:33:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1292:33:0;-1:-1:-1;;;1292:33:0;-1:-1:-1;;;;;1292:33:0;;;-1:-1:-1;;;;;;1292:33:0;;;;;;;;;;;;;;;;1048:3;;;;:::i;:::-;;;;1008:329;;;;1368:5;1355:10;:18;1347:68;;;;-1:-1:-1;;;1347:68:0;;;;;;;:::i;:::-;1426:31;1442:2;1446:10;1426:15;:31::i;15585:348::-;15678:4;15703:16;15711:7;15703;:16::i;:::-;15695:73;;;;-1:-1:-1;;;15695:73:0;;;;;;;:::i;:::-;15779:13;15795:23;15810:7;15795:14;:23::i;:::-;15779:39;;15848:5;-1:-1:-1;;;;;15837:16:0;:7;-1:-1:-1;;;;;15837:16:0;;:51;;;;15881:7;-1:-1:-1;;;;;15857:31:0;:20;15869:7;15857:11;:20::i;:::-;-1:-1:-1;;;;;15857:31:0;;15837:51;:87;;;;15892:32;15909:5;15916:7;15892:16;:32::i;:::-;15829:96;15585:348;-1:-1:-1;;;;15585:348:0:o;17128:526::-;17287:4;-1:-1:-1;;;;;17260:31:0;:23;17275:7;17260:14;:23::i;:::-;-1:-1:-1;;;;;17260:31:0;;17252:85;;;;-1:-1:-1;;;17252:85:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17356:16:0;;17348:65;;;;-1:-1:-1;;;17348:65:0;;;;;;;:::i;:::-;17426:39;17447:4;17453:2;17457:7;17426:20;:39::i;:::-;17478:29;17495:1;17499:7;17478:8;:29::i;:::-;-1:-1:-1;;;;;17520:15:0;;;;;;:9;:15;;;;;:20;;17539:1;;17520:15;:20;;17539:1;;17520:20;:::i;:::-;;;;-1:-1:-1;;;;;;;17551:13:0;;;;;;:9;:13;;;;;:18;;17568:1;;17551:13;:18;;17568:1;;17551:18;:::i;:::-;;;;-1:-1:-1;;17580:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;17580:21:0;-1:-1:-1;;;;;17580:21:0;;;;;;;;;17619:27;;17580:16;;17619:27;;;;;;;17128:526;;;:::o;4865:191::-;4958:6;;;-1:-1:-1;;;;;4975:17:0;;;-1:-1:-1;;;;;;4975:17:0;;;;;;;5008:40;;4958:6;;;4975:17;4958:6;;5008:40;;4939:16;;5008:40;4865:191;;:::o;15943:110::-;16019:26;16029:2;16033:7;16019:26;;;;;;;;;;;;:9;:26::i;17848:315::-;18003:8;-1:-1:-1;;;;;17994:17:0;:5;-1:-1:-1;;;;;17994:17:0;;;17986:55;;;;-1:-1:-1;;;17986:55:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18052:25:0;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;:46;;-1:-1:-1;;18052:46:0;;;;;;;18114:41;;;;;18052:46;;18114:41;:::i;:::-;;;;;;;;17848:315;;;:::o;15123:::-;15280:28;15290:4;15296:2;15300:7;15280:9;:28::i;:::-;15327:48;15350:4;15356:2;15360:7;15369:5;15327:22;:48::i;:::-;15319:111;;;;-1:-1:-1;;;15319:111:0;;;;;;;:::i;23077:102::-;23137:13;23166:7;23159:14;;;;;:::i;2419:534::-;2475:13;2507:10;2503:53;;-1:-1:-1;2534:10:0;;;;;;;;;;;;-1:-1:-1;;;2534:10:0;;;;;;2503:53;2581:5;2566:12;2622:78;2629:9;;2622:78;;2655:8;;;;:::i;:::-;;-1:-1:-1;2678:10:0;;-1:-1:-1;2686:2:0;2678:10;;:::i;:::-;;;2622:78;;;2710:19;2742:6;2732:17;;;;;;-1:-1:-1;;;2732:17:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2732:17:0;;2710:39;;2760:154;2767:10;;2760:154;;2794:11;2804:1;2794:11;;:::i;:::-;;-1:-1:-1;2863:10:0;2871:2;2863:5;:10;:::i;:::-;2850:24;;:2;:24;:::i;:::-;2837:39;;2820:6;2827;2820:14;;;;;;-1:-1:-1;;;2820:14:0;;;;;;;;;;;;:56;-1:-1:-1;;;;;2820:56:0;;;;;;;;-1:-1:-1;2891:11:0;2900:2;2891:11;;:::i;:::-;;;2760:154;;11849:305;11951:4;-1:-1:-1;;;;;;11988:40:0;;-1:-1:-1;;;11988:40:0;;:105;;-1:-1:-1;;;;;;;12045:48:0;;-1:-1:-1;;;12045:48:0;11988:105;:158;;;;12110:36;12134:11;12110:23;:36::i;2152:141::-;2257:28;2270:2;2274:10;2257:28;;;;;;;:::i;:::-;;;;;;;;2152:141;;:::o;20323:589::-;20467:45;20494:4;20500:2;20504:7;20467:26;:45::i;:::-;-1:-1:-1;;;;;20529:18:0;;20525:187;;20564:40;20596:7;20564:31;:40::i;:::-;20525:187;;;20634:2;-1:-1:-1;;;;;20626:10:0;:4;-1:-1:-1;;;;;20626:10:0;;20622:90;;20653:47;20686:4;20692:7;20653:32;:47::i;:::-;-1:-1:-1;;;;;20726:16:0;;20722:183;;20759:45;20796:7;20759:36;:45::i;:::-;20722:183;;;20832:4;-1:-1:-1;;;;;20826:10:0;:2;-1:-1:-1;;;;;20826:10:0;;20822:83;;20853:40;20881:2;20885:7;20853:27;:40::i;16063:321::-;16193:18;16199:2;16203:7;16193:5;:18::i;:::-;16244:54;16275:1;16279:2;16283:7;16292:5;16244:22;:54::i;:::-;16222:154;;;;-1:-1:-1;;;16222:154:0;;;;;;;:::i;18173:799::-;18328:4;18349:15;:2;-1:-1:-1;;;;;18349:13:0;;:15::i;:::-;18345:620;;;18401:2;-1:-1:-1;;;;;18385:36:0;;18422:12;:10;:12::i;:::-;18436:4;18442:7;18451:5;18385:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18385:72:0;;;;;;;;-1:-1:-1;;18385:72:0;;;;;;;;;;;;:::i;:::-;;;18381:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18627:13:0;;18623:272;;18670:60;;-1:-1:-1;;;18670:60:0;;;;;;;:::i;18623:272::-;18845:6;18839:13;18830:6;18826:2;18822:15;18815:38;18381:529;-1:-1:-1;;;;;;18508:51:0;-1:-1:-1;;;18508:51:0;;-1:-1:-1;18501:58:0;;18345:620;-1:-1:-1;18949:4:0;18173:799;;;;;;:::o;9270:157::-;-1:-1:-1;;;;;;9379:40:0;;-1:-1:-1;;;9379:40:0;9270:157;;;:::o;21153:164::-;21257:10;:17;;21230:24;;;;:15;:24;;;;;:44;;;21285:24;;;;;;;;;;;;21153:164::o;21327:559::-;21421:22;21471:1;21446:22;21463:4;21446:16;:22::i;:::-;:26;;;;:::i;:::-;21483:18;21504:26;;;:17;:26;;;;;;21421:51;;-1:-1:-1;21547:28:0;;;21543:238;;-1:-1:-1;;;;;21614:18:0;;21592:19;21614:18;;;:12;:18;;;;;;;;:34;;;;;;;;;21665:30;;;;;;:44;;;21725:30;;:17;:30;;;;;:43;;;21543:238;-1:-1:-1;21800:26:0;;;;:17;:26;;;;;;;;21793:33;;;-1:-1:-1;;;;;21844:18:0;;;;;:12;:18;;;;;:34;;;;;;;21837:41;21327:559::o;21896:435::-;22009:10;:17;21984:22;;22009:21;;22029:1;;22009:21;:::i;:::-;22041:18;22062:24;;;:15;:24;;;;;;22123:10;:26;;21984:46;;-1:-1:-1;22062:24:0;;21984:46;;22123:26;;;;-1:-1:-1;;;22123:26:0;;;;;;;;;;;;;;;;;22101:48;;22187:11;22162:10;22173;22162:22;;;;;;-1:-1:-1;;;22162:22:0;;;;;;;;;;;;;;;;;;;;:36;;;;22210:28;;;:15;:28;;;;;;;:41;;;22272:24;;;;;22265:31;22307:10;:16;;;;;-1:-1:-1;;;22307:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;21896:435;;;;:::o;20922:221::-;21007:14;21024:20;21041:2;21024:16;:20::i;:::-;-1:-1:-1;;;;;21055:16:0;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;21100:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;20922:221:0:o;16394:382::-;-1:-1:-1;;;;;16474:16:0;;16466:61;;;;-1:-1:-1;;;16466:61:0;;;;;;;:::i;:::-;16547:16;16555:7;16547;:16::i;:::-;16546:17;16538:58;;;;-1:-1:-1;;;16538:58:0;;;;;;;:::i;:::-;16609:45;16638:1;16642:2;16646:7;16609:20;:45::i;:::-;-1:-1:-1;;;;;16667:13:0;;;;;;:9;:13;;;;;:18;;16684:1;;16667:13;:18;;16684:1;;16667:18;:::i;:::-;;;;-1:-1:-1;;16696:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;16696:21:0;-1:-1:-1;;;;;16696:21:0;;;;;;;;16735:33;;16696:16;;;16735:33;;16696:16;;16735:33;16394:382;;:::o;5119:198::-;5253:20;5301:8;;;5119:198::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:607:1;;110:18;151:2;143:6;140:14;137:2;;;157:18;;:::i;:::-;206:2;200:9;279:2;256:17;;-1:-1:-1;;252:31:1;240:44;;286:4;236:55;306:18;;;326:22;;;303:46;300:2;;;352:18;;:::i;:::-;388:2;381:22;436;;;421:6;-1:-1:-1;421:6:1;473:16;;;470:25;-1:-1:-1;467:2:1;;;508:1;505;498:12;467:2;558:6;553:3;546:4;538:6;534:17;521:44;613:1;606:4;597:6;589;585:19;581:30;574:41;;;90:531;;;;;:::o;626:162::-;693:20;;749:13;;742:21;732:32;;722:2;;778:1;775;768:12;793:259;;905:2;893:9;884:7;880:23;876:32;873:2;;;926:6;918;911:22;873:2;970:9;957:23;989:33;1016:5;989:33;:::i;1057:402::-;;;1186:2;1174:9;1165:7;1161:23;1157:32;1154:2;;;1207:6;1199;1192:22;1154:2;1251:9;1238:23;1270:33;1297:5;1270:33;:::i;:::-;1322:5;-1:-1:-1;1379:2:1;1364:18;;1351:32;1392:35;1351:32;1392:35;:::i;:::-;1446:7;1436:17;;;1144:315;;;;;:::o;1464:470::-;;;;1610:2;1598:9;1589:7;1585:23;1581:32;1578:2;;;1631:6;1623;1616:22;1578:2;1675:9;1662:23;1694:33;1721:5;1694:33;:::i;:::-;1746:5;-1:-1:-1;1803:2:1;1788:18;;1775:32;1816:35;1775:32;1816:35;:::i;:::-;1568:366;;1870:7;;-1:-1:-1;;;1924:2:1;1909:18;;;;1896:32;;1568:366::o;1939:830::-;;;;;2111:3;2099:9;2090:7;2086:23;2082:33;2079:2;;;2133:6;2125;2118:22;2079:2;2177:9;2164:23;2196:33;2223:5;2196:33;:::i;:::-;2248:5;-1:-1:-1;2305:2:1;2290:18;;2277:32;2318:35;2277:32;2318:35;:::i;:::-;2372:7;-1:-1:-1;2426:2:1;2411:18;;2398:32;;-1:-1:-1;2481:2:1;2466:18;;2453:32;2508:18;2497:30;;2494:2;;;2545:6;2537;2530:22;2494:2;2573:22;;2626:4;2618:13;;2614:27;-1:-1:-1;2604:2:1;;2660:6;2652;2645:22;2604:2;2688:75;2755:7;2750:2;2737:16;2732:2;2728;2724:11;2688:75;:::i;:::-;2678:85;;;2069:700;;;;;;;:::o;2774:329::-;;;2900:2;2888:9;2879:7;2875:23;2871:32;2868:2;;;2921:6;2913;2906:22;2868:2;2965:9;2952:23;2984:33;3011:5;2984:33;:::i;:::-;3036:5;-1:-1:-1;3060:37:1;3093:2;3078:18;;3060:37;:::i;:::-;3050:47;;2858:245;;;;;:::o;3108:327::-;;;3237:2;3225:9;3216:7;3212:23;3208:32;3205:2;;;3258:6;3250;3243:22;3205:2;3302:9;3289:23;3321:33;3348:5;3321:33;:::i;:::-;3373:5;3425:2;3410:18;;;;3397:32;;-1:-1:-1;;;3195:240:1:o;3440:192::-;;3549:2;3537:9;3528:7;3524:23;3520:32;3517:2;;;3570:6;3562;3555:22;3517:2;3598:28;3616:9;3598:28;:::i;3637:257::-;;3748:2;3736:9;3727:7;3723:23;3719:32;3716:2;;;3769:6;3761;3754:22;3716:2;3813:9;3800:23;3832:32;3858:5;3832:32;:::i;3899:261::-;;4021:2;4009:9;4000:7;3996:23;3992:32;3989:2;;;4042:6;4034;4027:22;3989:2;4079:9;4073:16;4098:32;4124:5;4098:32;:::i;4165:482::-;;4287:2;4275:9;4266:7;4262:23;4258:32;4255:2;;;4308:6;4300;4293:22;4255:2;4353:9;4340:23;4386:18;4378:6;4375:30;4372:2;;;4423:6;4415;4408:22;4372:2;4451:22;;4504:4;4496:13;;4492:27;-1:-1:-1;4482:2:1;;4538:6;4530;4523:22;4482:2;4566:75;4633:7;4628:2;4615:16;4610:2;4606;4602:11;4566:75;:::i;4652:190::-;;4764:2;4752:9;4743:7;4739:23;4735:32;4732:2;;;4785:6;4777;4770:22;4732:2;-1:-1:-1;4813:23:1;;4722:120;-1:-1:-1;4722:120:1:o;4847:533::-;;;;5000:2;4988:9;4979:7;4975:23;4971:32;4968:2;;;5021:6;5013;5006:22;4968:2;5062:9;5049:23;5039:33;;5122:2;5111:9;5107:18;5094:32;5135:33;5162:5;5135:33;:::i;:::-;5187:5;-1:-1:-1;5244:2:1;5229:18;;5216:32;-1:-1:-1;;;;;5279:40:1;;5267:53;;5257:2;;5339:6;5331;5324:22;5257:2;5367:7;5357:17;;;4958:422;;;;;:::o;5385:258::-;;;5514:2;5502:9;5493:7;5489:23;5485:32;5482:2;;;5535:6;5527;5520:22;5482:2;-1:-1:-1;;5563:23:1;;;5633:2;5618:18;;;5605:32;;-1:-1:-1;5472:171:1:o;5648:594::-;;5750:5;5744:12;5777:6;5772:3;5765:19;5803:4;5832:2;5827:3;5823:12;5816:19;;5869:2;5862:5;5858:14;5890:3;5902:315;5916:6;5913:1;5910:13;5902:315;;;5975:13;;6017:9;;-1:-1:-1;;;;;6013:35:1;6001:48;;6093:11;;6087:18;-1:-1:-1;;;;;6083:51:1;6069:12;;;6062:73;6164:4;6155:14;;;;6192:15;;;;6045:1;5931:9;5902:315;;;-1:-1:-1;6233:3:1;;5720:522;-1:-1:-1;;;;;5720:522:1:o;6247:259::-;;6328:5;6322:12;6355:6;6350:3;6343:19;6371:63;6427:6;6420:4;6415:3;6411:14;6404:4;6397:5;6393:16;6371:63;:::i;:::-;6488:2;6467:15;-1:-1:-1;;6463:29:1;6454:39;;;;6495:4;6450:50;;6298:208;-1:-1:-1;;6298:208:1:o;6511:1532::-;;6773:6;6767:13;6799:4;6812:51;6856:6;6851:3;6846:2;6838:6;6834:15;6812:51;:::i;:::-;6926:13;;6885:16;;;;6948:55;6926:13;6885:16;6970:15;;;6948:55;:::i;:::-;7094:13;;7025:20;;;7065:3;;7171:1;7156:17;;7192:1;7228:18;;;;7255:2;;7333:4;7323:8;7319:19;7307:31;;7255:2;7396;7386:8;7383:16;7363:18;7360:40;7357:2;;;-1:-1:-1;;;7423:33:1;;7479:4;7476:1;7469:15;7509:4;7430:3;7497:17;7357:2;7540:18;7567:110;;;;7691:1;7686:332;;;;7533:485;;7567:110;-1:-1:-1;;7602:24:1;;7588:39;;7647:20;;;;-1:-1:-1;7567:110:1;;7686:332;7722:39;7754:6;7722:39;:::i;:::-;7783:3;7799:169;7813:8;7810:1;7807:15;7799:169;;;7895:14;;7880:13;;;7873:37;7938:16;;;;7830:10;;7799:169;;;7803:3;;7999:8;7992:5;7988:20;7981:27;;7533:485;-1:-1:-1;8034:3:1;;6743:1300;-1:-1:-1;;;;;;;;;;;6743:1300:1:o;8048:205::-;8248:3;8239:14::o;8258:203::-;-1:-1:-1;;;;;8422:32:1;;;;8404:51;;8392:2;8377:18;;8359:102::o;8466:490::-;-1:-1:-1;;;;;8735:15:1;;;8717:34;;8787:15;;8782:2;8767:18;;8760:43;8834:2;8819:18;;8812:34;;;8882:3;8877:2;8862:18;;8855:31;;;8466:490;;8903:47;;8930:19;;8922:6;8903:47;:::i;:::-;8895:55;8669:287;-1:-1:-1;;;;;;8669:287:1:o;8961:274::-;-1:-1:-1;;;;;9153:32:1;;;;9135:51;;9217:2;9202:18;;9195:34;9123:2;9108:18;;9090:145::o;9240:312::-;;9459:2;9448:9;9441:21;9479:67;9542:2;9531:9;9527:18;9519:6;9479:67;:::i;9557:635::-;9728:2;9780:21;;;9850:13;;9753:18;;;9872:22;;;9557:635;;9728:2;9951:15;;;;9925:2;9910:18;;;9557:635;9997:169;10011:6;10008:1;10005:13;9997:169;;;10072:13;;10060:26;;10141:15;;;;10106:12;;;;10033:1;10026:9;9997:169;;;-1:-1:-1;10183:3:1;;9708:484;-1:-1:-1;;;;;;9708:484:1:o;10197:187::-;10362:14;;10355:22;10337:41;;10325:2;10310:18;;10292:92::o;10389:221::-;;10538:2;10527:9;10520:21;10558:46;10600:2;10589:9;10585:18;10577:6;10558:46;:::i;10615:407::-;10817:2;10799:21;;;10856:2;10836:18;;;10829:30;10895:34;10890:2;10875:18;;10868:62;-1:-1:-1;;;10961:2:1;10946:18;;10939:41;11012:3;10997:19;;10789:233::o;11027:414::-;11229:2;11211:21;;;11268:2;11248:18;;;11241:30;11307:34;11302:2;11287:18;;11280:62;-1:-1:-1;;;11373:2:1;11358:18;;11351:48;11431:3;11416:19;;11201:240::o;11446:402::-;11648:2;11630:21;;;11687:2;11667:18;;;11660:30;11726:34;11721:2;11706:18;;11699:62;-1:-1:-1;;;11792:2:1;11777:18;;11770:36;11838:3;11823:19;;11620:228::o;11853:352::-;12055:2;12037:21;;;12094:2;12074:18;;;12067:30;12133;12128:2;12113:18;;12106:58;12196:2;12181:18;;12027:178::o;12210:400::-;12412:2;12394:21;;;12451:2;12431:18;;;12424:30;12490:34;12485:2;12470:18;;12463:62;-1:-1:-1;;;12556:2:1;12541:18;;12534:34;12600:3;12585:19;;12384:226::o;12615:349::-;12817:2;12799:21;;;12856:2;12836:18;;;12829:30;12895:27;12890:2;12875:18;;12868:55;12955:2;12940:18;;12789:175::o;12969:408::-;13171:2;13153:21;;;13210:2;13190:18;;;13183:30;13249:34;13244:2;13229:18;;13222:62;-1:-1:-1;;;13315:2:1;13300:18;;13293:42;13367:3;13352:19;;13143:234::o;13382:356::-;13584:2;13566:21;;;13603:18;;;13596:30;13662:34;13657:2;13642:18;;13635:62;13729:2;13714:18;;13556:182::o;13743:420::-;13945:2;13927:21;;;13984:2;13964:18;;;13957:30;14023:34;14018:2;14003:18;;13996:62;14094:26;14089:2;14074:18;;14067:54;14153:3;14138:19;;13917:246::o;14168:406::-;14370:2;14352:21;;;14409:2;14389:18;;;14382:30;14448:34;14443:2;14428:18;;14421:62;-1:-1:-1;;;14514:2:1;14499:18;;14492:40;14564:3;14549:19;;14342:232::o;14579:405::-;14781:2;14763:21;;;14820:2;14800:18;;;14793:30;14859:34;14854:2;14839:18;;14832:62;-1:-1:-1;;;14925:2:1;14910:18;;14903:39;14974:3;14959:19;;14753:231::o;14989:356::-;15191:2;15173:21;;;15210:18;;;15203:30;15269:34;15264:2;15249:18;;15242:62;15336:2;15321:18;;15163:182::o;15350:408::-;15552:2;15534:21;;;15591:2;15571:18;;;15564:30;15630:34;15625:2;15610:18;;15603:62;-1:-1:-1;;;15696:2:1;15681:18;;15674:42;15748:3;15733:19;;15524:234::o;15763:356::-;15965:2;15947:21;;;15984:18;;;15977:30;16043:34;16038:2;16023:18;;16016:62;16110:2;16095:18;;15937:182::o;16124:405::-;16326:2;16308:21;;;16365:2;16345:18;;;16338:30;16404:34;16399:2;16384:18;;16377:62;-1:-1:-1;;;16470:2:1;16455:18;;16448:39;16519:3;16504:19;;16298:231::o;16534:411::-;16736:2;16718:21;;;16775:2;16755:18;;;16748:30;16814:34;16809:2;16794:18;;16787:62;-1:-1:-1;;;16880:2:1;16865:18;;16858:45;16935:3;16920:19;;16708:237::o;16950:397::-;17152:2;17134:21;;;17191:2;17171:18;;;17164:30;17230:34;17225:2;17210:18;;17203:62;-1:-1:-1;;;17296:2:1;17281:18;;17274:31;17337:3;17322:19;;17124:223::o;17352:413::-;17554:2;17536:21;;;17593:2;17573:18;;;17566:30;17632:34;17627:2;17612:18;;17605:62;-1:-1:-1;;;17698:2:1;17683:18;;17676:47;17755:3;17740:19;;17526:239::o;17770:408::-;17972:2;17954:21;;;18011:2;17991:18;;;17984:30;18050:34;18045:2;18030:18;;18023:62;-1:-1:-1;;;18116:2:1;18101:18;;18094:42;18168:3;18153:19;;17944:234::o;18183:401::-;18385:2;18367:21;;;18424:2;18404:18;;;18397:30;18463:34;18458:2;18443:18;;18436:62;-1:-1:-1;;;18529:2:1;18514:18;;18507:35;18574:3;18559:19;;18357:227::o;18589:351::-;18791:2;18773:21;;;18830:2;18810:18;;;18803:30;18869:29;18864:2;18849:18;;18842:57;18931:2;18916:18;;18763:177::o;18945:::-;19091:25;;;19079:2;19064:18;;19046:76::o;19127:383::-;;19374:6;19363:9;19356:25;19417:2;19412;19401:9;19397:18;19390:30;19437:67;19500:2;19489:9;19485:18;19477:6;19437:67;:::i;19515:129::-;;19583:17;;;19633:4;19617:21;;;19573:71::o;19649:128::-;;19720:1;19716:6;19713:1;19710:13;19707:2;;;19726:18;;:::i;:::-;-1:-1:-1;19762:9:1;;19697:80::o;19782:120::-;;19848:1;19838:2;;19853:18;;:::i;:::-;-1:-1:-1;19887:9:1;;19828:74::o;19907:168::-;;20013:1;20009;20005:6;20001:14;19998:1;19995:21;19990:1;19983:9;19976:17;19972:45;19969:2;;;20020:18;;:::i;:::-;-1:-1:-1;20060:9:1;;19959:116::o;20080:125::-;;20148:1;20145;20142:8;20139:2;;;20153:18;;:::i;:::-;-1:-1:-1;20190:9:1;;20129:76::o;20210:258::-;20282:1;20292:113;20306:6;20303:1;20300:13;20292:113;;;20382:11;;;20376:18;20363:11;;;20356:39;20328:2;20321:10;20292:113;;;20423:6;20420:1;20417:13;20414:2;;;-1:-1:-1;;20458:1:1;20440:16;;20433:27;20263:205::o;20473:380::-;20558:1;20548:12;;20605:1;20595:12;;;20616:2;;20670:4;20662:6;20658:17;20648:27;;20616:2;20723;20715:6;20712:14;20692:18;20689:38;20686:2;;;20769:10;20764:3;20760:20;20757:1;20750:31;20804:4;20801:1;20794:15;20832:4;20829:1;20822:15;20686:2;;20528:325;;;:::o;20858:135::-;;-1:-1:-1;;20918:17:1;;20915:2;;;20938:18;;:::i;:::-;-1:-1:-1;20985:1:1;20974:13;;20905:88::o;20998:112::-;;21056:1;21046:2;;21061:18;;:::i;:::-;-1:-1:-1;21095:9:1;;21036:74::o;21115:127::-;21176:10;21171:3;21167:20;21164:1;21157:31;21207:4;21204:1;21197:15;21231:4;21228:1;21221:15;21247:127;21308:10;21303:3;21299:20;21296:1;21289:31;21339:4;21336:1;21329:15;21363:4;21360:1;21353:15;21379:127;21440:10;21435:3;21431:20;21428:1;21421:31;21471:4;21468:1;21461:15;21495:4;21492:1;21485:15;21511:133;-1:-1:-1;;;;;21588:31:1;;21578:42;;21568:2;;21634:1;21631;21624:12;21649:133;-1:-1:-1;;;;;;21725:32:1;;21715:43;;21705:2;;21772:1;21769;21762:12

Swarm Source

ipfs://58932e2eb8a1b8e80c83617417cbb0d4ca11dcc1353fa18be445d375bd2d20ca
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.