ETH Price: $2,613.36 (-2.31%)
Gas: 5.38 Gwei

Token

Changpeng (CHANG)
 

Overview

Max Total Supply

420,690,000,000,000 CHANG

Holders

161

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
363,450,471,865.620473227357423326 CHANG

Value
$0.00
0xc73fecb394fe584c2e0da06a32e6060be8947d0f
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:
Changpeng

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-30
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.18;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

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

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

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

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

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    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(0));
        _owner = address(0);
    }

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

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _init(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract Changpeng is ERC20, Ownable {
    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedFromMaxWalletLimit;
        
    uint256 public sellFee;
    uint256 public maxWalletAmount;
    bool    public maxWalletLimitEnabled;
    bool    public tradingEnabled;

    uint256 public tradingActiveTime;

    event ExcludeFromFees(address indexed account, bool isExcluded);  
    event SellFeeUpdated(uint256 sellFee);    
    event ExcludedFromMaxWalletLimit(address indexed account, bool isExcluded);
    event MaxWalletLimitAmountChanged(uint256 maxWalletLimitRate);
    event MaxWalletLimitStateChanged(bool maxWalletLimit);

    constructor () ERC20("Changpeng", "CHANG") 
    {   
        address newOwner = 0x30ed4B0E95a1B816d0C1c41ef8b67A354Bf5Ff86;
        transferOwnership(newOwner);

        address router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair   = _uniswapV2Pair;

        _approve(address(this), address(uniswapV2Router), type(uint256).max);
        
        sellFee = 0;
        
        _isExcludedFromMaxWalletLimit[address(this)] = true;
        _isExcludedFromMaxWalletLimit[owner()] = true;
        _isExcludedFromMaxWalletLimit[address(0xdead)] = true;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(0xdead)] = true;
        _isExcludedFromFees[address(this)] = true;

        _init(owner(), 420_690_000_000_000 ether);
        maxWalletLimitEnabled = true;
        maxWalletAmount = (totalSupply() / 100);
    }

    receive() external payable {

  	}

    function enableTrading() public onlyOwner{
        require(!tradingEnabled, "Trading is already enabled");
        tradingEnabled = true;
        tradingActiveTime = block.timestamp;
    }  

    function claimStuckTokens(address token) external onlyOwner {
        require(token != address(this), "Owner cannot claim contract's balance of its own tokens");
        if (token == address(0x0)) {
            (bool success,) = msg.sender.call{value: address(this).balance}("");
            require(success, "Claim failed");
            return;
        }
        IERC20 ERC20token = IERC20(token);
        uint256 balance = ERC20token.balanceOf(address(this));
        ERC20token.transfer(msg.sender, balance);
    }

    function excludeFromFees(address account, bool excluded) external onlyOwner{
        require(_isExcludedFromFees[account] != excluded,"Account is already the value of 'excluded'");
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }
       
    function enableMaxWalletLimit() external onlyOwner {
        require(!maxWalletLimitEnabled, "Max Wallet Limit is already enabled");
        maxWalletLimitEnabled = true;
        emit MaxWalletLimitStateChanged(maxWalletLimitEnabled);
    }

    function disableMaxWalletLimit() external onlyOwner {
        require(maxWalletLimitEnabled, "Max Wallet Limit is already disabled");
        maxWalletLimitEnabled = false;
        emit MaxWalletLimitStateChanged(maxWalletLimitEnabled);
    }

    function setMaxWalletAmount(uint256 _maxWalletAmount) external onlyOwner {
        maxWalletAmount = _maxWalletAmount * (10 ** decimals());
        emit MaxWalletLimitAmountChanged(maxWalletAmount);
    }

    function setExcludeFromMaxWallet(address account, bool exclude) external onlyOwner {
        require(
            _isExcludedFromMaxWalletLimit[account] != exclude, 
            "Account is already set to that state"
        );
        _isExcludedFromMaxWalletLimit[account] = exclude;
        emit ExcludedFromMaxWalletLimit(account, exclude);
    }

    function isExcludedFromMaxWalletLimit(address account) public view returns(bool) {
        return _isExcludedFromMaxWalletLimit[account];
    } 

    function _transfer(address from,address to,uint256 amount) internal  override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require((tradingEnabled && block.timestamp - tradingActiveTime > 120) || _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not enabled yet");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }       
       
        uint256 _totalFees;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            _totalFees = 0;
        } else if (from == uniswapV2Pair) {
            _totalFees = 0;
        } else if (to == uniswapV2Pair) {                
            if (block.timestamp - tradingActiveTime <= 7 minutes)
            _totalFees = 20;
            else _totalFees = sellFee;
        } else {
            _totalFees = 0;
        }
       
        if (_totalFees > 0) {
            uint256 fees = (amount * _totalFees) / 100;
            amount = amount - fees;
            super._transfer(from, owner(), fees);
        }

        if (maxWalletLimitEnabled) {
            if (_isExcludedFromMaxWalletLimit[from]  == false && 
                _isExcludedFromMaxWalletLimit[to]    == false &&
                to != uniswapV2Pair
            ) {
                uint256 balance = balanceOf(to);
                require(
                    balance + amount <= maxWalletAmount, 
                    "Recipient exceeds the max wallet limit"
                );
            }
        }	

        super._transfer(from, to, 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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromMaxWalletLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletLimitRate","type":"uint256"}],"name":"MaxWalletLimitAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"maxWalletLimit","type":"bool"}],"name":"MaxWalletLimitStateChanged","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":"sellFee","type":"uint256"}],"name":"SellFeeUpdated","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":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","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":"disableMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimitEnabled","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":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","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":[],"name":"tradingActiveTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"uniswapV2Pair","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"}]

60806040523480156200001157600080fd5b50604051806040016040528060098152602001684368616e6770656e6760b81b815250604051806040016040528060058152602001644348414e4760d81b8152508160039081620000639190620007d7565b506004620000728282620007d7565b5050506000620000876200040b60201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062002362833981519152908290a3507330ed4b0e95a1b816d0c1c41ef8b67a354bf5ff86620000e4816200040f565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000143573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001699190620008a3565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001dd9190620008a3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200022b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002519190620008a3565b600680546001600160a01b038086166001600160a01b0319928316811790935560078054918516919092161790559091506200029290309060001962000521565b6000600a8190553081526009602081905260408220805460ff1916600190811790915591620002c96005546001600160a01b031690565b6001600160a01b031681526020808201929092526040016000908120805493151560ff1994851617905561dead815260099091527f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb19307500378580549092166001908117909255600890620003416005546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905560089092527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548416600190811790915530835291208054909216179055620003d8620003c36005546001600160a01b031690565b6d14bddab3e51a57cff87a5000000062000649565b600c805460ff191660011790556064620003f160025490565b620003fd9190620008d5565b600b55506200092092505050565b3390565b6005546001600160a01b031633146200046f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b038116620004d65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000466565b6005546040516001600160a01b038084169216906000805160206200236283398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316620005855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000466565b6001600160a01b038216620005e85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000466565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620006a15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000466565b8060026000828254620006b59190620008f8565b90915550506001600160a01b03821660009081526020819052604081208054839290620006e4908490620008f8565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200075e57607f821691505b6020821081036200077f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200072e57600081815260208120601f850160051c81016020861015620007ae5750805b601f850160051c820191505b81811015620007cf57828155600101620007ba565b505050505050565b81516001600160401b03811115620007f357620007f362000733565b6200080b8162000804845462000749565b8462000785565b602080601f8311600181146200084357600084156200082a5750858301515b600019600386901b1c1916600185901b178555620007cf565b600085815260208120601f198616915b82811015620008745788860151825594840194600190910190840162000853565b5085821015620008935787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620008b657600080fd5b81516001600160a01b0381168114620008ce57600080fd5b9392505050565b600082620008f357634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200091a57634e487b7160e01b600052601160045260246000fd5b92915050565b611a3280620009306000396000f3fe6080604052600436106101d15760003560e01c806370a08231116100f7578063a8a69b9d11610095578063d82e8c0611610064578063d82e8c0614610542578063dd62ed3e14610557578063f2fde38b1461059d578063f9d0831a146105bd57600080fd5b8063a8a69b9d146104b3578063a9059cbb146104ec578063aa4bde281461050c578063c02466681461052257600080fd5b80638da5cb5b116100d15780638da5cb5b14610440578063929f13601461045e57806395d89b411461047e578063a457c2d71461049357600080fd5b806370a08231146103e0578063715018a6146104165780638a8c523c1461042b57600080fd5b80632b14ca561161016f5780634ada218b1161013e5780634ada218b1461035d5780634fbee1931461037c5780635031595f146103b5578063585251a6146103cb57600080fd5b80632b14ca56146102eb578063313ce56714610301578063395093511461031d57806349bd5a5e1461033d57600080fd5b806318160ddd116101ab57806318160ddd1461027057806321a9d82a1461028f57806323b872dd146102a957806327a14fc2146102c957600080fd5b806306fdde03146101dd578063095ea7b3146102085780631694505e1461023857600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101f26105dd565b6040516101ff91906115e4565b60405180910390f35b34801561021457600080fd5b5061022861022336600461164e565b61066f565b60405190151581526020016101ff565b34801561024457600080fd5b50600654610258906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b34801561027c57600080fd5b506002545b6040519081526020016101ff565b34801561029b57600080fd5b50600c546102289060ff1681565b3480156102b557600080fd5b506102286102c4366004611678565b610686565b3480156102d557600080fd5b506102e96102e43660046116b4565b61073c565b005b3480156102f757600080fd5b50610281600a5481565b34801561030d57600080fd5b50604051601281526020016101ff565b34801561032957600080fd5b5061022861033836600461164e565b6107b7565b34801561034957600080fd5b50600754610258906001600160a01b031681565b34801561036957600080fd5b50600c5461022890610100900460ff1681565b34801561038857600080fd5b506102286103973660046116cd565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156103c157600080fd5b50610281600d5481565b3480156103d757600080fd5b506102e96107f3565b3480156103ec57600080fd5b506102816103fb3660046116cd565b6001600160a01b031660009081526020819052604090205490565b34801561042257600080fd5b506102e96108c2565b34801561043757600080fd5b506102e9610936565b34801561044c57600080fd5b506005546001600160a01b0316610258565b34801561046a57600080fd5b506102e96104793660046116fd565b6109cd565b34801561048a57600080fd5b506101f2610ad3565b34801561049f57600080fd5b506102286104ae36600461164e565b610ae2565b3480156104bf57600080fd5b506102286104ce3660046116cd565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156104f857600080fd5b5061022861050736600461164e565b610b7b565b34801561051857600080fd5b50610281600b5481565b34801561052e57600080fd5b506102e961053d3660046116fd565b610b88565b34801561054e57600080fd5b506102e9610c8d565b34801561056357600080fd5b50610281610572366004611734565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156105a957600080fd5b506102e96105b83660046116cd565b610d50565b3480156105c957600080fd5b506102e96105d83660046116cd565b610e3b565b6060600380546105ec90611767565b80601f016020809104026020016040519081016040528092919081815260200182805461061890611767565b80156106655780601f1061063a57610100808354040283529160200191610665565b820191906000526020600020905b81548152906001019060200180831161064857829003601f168201915b5050505050905090565b600061067c338484611064565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019811461072657828110156107195760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107268533858403611064565b610731858585611188565b506001949350505050565b6005546001600160a01b031633146107665760405162461bcd60e51b8152600401610710906117a1565b6107726012600a6118d0565b61077c90826118df565b600b8190556040519081527f21bc0ea3406acb92d4449ab33befb4ae82f873a22f3b6cf0e466b2710beb59429060200160405180910390a150565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161067c9185906107ee9086906118f6565b611064565b6005546001600160a01b0316331461081d5760405162461bcd60e51b8152600401610710906117a1565b600c5460ff161561087c5760405162461bcd60e51b815260206004820152602360248201527f4d61782057616c6c6574204c696d697420697320616c726561647920656e61626044820152621b195960ea1b6064820152608401610710565b600c805460ff191660019081179091556040519081527f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f1906020015b60405180910390a1565b6005546001600160a01b031633146108ec5760405162461bcd60e51b8152600401610710906117a1565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146109605760405162461bcd60e51b8152600401610710906117a1565b600c54610100900460ff16156109b85760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610710565b600c805461ff00191661010017905542600d55565b6005546001600160a01b031633146109f75760405162461bcd60e51b8152600401610710906117a1565b6001600160a01b03821660009081526009602052604090205481151560ff909116151503610a735760405162461bcd60e51b8152602060048201526024808201527f4163636f756e7420697320616c72656164792073657420746f207468617420736044820152637461746560e01b6064820152608401610710565b6001600160a01b038216600081815260096020908152604091829020805460ff191685151590811790915591519182527f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c91015b60405180910390a25050565b6060600480546105ec90611767565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610b645760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610710565b610b713385858403611064565b5060019392505050565b600061067c338484611188565b6005546001600160a01b03163314610bb25760405162461bcd60e51b8152600401610710906117a1565b6001600160a01b03821660009081526008602052604090205481151560ff909116151503610c355760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b6064820152608401610710565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610ac7565b6005546001600160a01b03163314610cb75760405162461bcd60e51b8152600401610710906117a1565b600c5460ff16610d155760405162461bcd60e51b8152602060048201526024808201527f4d61782057616c6c6574204c696d697420697320616c72656164792064697361604482015263189b195960e21b6064820152608401610710565b600c805460ff19169055604051600081527f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f1906020016108b8565b6005546001600160a01b03163314610d7a5760405162461bcd60e51b8152600401610710906117a1565b6001600160a01b038116610ddf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610710565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610e655760405162461bcd60e51b8152600401610710906117a1565b306001600160a01b03821603610ee35760405162461bcd60e51b815260206004820152603760248201527f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160448201527f6c616e6365206f6620697473206f776e20746f6b656e730000000000000000006064820152608401610710565b6001600160a01b038116610f7c57604051600090339047908381818185875af1925050503d8060008114610f33576040519150601f19603f3d011682016040523d82523d6000602084013e610f38565b606091505b5050905080610f785760405162461bcd60e51b815260206004820152600c60248201526b10db185a5b4819985a5b195960a21b6044820152606401610710565b5050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe99190611909565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611039573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105d9190611922565b5050505b50565b6001600160a01b0383166110c65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610710565b6001600160a01b0382166111275760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610710565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111ae5760405162461bcd60e51b81526004016107109061193f565b6001600160a01b0382166111d45760405162461bcd60e51b815260040161071090611984565b600c54610100900460ff1680156111f857506078600d54426111f691906119c7565b115b8061121b57506001600160a01b03831660009081526008602052604090205460ff165b8061123e57506001600160a01b03821660009081526008602052604090205460ff165b61128a5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610710565b806000036112a35761129e83836000611490565b505050565b6001600160a01b03831660009081526008602052604081205460ff16806112e257506001600160a01b03831660009081526008602052604090205460ff165b156112ef5750600061134e565b6007546001600160a01b039081169085160361130d5750600061134e565b6007546001600160a01b039081169084160361134a576101a4600d544261133491906119c7565b116113415750601461134e565b50600a5461134e565b5060005b8015611398576000606461136283856118df565b61136c91906119da565b905061137881846119c7565b9250611396856113906005546001600160a01b031690565b83611490565b505b600c5460ff1615611489576001600160a01b03841660009081526009602052604090205460ff161580156113e557506001600160a01b03831660009081526009602052604090205460ff16155b80156113ff57506007546001600160a01b03848116911614155b15611489576001600160a01b038316600090815260208190526040902054600b5461142a84836118f6565b11156114875760405162461bcd60e51b815260206004820152602660248201527f526563697069656e74206578636565647320746865206d61782077616c6c6574604482015265081b1a5b5a5d60d21b6064820152608401610710565b505b61105d8484845b6001600160a01b0383166114b65760405162461bcd60e51b81526004016107109061193f565b6001600160a01b0382166114dc5760405162461bcd60e51b815260040161071090611984565b6001600160a01b038316600090815260208190526040902054818110156115545760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610710565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061158b9084906118f6565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115d791815260200190565b60405180910390a361105d565b600060208083528351808285015260005b81811015611611578581018301518582016040015282016115f5565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461164957600080fd5b919050565b6000806040838503121561166157600080fd5b61166a83611632565b946020939093013593505050565b60008060006060848603121561168d57600080fd5b61169684611632565b92506116a460208501611632565b9150604084013590509250925092565b6000602082840312156116c657600080fd5b5035919050565b6000602082840312156116df57600080fd5b6116e882611632565b9392505050565b801515811461106157600080fd5b6000806040838503121561171057600080fd5b61171983611632565b91506020830135611729816116ef565b809150509250929050565b6000806040838503121561174757600080fd5b61175083611632565b915061175e60208401611632565b90509250929050565b600181811c9082168061177b57607f821691505b60208210810361179b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561182757816000190482111561180d5761180d6117d6565b8085161561181a57918102915b93841c93908002906117f1565b509250929050565b60008261183e57506001610680565b8161184b57506000610680565b8160018114611861576002811461186b57611887565b6001915050610680565b60ff84111561187c5761187c6117d6565b50506001821b610680565b5060208310610133831016604e8410600b84101617156118aa575081810a610680565b6118b483836117ec565b80600019048211156118c8576118c86117d6565b029392505050565b60006116e860ff84168361182f565b8082028115828204841417610680576106806117d6565b80820180821115610680576106806117d6565b60006020828403121561191b57600080fd5b5051919050565b60006020828403121561193457600080fd5b81516116e8816116ef565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610680576106806117d6565b6000826119f757634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220517d1e4800514c0b07d32e4144fd845c5f074e7ec927b6a2c51b63736cb1277064736f6c634300081200338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0

Deployed Bytecode

0x6080604052600436106101d15760003560e01c806370a08231116100f7578063a8a69b9d11610095578063d82e8c0611610064578063d82e8c0614610542578063dd62ed3e14610557578063f2fde38b1461059d578063f9d0831a146105bd57600080fd5b8063a8a69b9d146104b3578063a9059cbb146104ec578063aa4bde281461050c578063c02466681461052257600080fd5b80638da5cb5b116100d15780638da5cb5b14610440578063929f13601461045e57806395d89b411461047e578063a457c2d71461049357600080fd5b806370a08231146103e0578063715018a6146104165780638a8c523c1461042b57600080fd5b80632b14ca561161016f5780634ada218b1161013e5780634ada218b1461035d5780634fbee1931461037c5780635031595f146103b5578063585251a6146103cb57600080fd5b80632b14ca56146102eb578063313ce56714610301578063395093511461031d57806349bd5a5e1461033d57600080fd5b806318160ddd116101ab57806318160ddd1461027057806321a9d82a1461028f57806323b872dd146102a957806327a14fc2146102c957600080fd5b806306fdde03146101dd578063095ea7b3146102085780631694505e1461023857600080fd5b366101d857005b600080fd5b3480156101e957600080fd5b506101f26105dd565b6040516101ff91906115e4565b60405180910390f35b34801561021457600080fd5b5061022861022336600461164e565b61066f565b60405190151581526020016101ff565b34801561024457600080fd5b50600654610258906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b34801561027c57600080fd5b506002545b6040519081526020016101ff565b34801561029b57600080fd5b50600c546102289060ff1681565b3480156102b557600080fd5b506102286102c4366004611678565b610686565b3480156102d557600080fd5b506102e96102e43660046116b4565b61073c565b005b3480156102f757600080fd5b50610281600a5481565b34801561030d57600080fd5b50604051601281526020016101ff565b34801561032957600080fd5b5061022861033836600461164e565b6107b7565b34801561034957600080fd5b50600754610258906001600160a01b031681565b34801561036957600080fd5b50600c5461022890610100900460ff1681565b34801561038857600080fd5b506102286103973660046116cd565b6001600160a01b031660009081526008602052604090205460ff1690565b3480156103c157600080fd5b50610281600d5481565b3480156103d757600080fd5b506102e96107f3565b3480156103ec57600080fd5b506102816103fb3660046116cd565b6001600160a01b031660009081526020819052604090205490565b34801561042257600080fd5b506102e96108c2565b34801561043757600080fd5b506102e9610936565b34801561044c57600080fd5b506005546001600160a01b0316610258565b34801561046a57600080fd5b506102e96104793660046116fd565b6109cd565b34801561048a57600080fd5b506101f2610ad3565b34801561049f57600080fd5b506102286104ae36600461164e565b610ae2565b3480156104bf57600080fd5b506102286104ce3660046116cd565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156104f857600080fd5b5061022861050736600461164e565b610b7b565b34801561051857600080fd5b50610281600b5481565b34801561052e57600080fd5b506102e961053d3660046116fd565b610b88565b34801561054e57600080fd5b506102e9610c8d565b34801561056357600080fd5b50610281610572366004611734565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156105a957600080fd5b506102e96105b83660046116cd565b610d50565b3480156105c957600080fd5b506102e96105d83660046116cd565b610e3b565b6060600380546105ec90611767565b80601f016020809104026020016040519081016040528092919081815260200182805461061890611767565b80156106655780601f1061063a57610100808354040283529160200191610665565b820191906000526020600020905b81548152906001019060200180831161064857829003601f168201915b5050505050905090565b600061067c338484611064565b5060015b92915050565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019811461072657828110156107195760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107268533858403611064565b610731858585611188565b506001949350505050565b6005546001600160a01b031633146107665760405162461bcd60e51b8152600401610710906117a1565b6107726012600a6118d0565b61077c90826118df565b600b8190556040519081527f21bc0ea3406acb92d4449ab33befb4ae82f873a22f3b6cf0e466b2710beb59429060200160405180910390a150565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161067c9185906107ee9086906118f6565b611064565b6005546001600160a01b0316331461081d5760405162461bcd60e51b8152600401610710906117a1565b600c5460ff161561087c5760405162461bcd60e51b815260206004820152602360248201527f4d61782057616c6c6574204c696d697420697320616c726561647920656e61626044820152621b195960ea1b6064820152608401610710565b600c805460ff191660019081179091556040519081527f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f1906020015b60405180910390a1565b6005546001600160a01b031633146108ec5760405162461bcd60e51b8152600401610710906117a1565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146109605760405162461bcd60e51b8152600401610710906117a1565b600c54610100900460ff16156109b85760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610710565b600c805461ff00191661010017905542600d55565b6005546001600160a01b031633146109f75760405162461bcd60e51b8152600401610710906117a1565b6001600160a01b03821660009081526009602052604090205481151560ff909116151503610a735760405162461bcd60e51b8152602060048201526024808201527f4163636f756e7420697320616c72656164792073657420746f207468617420736044820152637461746560e01b6064820152608401610710565b6001600160a01b038216600081815260096020908152604091829020805460ff191685151590811790915591519182527f1d9a11e204b58ad56c619c61600e42167624659d218f0143f1f64956b0daae6c91015b60405180910390a25050565b6060600480546105ec90611767565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610b645760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610710565b610b713385858403611064565b5060019392505050565b600061067c338484611188565b6005546001600160a01b03163314610bb25760405162461bcd60e51b8152600401610710906117a1565b6001600160a01b03821660009081526008602052604090205481151560ff909116151503610c355760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b6064820152608401610710565b6001600160a01b038216600081815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610ac7565b6005546001600160a01b03163314610cb75760405162461bcd60e51b8152600401610710906117a1565b600c5460ff16610d155760405162461bcd60e51b8152602060048201526024808201527f4d61782057616c6c6574204c696d697420697320616c72656164792064697361604482015263189b195960e21b6064820152608401610710565b600c805460ff19169055604051600081527f670f884265aba2d05e7c26efbc42f8365effc4cb3fcfcefddba0c0b71a6231f1906020016108b8565b6005546001600160a01b03163314610d7a5760405162461bcd60e51b8152600401610710906117a1565b6001600160a01b038116610ddf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610710565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610e655760405162461bcd60e51b8152600401610710906117a1565b306001600160a01b03821603610ee35760405162461bcd60e51b815260206004820152603760248201527f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160448201527f6c616e6365206f6620697473206f776e20746f6b656e730000000000000000006064820152608401610710565b6001600160a01b038116610f7c57604051600090339047908381818185875af1925050503d8060008114610f33576040519150601f19603f3d011682016040523d82523d6000602084013e610f38565b606091505b5050905080610f785760405162461bcd60e51b815260206004820152600c60248201526b10db185a5b4819985a5b195960a21b6044820152606401610710565b5050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe99190611909565b60405163a9059cbb60e01b8152336004820152602481018290529091506001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015611039573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105d9190611922565b5050505b50565b6001600160a01b0383166110c65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610710565b6001600160a01b0382166111275760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610710565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111ae5760405162461bcd60e51b81526004016107109061193f565b6001600160a01b0382166111d45760405162461bcd60e51b815260040161071090611984565b600c54610100900460ff1680156111f857506078600d54426111f691906119c7565b115b8061121b57506001600160a01b03831660009081526008602052604090205460ff165b8061123e57506001600160a01b03821660009081526008602052604090205460ff165b61128a5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610710565b806000036112a35761129e83836000611490565b505050565b6001600160a01b03831660009081526008602052604081205460ff16806112e257506001600160a01b03831660009081526008602052604090205460ff165b156112ef5750600061134e565b6007546001600160a01b039081169085160361130d5750600061134e565b6007546001600160a01b039081169084160361134a576101a4600d544261133491906119c7565b116113415750601461134e565b50600a5461134e565b5060005b8015611398576000606461136283856118df565b61136c91906119da565b905061137881846119c7565b9250611396856113906005546001600160a01b031690565b83611490565b505b600c5460ff1615611489576001600160a01b03841660009081526009602052604090205460ff161580156113e557506001600160a01b03831660009081526009602052604090205460ff16155b80156113ff57506007546001600160a01b03848116911614155b15611489576001600160a01b038316600090815260208190526040902054600b5461142a84836118f6565b11156114875760405162461bcd60e51b815260206004820152602660248201527f526563697069656e74206578636565647320746865206d61782077616c6c6574604482015265081b1a5b5a5d60d21b6064820152608401610710565b505b61105d8484845b6001600160a01b0383166114b65760405162461bcd60e51b81526004016107109061193f565b6001600160a01b0382166114dc5760405162461bcd60e51b815260040161071090611984565b6001600160a01b038316600090815260208190526040902054818110156115545760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610710565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061158b9084906118f6565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115d791815260200190565b60405180910390a361105d565b600060208083528351808285015260005b81811015611611578581018301518582016040015282016115f5565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461164957600080fd5b919050565b6000806040838503121561166157600080fd5b61166a83611632565b946020939093013593505050565b60008060006060848603121561168d57600080fd5b61169684611632565b92506116a460208501611632565b9150604084013590509250925092565b6000602082840312156116c657600080fd5b5035919050565b6000602082840312156116df57600080fd5b6116e882611632565b9392505050565b801515811461106157600080fd5b6000806040838503121561171057600080fd5b61171983611632565b91506020830135611729816116ef565b809150509250929050565b6000806040838503121561174757600080fd5b61175083611632565b915061175e60208401611632565b90509250929050565b600181811c9082168061177b57607f821691505b60208210810361179b57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561182757816000190482111561180d5761180d6117d6565b8085161561181a57918102915b93841c93908002906117f1565b509250929050565b60008261183e57506001610680565b8161184b57506000610680565b8160018114611861576002811461186b57611887565b6001915050610680565b60ff84111561187c5761187c6117d6565b50506001821b610680565b5060208310610133831016604e8410600b84101617156118aa575081810a610680565b6118b483836117ec565b80600019048211156118c8576118c86117d6565b029392505050565b60006116e860ff84168361182f565b8082028115828204841417610680576106806117d6565b80820180821115610680576106806117d6565b60006020828403121561191b57600080fd5b5051919050565b60006020828403121561193457600080fd5b81516116e8816116ef565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610680576106806117d6565b6000826119f757634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220517d1e4800514c0b07d32e4144fd845c5f074e7ec927b6a2c51b63736cb1277064736f6c63430008120033

Deployed Bytecode Sourcemap

12958:6114:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8243:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9157:169;;;;;;;;;;-1:-1:-1;9157:169:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;9157:169:0;1004:187:1;13002:41:0;;;;;;;;;;-1:-1:-1;13002:41:0;;;;-1:-1:-1;;;;;13002:41:0;;;;;;-1:-1:-1;;;;;1386:32:1;;;1368:51;;1356:2;1341:18;13002:41:0;1196:229:1;8564:108:0;;;;;;;;;;-1:-1:-1;8652:12:0;;8564:108;;;1576:25:1;;;1564:2;1549:18;8564:108:0;1430:177:1;13292:36:0;;;;;;;;;;-1:-1:-1;13292:36:0;;;;;;;;9334:573;;;;;;;;;;-1:-1:-1;9334:573:0;;;;;:::i;:::-;;:::i;16634:207::-;;;;;;;;;;-1:-1:-1;16634:207:0;;;;;:::i;:::-;;:::i;:::-;;13226:22;;;;;;;;;;;;;;;;8463:93;;;;;;;;;;-1:-1:-1;8463:93:0;;8546:2;2272:36:1;;2260:2;2245:18;8463:93:0;2130:184:1;9915:215:0;;;;;;;;;;-1:-1:-1;9915:215:0;;;;;:::i;:::-;;:::i;13050:29::-;;;;;;;;;;-1:-1:-1;13050:29:0;;;;-1:-1:-1;;;;;13050:29:0;;;13335;;;;;;;;;;-1:-1:-1;13335:29:0;;;;;;;;;;;15988:125;;;;;;;;;;-1:-1:-1;15988:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;16077:28:0;16053:4;16077:28;;;:19;:28;;;;;;;;;15988:125;13373:32;;;;;;;;;;;;;;;;16128:244;;;;;;;;;;;;;:::i;8680:127::-;;;;;;;;;;-1:-1:-1;8680:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;8781:18:0;8754:7;8781:18;;;;;;;;;;;;8680:127;7430:148;;;;;;;;;;;;;:::i;14953:192::-;;;;;;;;;;;;;:::i;7216:79::-;;;;;;;;;;-1:-1:-1;7281:6:0;;-1:-1:-1;;;;;7281:6:0;7216:79;;16849:357;;;;;;;;;;-1:-1:-1;16849:357:0;;;;;:::i;:::-;;:::i;8351:104::-;;;;;;;;;;;;;:::i;10138:413::-;;;;;;;;;;-1:-1:-1;10138:413:0;;;;;:::i;:::-;;:::i;17214:145::-;;;;;;;;;;-1:-1:-1;17214:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;17313:38:0;17289:4;17313:38;;;:29;:38;;;;;;;;;17214:145;8815:175;;;;;;;;;;-1:-1:-1;8815:175:0;;;;;:::i;:::-;;:::i;13255:30::-;;;;;;;;;;;;;;;;15690:290;;;;;;;;;;-1:-1:-1;15690:290:0;;;;;:::i;:::-;;:::i;16380:246::-;;;;;;;;;;;;;:::i;8998:151::-;;;;;;;;;;-1:-1:-1;8998:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;9114:18:0;;;9087:7;9114:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8998:151;7586:244;;;;;;;;;;-1:-1:-1;7586:244:0;;;;;:::i;:::-;;:::i;15155:527::-;;;;;;;;;;-1:-1:-1;15155:527:0;;;;;:::i;:::-;;:::i;8243:100::-;8297:13;8330:5;8323:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8243:100;:::o;9157:169::-;9240:4;9257:39;6619:10;9280:7;9289:6;9257:8;:39::i;:::-;-1:-1:-1;9314:4:0;9157:169;;;;;:::o;9334:573::-;-1:-1:-1;;;;;9518:19:0;;9474:4;9518:19;;;:11;:19;;;;;;;;6619:10;9518:33;;;;;;;;-1:-1:-1;;9566:37:0;;9562:265;;9648:6;9628:16;:26;;9620:79;;;;-1:-1:-1;;;9620:79:0;;4013:2:1;9620:79:0;;;3995:21:1;4052:2;4032:18;;;4025:30;4091:34;4071:18;;;4064:62;-1:-1:-1;;;4142:18:1;;;4135:38;4190:19;;9620:79:0;;;;;;;;;9743:57;9752:6;6619:10;9793:6;9774:16;:25;9743:8;:57::i;:::-;9839:36;9849:6;9857:9;9868:6;9839:9;:36::i;:::-;-1:-1:-1;9895:4:0;;9334:573;-1:-1:-1;;;;9334:573:0:o;16634:207::-;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;16756:16:::1;8546:2:::0;16756::::1;:16;:::i;:::-;16736:37;::::0;:16;:37:::1;:::i;:::-;16718:15;:55:::0;;;16789:44:::1;::::0;1576:25:1;;;16789:44:0::1;::::0;1564:2:1;1549:18;16789:44:0::1;;;;;;;16634:207:::0;:::o;9915:215::-;6619:10;10003:4;10052:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10052:34:0;;;;;;;;;;10003:4;;10020:80;;10043:7;;10052:47;;10089:10;;10052:47;:::i;:::-;10020:8;:80::i;16128:244::-;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;16199:21:::1;::::0;::::1;;16198:22;16190:70;;;::::0;-1:-1:-1;;;16190:70:0;;6601:2:1;16190:70:0::1;::::0;::::1;6583:21:1::0;6640:2;6620:18;;;6613:30;6679:34;6659:18;;;6652:62;-1:-1:-1;;;6730:18:1;;;6723:33;6773:19;;16190:70:0::1;6399:399:1::0;16190:70:0::1;16271:21;:28:::0;;-1:-1:-1;;16271:28:0::1;16295:4;16271:28:::0;;::::1;::::0;;;16315:49:::1;::::0;1144:41:1;;;16315:49:0::1;::::0;1132:2:1;1117:18;16315:49:0::1;;;;;;;;16128:244::o:0;7430:148::-;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;7521:6:::1;::::0;7500:40:::1;::::0;7537:1:::1;::::0;-1:-1:-1;;;;;7521:6:0::1;::::0;7500:40:::1;::::0;7537:1;;7500:40:::1;7551:6;:19:::0;;-1:-1:-1;;;;;;7551:19:0::1;::::0;;7430:148::o;14953:192::-;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;15014:14:::1;::::0;::::1;::::0;::::1;;;15013:15;15005:54;;;::::0;-1:-1:-1;;;15005:54:0;;7005:2:1;15005:54:0::1;::::0;::::1;6987:21:1::0;7044:2;7024:18;;;7017:30;7083:28;7063:18;;;7056:56;7129:18;;15005:54:0::1;6803:350:1::0;15005:54:0::1;15070:14;:21:::0;;-1:-1:-1;;15070:21:0::1;;;::::0;;15122:15:::1;15102:17;:35:::0;14953:192::o;16849:357::-;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16965:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;:49;::::1;;:38;::::0;;::::1;:49;;::::0;16943:136:::1;;;::::0;-1:-1:-1;;;16943:136:0;;7360:2:1;16943:136:0::1;::::0;::::1;7342:21:1::0;7399:2;7379:18;;;7372:30;7438:34;7418:18;;;7411:62;-1:-1:-1;;;7489:18:1;;;7482:34;7533:19;;16943:136:0::1;7158:400:1::0;16943:136:0::1;-1:-1:-1::0;;;;;17090:38:0;::::1;;::::0;;;:29:::1;:38;::::0;;;;;;;;:48;;-1:-1:-1;;17090:48:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17154:44;;1144:41:1;;;17154:44:0::1;::::0;1117:18:1;17154:44:0::1;;;;;;;;16849:357:::0;;:::o;8351:104::-;8407:13;8440:7;8433:14;;;;;:::i;10138:413::-;6619:10;10231:4;10275:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10275:34:0;;;;;;;;;;10328:35;;;;10320:85;;;;-1:-1:-1;;;10320:85:0;;7765:2:1;10320:85:0;;;7747:21:1;7804:2;7784:18;;;7777:30;7843:34;7823:18;;;7816:62;-1:-1:-1;;;7894:18:1;;;7887:35;7939:19;;10320:85:0;7563:401:1;10320:85:0;10441:67;6619:10;10464:7;10492:15;10473:16;:34;10441:8;:67::i;:::-;-1:-1:-1;10539:4:0;;10138:413;-1:-1:-1;;;10138:413:0:o;8815:175::-;8901:4;8918:42;6619:10;8942:9;8953:6;8918:9;:42::i;15690:290::-;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15784:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;:40;::::1;;:28;::::0;;::::1;:40;;::::0;15776:94:::1;;;::::0;-1:-1:-1;;;15776:94:0;;8171:2:1;15776:94:0::1;::::0;::::1;8153:21:1::0;8210:2;8190:18;;;8183:30;8249:34;8229:18;;;8222:62;-1:-1:-1;;;8300:18:1;;;8293:40;8350:19;;15776:94:0::1;7969:406:1::0;15776:94:0::1;-1:-1:-1::0;;;;;15881:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;15881:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15938:34;;1144:41:1;;;15938:34:0::1;::::0;1117:18:1;15938:34:0::1;1004:187:1::0;16380:246:0;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;16451:21:::1;::::0;::::1;;16443:70;;;::::0;-1:-1:-1;;;16443:70:0;;8582:2:1;16443:70:0::1;::::0;::::1;8564:21:1::0;8621:2;8601:18;;;8594:30;8660:34;8640:18;;;8633:62;-1:-1:-1;;;8711:18:1;;;8704:34;8755:19;;16443:70:0::1;8380:400:1::0;16443:70:0::1;16524:21;:29:::0;;-1:-1:-1;;16524:29:0::1;::::0;;16569:49:::1;::::0;-1:-1:-1;1144:41:1;;16569:49:0::1;::::0;1132:2:1;1117:18;16569:49:0::1;1004:187:1::0;7586:244:0;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7675:22:0;::::1;7667:73;;;::::0;-1:-1:-1;;;7667:73:0;;8987:2:1;7667:73:0::1;::::0;::::1;8969:21:1::0;9026:2;9006:18;;;8999:30;9065:34;9045:18;;;9038:62;-1:-1:-1;;;9116:18:1;;;9109:36;9162:19;;7667:73:0::1;8785:402:1::0;7667:73:0::1;7777:6;::::0;7756:38:::1;::::0;-1:-1:-1;;;;;7756:38:0;;::::1;::::0;7777:6:::1;::::0;7756:38:::1;::::0;7777:6:::1;::::0;7756:38:::1;7805:6;:17:::0;;-1:-1:-1;;;;;;7805:17:0::1;-1:-1:-1::0;;;;;7805:17:0;;;::::1;::::0;;;::::1;::::0;;7586:244::o;15155:527::-;7343:6;;-1:-1:-1;;;;;7343:6:0;6619:10;7343:22;7335:67;;;;-1:-1:-1;;;7335:67:0;;;;;;;:::i;:::-;15251:4:::1;-1:-1:-1::0;;;;;15234:22:0;::::1;::::0;15226:90:::1;;;::::0;-1:-1:-1;;;15226:90:0;;9394:2:1;15226:90:0::1;::::0;::::1;9376:21:1::0;9433:2;9413:18;;;9406:30;9472:34;9452:18;;;9445:62;9543:25;9523:18;;;9516:53;9586:19;;15226:90:0::1;9192:419:1::0;15226:90:0::1;-1:-1:-1::0;;;;;15331:21:0;::::1;15327:189;;15387:49;::::0;15370:12:::1;::::0;15387:10:::1;::::0;15410:21:::1;::::0;15370:12;15387:49;15370:12;15387:49;15410:21;15387:10;:49:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15369:67;;;15459:7;15451:32;;;::::0;-1:-1:-1;;;15451:32:0;;10028:2:1;15451:32:0::1;::::0;::::1;10010:21:1::0;10067:2;10047:18;;;10040:30;-1:-1:-1;;;10086:18:1;;;10079:42;10138:18;;15451:32:0::1;9826:336:1::0;15451:32:0::1;15498:7;15155:527:::0;:::o;15327:189::-:1;15588:35;::::0;-1:-1:-1;;;15588:35:0;;15617:4:::1;15588:35;::::0;::::1;1368:51:1::0;15553:5:0;;15526:17:::1;::::0;-1:-1:-1;;;;;15588:20:0;::::1;::::0;::::1;::::0;1341:18:1;;15588:35:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15634:40;::::0;-1:-1:-1;;;15634:40:0;;15654:10:::1;15634:40;::::0;::::1;10530:51:1::0;10597:18;;;10590:34;;;15570:53:0;;-1:-1:-1;;;;;;15634:19:0;::::1;::::0;::::1;::::0;10503:18:1;;15634:40:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15215:467;;7413:1;15155:527:::0;:::o;12306:380::-;-1:-1:-1;;;;;12442:19:0;;12434:68;;;;-1:-1:-1;;;12434:68:0;;11087:2:1;12434:68:0;;;11069:21:1;11126:2;11106:18;;;11099:30;11165:34;11145:18;;;11138:62;-1:-1:-1;;;11216:18:1;;;11209:34;11260:19;;12434:68:0;10885:400:1;12434:68:0;-1:-1:-1;;;;;12521:21:0;;12513:68;;;;-1:-1:-1;;;12513:68:0;;11492:2:1;12513:68:0;;;11474:21:1;11531:2;11511:18;;;11504:30;11570:34;11550:18;;;11543:62;-1:-1:-1;;;11621:18:1;;;11614:32;11663:19;;12513:68:0;11290:398:1;12513:68:0;-1:-1:-1;;;;;12594:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12646:32;;1576:25:1;;;12646:32:0;;1549:18:1;12646:32:0;;;;;;;12306:380;;;:::o;17368:1696::-;-1:-1:-1;;;;;17465:18:0;;17457:68;;;;-1:-1:-1;;;17457:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17544:16:0;;17536:64;;;;-1:-1:-1;;;17536:64:0;;;;;;;:::i;:::-;17620:14;;;;;;;:59;;;;;17676:3;17656:17;;17638:15;:35;;;;:::i;:::-;:41;17620:59;17619:90;;;-1:-1:-1;;;;;;17684:25:0;;;;;;:19;:25;;;;;;;;17619:90;:117;;;-1:-1:-1;;;;;;17713:23:0;;;;;;:19;:23;;;;;;;;17619:117;17611:156;;;;-1:-1:-1;;;17611:156:0;;12838:2:1;17611:156:0;;;12820:21:1;12877:2;12857:18;;;12850:30;12916:28;12896:18;;;12889:56;12962:18;;17611:156:0;12636:350:1;17611:156:0;17784:6;17794:1;17784:11;17780:93;;17812:28;17828:4;17834:2;17838:1;17812:15;:28::i;:::-;17368:1696;;;:::o;17780:93::-;-1:-1:-1;;;;;17932:25:0;;17899:18;17932:25;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;17961:23:0;;;;;;:19;:23;;;;;;;;17932:52;17928:416;;;-1:-1:-1;18014:1:0;17928:416;;;18045:13;;-1:-1:-1;;;;;18045:13:0;;;18037:21;;;;18033:311;;-1:-1:-1;18088:1:0;18033:311;;;18117:13;;-1:-1:-1;;;;;18117:13:0;;;18111:19;;;;18107:237;;18206:9;18185:17;;18167:15;:35;;;;:::i;:::-;:48;18163:122;;-1:-1:-1;18243:2:0;18107:237;;18163:122;-1:-1:-1;18278:7:0;;18107:237;;;-1:-1:-1;18331:1:0;18107:237;18367:14;;18363:177;;18398:12;18437:3;18414:19;18423:10;18414:6;:19;:::i;:::-;18413:27;;;;:::i;:::-;18398:42;-1:-1:-1;18464:13:0;18398:42;18464:6;:13;:::i;:::-;18455:22;;18492:36;18508:4;18514:7;7281:6;;-1:-1:-1;;;;;7281:6:0;;7216:79;18514:7;18523:4;18492:15;:36::i;:::-;18383:157;18363:177;18556:21;;;;18552:458;;;-1:-1:-1;;;;;18598:35:0;;;;;;:29;:35;;;;;;;;:45;;;:112;;-1:-1:-1;;;;;;18665:33:0;;;;;;:29;:33;;;;;;;;:45;18598:112;:152;;;;-1:-1:-1;18737:13:0;;-1:-1:-1;;;;;18731:19:0;;;18737:13;;18731:19;;18598:152;18594:405;;;-1:-1:-1;;;;;8781:18:0;;18785:15;8781:18;;;;;;;;;;;18885:15;;18865:16;18875:6;8781:18;18865:16;:::i;:::-;:35;;18835:148;;;;-1:-1:-1;;;18835:148:0;;13415:2:1;18835:148:0;;;13397:21:1;13454:2;13434:18;;;13427:30;13493:34;13473:18;;;13466:62;-1:-1:-1;;;13544:18:1;;;13537:36;13590:19;;18835:148:0;13213:402:1;18835:148:0;18766:233;18594:405;19023:33;19039:4;19045:2;19049:6;10559:733;-1:-1:-1;;;;;10699:20:0;;10691:70;;;;-1:-1:-1;;;10691:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10780:23:0;;10772:71;;;;-1:-1:-1;;;10772:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10940:17:0;;10916:21;10940:17;;;;;;;;;;;10976:23;;;;10968:74;;;;-1:-1:-1;;;10968:74:0;;13822:2:1;10968:74:0;;;13804:21:1;13861:2;13841:18;;;13834:30;13900:34;13880:18;;;13873:62;-1:-1:-1;;;13951:18:1;;;13944:36;13997:19;;10968:74:0;13620:402:1;10968:74:0;-1:-1:-1;;;;;11078:17:0;;;:9;:17;;;;;;;;;;;11098:22;;;11078:42;;11142:20;;;;;;;;:30;;11114:6;;11078:9;11142:30;;11114:6;;11142:30;:::i;:::-;;;;;;;;11207:9;-1:-1:-1;;;;;11190:35:0;11199:6;-1:-1:-1;;;;;11190:35:0;;11218:6;11190:35;;;;1576:25:1;;1564:2;1549:18;;1430:177;11190:35:0;;;;;;;;11238:46;17368:1696;14:548: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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1612:328::-;1689:6;1697;1705;1758:2;1746:9;1737:7;1733:23;1729:32;1726:52;;;1774:1;1771;1764:12;1726:52;1797:29;1816:9;1797:29;:::i;:::-;1787:39;;1845:38;1879:2;1868:9;1864:18;1845:38;:::i;:::-;1835:48;;1930:2;1919:9;1915:18;1902:32;1892:42;;1612:328;;;;;:::o;1945:180::-;2004:6;2057:2;2045:9;2036:7;2032:23;2028:32;2025:52;;;2073:1;2070;2063:12;2025:52;-1:-1:-1;2096:23:1;;1945:180;-1:-1:-1;1945:180:1:o;2527:186::-;2586:6;2639:2;2627:9;2618:7;2614:23;2610:32;2607:52;;;2655:1;2652;2645:12;2607:52;2678:29;2697:9;2678:29;:::i;:::-;2668:39;2527:186;-1:-1:-1;;;2527:186:1:o;2718:118::-;2804:5;2797:13;2790:21;2783:5;2780:32;2770:60;;2826:1;2823;2816:12;2841:315;2906:6;2914;2967:2;2955:9;2946:7;2942:23;2938:32;2935:52;;;2983:1;2980;2973:12;2935:52;3006:29;3025:9;3006:29;:::i;:::-;2996:39;;3085:2;3074:9;3070:18;3057:32;3098:28;3120:5;3098:28;:::i;:::-;3145:5;3135:15;;;2841:315;;;;;:::o;3161:260::-;3229:6;3237;3290:2;3278:9;3269:7;3265:23;3261:32;3258:52;;;3306:1;3303;3296:12;3258:52;3329:29;3348:9;3329:29;:::i;:::-;3319:39;;3377:38;3411:2;3400:9;3396:18;3377:38;:::i;:::-;3367:48;;3161:260;;;;;:::o;3426:380::-;3505:1;3501:12;;;;3548;;;3569:61;;3623:4;3615:6;3611:17;3601:27;;3569:61;3676:2;3668:6;3665:14;3645:18;3642:38;3639:161;;3722:10;3717:3;3713:20;3710:1;3703:31;3757:4;3754:1;3747:15;3785:4;3782:1;3775:15;3639:161;;3426:380;;;:::o;4220:356::-;4422:2;4404:21;;;4441:18;;;4434:30;4500:34;4495:2;4480:18;;4473:62;4567:2;4552:18;;4220:356::o;4581:127::-;4642:10;4637:3;4633:20;4630:1;4623:31;4673:4;4670:1;4663:15;4697:4;4694:1;4687:15;4713:422;4802:1;4845:5;4802:1;4859:270;4880:7;4870:8;4867:21;4859:270;;;4939:4;4935:1;4931:6;4927:17;4921:4;4918:27;4915:53;;;4948:18;;:::i;:::-;4998:7;4988:8;4984:22;4981:55;;;5018:16;;;;4981:55;5097:22;;;;5057:15;;;;4859:270;;;4863:3;4713:422;;;;;:::o;5140:806::-;5189:5;5219:8;5209:80;;-1:-1:-1;5260:1:1;5274:5;;5209:80;5308:4;5298:76;;-1:-1:-1;5345:1:1;5359:5;;5298:76;5390:4;5408:1;5403:59;;;;5476:1;5471:130;;;;5383:218;;5403:59;5433:1;5424:10;;5447:5;;;5471:130;5508:3;5498:8;5495:17;5492:43;;;5515:18;;:::i;:::-;-1:-1:-1;;5571:1:1;5557:16;;5586:5;;5383:218;;5685:2;5675:8;5672:16;5666:3;5660:4;5657:13;5653:36;5647:2;5637:8;5634:16;5629:2;5623:4;5620:12;5616:35;5613:77;5610:159;;;-1:-1:-1;5722:19:1;;;5754:5;;5610:159;5801:34;5826:8;5820:4;5801:34;:::i;:::-;5871:6;5867:1;5863:6;5859:19;5850:7;5847:32;5844:58;;;5882:18;;:::i;:::-;5920:20;;5140:806;-1:-1:-1;;;5140:806:1:o;5951:140::-;6009:5;6038:47;6079:4;6069:8;6065:19;6059:4;6038:47;:::i;6096:168::-;6169:9;;;6200;;6217:15;;;6211:22;;6197:37;6187:71;;6238:18;;:::i;6269:125::-;6334:9;;;6355:10;;;6352:36;;;6368:18;;:::i;10167:184::-;10237:6;10290:2;10278:9;10269:7;10265:23;10261:32;10258:52;;;10306:1;10303;10296:12;10258:52;-1:-1:-1;10329:16:1;;10167:184;-1:-1:-1;10167:184:1:o;10635:245::-;10702:6;10755:2;10743:9;10734:7;10730:23;10726:32;10723:52;;;10771:1;10768;10761:12;10723:52;10803:9;10797:16;10822:28;10844:5;10822:28;:::i;11693:401::-;11895:2;11877:21;;;11934:2;11914:18;;;11907:30;11973:34;11968:2;11953:18;;11946:62;-1:-1:-1;;;12039:2:1;12024:18;;12017:35;12084:3;12069:19;;11693:401::o;12099:399::-;12301:2;12283:21;;;12340:2;12320:18;;;12313:30;12379:34;12374:2;12359:18;;12352:62;-1:-1:-1;;;12445:2:1;12430:18;;12423:33;12488:3;12473:19;;12099:399::o;12503:128::-;12570:9;;;12591:11;;;12588:37;;;12605:18;;:::i;12991:217::-;13031:1;13057;13047:132;;13101:10;13096:3;13092:20;13089:1;13082:31;13136:4;13133:1;13126:15;13164:4;13161:1;13154:15;13047:132;-1:-1:-1;13193:9:1;;12991:217::o

Swarm Source

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