Contract 0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x4db4fc4255d098d51ffa6451b383859cd966a104dd07da984dd21756823621dcSafe Transfer Fr...299012372022-06-23 9:18:438 days 16 hrs ago0xff594fec9b78e9bd17808e02b354a09dfff74c24 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.002338687681 30.357191574
0x8b3ddbfe4117afc1f7035e5b2fd1e3a8797d1cda0a544a781e7bba31c5f5c83dSafe Transfer Fr...299012182022-06-23 9:18:058 days 16 hrs ago0xff594fec9b78e9bd17808e02b354a09dfff74c24 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.002517838272 32.687736412
0x1b0784e8483ce0411527f267a1945f6603973a135ba9ff0d9659e4c11f53f579Safe Transfer Fr...299012032022-06-23 9:17:358 days 16 hrs ago0xff594fec9b78e9bd17808e02b354a09dfff74c24 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.002359652938 30.634101523
0x13d2f4d629a029754f06c7464012b40d09007544ef11fe263261f262b49237abSafe Transfer Fr...299011922022-06-23 9:17:138 days 16 hrs ago0xff594fec9b78e9bd17808e02b354a09dfff74c24 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.002390945118 31.040351032
0xa4eb56c1265a197fe637ae8b061c5d8e76556d8b2908dba163e9a33b1d95d4c5Safe Transfer Fr...299011832022-06-23 9:16:518 days 16 hrs ago0xff594fec9b78e9bd17808e02b354a09dfff74c24 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.002652883719 34.440958619
0x736507ecbcbc67a97675b514822f5e3e77efba9b14c2ad1c23308ad2217ff22bSafe Transfer Fr...299011692022-06-23 9:16:238 days 16 hrs ago0xff594fec9b78e9bd17808e02b354a09dfff74c24 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.002509030936 32.573395512
0x182c086a11bac93c780b23197273c3093140559bb3e8649049835093b3903459Safe Transfer Fr...298818792022-06-22 21:32:389 days 4 hrs ago0x1aec74b1db0c89a738aa3a2844eed0e4fbbe03b0 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.002679810001 30.000000013
0x05dacdbc8be77714e4f2dc06f5eed279cde7c67a4110a25e9fb890be05701c4dSafe Transfer Fr...298818172022-06-22 21:30:309 days 4 hrs ago0x1aec74b1db0c89a738aa3a2844eed0e4fbbe03b0 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.00231081 30.000000012
0x44290908dde243a224887a84bcb203b4fbea86b7ce8b6623866b387db140a180Safe Transfer Fr...298817602022-06-22 21:28:329 days 4 hrs ago0x1aec74b1db0c89a738aa3a2844eed0e4fbbe03b0 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.002310810001 30.000000014
0x3d8709dfca4103e9aa21b88b9d01399c89791c8d1130f900f0012f2427e4405eSafe Transfer Fr...298817142022-06-22 21:26:569 days 4 hrs ago0x1aec74b1db0c89a738aa3a2844eed0e4fbbe03b0 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.002310810001 30.000000015
0xf5da4cbd8f2c8c7ca7c7b8acce6ab90c1eb7879b64b5f31cfa8734afb5579aefSafe Transfer Fr...298816612022-06-22 21:25:069 days 4 hrs ago0x1aec74b1db0c89a738aa3a2844eed0e4fbbe03b0 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.00231081 30.000000011
0xe94f5c69b3622a5de37426d74ac6917387fc9d9cb8732bd9da54424fd37da3faSafe Transfer Fr...298815982022-06-22 21:22:569 days 4 hrs ago0x1aec74b1db0c89a738aa3a2844eed0e4fbbe03b0 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.00261999 30.000000011
0x802ef7cbf399dc13ba2c44e97b3408abf02e11d4d3bfaf850bdcf7442f967b35Set Approval For...297691262022-06-19 22:25:0612 days 3 hrs ago0x1aec74b1db0c89a738aa3a2844eed0e4fbbe03b0 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.002396320927 51.930240051
0x78fd0be8b4deeda97819ca42d7b63e24d13b8aa88ec5eecee509ae296836a86eSet Approval For...296709242022-06-17 9:03:4214 days 16 hrs ago0xce8a7fe4f3a215c3cef9b95c991138d986e34fb5 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.0005249 20
0x33a29c3c03502a6ddec62042b6fc90cf756f840ad8f704132036c9a7ae49c64bSet Approval For...296709242022-06-17 9:03:4214 days 16 hrs ago0xce8a7fe4f3a215c3cef9b95c991138d986e34fb5 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.0009229 20
0xb6d4fbc424a30a2625d7c4735207b9f2c6201eef0681d4ba06475b245494a95eSafe Transfer Fr...295980442022-06-15 12:41:2016 days 13 hrs ago0xf408bee3443d0397e2c1cde588fb060ac657006f IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.006576052 76
0x618ed6a341effd0f5af1909a434eb2008c799207e1b2e8f3caeecbb60a01b55bSet Approval For...294824232022-06-12 15:42:4619 days 10 hrs ago0x6b29b3725169e4ef5edc91cf3e717099884a177a IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.001719368092 37.260116867
0x810efb5719c29d808795e7c599f75c306306d05cedd1b99bf1bf7fc38a715050Set Approval For...292010922022-06-05 15:38:4526 days 10 hrs ago0x291818309f43146119215bd4b06cd1f53d560d64 IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.001484038384 32.16032907
0x636617ef0680c103c55f5e53db6fb595fb4485aac1a976ccd4bd4f37b686dcb2Set Approval For...290669382022-06-02 8:35:3329 days 17 hrs ago0x6c1127dc1ea3e380de76e2e4713531033f4829fc IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.00138435 30.000000017
0x668db3c250a6302afbccbc6973192b5f25245a6af2a901ef122e7f3a72bff84cSet Approval For...289574222022-05-30 15:26:2132 days 10 hrs ago0x73ee1c5bb52d683754f740d551953b2b1e6dfcae IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.001763661899 38.219999993
0xe6bfc4147ae2c8fd6d2e21ebb03cb2514f1c14f272420ae03d9dca1693b12777Set Approval For...289426652022-05-30 6:41:1532 days 19 hrs ago0x41522e82ce98b9a6ab50d878500e7f4cb35f6e5f IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.009229 200
0x11822e345391b0002d01986523701dde20d27b82b45ae8e44766fadba4d292a3Set Approval For...289209222022-05-29 17:42:3033 days 8 hrs ago0x27837ffd62144628e75bab1b63eb92cca3b3c05b IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.0000656125 2.500000007
0x5f1056e342ed0c40eb067bfefdd3de99bd0f3294e0dfbe25991673f6350cd065Set Approval For...289177432022-05-29 15:51:0133 days 10 hrs ago0x27837ffd62144628e75bab1b63eb92cca3b3c05b IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.0000656125 2.500000007
0x8ce3cab2f1621195a44d822286fcfbc7f83509b65b4685d3223ba547c8115112Safe Transfer Fr...288460112022-05-27 20:34:5635 days 5 hrs ago0x1df174f09ca9211dc7ea23b44413a5aa13fb353d IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.005731405382 65.627029674
0xb6b1cb14f796158e48556bd81164eeac7c36eb34c08565b255d8a642654ad654Safe Transfer Fr...288458382022-05-27 20:28:5835 days 5 hrs ago0x6c1127dc1ea3e380de76e2e4713531033f4829fc IN  0x8a514a40ed06fc44b6e0c9875cdd58e20063d10e0 MATIC0.003339600167 38.245097604
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NovaAvatarBase

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2022-03-31
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.12;

interface IERC165 {

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

interface IERC721 is IERC165 {

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

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

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

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

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

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

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

    function approve(address to, uint256 tokenId) external;

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

    function setApprovalForAll(address operator, bool _approved) external;

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

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

interface IERC721Enumerable is IERC721 {

    function totalSupply() external view returns (uint256);

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

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

abstract contract ERC165 is IERC165 {

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

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

library Address {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

interface IERC721Receiver {

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

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

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

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

    string private _name;

    string private _symbol;

    mapping(uint256 => address) private _owners;

    mapping(address => uint256) private _balances;

    mapping(uint256 => address) private _tokenApprovals;

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

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

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

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

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

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

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

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

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

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

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

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

        _approve(to, tokenId);
    }

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

        return _tokenApprovals[tokenId];
    }

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

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

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

    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) public virtual override {
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");

        _transfer(from, to, tokenId);
    }

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

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) public virtual override {
        require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");
        _safeTransfer(from, to, tokenId, _data);
    }

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

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

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

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

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

    function _mint(address to, uint256 tokenId) internal virtual {
        require(to != address(0), "ERC721: mint to the zero address");
        require(!_exists(tokenId), "ERC721: token already minted");

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

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

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

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

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

        // Clear approvals
        _approve(address(0), tokenId);

        _balances[owner] -= 1;
        delete _owners[tokenId];

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

    function _transfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {
        require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own");
        require(to != address(0), "ERC721: transfer to the zero address");

        _beforeTokenTransfer(from, to, tokenId);

        _approve(address(0), tokenId);

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

        emit Transfer(from, to, tokenId);
    }

    function _approve(address to, uint256 tokenId) internal virtual {
        _tokenApprovals[tokenId] = to;
        emit Approval(ERC721.ownerOf(tokenId), to, tokenId);
    }

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

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

abstract contract ERC721Enumerable is ERC721, IERC721Enumerable {

    mapping(address => mapping(uint256 => uint256)) private _ownedTokens;

    mapping(uint256 => uint256) private _ownedTokensIndex;

    uint256[] private _allTokens;

    mapping(uint256 => uint256) private _allTokensIndex;

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

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

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

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

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

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

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

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

    function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private {

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

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

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

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

    function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private {

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

        uint256 lastTokenId = _allTokens[lastTokenIndex];

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

abstract contract Controllable is Ownable {
    mapping(address => bool) internal _controllers;

    modifier onlyController() {
        require(
            _controllers[msg.sender] == true || address(this) == msg.sender,
            "Controllable: caller is not a controller"
        );
        _;
    }

    function addController(address _controller)
        external
        onlyOwner
    {
        _controllers[_controller] = true;
    }

    function delController(address _controller)
        external
        onlyOwner
    {
        delete _controllers[_controller];
    }

    function disableController(address _controller)
        external
        onlyOwner
    {
        _controllers[_controller] = false;
    }

    function isController(address _address)
        external
        view
        returns (bool allowed)
    {
        allowed = _controllers[_address];
    }

    function relinquishControl() external onlyController {
        delete _controllers[msg.sender];
    }
}

contract NovaAvatarBase is ERC721Enumerable, Controllable {
  using Strings for uint256;

  string baseURI;
  string public baseExtension = "";
  uint256 public maxMintAmount = 20;
  bool public uriAppend = false;
  string public staticUri;

  constructor(
    string memory _name,
    string memory _symbol,
    string memory _initBaseURI,
    string memory _initStatic
  ) ERC721(_name, _symbol) {
    setBaseURI(_initBaseURI);
    setStaticUri(_initStatic);
  }

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

  // public
  function mint(address value, uint256 _mintAmount) public onlyController{
  require(_mintAmount <= maxMintAmount);
    uint256 supply = totalSupply();
    for (uint256 i = 1; i <= _mintAmount; i++) {
      _safeMint(value, 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(uriAppend == false) {
        return staticUri;
    }

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

  //only owner
  function setDynamic() public onlyController {
    uriAppend = true;
  }
  function setStatic() public onlyController {
	uriAppend = false;
  }
  function setmaxMintAmount(uint256 _newmaxMintAmount) public onlyOwner {
    maxMintAmount = _newmaxMintAmount;
  }
  function setStaticUri(string memory _staticUri) public onlyOwner {
    staticUri = _staticUri;
  }
  function setBaseURI(string memory _newBaseURI) public onlyOwner {
    baseURI = _newBaseURI;
  }
  function setBaseExtension(string memory _newBaseExtension) public onlyOwner {
    baseExtension = _newBaseExtension;
  }
}

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":"_initStatic","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"addController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseExtension","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"delController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"disableController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isController","outputs":[{"internalType":"bool","name":"allowed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMintAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"value","type":"address"},{"internalType":"uint256","name":"_mintAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"relinquishControl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":[],"name":"setDynamic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setStatic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_staticUri","type":"string"}],"name":"setStaticUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newmaxMintAmount","type":"uint256"}],"name":"setmaxMintAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"staticUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uriAppend","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"}]

60a06040819052600060808190526200001b91600d91620001e0565b506014600e55600f805460ff191690553480156200003857600080fd5b50604051620026fe380380620026fe8339810160408190526200005b9162000353565b83518490849062000074906000906020850190620001e0565b5080516200008a906001906020840190620001e0565b505050620000a7620000a1620000c760201b60201c565b620000cb565b620000b2826200011d565b620000bd8162000185565b5050505062000449565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600a546001600160a01b031633146200016c5760405162461bcd60e51b81526020600482018190526024820152600080516020620026de83398151915260448201526064015b60405180910390fd5b80516200018190600c906020840190620001e0565b5050565b600a546001600160a01b03163314620001d05760405162461bcd60e51b81526020600482018190526024820152600080516020620026de833981519152604482015260640162000163565b8051620001819060109060208401905b828054620001ee906200040c565b90600052602060002090601f0160209004810192826200021257600085556200025d565b82601f106200022d57805160ff19168380011785556200025d565b828001600101855582156200025d579182015b828111156200025d57825182559160200191906001019062000240565b506200026b9291506200026f565b5090565b5b808211156200026b576000815560010162000270565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620002ae57600080fd5b81516001600160401b0380821115620002cb57620002cb62000286565b604051601f8301601f19908116603f01168101908282118183101715620002f657620002f662000286565b816040528381526020925086838588010111156200031357600080fd5b600091505b8382101562000337578582018301518183018401529082019062000318565b83821115620003495760008385830101525b9695505050505050565b600080600080608085870312156200036a57600080fd5b84516001600160401b03808211156200038257600080fd5b62000390888389016200029c565b95506020870151915080821115620003a757600080fd5b620003b5888389016200029c565b94506040870151915080821115620003cc57600080fd5b620003da888389016200029c565b93506060870151915080821115620003f157600080fd5b5062000400878288016200029c565b91505092959194509250565b600181811c908216806200042157607f821691505b602082108114156200044357634e487b7160e01b600052602260045260246000fd5b50919050565b61228580620004596000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c8063715018a611610125578063c6682862116100ad578063e1c28bef1161007c578063e1c28bef1461047b578063e3b1547914610483578063e985e9c51461048b578063f2fde38b146104c7578063f4fc35701461036e57600080fd5b8063c668286214610440578063c72e70d014610448578063c87b56dd14610455578063da3ef23f1461046857600080fd5b8063a22cb465116100f4578063a22cb465146103c8578063a7fc7a07146103db578063b13ad0e4146103ee578063b429afeb14610401578063b88d4fde1461042d57600080fd5b8063715018a6146103945780637f00c7a61461039c5780638da5cb5b146103af57806395d89b41146103c057600080fd5b806340c10f19116101a857806352f1fae01161017757806352f1fae01461034057806355f804b3146103485780636352211e1461035b57806366a87e121461036e57806370a082311461038157600080fd5b806340c10f19146102e757806342842e0e146102fa578063438b63001461030d5780634f6ccce71461032d57600080fd5b806312180ee2116101ef57806312180ee21461029e57806318160ddd146102a6578063239c70ae146102b857806323b872dd146102c15780632f745c59146102d457600080fd5b806301ffc9a71461022157806306fdde0314610249578063081812fc1461025e578063095ea7b314610289575b600080fd5b61023461022f366004611bca565b6104da565b60405190151581526020015b60405180910390f35b610251610505565b6040516102409190611c3f565b61027161026c366004611c52565b610597565b6040516001600160a01b039091168152602001610240565b61029c610297366004611c87565b610631565b005b610251610747565b6008545b604051908152602001610240565b6102aa600e5481565b61029c6102cf366004611cb1565b6107d5565b6102aa6102e2366004611c87565b610806565b61029c6102f5366004611c87565b61089c565b61029c610308366004611cb1565b61092b565b61032061031b366004611ced565b610946565b6040516102409190611d08565b6102aa61033b366004611c52565b6109e8565b61029c610a7b565b61029c610356366004611dd8565b610ac5565b610271610369366004611c52565b610b06565b61029c61037c366004611ced565b610b7d565b6102aa61038f366004611ced565b610bc8565b61029c610c4f565b61029c6103aa366004611c52565b610c85565b600a546001600160a01b0316610271565b610251610cb4565b61029c6103d6366004611e21565b610cc3565b61029c6103e9366004611ced565b610d88565b61029c6103fc366004611dd8565b610dd6565b61023461040f366004611ced565b6001600160a01b03166000908152600b602052604090205460ff1690565b61029c61043b366004611e5d565b610e13565b610251610e45565b600f546102349060ff1681565b610251610463366004611c52565b610e52565b61029c610476366004611dd8565b610fcc565b61029c611009565b61029c611060565b610234610499366004611ed9565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61029c6104d5366004611ced565b6110ad565b60006001600160e01b0319821663780e9d6360e01b14806104ff57506104ff82611148565b92915050565b60606000805461051490611f0c565b80601f016020809104026020016040519081016040528092919081815260200182805461054090611f0c565b801561058d5780601f106105625761010080835404028352916020019161058d565b820191906000526020600020905b81548152906001019060200180831161057057829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b03166106155760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152600460205260409020546001600160a01b031690565b600061063c82610b06565b9050806001600160a01b0316836001600160a01b031614156106aa5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161060c565b336001600160a01b03821614806106c657506106c68133610499565b6107385760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606482015260840161060c565b6107428383611198565b505050565b6010805461075490611f0c565b80601f016020809104026020016040519081016040528092919081815260200182805461078090611f0c565b80156107cd5780601f106107a2576101008083540402835291602001916107cd565b820191906000526020600020905b8154815290600101906020018083116107b057829003601f168201915b505050505081565b6107df3382611206565b6107fb5760405162461bcd60e51b815260040161060c90611f47565b6107428383836112fd565b600061081183610bc8565b82106108735760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161060c565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b336000908152600b602052604090205460ff161515600114806108be57503033145b6108da5760405162461bcd60e51b815260040161060c90611f98565b600e548111156108e957600080fd5b60006108f460085490565b905060015b828111610925576109138461090e8385611ff6565b6114a8565b8061091d8161200e565b9150506108f9565b50505050565b61074283838360405180602001604052806000815250610e13565b6060600061095383610bc8565b905060008167ffffffffffffffff81111561097057610970611d4c565b604051908082528060200260200182016040528015610999578160200160208202803683370190505b50905060005b828110156109e0576109b18582610806565b8282815181106109c3576109c3612029565b6020908102919091010152806109d88161200e565b91505061099f565b509392505050565b60006109f360085490565b8210610a565760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161060c565b60088281548110610a6957610a69612029565b90600052602060002001549050919050565b336000908152600b602052604090205460ff16151560011480610a9d57503033145b610ab95760405162461bcd60e51b815260040161060c90611f98565b600f805460ff19169055565b600a546001600160a01b03163314610aef5760405162461bcd60e51b815260040161060c9061203f565b8051610b0290600c906020840190611b1b565b5050565b6000818152600260205260408120546001600160a01b0316806104ff5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b606482015260840161060c565b600a546001600160a01b03163314610ba75760405162461bcd60e51b815260040161060c9061203f565b6001600160a01b03166000908152600b60205260409020805460ff19169055565b60006001600160a01b038216610c335760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b606482015260840161060c565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b03163314610c795760405162461bcd60e51b815260040161060c9061203f565b610c8360006114c2565b565b600a546001600160a01b03163314610caf5760405162461bcd60e51b815260040161060c9061203f565b600e55565b60606001805461051490611f0c565b6001600160a01b038216331415610d1c5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161060c565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600a546001600160a01b03163314610db25760405162461bcd60e51b815260040161060c9061203f565b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b600a546001600160a01b03163314610e005760405162461bcd60e51b815260040161060c9061203f565b8051610b02906010906020840190611b1b565b610e1d3383611206565b610e395760405162461bcd60e51b815260040161060c90611f47565b61092584848484611514565b600d805461075490611f0c565b6000818152600260205260409020546060906001600160a01b0316610ed15760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840161060c565b600f5460ff16610f6d5760108054610ee890611f0c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f1490611f0c565b8015610f615780601f10610f3657610100808354040283529160200191610f61565b820191906000526020600020905b815481529060010190602001808311610f4457829003601f168201915b50505050509050919050565b6000610f77611547565b90506000815111610f975760405180602001604052806000815250610fc5565b80610fa184611556565b600d604051602001610fb593929190612074565b6040516020818303038152906040525b9392505050565b600a546001600160a01b03163314610ff65760405162461bcd60e51b815260040161060c9061203f565b8051610b0290600d906020840190611b1b565b336000908152600b602052604090205460ff1615156001148061102b57503033145b6110475760405162461bcd60e51b815260040161060c90611f98565b336000908152600b60205260409020805460ff19169055565b336000908152600b602052604090205460ff1615156001148061108257503033145b61109e5760405162461bcd60e51b815260040161060c90611f98565b600f805460ff19166001179055565b600a546001600160a01b031633146110d75760405162461bcd60e51b815260040161060c9061203f565b6001600160a01b03811661113c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161060c565b611145816114c2565b50565b60006001600160e01b031982166380ac58cd60e01b148061117957506001600160e01b03198216635b5e139f60e01b145b806104ff57506301ffc9a760e01b6001600160e01b03198316146104ff565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906111cd82610b06565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b031661127f5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161060c565b600061128a83610b06565b9050806001600160a01b0316846001600160a01b031614806112c55750836001600160a01b03166112ba84610597565b6001600160a01b0316145b806112f557506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b031661131082610b06565b6001600160a01b0316146113785760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b606482015260840161060c565b6001600160a01b0382166113da5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161060c565b6113e5838383611654565b6113f0600082611198565b6001600160a01b0383166000908152600360205260408120805460019290611419908490612138565b90915550506001600160a01b0382166000908152600360205260408120805460019290611447908490611ff6565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610b0282826040518060200160405280600081525061170c565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61151f8484846112fd565b61152b8484848461173f565b6109255760405162461bcd60e51b815260040161060c9061214f565b6060600c805461051490611f0c565b60608161157a5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156115a4578061158e8161200e565b915061159d9050600a836121b7565b915061157e565b60008167ffffffffffffffff8111156115bf576115bf611d4c565b6040519080825280601f01601f1916602001820160405280156115e9576020820181803683370190505b5090505b84156112f5576115fe600183612138565b915061160b600a866121cb565b611616906030611ff6565b60f81b81838151811061162b5761162b612029565b60200101906001600160f81b031916908160001a90535061164d600a866121b7565b94506115ed565b6001600160a01b0383166116af576116aa81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b6116d2565b816001600160a01b0316836001600160a01b0316146116d2576116d2838261183d565b6001600160a01b0382166116e957610742816118da565b826001600160a01b0316826001600160a01b031614610742576107428282611989565b61171683836119cd565b611723600084848461173f565b6107425760405162461bcd60e51b815260040161060c9061214f565b60006001600160a01b0384163b1561183257604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906117839033908990889088906004016121df565b6020604051808303816000875af19250505080156117be575060408051601f3d908101601f191682019092526117bb9181019061221c565b60015b611818573d8080156117ec576040519150601f19603f3d011682016040523d82523d6000602084013e6117f1565b606091505b5080516118105760405162461bcd60e51b815260040161060c9061214f565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506112f5565b506001949350505050565b6000600161184a84610bc8565b6118549190612138565b6000838152600760205260409020549091508082146118a7576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b6008546000906118ec90600190612138565b6000838152600960205260408120546008805493945090928490811061191457611914612029565b90600052602060002001549050806008838154811061193557611935612029565b600091825260208083209091019290925582815260099091526040808220849055858252812055600880548061196d5761196d612239565b6001900381819060005260206000200160009055905550505050565b600061199483610bc8565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160a01b038216611a235760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161060c565b6000818152600260205260409020546001600160a01b031615611a885760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161060c565b611a9460008383611654565b6001600160a01b0382166000908152600360205260408120805460019290611abd908490611ff6565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611b2790611f0c565b90600052602060002090601f016020900481019282611b495760008555611b8f565b82601f10611b6257805160ff1916838001178555611b8f565b82800160010185558215611b8f579182015b82811115611b8f578251825591602001919060010190611b74565b50611b9b929150611b9f565b5090565b5b80821115611b9b5760008155600101611ba0565b6001600160e01b03198116811461114557600080fd5b600060208284031215611bdc57600080fd5b8135610fc581611bb4565b60005b83811015611c02578181015183820152602001611bea565b838111156109255750506000910152565b60008151808452611c2b816020860160208601611be7565b601f01601f19169290920160200192915050565b602081526000610fc56020830184611c13565b600060208284031215611c6457600080fd5b5035919050565b80356001600160a01b0381168114611c8257600080fd5b919050565b60008060408385031215611c9a57600080fd5b611ca383611c6b565b946020939093013593505050565b600080600060608486031215611cc657600080fd5b611ccf84611c6b565b9250611cdd60208501611c6b565b9150604084013590509250925092565b600060208284031215611cff57600080fd5b610fc582611c6b565b6020808252825182820181905260009190848201906040850190845b81811015611d4057835183529284019291840191600101611d24565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611d7d57611d7d611d4c565b604051601f8501601f19908116603f01168101908282118183101715611da557611da5611d4c565b81604052809350858152868686011115611dbe57600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611dea57600080fd5b813567ffffffffffffffff811115611e0157600080fd5b8201601f81018413611e1257600080fd5b6112f584823560208401611d62565b60008060408385031215611e3457600080fd5b611e3d83611c6b565b915060208301358015158114611e5257600080fd5b809150509250929050565b60008060008060808587031215611e7357600080fd5b611e7c85611c6b565b9350611e8a60208601611c6b565b925060408501359150606085013567ffffffffffffffff811115611ead57600080fd5b8501601f81018713611ebe57600080fd5b611ecd87823560208401611d62565b91505092959194509250565b60008060408385031215611eec57600080fd5b611ef583611c6b565b9150611f0360208401611c6b565b90509250929050565b600181811c90821680611f2057607f821691505b60208210811415611f4157634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b60208082526028908201527f436f6e74726f6c6c61626c653a2063616c6c6572206973206e6f74206120636f604082015267373a3937b63632b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561200957612009611fe0565b500190565b600060001982141561202257612022611fe0565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000845160206120878285838a01611be7565b85519184019161209a8184848a01611be7565b8554920191600090600181811c90808316806120b757607f831692505b8583108114156120d557634e487b7160e01b85526022600452602485fd5b8080156120e957600181146120fa57612127565b60ff19851688528388019550612127565b60008b81526020902060005b8581101561211f5781548a820152908401908801612106565b505083880195505b50939b9a5050505050505050505050565b60008282101561214a5761214a611fe0565b500390565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826121c6576121c66121a1565b500490565b6000826121da576121da6121a1565b500690565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061221290830184611c13565b9695505050505050565b60006020828403121561222e57600080fd5b8151610fc581611bb4565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a073abcd5f3a68915a339f547e6082ac365fbe56bd39592e8b1ee9aecda0d4c264736f6c634300080c00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000054e4f56415300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024e43000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005868747470733a2f2f6e6f766163726565646e66742e6d7970696e6174612e636c6f75642f697066732f516d5853756a3764314559734d5759575952387346736a6377665932446d7a6a7a504e417a314b4345784c4a70462f0000000000000000000000000000000000000000000000000000000000000000000000000000005868747470733a2f2f6e6f766163726565646e66742e6d7970696e6174612e636c6f75642f697066732f516d52706e477641763172587058433846425a755350486e4c57464274555264673962444e455475634e48516f372f0000000000000000

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000054e4f56415300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024e43000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005868747470733a2f2f6e6f766163726565646e66742e6d7970696e6174612e636c6f75642f697066732f516d5853756a3764314559734d5759575952387346736a6377665932446d7a6a7a504e417a314b4345784c4a70462f0000000000000000000000000000000000000000000000000000000000000000000000000000005868747470733a2f2f6e6f766163726565646e66742e6d7970696e6174612e636c6f75642f697066732f516d52706e477641763172587058433846425a755350486e4c57464274555264673962444e455475634e48516f372f0000000000000000

-----Decoded View---------------
Arg [0] : _name (string): NOVAS
Arg [1] : _symbol (string): NC
Arg [2] : _initBaseURI (string): https://novacreednft.mypinata.cloud/ipfs/QmXSuj7d1EYsMWYWYR8sFsjcwfY2DmzjzPNAz1KCExLJpF/
Arg [3] : _initStatic (string): https://novacreednft.mypinata.cloud/ipfs/QmRpnGvAv1rXpXC8FBZuSPHnLWFBtURdg9bDNETucNHQo7/

-----Encoded View---------------
16 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000180
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 4e4f564153000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [7] : 4e43000000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000058
Arg [9] : 68747470733a2f2f6e6f766163726565646e66742e6d7970696e6174612e636c
Arg [10] : 6f75642f697066732f516d5853756a3764314559734d5759575952387346736a
Arg [11] : 6377665932446d7a6a7a504e417a314b4345784c4a70462f0000000000000000
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000058
Arg [13] : 68747470733a2f2f6e6f766163726565646e66742e6d7970696e6174612e636c
Arg [14] : 6f75642f697066732f516d52706e477641763172587058433846425a75535048
Arg [15] : 6e4c57464274555264673962444e455475634e48516f372f0000000000000000


Deployed ByteCode Sourcemap

20311:2350:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15480:224;;;;;;:::i;:::-;;:::i;:::-;;;565:14:1;;558:22;540:41;;528:2;513:18;15480:224:0;;;;;;;;8886:100;;;:::i;:::-;;;;;;;:::i;9969:221::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1692:32:1;;;1674:51;;1662:2;1647:18;9969:221:0;1528:203:1;9550:411:0;;;;;;:::i;:::-;;:::i;:::-;;20534:23;;;:::i;15976:113::-;16064:10;:17;15976:113;;;2319:25:1;;;2307:2;2292:18;15976:113:0;2173:177:1;20462:33:0;;;;;;10673:286;;;;;;:::i;:::-;;:::i;15712:256::-;;;;;;:::i;:::-;;:::i;20934:250::-;;;;;;:::i;:::-;;:::i;10967:185::-;;;;;;:::i;:::-;;:::i;21190:348::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;16097:233::-;;;;;;:::i;:::-;;:::i;22136:70::-;;;:::i;22434:98::-;;;;;;:::i;:::-;;:::i;8639:239::-;;;;;;:::i;:::-;;:::i;19738:137::-;;;;;;:::i;:::-;;:::i;8423:208::-;;;;;;:::i;:::-;;:::i;18789:94::-;;;:::i;22210:116::-;;;;;;:::i;:::-;;:::i;18566:87::-;18639:6;;-1:-1:-1;;;;;18639:6:0;18566:87;;8994:104;;;:::i;10198:295::-;;;;;;:::i;:::-;;:::i;19593:137::-;;;;;;:::i;:::-;;:::i;22330:100::-;;;;;;:::i;:::-;;:::i;20033:160::-;;;;;;:::i;:::-;-1:-1:-1;;;;;20163:22:0;20123:12;20163:22;;;:12;:22;;;;;;;;;20033:160;11160:328;;;;;;:::i;:::-;;:::i;20425:32::-;;;:::i;20500:29::-;;;;;;;;;21544:493;;;;;;:::i;:::-;;:::i;22536:122::-;;;;;;:::i;:::-;;:::i;20201:103::-;;;:::i;22059:73::-;;;:::i;10501:164::-;;;;;;:::i;:::-;-1:-1:-1;;;;;10622:25:0;;;10598:4;10622:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;10501:164;18891:192;;;;;;:::i;:::-;;:::i;15480:224::-;15582:4;-1:-1:-1;;;;;;15606:50:0;;-1:-1:-1;;;15606:50:0;;:90;;;15660:36;15684:11;15660:23;:36::i;:::-;15599:97;15480:224;-1:-1:-1;;15480:224:0:o;8886:100::-;8940:13;8973:5;8966:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8886:100;:::o;9969:221::-;10045:7;11908:16;;;:7;:16;;;;;;-1:-1:-1;;;;;11908:16:0;10065:73;;;;-1:-1:-1;;;10065:73:0;;6617:2:1;10065:73:0;;;6599:21:1;6656:2;6636:18;;;6629:30;6695:34;6675:18;;;6668:62;-1:-1:-1;;;6746:18:1;;;6739:42;6798:19;;10065:73:0;;;;;;;;;-1:-1:-1;10158:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;10158:24:0;;9969:221::o;9550:411::-;9631:13;9647:23;9662:7;9647:14;:23::i;:::-;9631:39;;9695:5;-1:-1:-1;;;;;9689:11:0;:2;-1:-1:-1;;;;;9689:11:0;;;9681:57;;;;-1:-1:-1;;;9681:57:0;;7030:2:1;9681:57:0;;;7012:21:1;7069:2;7049:18;;;7042:30;7108:34;7088:18;;;7081:62;-1:-1:-1;;;7159:18:1;;;7152:31;7200:19;;9681:57:0;6828:397:1;9681:57:0;7412:10;-1:-1:-1;;;;;9773:21:0;;;;:62;;-1:-1:-1;9798:37:0;9815:5;7412:10;10501:164;:::i;9798:37::-;9751:168;;;;-1:-1:-1;;;9751:168:0;;7432:2:1;9751:168:0;;;7414:21:1;7471:2;7451:18;;;7444:30;7510:34;7490:18;;;7483:62;7581:26;7561:18;;;7554:54;7625:19;;9751:168:0;7230:420:1;9751:168:0;9932:21;9941:2;9945:7;9932:8;:21::i;:::-;9620:341;9550:411;;:::o;20534:23::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10673:286::-;10815:41;7412:10;10848:7;10815:18;:41::i;:::-;10807:103;;;;-1:-1:-1;;;10807:103:0;;;;;;;:::i;:::-;10923:28;10933:4;10939:2;10943:7;10923:9;:28::i;15712:256::-;15809:7;15845:23;15862:5;15845:16;:23::i;:::-;15837:5;:31;15829:87;;;;-1:-1:-1;;;15829:87:0;;8275:2:1;15829:87:0;;;8257:21:1;8314:2;8294:18;;;8287:30;8353:34;8333:18;;;8326:62;-1:-1:-1;;;8404:18:1;;;8397:41;8455:19;;15829:87:0;8073:407:1;15829:87:0;-1:-1:-1;;;;;;15934:19:0;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;15712:256::o;20934:250::-;19447:10;19434:24;;;;:12;:24;;;;;;;;:32;;:24;:32;;:63;;-1:-1:-1;19478:4:0;19487:10;19470:27;19434:63;19412:153;;;;-1:-1:-1;;;19412:153:0;;;;;;;:::i;:::-;21033:13:::1;;21018:11;:28;;21010:37;;;::::0;::::1;;21054:14;21071:13;16064:10:::0;:17;;15976:113;21071:13:::1;21054:30:::0;-1:-1:-1;21108:1:0::1;21091:88;21116:11;21111:1;:16;21091:88;;21143:28;21153:5:::0;21160:10:::1;21169:1:::0;21160:6;:10:::1;:::i;:::-;21143:9;:28::i;:::-;21129:3:::0;::::1;::::0;::::1;:::i;:::-;;;;21091:88;;;;21005:179;20934:250:::0;;:::o;10967:185::-;11105:39;11122:4;11128:2;11132:7;11105:39;;;;;;;;;;;;:16;:39::i;21190:348::-;21265:16;21293:23;21319:17;21329:6;21319:9;:17::i;:::-;21293:43;;21343:25;21385:15;21371:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21371:30:0;;21343:58;;21413:9;21408:103;21428:15;21424:1;:19;21408:103;;;21473:30;21493:6;21501:1;21473:19;:30::i;:::-;21459:8;21468:1;21459:11;;;;;;;;:::i;:::-;;;;;;;;;;:44;21445:3;;;;:::i;:::-;;;;21408:103;;;-1:-1:-1;21524:8:0;21190:348;-1:-1:-1;;;21190:348:0:o;16097:233::-;16172:7;16208:30;16064:10;:17;;15976:113;16208:30;16200:5;:38;16192:95;;;;-1:-1:-1;;;16192:95:0;;9633:2:1;16192:95:0;;;9615:21:1;9672:2;9652:18;;;9645:30;9711:34;9691:18;;;9684:62;-1:-1:-1;;;9762:18:1;;;9755:42;9814:19;;16192:95:0;9431:408:1;16192:95:0;16305:10;16316:5;16305:17;;;;;;;;:::i;:::-;;;;;;;;;16298:24;;16097:233;;;:::o;22136:70::-;19447:10;19434:24;;;;:12;:24;;;;;;;;:32;;:24;:32;;:63;;-1:-1:-1;19478:4:0;19487:10;19470:27;19434:63;19412:153;;;;-1:-1:-1;;;19412:153:0;;;;;;;:::i;:::-;22183:9:::1;:17:::0;;-1:-1:-1;;22183:17:0::1;::::0;;22136:70::o;22434:98::-;18639:6;;-1:-1:-1;;;;;18639:6:0;7412:10;18701:23;18693:68;;;;-1:-1:-1;;;18693:68:0;;;;;;;:::i;:::-;22505:21;;::::1;::::0;:7:::1;::::0;:21:::1;::::0;::::1;::::0;::::1;:::i;:::-;;22434:98:::0;:::o;8639:239::-;8711:7;8747:16;;;:7;:16;;;;;;-1:-1:-1;;;;;8747:16:0;8782:19;8774:73;;;;-1:-1:-1;;;8774:73:0;;10407:2:1;8774:73:0;;;10389:21:1;10446:2;10426:18;;;10419:30;10485:34;10465:18;;;10458:62;-1:-1:-1;;;10536:18:1;;;10529:39;10585:19;;8774:73:0;10205:405:1;19738:137:0;18639:6;;-1:-1:-1;;;;;18639:6:0;7412:10;18701:23;18693:68;;;;-1:-1:-1;;;18693:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19842:25:0::1;;::::0;;;:12:::1;:25;::::0;;;;19835:32;;-1:-1:-1;;19835:32:0::1;::::0;;19738:137::o;8423:208::-;8495:7;-1:-1:-1;;;;;8523:19:0;;8515:74;;;;-1:-1:-1;;;8515:74:0;;10817:2:1;8515:74:0;;;10799:21:1;10856:2;10836:18;;;10829:30;10895:34;10875:18;;;10868:62;-1:-1:-1;;;10946:18:1;;;10939:40;10996:19;;8515:74:0;10615:406:1;8515:74:0;-1:-1:-1;;;;;;8607:16:0;;;;;:9;:16;;;;;;;8423:208::o;18789:94::-;18639:6;;-1:-1:-1;;;;;18639:6:0;7412:10;18701:23;18693:68;;;;-1:-1:-1;;;18693:68:0;;;;;;;:::i;:::-;18854:21:::1;18872:1;18854:9;:21::i;:::-;18789:94::o:0;22210:116::-;18639:6;;-1:-1:-1;;;;;18639:6:0;7412:10;18701:23;18693:68;;;;-1:-1:-1;;;18693:68:0;;;;;;;:::i;:::-;22287:13:::1;:33:::0;22210:116::o;8994:104::-;9050:13;9083:7;9076:14;;;;;:::i;10198:295::-;-1:-1:-1;;;;;10301:24:0;;7412:10;10301:24;;10293:62;;;;-1:-1:-1;;;10293:62:0;;11228:2:1;10293:62:0;;;11210:21:1;11267:2;11247:18;;;11240:30;11306:27;11286:18;;;11279:55;11351:18;;10293:62:0;11026:349:1;10293:62:0;7412:10;10368:32;;;;:18;:32;;;;;;;;-1:-1:-1;;;;;10368:42:0;;;;;;;;;;;;:53;;-1:-1:-1;;10368:53:0;;;;;;;;;;10437:48;;540:41:1;;;10368:42:0;;7412:10;10437:48;;513:18:1;10437:48:0;;;;;;;10198:295;;:::o;19593:137::-;18639:6;;-1:-1:-1;;;;;18639:6:0;7412:10;18701:23;18693:68;;;;-1:-1:-1;;;18693:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19690:25:0::1;;::::0;;;:12:::1;:25;::::0;;;;:32;;-1:-1:-1;;19690:32:0::1;19718:4;19690:32;::::0;;19593:137::o;22330:100::-;18639:6;;-1:-1:-1;;;;;18639:6:0;7412:10;18701:23;18693:68;;;;-1:-1:-1;;;18693:68:0;;;;;;;:::i;:::-;22402:22;;::::1;::::0;:9:::1;::::0;:22:::1;::::0;::::1;::::0;::::1;:::i;11160:328::-:0;11335:41;7412:10;11368:7;11335:18;:41::i;:::-;11327:103;;;;-1:-1:-1;;;11327:103:0;;;;;;;:::i;:::-;11441:39;11455:4;11461:2;11465:7;11474:5;11441:13;:39::i;20425:32::-;;;;;;;:::i;21544:493::-;11884:4;11908:16;;;:7;:16;;;;;;21642:13;;-1:-1:-1;;;;;11908:16:0;21667:97;;;;-1:-1:-1;;;21667:97:0;;11582:2:1;21667:97:0;;;11564:21:1;11621:2;11601:18;;;11594:30;11660:34;11640:18;;;11633:62;-1:-1:-1;;;11711:18:1;;;11704:45;11766:19;;21667:97:0;11380:411:1;21667:97:0;21780:9;;;;21777:58;;21818:9;21811:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21544:493;;;:::o;21777:58::-;21843:28;21874:10;:8;:10::i;:::-;21843:41;;21929:1;21904:14;21898:28;:32;:133;;;;;;;;;;;;;;;;;21966:14;21982:18;:7;:16;:18::i;:::-;22002:13;21949:67;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;21898:133;21891:140;21544:493;-1:-1:-1;;;21544:493:0:o;22536:122::-;18639:6;;-1:-1:-1;;;;;18639:6:0;7412:10;18701:23;18693:68;;;;-1:-1:-1;;;18693:68:0;;;;;;;:::i;:::-;22619:33;;::::1;::::0;:13:::1;::::0;:33:::1;::::0;::::1;::::0;::::1;:::i;20201:103::-:0;19447:10;19434:24;;;;:12;:24;;;;;;;;:32;;:24;:32;;:63;;-1:-1:-1;19478:4:0;19487:10;19470:27;19434:63;19412:153;;;;-1:-1:-1;;;19412:153:0;;;;;;;:::i;:::-;20285:10:::1;20272:24;::::0;;;:12:::1;:24;::::0;;;;20265:31;;-1:-1:-1;;20265:31:0::1;::::0;;20201:103::o;22059:73::-;19447:10;19434:24;;;;:12;:24;;;;;;;;:32;;:24;:32;;:63;;-1:-1:-1;19478:4:0;19487:10;19470:27;19434:63;19412:153;;;;-1:-1:-1;;;19412:153:0;;;;;;;:::i;:::-;22110:9:::1;:16:::0;;-1:-1:-1;;22110:16:0::1;22122:4;22110:16;::::0;;22059:73::o;18891:192::-;18639:6;;-1:-1:-1;;;;;18639:6:0;7412:10;18701:23;18693:68;;;;-1:-1:-1;;;18693:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18980:22:0;::::1;18972:73;;;::::0;-1:-1:-1;;;18972:73:0;;13656:2:1;18972:73:0::1;::::0;::::1;13638:21:1::0;13695:2;13675:18;;;13668:30;13734:34;13714:18;;;13707:62;-1:-1:-1;;;13785:18:1;;;13778:36;13831:19;;18972:73:0::1;13454:402:1::0;18972:73:0::1;19056:19;19066:8;19056:9;:19::i;:::-;18891:192:::0;:::o;8110:305::-;8212:4;-1:-1:-1;;;;;;8249:40:0;;-1:-1:-1;;;8249:40:0;;:105;;-1:-1:-1;;;;;;;8306:48:0;;-1:-1:-1;;;8306:48:0;8249:105;:158;;;-1:-1:-1;;;;;;;;;;1808:40:0;;;8371:36;1699:157;14049:174;14124:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;14124:29:0;-1:-1:-1;;;;;14124:29:0;;;;;;;;:24;;14178:23;14124:24;14178:14;:23::i;:::-;-1:-1:-1;;;;;14169:46:0;;;;;;;;;;;14049:174;;:::o;11954:348::-;12047:4;11908:16;;;:7;:16;;;;;;-1:-1:-1;;;;;11908:16:0;12064:73;;;;-1:-1:-1;;;12064:73:0;;14063:2:1;12064:73:0;;;14045:21:1;14102:2;14082:18;;;14075:30;14141:34;14121:18;;;14114:62;-1:-1:-1;;;14192:18:1;;;14185:42;14244:19;;12064:73:0;13861:408:1;12064:73:0;12148:13;12164:23;12179:7;12164:14;:23::i;:::-;12148:39;;12217:5;-1:-1:-1;;;;;12206:16:0;:7;-1:-1:-1;;;;;12206:16:0;;:51;;;;12250:7;-1:-1:-1;;;;;12226:31:0;:20;12238:7;12226:11;:20::i;:::-;-1:-1:-1;;;;;12226:31:0;;12206:51;:87;;;-1:-1:-1;;;;;;10622:25:0;;;10598:4;10622:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;12261:32;12198:96;11954:348;-1:-1:-1;;;;11954:348:0:o;13515:526::-;13674:4;-1:-1:-1;;;;;13647:31:0;:23;13662:7;13647:14;:23::i;:::-;-1:-1:-1;;;;;13647:31:0;;13639:85;;;;-1:-1:-1;;;13639:85:0;;14476:2:1;13639:85:0;;;14458:21:1;14515:2;14495:18;;;14488:30;14554:34;14534:18;;;14527:62;-1:-1:-1;;;14605:18:1;;;14598:39;14654:19;;13639:85:0;14274:405:1;13639:85:0;-1:-1:-1;;;;;13743:16:0;;13735:65;;;;-1:-1:-1;;;13735:65:0;;14886:2:1;13735:65:0;;;14868:21:1;14925:2;14905:18;;;14898:30;14964:34;14944:18;;;14937:62;-1:-1:-1;;;15015:18:1;;;15008:34;15059:19;;13735:65:0;14684:400:1;13735:65:0;13813:39;13834:4;13840:2;13844:7;13813:20;:39::i;:::-;13865:29;13882:1;13886:7;13865:8;:29::i;:::-;-1:-1:-1;;;;;13907:15:0;;;;;;:9;:15;;;;;:20;;13926:1;;13907:15;:20;;13926:1;;13907:20;:::i;:::-;;;;-1:-1:-1;;;;;;;13938:13:0;;;;;;:9;:13;;;;;:18;;13955:1;;13938:13;:18;;13955:1;;13938:18;:::i;:::-;;;;-1:-1:-1;;13967:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;13967:21:0;-1:-1:-1;;;;;13967:21:0;;;;;;;;;14006:27;;13967:16;;14006:27;;;;;;;13515:526;;;:::o;12310:110::-;12386:26;12396:2;12400:7;12386:26;;;;;;;;;;;;:9;:26::i;19091:173::-;19166:6;;;-1:-1:-1;;;;;19183:17:0;;;-1:-1:-1;;;;;;19183:17:0;;;;;;;19216:40;;19166:6;;;19183:17;19166:6;;19216:40;;19147:16;;19216:40;19136:128;19091:173;:::o;11496:315::-;11653:28;11663:4;11669:2;11673:7;11653:9;:28::i;:::-;11700:48;11723:4;11729:2;11733:7;11742:5;11700:22;:48::i;:::-;11692:111;;;;-1:-1:-1;;;11692:111:0;;;;;;;:::i;20813:102::-;20873:13;20902:7;20895:14;;;;;:::i;1953:532::-;2009:13;2039:10;2035:53;;-1:-1:-1;;2066:10:0;;;;;;;;;;;;-1:-1:-1;;;2066:10:0;;;;;1953:532::o;2035:53::-;2113:5;2098:12;2154:78;2161:9;;2154:78;;2187:8;;;;:::i;:::-;;-1:-1:-1;2210:10:0;;-1:-1:-1;2218:2:0;2210:10;;:::i;:::-;;;2154:78;;;2242:19;2274:6;2264:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2264:17:0;;2242:39;;2292:154;2299:10;;2292:154;;2326:11;2336:1;2326:11;;:::i;:::-;;-1:-1:-1;2395:10:0;2403:2;2395:5;:10;:::i;:::-;2382:24;;:2;:24;:::i;:::-;2369:39;;2352:6;2359;2352:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;2352:56:0;;;;;;;;-1:-1:-1;2423:11:0;2432:2;2423:11;;:::i;:::-;;;2292:154;;16338:589;-1:-1:-1;;;;;16544:18:0;;16540:187;;16579:40;16611:7;17268:10;:17;;17241:24;;;;:15;:24;;;;;:44;;;17296:24;;;;;;;;;;;;17164:164;16579:40;16540:187;;;16649:2;-1:-1:-1;;;;;16641:10:0;:4;-1:-1:-1;;;;;16641:10:0;;16637:90;;16668:47;16701:4;16707:7;16668:32;:47::i;:::-;-1:-1:-1;;;;;16741:16:0;;16737:183;;16774:45;16811:7;16774:36;:45::i;16737:183::-;16847:4;-1:-1:-1;;;;;16841:10:0;:2;-1:-1:-1;;;;;16841:10:0;;16837:83;;16868:40;16896:2;16900:7;16868:27;:40::i;12428:321::-;12558:18;12564:2;12568:7;12558:5;:18::i;:::-;12609:54;12640:1;12644:2;12648:7;12657:5;12609:22;:54::i;:::-;12587:154;;;;-1:-1:-1;;;12587:154:0;;;;;;;:::i;14231:799::-;14386:4;-1:-1:-1;;;;;14407:13:0;;3458:20;3506:8;14403:620;;14443:72;;-1:-1:-1;;;14443:72:0;;-1:-1:-1;;;;;14443:36:0;;;;;:72;;7412:10;;14494:4;;14500:7;;14509:5;;14443:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14443:72:0;;;;;;;;-1:-1:-1;;14443:72:0;;;;;;;;;;;;:::i;:::-;;;14439:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14685:13:0;;14681:272;;14728:60;;-1:-1:-1;;;14728:60:0;;;;;;;:::i;14681:272::-;14903:6;14897:13;14888:6;14884:2;14880:15;14873:38;14439:529;-1:-1:-1;;;;;;14566:51:0;-1:-1:-1;;;14566:51:0;;-1:-1:-1;14559:58:0;;14403:620;-1:-1:-1;15007:4:0;14231:799;;;;;;:::o;17336:557::-;17430:22;17480:1;17455:22;17472:4;17455:16;:22::i;:::-;:26;;;;:::i;:::-;17492:18;17513:26;;;:17;:26;;;;;;17430:51;;-1:-1:-1;17556:28:0;;;17552:236;;-1:-1:-1;;;;;17623:18:0;;17601:19;17623:18;;;:12;:18;;;;;;;;:34;;;;;;;;;17674:30;;;;;;:44;;;17733:30;;:17;:30;;;;;:43;;;17552:236;-1:-1:-1;17807:26:0;;;;:17;:26;;;;;;;;17800:33;;;-1:-1:-1;;;;;17851:18:0;;;;;:12;:18;;;;;:34;;;;;;;17844:41;17336:557::o;17901:427::-;18010:10;:17;17985:22;;18010:21;;18030:1;;18010:21;:::i;:::-;18042:18;18063:24;;;:15;:24;;;;;;18122:10;:26;;17985:46;;-1:-1:-1;18063:24:0;;17985:46;;18122:26;;;;;;:::i;:::-;;;;;;;;;18100:48;;18186:11;18161:10;18172;18161:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;;18208:28;;;:15;:28;;;;;;;:41;;;18269:24;;;;;18262:31;18304:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;17972:356;;;17901:427;:::o;16935:221::-;17020:14;17037:20;17054:2;17037:16;:20::i;:::-;-1:-1:-1;;;;;17068:16:0;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;17113:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;16935:221:0:o;12757:382::-;-1:-1:-1;;;;;12837:16:0;;12829:61;;;;-1:-1:-1;;;12829:61:0;;17094:2:1;12829:61:0;;;17076:21:1;;;17113:18;;;17106:30;17172:34;17152:18;;;17145:62;17224:18;;12829:61:0;16892:356:1;12829:61:0;11884:4;11908:16;;;:7;:16;;;;;;-1:-1:-1;;;;;11908:16:0;:30;12901:58;;;;-1:-1:-1;;;12901:58:0;;17455:2:1;12901:58:0;;;17437:21:1;17494:2;17474:18;;;17467:30;17533;17513:18;;;17506:58;17581:18;;12901:58:0;17253:352:1;12901:58:0;12972:45;13001:1;13005:2;13009:7;12972:20;:45::i;:::-;-1:-1:-1;;;;;13030:13:0;;;;;;:9;:13;;;;;:18;;13047:1;;13030:13;:18;;13047:1;;13030:18;:::i;:::-;;;;-1:-1:-1;;13059:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;13059:21:0;-1:-1:-1;;;;;13059:21:0;;;;;;;;13098:33;;13059:16;;;13098:33;;13059:16;;13098:33;12757:382;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:131:1;-1:-1:-1;;;;;;88:32:1;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:258::-;664:1;674:113;688:6;685:1;682:13;674:113;;;764:11;;;758:18;745:11;;;738:39;710:2;703:10;674:113;;;805:6;802:1;799:13;796:48;;;-1:-1:-1;;840:1:1;822:16;;815:27;592:258::o;855:::-;897:3;935:5;929:12;962:6;957:3;950:19;978:63;1034:6;1027:4;1022:3;1018:14;1011:4;1004:5;1000:16;978:63;:::i;:::-;1095:2;1074:15;-1:-1:-1;;1070:29:1;1061:39;;;;1102:4;1057:50;;855:258;-1:-1:-1;;855:258:1:o;1118:220::-;1267:2;1256:9;1249:21;1230:4;1287:45;1328:2;1317:9;1313:18;1305:6;1287:45;:::i;1343:180::-;1402:6;1455:2;1443:9;1434:7;1430:23;1426:32;1423:52;;;1471:1;1468;1461:12;1423:52;-1:-1:-1;1494:23:1;;1343:180;-1:-1:-1;1343:180:1:o;1736:173::-;1804:20;;-1:-1:-1;;;;;1853:31:1;;1843:42;;1833:70;;1899:1;1896;1889:12;1833:70;1736:173;;;:::o;1914:254::-;1982:6;1990;2043:2;2031:9;2022:7;2018:23;2014:32;2011:52;;;2059:1;2056;2049:12;2011:52;2082:29;2101:9;2082:29;:::i;:::-;2072:39;2158:2;2143:18;;;;2130:32;;-1:-1:-1;;;1914:254:1:o;2355:328::-;2432:6;2440;2448;2501:2;2489:9;2480:7;2476:23;2472:32;2469:52;;;2517:1;2514;2507:12;2469:52;2540:29;2559:9;2540:29;:::i;:::-;2530:39;;2588:38;2622:2;2611:9;2607:18;2588:38;:::i;:::-;2578:48;;2673:2;2662:9;2658:18;2645:32;2635:42;;2355:328;;;;;:::o;2688:186::-;2747:6;2800:2;2788:9;2779:7;2775:23;2771:32;2768:52;;;2816:1;2813;2806:12;2768:52;2839:29;2858:9;2839:29;:::i;2879:632::-;3050:2;3102:21;;;3172:13;;3075:18;;;3194:22;;;3021:4;;3050:2;3273:15;;;;3247:2;3232:18;;;3021:4;3316:169;3330:6;3327:1;3324:13;3316:169;;;3391:13;;3379:26;;3460:15;;;;3425:12;;;;3352:1;3345:9;3316:169;;;-1:-1:-1;3502:3:1;;2879:632;-1:-1:-1;;;;;;2879:632:1:o;3516:127::-;3577:10;3572:3;3568:20;3565:1;3558:31;3608:4;3605:1;3598:15;3632:4;3629:1;3622:15;3648:632;3713:5;3743:18;3784:2;3776:6;3773:14;3770:40;;;3790:18;;:::i;:::-;3865:2;3859:9;3833:2;3919:15;;-1:-1:-1;;3915:24:1;;;3941:2;3911:33;3907:42;3895:55;;;3965:18;;;3985:22;;;3962:46;3959:72;;;4011:18;;:::i;:::-;4051:10;4047:2;4040:22;4080:6;4071:15;;4110:6;4102;4095:22;4150:3;4141:6;4136:3;4132:16;4129:25;4126:45;;;4167:1;4164;4157:12;4126:45;4217:6;4212:3;4205:4;4197:6;4193:17;4180:44;4272:1;4265:4;4256:6;4248;4244:19;4240:30;4233:41;;;;3648:632;;;;;:::o;4285:451::-;4354:6;4407:2;4395:9;4386:7;4382:23;4378:32;4375:52;;;4423:1;4420;4413:12;4375:52;4463:9;4450:23;4496:18;4488:6;4485:30;4482:50;;;4528:1;4525;4518:12;4482:50;4551:22;;4604:4;4596:13;;4592:27;-1:-1:-1;4582:55:1;;4633:1;4630;4623:12;4582:55;4656:74;4722:7;4717:2;4704:16;4699:2;4695;4691:11;4656:74;:::i;4741:347::-;4806:6;4814;4867:2;4855:9;4846:7;4842:23;4838:32;4835:52;;;4883:1;4880;4873:12;4835:52;4906:29;4925:9;4906:29;:::i;:::-;4896:39;;4985:2;4974:9;4970:18;4957:32;5032:5;5025:13;5018:21;5011:5;5008:32;4998:60;;5054:1;5051;5044:12;4998:60;5077:5;5067:15;;;4741:347;;;;;:::o;5093:667::-;5188:6;5196;5204;5212;5265:3;5253:9;5244:7;5240:23;5236:33;5233:53;;;5282:1;5279;5272:12;5233:53;5305:29;5324:9;5305:29;:::i;:::-;5295:39;;5353:38;5387:2;5376:9;5372:18;5353:38;:::i;:::-;5343:48;;5438:2;5427:9;5423:18;5410:32;5400:42;;5493:2;5482:9;5478:18;5465:32;5520:18;5512:6;5509:30;5506:50;;;5552:1;5549;5542:12;5506:50;5575:22;;5628:4;5620:13;;5616:27;-1:-1:-1;5606:55:1;;5657:1;5654;5647:12;5606:55;5680:74;5746:7;5741:2;5728:16;5723:2;5719;5715:11;5680:74;:::i;:::-;5670:84;;;5093:667;;;;;;;:::o;5765:260::-;5833:6;5841;5894:2;5882:9;5873:7;5869:23;5865:32;5862:52;;;5910:1;5907;5900:12;5862:52;5933:29;5952:9;5933:29;:::i;:::-;5923:39;;5981:38;6015:2;6004:9;6000:18;5981:38;:::i;:::-;5971:48;;5765:260;;;;;:::o;6030:380::-;6109:1;6105:12;;;;6152;;;6173:61;;6227:4;6219:6;6215:17;6205:27;;6173:61;6280:2;6272:6;6269:14;6249:18;6246:38;6243:161;;;6326:10;6321:3;6317:20;6314:1;6307:31;6361:4;6358:1;6351:15;6389:4;6386:1;6379:15;6243:161;;6030:380;;;:::o;7655:413::-;7857:2;7839:21;;;7896:2;7876:18;;;7869:30;7935:34;7930:2;7915:18;;7908:62;-1:-1:-1;;;8001:2:1;7986:18;;7979:47;8058:3;8043:19;;7655:413::o;8485:404::-;8687:2;8669:21;;;8726:2;8706:18;;;8699:30;8765:34;8760:2;8745:18;;8738:62;-1:-1:-1;;;8831:2:1;8816:18;;8809:38;8879:3;8864:19;;8485:404::o;8894:127::-;8955:10;8950:3;8946:20;8943:1;8936:31;8986:4;8983:1;8976:15;9010:4;9007:1;9000:15;9026:128;9066:3;9097:1;9093:6;9090:1;9087:13;9084:39;;;9103:18;;:::i;:::-;-1:-1:-1;9139:9:1;;9026:128::o;9159:135::-;9198:3;-1:-1:-1;;9219:17:1;;9216:43;;;9239:18;;:::i;:::-;-1:-1:-1;9286:1:1;9275:13;;9159:135::o;9299:127::-;9360:10;9355:3;9351:20;9348:1;9341:31;9391:4;9388:1;9381:15;9415:4;9412:1;9405:15;9844:356;10046:2;10028:21;;;10065:18;;;10058:30;10124:34;10119:2;10104:18;;10097:62;10191:2;10176:18;;9844:356::o;11922:1527::-;12146:3;12184:6;12178:13;12210:4;12223:51;12267:6;12262:3;12257:2;12249:6;12245:15;12223:51;:::i;:::-;12337:13;;12296:16;;;;12359:55;12337:13;12296:16;12381:15;;;12359:55;:::i;:::-;12503:13;;12436:20;;;12476:1;;12563;12585:18;;;;12638;;;;12665:93;;12743:4;12733:8;12729:19;12717:31;;12665:93;12806:2;12796:8;12793:16;12773:18;12770:40;12767:167;;;-1:-1:-1;;;12833:33:1;;12889:4;12886:1;12879:15;12919:4;12840:3;12907:17;12767:167;12950:18;12977:110;;;;13101:1;13096:328;;;;12943:481;;12977:110;-1:-1:-1;;13012:24:1;;12998:39;;13057:20;;;;-1:-1:-1;12977:110:1;;13096:328;11869:1;11862:14;;;11906:4;11893:18;;13191:1;13205:169;13219:8;13216:1;13213:15;13205:169;;;13301:14;;13286:13;;;13279:37;13344:16;;;;13236:10;;13205:169;;;13209:3;;13405:8;13398:5;13394:20;13387:27;;12943:481;-1:-1:-1;13440:3:1;;11922:1527;-1:-1:-1;;;;;;;;;;;11922:1527:1:o;15089:125::-;15129:4;15157:1;15154;15151:8;15148:34;;;15162:18;;:::i;:::-;-1:-1:-1;15199:9:1;;15089:125::o;15219:414::-;15421:2;15403:21;;;15460:2;15440:18;;;15433:30;15499:34;15494:2;15479:18;;15472:62;-1:-1:-1;;;15565:2:1;15550:18;;15543:48;15623:3;15608:19;;15219:414::o;15638:127::-;15699:10;15694:3;15690:20;15687:1;15680:31;15730:4;15727:1;15720:15;15754:4;15751:1;15744:15;15770:120;15810:1;15836;15826:35;;15841:18;;:::i;:::-;-1:-1:-1;15875:9:1;;15770:120::o;15895:112::-;15927:1;15953;15943:35;;15958:18;;:::i;:::-;-1:-1:-1;15992:9:1;;15895:112::o;16012:489::-;-1:-1:-1;;;;;16281:15:1;;;16263:34;;16333:15;;16328:2;16313:18;;16306:43;16380:2;16365:18;;16358:34;;;16428:3;16423:2;16408:18;;16401:31;;;16206:4;;16449:46;;16475:19;;16467:6;16449:46;:::i;:::-;16441:54;16012:489;-1:-1:-1;;;;;;16012:489:1:o;16506:249::-;16575:6;16628:2;16616:9;16607:7;16603:23;16599:32;16596:52;;;16644:1;16641;16634:12;16596:52;16676:9;16670:16;16695:30;16719:5;16695:30;:::i;16760:127::-;16821:10;16816:3;16812:20;16809:1;16802:31;16852:4;16849:1;16842:15;16876:4;16873:1;16866:15

Swarm Source

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