ETH Price: $3,450.43 (+1.54%)
Gas: 12 Gwei

Token

Aped Coin (APED)
 

Overview

Max Total Supply

420,000,000,000 APED

Holders

45

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.943875657 APED

Value
$0.00
0x4bc4218f4244315584d315786e4503f2eb4b5645
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:
ApedCoin

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-22
*/

// SPDX-License-Identifier: MIT

/**
tg: https://t.me/aped_portal
web: https://apedcoin.vip/
*/

pragma solidity ^0.8.21;

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }
}

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

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

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;
    uint8 private _decimals;

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

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

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

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

    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 to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

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

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

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, 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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

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

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

    function WETH() external pure returns (address);

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

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract ApedCoin is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    address public constant deadAddress = address(0xdead);
    address public constant zeroAddress = address(0);

    bool private tradingEnabled = false;
    bool private swapEnabled = false;
    bool private swapping;
    uint256 public swapTokensAtAmount;
    uint256 private maxTaxSwap;

    // Anti-bot and anti-whale mappings and variables
    mapping(address => uint256) private _holderLastTransferTimestamp; //Keep last transfer timestamp temporarily during launch
    bool private transferDelayEnabled = true; //Protect launch from bots

    address public taxWallet;

    struct Taxes {
        uint256 buy;
        uint256 sell;
    }
    Taxes public taxes;

    uint256 public maxTransactionAmount;
    uint256 public maxWallet;

    mapping(address => bool) private isExcludedFromFees;
    mapping(address => bool) private isExcludedMaxTransactionAmount;
    mapping(address => bool) private pairs;

    constructor() ERC20("Aped Coin", "APED", 9) {
        uint256 totalSupply = 420000000000 * 10**decimals();
        maxTransactionAmount = totalSupply.mul(2).div(100);
        maxWallet = totalSupply.mul(2).div(100);
        swapTokensAtAmount = totalSupply.mul(1).div(1000);
        maxTaxSwap = totalSupply.mul(12).div(1000);

        taxes = Taxes(20, 30);
        taxWallet = _msgSender();

        isExcludedFromFees[owner()] = true;
        isExcludedFromFees[address(this)] = true;
        isExcludedFromFees[taxWallet] = true;
        isExcludedMaxTransactionAmount[owner()] = true;
        isExcludedMaxTransactionAmount[address(this)] = true;
        isExcludedMaxTransactionAmount[deadAddress] = true;
        isExcludedMaxTransactionAmount[taxWallet] = true;

        _mint(_msgSender(), totalSupply);
    }

    receive() external payable {}

    function min(uint256 a, uint256 b) private pure returns (uint256) {
      return (a > b) ? b : a;
    }

    function openTrading() external onlyOwner() {
        require(!tradingEnabled, "Trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        isExcludedMaxTransactionAmount[address(_uniswapV2Router)] = true;

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        pairs[address(uniswapV2Pair)] = true;
        isExcludedMaxTransactionAmount[address(uniswapV2Pair)] = true;

        _approve(address(this), address(uniswapV2Router), totalSupply());
        uniswapV2Router.addLiquidityETH{value : address(this).balance}(
            address(this),
            balanceOf(address(this)).mul(100 - taxes.buy).div(100),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingEnabled = swapEnabled = true;
    }

    function removeLimits() external onlyOwner {
        maxTransactionAmount = maxWallet = totalSupply();
        taxes = Taxes(0, 0);
        transferDelayEnabled = false;
    }

    function _transfer(address from, address to, uint256 amount) internal override {
        require(from != zeroAddress, "ERC20: transfer from the zero address.");
        require(to != zeroAddress, "ERC20: transfer to the zero address.");
        require(amount > 0, "ERC20: transfer amount must be greater than zero.");

        if (from != owner() && to != owner() && to != zeroAddress && to != deadAddress && !swapping) {
            if (!tradingEnabled) {
                require(isExcludedFromFees[from] || isExcludedFromFees[to], "Trading is not active.");
            }

            //if the transfer delay is enabled at launch
            if (transferDelayEnabled) {
                if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                    require(_holderLastTransferTimestamp[tx.origin] < block.number, "Only one purchase per block allowed.");
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (pairs[from] && !isExcludedMaxTransactionAmount[to]) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the max transaction amount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded.");
            } else if (pairs[to] && !isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the max transaction amount.");
            } else if (!isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded.");
            }
        }

        bool takeFee = !swapping;
        if (isExcludedFromFees[from] || isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        if (takeFee) {
            if (pairs[to] && taxes.sell > 0) {
                fees = amount.mul(taxes.sell).div(100);
            } else if (pairs[from] && taxes.buy > 0) {
                fees = amount.mul(taxes.buy).div(100);
            }
            amount -= fees;
        }

        uint256 contractBalance = balanceOf(address(this));
        bool canSwap = contractBalance >= swapTokensAtAmount;
        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            !pairs[from] &&
            !isExcludedFromFees[from] &&
            !isExcludedFromFees[to]
        ) {
            swapping = true;
            bool success;
            swapTokensForEth(min(amount, min(contractBalance, maxTaxSwap)));
            (success, ) = address(taxWallet).call{value: address(this).balance}("");
            swapping = false;
        }

        if (fees > 0) {
            super._transfer(from, address(this), fees);
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526007805461ffff60a01b19169055600b805460ff191660011790553480156200002b575f80fd5b506040518060400160405280600981526020016820b832b21021b7b4b760b91b815250604051806040016040528060048152602001631054115160e21b815250600982600390816200007e919062000431565b5060046200008d838262000431565b506005805460ff191660ff9290921691909117905550620000b79050620000b13390565b6200024d565b5f620000c560055460ff1690565b620000d290600a62000606565b620000e3906461c9f3680062000616565b9050620000ff6064620000f8836002620002a6565b90620002bc565b600e55620001156064620000f8836002620002a6565b600f556200012c6103e8620000f8836001620002a6565b600855620001436103e8620000f883600c620002a6565b6009556040805180820182526014808252601e6020928301819052600c91909155600d55600b8054610100600160a81b03191633610100818102929092178355600580546001600160a01b039084900481165f90815260108752878120805460ff199081166001908117909255308084528a842080548316841790558854889004851684528a842080548316841790559454879004841683526011909852888220805489168217905592815287812080548816841790557f97847ee99463795296047093514439c3127772df3715e628aa85601cf854171680548816841790559454939093049092168352939091208054909216179055620002469082620002c9565b5062000666565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f620002b3828462000616565b90505b92915050565b5f620002b3828462000630565b6001600160a01b038216620003245760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f82825462000337919062000650565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620003bb57607f821691505b602082108103620003da57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200038d575f81815260208120601f850160051c81016020861015620004085750805b601f850160051c820191505b81811015620004295782815560010162000414565b505050505050565b81516001600160401b038111156200044d576200044d62000392565b62000465816200045e8454620003a6565b84620003e0565b602080601f8311600181146200049b575f8415620004835750858301515b5f19600386901b1c1916600185901b17855562000429565b5f85815260208120601f198616915b82811015620004cb57888601518255948401946001909101908401620004aa565b5085821015620004e957878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200054d57815f1904821115620005315762000531620004f9565b808516156200053f57918102915b93841c939080029062000512565b509250929050565b5f826200056557506001620002b6565b816200057357505f620002b6565b81600181146200058c57600281146200059757620005b7565b6001915050620002b6565b60ff841115620005ab57620005ab620004f9565b50506001821b620002b6565b5060208310610133831016604e8410600b8410161715620005dc575081810a620002b6565b620005e883836200050d565b805f1904821115620005fe57620005fe620004f9565b029392505050565b5f620002b360ff84168362000555565b8082028115828204841417620002b657620002b6620004f9565b5f826200064b57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115620002b657620002b6620004f9565b61199f80620006745f395ff3fe608060405260043610610134575f3560e01c8063715018a6116100a8578063a9059cbb1161006d578063a9059cbb1461035b578063c8c8ebe41461037a578063c9567bf91461038f578063dd62ed3e146103a3578063e2f45605146103e7578063f8b45b05146103fc575f80fd5b8063715018a6146102cc578063728f8eea146102e2578063751039fc146103115780638da5cb5b1461032557806395d89b4114610347575f80fd5b806323b872dd116100f957806323b872dd1461020057806327c8f8351461021f5780632dc0562d14610234578063313ce5671461025857806349bd5a5e1461027957806370a0823114610298575f80fd5b806306fdde031461013f5780630930907b14610169578063095ea7b3146101945780631694505e146101c357806318160ddd146101e2575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b50610153610411565b60405161016091906116c3565b60405180910390f35b348015610174575f80fd5b5061017c5f81565b6040516001600160a01b039091168152602001610160565b34801561019f575f80fd5b506101b36101ae366004611725565b6104a1565b6040519015158152602001610160565b3480156101ce575f80fd5b5060065461017c906001600160a01b031681565b3480156101ed575f80fd5b506002545b604051908152602001610160565b34801561020b575f80fd5b506101b361021a36600461174f565b6104ba565b34801561022a575f80fd5b5061017c61dead81565b34801561023f575f80fd5b50600b5461017c9061010090046001600160a01b031681565b348015610263575f80fd5b5060055460405160ff9091168152602001610160565b348015610284575f80fd5b5060075461017c906001600160a01b031681565b3480156102a3575f80fd5b506101f26102b236600461178d565b6001600160a01b03165f9081526020819052604090205490565b3480156102d7575f80fd5b506102e06104dd565b005b3480156102ed575f80fd5b50600c54600d546102fc919082565b60408051928352602083019190915201610160565b34801561031c575f80fd5b506102e06104f0565b348015610330575f80fd5b5060055461010090046001600160a01b031661017c565b348015610352575f80fd5b5061015361052d565b348015610366575f80fd5b506101b3610375366004611725565b61053c565b348015610385575f80fd5b506101f2600e5481565b34801561039a575f80fd5b506102e0610549565b3480156103ae575f80fd5b506101f26103bd3660046117a8565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156103f2575f80fd5b506101f260085481565b348015610407575f80fd5b506101f2600f5481565b606060038054610420906117df565b80601f016020809104026020016040519081016040528092919081815260200182805461044c906117df565b80156104975780601f1061046e57610100808354040283529160200191610497565b820191905f5260205f20905b81548152906001019060200180831161047a57829003601f168201915b5050505050905090565b5f336104ae818585610945565b60019150505b92915050565b5f336104c7858285610a68565b6104d2858585610af8565b506001949350505050565b6104e56112e7565b6104ee5f611347565b565b6104f86112e7565b600254600f819055600e55604080518082019091525f8082526020909101819052600c819055600d55600b805460ff19169055565b606060048054610420906117df565b5f336104ae818585610af8565b6105516112e7565b600754600160a01b900460ff16156105b05760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091555f819052601160209081527fa30c5df85d30b252583f3563cb2bd6456399154fbc658c188bf804ed074c64d6805460ff191660011790556040805163c45a015560e01b81529051839263c45a015592600480820193918290030181865afa158015610646573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066a9190611811565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ed9190611811565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610737573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075b9190611811565b600780546001600160a01b0319166001600160a01b0392831690811782555f908152601260209081526040808320805460ff199081166001908117909255945486168452601190925290912080549092161790556006546002546107c29230921690610945565b600654600c546001600160a01b039091169063f305d719904790309061080e90606490610808906107f39083611840565b305f90815260208190526040902054906113a0565b906113b2565b5f806108286005546001600160a01b036101009091041690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561088e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108b39190611853565b505060075460065460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610908573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092c919061187e565b50506007805461ffff60a01b191661010160a01b179055565b6001600160a01b0383166109a75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a7565b6001600160a01b038216610a085760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a7565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610af25781811015610ae55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105a7565b610af28484848403610945565b50505050565b6001600160a01b038316610b5d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015265323932b9b99760d11b60648201526084016105a7565b6001600160a01b038216610bbf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526332b9b99760e11b60648201526084016105a7565b5f8111610c285760405162461bcd60e51b815260206004820152603160248201527f45524332303a207472616e7366657220616d6f756e74206d75737420626520676044820152703932b0ba32b9103a3430b7103d32b9379760791b60648201526084016105a7565b6005546001600160a01b038481166101009092041614801590610c5e57506005546001600160a01b038381166101009092041614155b8015610c7257506001600160a01b03821615155b8015610c8957506001600160a01b03821661dead14155b8015610c9f5750600754600160b01b900460ff16155b1561107d57600754600160a01b900460ff16610d37576001600160a01b0383165f9081526010602052604090205460ff1680610cf257506001600160a01b0382165f9081526010602052604090205460ff165b610d375760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016105a7565b600b5460ff1615610e0d576005546001600160a01b038381166101009092041614801590610d7357506006546001600160a01b03838116911614155b8015610d8d57506007546001600160a01b03838116911614155b15610e0d57325f908152600a60205260409020544311610dfb5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016105a7565b325f908152600a602052604090204390555b6001600160a01b0383165f9081526012602052604090205460ff168015610e4c57506001600160a01b0382165f9081526011602052604090205460ff16155b15610f3857600e54811115610ec95760405162461bcd60e51b815260206004820152603760248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d6178207472616e73616374696f6e20616d6f756e742e00000000000000000060648201526084016105a7565b600f546001600160a01b0383165f90815260208190526040902054610eee908361189d565b1115610f335760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b60448201526064016105a7565b61107d565b6001600160a01b0382165f9081526012602052604090205460ff168015610f7757506001600160a01b0383165f9081526011602052604090205460ff16155b15610ff457600e54811115610f335760405162461bcd60e51b815260206004820152603860248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d6178207472616e73616374696f6e20616d6f756e742e000000000000000060648201526084016105a7565b6001600160a01b0382165f9081526011602052604090205460ff1661107d57600f546001600160a01b0383165f90815260208190526040902054611038908361189d565b111561107d5760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b60448201526064016105a7565b6007546001600160a01b0384165f9081526010602052604090205460ff600160b01b9092048216159116806110c957506001600160a01b0383165f9081526010602052604090205460ff165b156110d157505f5b5f8115611173576001600160a01b0384165f9081526012602052604090205460ff1680156111005750600d5415155b1561112157600d5461111a906064906108089086906113a0565b9050611166565b6001600160a01b0385165f9081526012602052604090205460ff1680156111495750600c5415155b1561116657600c54611163906064906108089086906113a0565b90505b6111708184611840565b92505b305f908152602081905260409020546008548110801590819061119f5750600754600160a81b900460ff165b80156111b55750600754600160b01b900460ff16155b80156111d957506001600160a01b0387165f9081526012602052604090205460ff16155b80156111fd57506001600160a01b0387165f9081526010602052604090205460ff16155b801561122157506001600160a01b0386165f9081526010602052604090205460ff16155b156112c2576007805460ff60b01b1916600160b01b1790556009545f9061125d906112589088906112539087906113bd565b6113bd565b6113d1565b600b546040516101009091046001600160a01b03169047905f81818185875af1925050503d805f81146112ab576040519150601f19603f3d011682016040523d82523d5f602084013e6112b0565b606091505b50506007805460ff60b01b1916905550505b82156112d3576112d3873085611521565b6112de878787611521565b50505050505050565b6005546001600160a01b036101009091041633146104ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a7565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6113ab82846118b0565b9392505050565b5f6113ab82846118c7565b5f8183116113cb57826113ab565b50919050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611404576114046118e6565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561145b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147f9190611811565b81600181518110611492576114926118e6565b6001600160a01b0392831660209182029290920101526006546114b89130911684610945565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906114f09085905f908690309042906004016118fa565b5f604051808303815f87803b158015611507575f80fd5b505af1158015611519573d5f803e3d5ffd5b505050505050565b6001600160a01b0383166115855760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a7565b6001600160a01b0382166115e75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a7565b6001600160a01b0383165f908152602081905260409020548181101561165e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105a7565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610af2565b5f6020808352835180828501525f5b818110156116ee578581018301518582016040015282016116d2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611722575f80fd5b50565b5f8060408385031215611736575f80fd5b82356117418161170e565b946020939093013593505050565b5f805f60608486031215611761575f80fd5b833561176c8161170e565b9250602084013561177c8161170e565b929592945050506040919091013590565b5f6020828403121561179d575f80fd5b81356113ab8161170e565b5f80604083850312156117b9575f80fd5b82356117c48161170e565b915060208301356117d48161170e565b809150509250929050565b600181811c908216806117f357607f821691505b6020821081036113cb57634e487b7160e01b5f52602260045260245ffd5b5f60208284031215611821575f80fd5b81516113ab8161170e565b634e487b7160e01b5f52601160045260245ffd5b818103818111156104b4576104b461182c565b5f805f60608486031215611865575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561188e575f80fd5b815180151581146113ab575f80fd5b808201808211156104b4576104b461182c565b80820281158282048414176104b4576104b461182c565b5f826118e157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119485784516001600160a01b031683529383019391830191600101611923565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220fc1569dce9176470b944b5f0dfc2a12ad3e1cd8725849b7a0b25ca8a61ce721d64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610134575f3560e01c8063715018a6116100a8578063a9059cbb1161006d578063a9059cbb1461035b578063c8c8ebe41461037a578063c9567bf91461038f578063dd62ed3e146103a3578063e2f45605146103e7578063f8b45b05146103fc575f80fd5b8063715018a6146102cc578063728f8eea146102e2578063751039fc146103115780638da5cb5b1461032557806395d89b4114610347575f80fd5b806323b872dd116100f957806323b872dd1461020057806327c8f8351461021f5780632dc0562d14610234578063313ce5671461025857806349bd5a5e1461027957806370a0823114610298575f80fd5b806306fdde031461013f5780630930907b14610169578063095ea7b3146101945780631694505e146101c357806318160ddd146101e2575f80fd5b3661013b57005b5f80fd5b34801561014a575f80fd5b50610153610411565b60405161016091906116c3565b60405180910390f35b348015610174575f80fd5b5061017c5f81565b6040516001600160a01b039091168152602001610160565b34801561019f575f80fd5b506101b36101ae366004611725565b6104a1565b6040519015158152602001610160565b3480156101ce575f80fd5b5060065461017c906001600160a01b031681565b3480156101ed575f80fd5b506002545b604051908152602001610160565b34801561020b575f80fd5b506101b361021a36600461174f565b6104ba565b34801561022a575f80fd5b5061017c61dead81565b34801561023f575f80fd5b50600b5461017c9061010090046001600160a01b031681565b348015610263575f80fd5b5060055460405160ff9091168152602001610160565b348015610284575f80fd5b5060075461017c906001600160a01b031681565b3480156102a3575f80fd5b506101f26102b236600461178d565b6001600160a01b03165f9081526020819052604090205490565b3480156102d7575f80fd5b506102e06104dd565b005b3480156102ed575f80fd5b50600c54600d546102fc919082565b60408051928352602083019190915201610160565b34801561031c575f80fd5b506102e06104f0565b348015610330575f80fd5b5060055461010090046001600160a01b031661017c565b348015610352575f80fd5b5061015361052d565b348015610366575f80fd5b506101b3610375366004611725565b61053c565b348015610385575f80fd5b506101f2600e5481565b34801561039a575f80fd5b506102e0610549565b3480156103ae575f80fd5b506101f26103bd3660046117a8565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156103f2575f80fd5b506101f260085481565b348015610407575f80fd5b506101f2600f5481565b606060038054610420906117df565b80601f016020809104026020016040519081016040528092919081815260200182805461044c906117df565b80156104975780601f1061046e57610100808354040283529160200191610497565b820191905f5260205f20905b81548152906001019060200180831161047a57829003601f168201915b5050505050905090565b5f336104ae818585610945565b60019150505b92915050565b5f336104c7858285610a68565b6104d2858585610af8565b506001949350505050565b6104e56112e7565b6104ee5f611347565b565b6104f86112e7565b600254600f819055600e55604080518082019091525f8082526020909101819052600c819055600d55600b805460ff19169055565b606060048054610420906117df565b5f336104ae818585610af8565b6105516112e7565b600754600160a01b900460ff16156105b05760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091555f819052601160209081527fa30c5df85d30b252583f3563cb2bd6456399154fbc658c188bf804ed074c64d6805460ff191660011790556040805163c45a015560e01b81529051839263c45a015592600480820193918290030181865afa158015610646573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066a9190611811565b6001600160a01b031663c9c653963060065f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ed9190611811565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610737573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061075b9190611811565b600780546001600160a01b0319166001600160a01b0392831690811782555f908152601260209081526040808320805460ff199081166001908117909255945486168452601190925290912080549092161790556006546002546107c29230921690610945565b600654600c546001600160a01b039091169063f305d719904790309061080e90606490610808906107f39083611840565b305f90815260208190526040902054906113a0565b906113b2565b5f806108286005546001600160a01b036101009091041690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561088e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108b39190611853565b505060075460065460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610908573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092c919061187e565b50506007805461ffff60a01b191661010160a01b179055565b6001600160a01b0383166109a75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105a7565b6001600160a01b038216610a085760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105a7565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610af25781811015610ae55760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105a7565b610af28484848403610945565b50505050565b6001600160a01b038316610b5d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015265323932b9b99760d11b60648201526084016105a7565b6001600160a01b038216610bbf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526332b9b99760e11b60648201526084016105a7565b5f8111610c285760405162461bcd60e51b815260206004820152603160248201527f45524332303a207472616e7366657220616d6f756e74206d75737420626520676044820152703932b0ba32b9103a3430b7103d32b9379760791b60648201526084016105a7565b6005546001600160a01b038481166101009092041614801590610c5e57506005546001600160a01b038381166101009092041614155b8015610c7257506001600160a01b03821615155b8015610c8957506001600160a01b03821661dead14155b8015610c9f5750600754600160b01b900460ff16155b1561107d57600754600160a01b900460ff16610d37576001600160a01b0383165f9081526010602052604090205460ff1680610cf257506001600160a01b0382165f9081526010602052604090205460ff165b610d375760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016105a7565b600b5460ff1615610e0d576005546001600160a01b038381166101009092041614801590610d7357506006546001600160a01b03838116911614155b8015610d8d57506007546001600160a01b03838116911614155b15610e0d57325f908152600a60205260409020544311610dfb5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e652070757263686173652070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016105a7565b325f908152600a602052604090204390555b6001600160a01b0383165f9081526012602052604090205460ff168015610e4c57506001600160a01b0382165f9081526011602052604090205460ff16155b15610f3857600e54811115610ec95760405162461bcd60e51b815260206004820152603760248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527f6d6178207472616e73616374696f6e20616d6f756e742e00000000000000000060648201526084016105a7565b600f546001600160a01b0383165f90815260208190526040902054610eee908361189d565b1115610f335760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b60448201526064016105a7565b61107d565b6001600160a01b0382165f9081526012602052604090205460ff168015610f7757506001600160a01b0383165f9081526011602052604090205460ff16155b15610ff457600e54811115610f335760405162461bcd60e51b815260206004820152603860248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d6178207472616e73616374696f6e20616d6f756e742e000000000000000060648201526084016105a7565b6001600160a01b0382165f9081526011602052604090205460ff1661107d57600f546001600160a01b0383165f90815260208190526040902054611038908361189d565b111561107d5760405162461bcd60e51b815260206004820152601460248201527326b0bc103bb0b63632ba1032bc31b2b2b232b21760611b60448201526064016105a7565b6007546001600160a01b0384165f9081526010602052604090205460ff600160b01b9092048216159116806110c957506001600160a01b0383165f9081526010602052604090205460ff165b156110d157505f5b5f8115611173576001600160a01b0384165f9081526012602052604090205460ff1680156111005750600d5415155b1561112157600d5461111a906064906108089086906113a0565b9050611166565b6001600160a01b0385165f9081526012602052604090205460ff1680156111495750600c5415155b1561116657600c54611163906064906108089086906113a0565b90505b6111708184611840565b92505b305f908152602081905260409020546008548110801590819061119f5750600754600160a81b900460ff165b80156111b55750600754600160b01b900460ff16155b80156111d957506001600160a01b0387165f9081526012602052604090205460ff16155b80156111fd57506001600160a01b0387165f9081526010602052604090205460ff16155b801561122157506001600160a01b0386165f9081526010602052604090205460ff16155b156112c2576007805460ff60b01b1916600160b01b1790556009545f9061125d906112589088906112539087906113bd565b6113bd565b6113d1565b600b546040516101009091046001600160a01b03169047905f81818185875af1925050503d805f81146112ab576040519150601f19603f3d011682016040523d82523d5f602084013e6112b0565b606091505b50506007805460ff60b01b1916905550505b82156112d3576112d3873085611521565b6112de878787611521565b50505050505050565b6005546001600160a01b036101009091041633146104ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a7565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f6113ab82846118b0565b9392505050565b5f6113ab82846118c7565b5f8183116113cb57826113ab565b50919050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611404576114046118e6565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561145b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061147f9190611811565b81600181518110611492576114926118e6565b6001600160a01b0392831660209182029290920101526006546114b89130911684610945565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906114f09085905f908690309042906004016118fa565b5f604051808303815f87803b158015611507575f80fd5b505af1158015611519573d5f803e3d5ffd5b505050505050565b6001600160a01b0383166115855760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105a7565b6001600160a01b0382166115e75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105a7565b6001600160a01b0383165f908152602081905260409020548181101561165e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105a7565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610af2565b5f6020808352835180828501525f5b818110156116ee578581018301518582016040015282016116d2565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611722575f80fd5b50565b5f8060408385031215611736575f80fd5b82356117418161170e565b946020939093013593505050565b5f805f60608486031215611761575f80fd5b833561176c8161170e565b9250602084013561177c8161170e565b929592945050506040919091013590565b5f6020828403121561179d575f80fd5b81356113ab8161170e565b5f80604083850312156117b9575f80fd5b82356117c48161170e565b915060208301356117d48161170e565b809150509250929050565b600181811c908216806117f357607f821691505b6020821081036113cb57634e487b7160e01b5f52602260045260245ffd5b5f60208284031215611821575f80fd5b81516113ab8161170e565b634e487b7160e01b5f52601160045260245ffd5b818103818111156104b4576104b461182c565b5f805f60608486031215611865575f80fd5b8351925060208401519150604084015190509250925092565b5f6020828403121561188e575f80fd5b815180151581146113ab575f80fd5b808201808211156104b4576104b461182c565b80820281158282048414176104b4576104b461182c565b5f826118e157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119485784516001600160a01b031683529383019391830191600101611923565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220fc1569dce9176470b944b5f0dfc2a12ad3e1cd8725849b7a0b25ca8a61ce721d64736f6c63430008150033

Deployed Bytecode Sourcemap

7376:6727:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2835:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7597:48;;;;;;;;;;;;7643:1;7597:48;;;;;-1:-1:-1;;;;;731:32:1;;;713:51;;701:2;686:18;7597:48:0;567:203:1;3774:201:0;;;;;;;;;;-1:-1:-1;3774:201:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;3774:201:0;1231:187:1;7454:41:0;;;;;;;;;;-1:-1:-1;7454:41:0;;;;-1:-1:-1;;;;;7454:41:0;;;3163:108;;;;;;;;;;-1:-1:-1;3251:12:0;;3163:108;;;1803:25:1;;;1791:2;1776:18;3163:108:0;1657:177:1;3983:261:0;;;;;;;;;;-1:-1:-1;3983:261:0;;;;;:::i;:::-;;:::i;7537:53::-;;;;;;;;;;;;7583:6;7537:53;;8097:24;;;;;;;;;;-1:-1:-1;8097:24:0;;;;;;;-1:-1:-1;;;;;8097:24:0;;;3055:100;;;;;;;;;;-1:-1:-1;3138:9:0;;3055:100;;3138:9;;;;2442:36:1;;2430:2;2415:18;3055:100:0;2300:184:1;7502:28:0;;;;;;;;;;-1:-1:-1;7502:28:0;;;;-1:-1:-1;;;;;7502:28:0;;;3279:127;;;;;;;;;;-1:-1:-1;3279:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3380:18:0;3353:7;3380:18;;;;;;;;;;;;3279:127;1159:103;;;;;;;;;;;;;:::i;:::-;;8202:18;;;;;;;;;;-1:-1:-1;8202:18:0;;;;;;;;;;;;;2915:25:1;;;2971:2;2956:18;;2949:34;;;;2888:18;8202::0;2741:248:1;10539:179:0;;;;;;;;;;;;;:::i;924:87::-;;;;;;;;;;-1:-1:-1;997:6:0;;;;;-1:-1:-1;;;;;997:6:0;924:87;;2943:104;;;;;;;;;;;;;:::i;3414:193::-;;;;;;;;;;-1:-1:-1;3414:193:0;;;;;:::i;:::-;;:::i;8229:35::-;;;;;;;;;;;;;;;;9474:1057;;;;;;;;;;;;;:::i;3615:151::-;;;;;;;;;;-1:-1:-1;3615:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3731:18:0;;;3704:7;3731:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3615:151;7763:33;;;;;;;;;;;;;;;;8271:24;;;;;;;;;;;;;;;;2835:100;2889:13;2922:5;2915:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2835:100;:::o;3774:201::-;3857:4;586:10;3913:32;586:10;3929:7;3938:6;3913:8;:32::i;:::-;3963:4;3956:11;;;3774:201;;;;;:::o;3983:261::-;4080:4;586:10;4138:38;4154:4;586:10;4169:6;4138:15;:38::i;:::-;4187:27;4197:4;4203:2;4207:6;4187:9;:27::i;:::-;-1:-1:-1;4232:4:0;;3983:261;-1:-1:-1;;;;3983:261:0:o;1159:103::-;883:13;:11;:13::i;:::-;1224:30:::1;1251:1;1224:18;:30::i;:::-;1159:103::o:0;10539:179::-;883:13;:11;:13::i;:::-;3251:12;;10616:9:::1;:25:::0;;;10593:20:::1;:48:::0;10660:11:::1;::::0;;;;::::1;::::0;;;-1:-1:-1;10660:11:0;;;::::1;::::0;;::::1;::::0;;;10652:5:::1;:19:::0;;;;;10682:20:::1;:28:::0;;-1:-1:-1;;10682:28:0::1;::::0;;10539:179::o;2943:104::-;2999:13;3032:7;3025:14;;;;;:::i;3414:193::-;3493:4;586:10;3549:28;586:10;3566:2;3570:6;3549:9;:28::i;9474:1057::-;883:13;:11;:13::i;:::-;9538:14:::1;::::0;-1:-1:-1;;;9538:14:0;::::1;;;9537:15;9529:51;;;::::0;-1:-1:-1;;;9529:51:0;;3974:2:1;9529:51:0::1;::::0;::::1;3956:21:1::0;4013:2;3993:18;;;3986:30;4052:25;4032:18;;;4025:53;4095:18;;9529:51:0::1;;;;;;;;;9702:15;:34:::0;;-1:-1:-1;;;;;;9702:34:0::1;9648:42;9702:34:::0;;::::1;::::0;;;9591:35:::1;9747:57:::0;;;:30:::1;:57;::::0;;;;:64;;-1:-1:-1;;9747:64:0::1;9702:34:::0;9747:64:::1;::::0;;:57;9858:25;;-1:-1:-1;;;9858:25:0;;;;9648:42;;9858:23:::1;::::0;:25:::1;::::0;;::::1;::::0;;;;;;;9648:42;9858:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9840:55:0::1;;9904:4;9911:15;;;;;;;;;-1:-1:-1::0;;;;;9911:15:0::1;-1:-1:-1::0;;;;;9911:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9840:94;::::0;-1:-1:-1;;;;;;9840:94:0::1;::::0;;;;;;-1:-1:-1;;;;;4610:15:1;;;9840:94:0::1;::::0;::::1;4592:34:1::0;4662:15;;4642:18;;;4635:43;4527:18;;9840:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9824:13;:110:::0;;-1:-1:-1;;;;;;9824:110:0::1;-1:-1:-1::0;;;;;9824:110:0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;9945:29:0;;;:5:::1;:29;::::0;;;;;;;:36;;-1:-1:-1;;9945:36:0;;::::1;-1:-1:-1::0;9945:36:0;;::::1;::::0;;;10031:13;;;::::1;9992:54:::0;;:30:::1;:54:::0;;;;;;:61;;;;::::1;;::::0;;10098:15:::1;::::0;3251:12;;10066:64:::1;::::0;10083:4:::1;::::0;10098:15:::1;::::0;10066:8:::1;:64::i;:::-;10141:15;::::0;10281:5:::1;:9:::0;-1:-1:-1;;;;;10141:15:0;;::::1;::::0;:31:::1;::::0;10181:21:::1;::::0;10226:4:::1;::::0;10246:54:::1;::::0;10296:3:::1;::::0;10246:45:::1;::::0;10275:15:::1;::::0;10296:3;10275:15:::1;:::i;:::-;10264:4;3353:7:::0;3380:18;;;;;;;;;;;10246:28;::::1;:45::i;:::-;:49:::0;::::1;:54::i;:::-;10315:1;10331::::0;10347:7:::1;997:6:::0;;-1:-1:-1;;;;;997:6:0;;;;;;924:87;10347:7:::1;10141:254;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10141:254:0;;;-1:-1:-1;;;;;5313:15:1;;;10141:254:0::1;::::0;::::1;5295:34:1::0;5345:18;;;5338:34;;;;5388:18;;;5381:34;;;;5431:18;;;5424:34;5495:15;;;5474:19;;;5467:44;10369:15:0::1;5527:19:1::0;;;5520:35;5229:19;;10141:254:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10413:13:0::1;::::0;10444:15:::1;::::0;10406:71:::1;::::0;-1:-1:-1;;;10406:71:0;;-1:-1:-1;;;;;10444:15:0;;::::1;10406:71;::::0;::::1;6051:51:1::0;-1:-1:-1;;6118:18:1;;;6111:34;10413:13:0;::::1;::::0;-1:-1:-1;10406:29:0::1;::::0;6024:18:1;;10406:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10505:11:0::1;:18:::0;;-1:-1:-1;;;;10488:35:0;-1:-1:-1;;;10488:35:0;;;9474:1057::o;5622:346::-;-1:-1:-1;;;;;5724:19:0;;5716:68;;;;-1:-1:-1;;;5716:68:0;;6640:2:1;5716:68:0;;;6622:21:1;6679:2;6659:18;;;6652:30;6718:34;6698:18;;;6691:62;-1:-1:-1;;;6769:18:1;;;6762:34;6813:19;;5716:68:0;6438:400:1;5716:68:0;-1:-1:-1;;;;;5803:21:0;;5795:68;;;;-1:-1:-1;;;5795:68:0;;7045:2:1;5795:68:0;;;7027:21:1;7084:2;7064:18;;;7057:30;7123:34;7103:18;;;7096:62;-1:-1:-1;;;7174:18:1;;;7167:32;7216:19;;5795:68:0;6843:398:1;5795:68:0;-1:-1:-1;;;;;5876:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5928:32;;1803:25:1;;;5928:32:0;;1776:18:1;5928:32:0;;;;;;;5622:346;;;:::o;5976:419::-;-1:-1:-1;;;;;3731:18:0;;;6077:24;3731:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;6144:37:0;;6140:248;;6226:6;6206:16;:26;;6198:68;;;;-1:-1:-1;;;6198:68:0;;7448:2:1;6198:68:0;;;7430:21:1;7487:2;7467:18;;;7460:30;7526:31;7506:18;;;7499:59;7575:18;;6198:68:0;7246:353:1;6198:68:0;6310:51;6319:5;6326:7;6354:6;6335:16;:25;6310:8;:51::i;:::-;6066:329;5976:419;;;:::o;10726:2893::-;-1:-1:-1;;;;;10824:19:0;;10816:70;;;;-1:-1:-1;;;10816:70:0;;7806:2:1;10816:70:0;;;7788:21:1;7845:2;7825:18;;;7818:30;7884:34;7864:18;;;7857:62;-1:-1:-1;;;7935:18:1;;;7928:36;7981:19;;10816:70:0;7604:402:1;10816:70:0;-1:-1:-1;;;;;10905:17:0;;10897:66;;;;-1:-1:-1;;;10897:66:0;;8213:2:1;10897:66:0;;;8195:21:1;8252:2;8232:18;;;8225:30;8291:34;8271:18;;;8264:62;-1:-1:-1;;;8342:18:1;;;8335:34;8386:19;;10897:66:0;8011:400:1;10897:66:0;10991:1;10982:6;:10;10974:72;;;;-1:-1:-1;;;10974:72:0;;8618:2:1;10974:72:0;;;8600:21:1;8657:2;8637:18;;;8630:30;8696:34;8676:18;;;8669:62;-1:-1:-1;;;8747:18:1;;;8740:47;8804:19;;10974:72:0;8416:413:1;10974:72:0;997:6;;-1:-1:-1;;;;;11063:15:0;;;997:6;;;;;11063:15;;;;:32;;-1:-1:-1;997:6:0;;-1:-1:-1;;;;;11082:13:0;;;997:6;;;;;11082:13;;11063:32;:53;;;;-1:-1:-1;;;;;;11099:17:0;;;;11063:53;:74;;;;-1:-1:-1;;;;;;11120:17:0;;7583:6;11120:17;;11063:74;:87;;;;-1:-1:-1;11142:8:0;;-1:-1:-1;;;11142:8:0;;;;11141:9;11063:87;11059:1340;;;11172:14;;-1:-1:-1;;;11172:14:0;;;;11167:141;;-1:-1:-1;;;;;11215:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;11243:22:0;;;;;;:18;:22;;;;;;;;11215:50;11207:85;;;;-1:-1:-1;;;11207:85:0;;9036:2:1;11207:85:0;;;9018:21:1;9075:2;9055:18;;;9048:30;-1:-1:-1;;;9094:18:1;;;9087:52;9156:18;;11207:85:0;8834:346:1;11207:85:0;11386:20;;;;11382:368;;;997:6;;-1:-1:-1;;;;;11431:13:0;;;997:6;;;;;11431:13;;;;:47;;-1:-1:-1;11462:15:0;;-1:-1:-1;;;;;11448:30:0;;;11462:15;;11448:30;;11431:47;:79;;;;-1:-1:-1;11496:13:0;;-1:-1:-1;;;;;11482:28:0;;;11496:13;;11482:28;;11431:79;11427:308;;;11572:9;11543:39;;;;:28;:39;;;;;;11585:12;-1:-1:-1;11535:103:0;;;;-1:-1:-1;;;11535:103:0;;9387:2:1;11535:103:0;;;9369:21:1;9426:2;9406:18;;;9399:30;9465:34;9445:18;;;9438:62;-1:-1:-1;;;9516:18:1;;;9509:34;9560:19;;11535:103:0;9185:400:1;11535:103:0;11690:9;11661:39;;;;:28;:39;;;;;11703:12;11661:54;;11427:308;-1:-1:-1;;;;;11770:11:0;;;;;;:5;:11;;;;;;;;:50;;;;-1:-1:-1;;;;;;11786:34:0;;;;;;:30;:34;;;;;;;;11785:35;11770:50;11766:622;;;11859:20;;11849:6;:30;;11841:98;;;;-1:-1:-1;;;11841:98:0;;9792:2:1;11841:98:0;;;9774:21:1;9831:2;9811:18;;;9804:30;9870:34;9850:18;;;9843:62;9941:25;9921:18;;;9914:53;9984:19;;11841:98:0;9590:419:1;11841:98:0;11992:9;;-1:-1:-1;;;;;3380:18:0;;3353:7;3380:18;;;;;;;;;;;11966:22;;:6;:22;:::i;:::-;:35;;11958:68;;;;-1:-1:-1;;;11958:68:0;;10346:2:1;11958:68:0;;;10328:21:1;10385:2;10365:18;;;10358:30;-1:-1:-1;;;10404:18:1;;;10397:50;10464:18;;11958:68:0;10144:344:1;11958:68:0;11766:622;;;-1:-1:-1;;;;;12052:9:0;;;;;;:5;:9;;;;;;;;:50;;;;-1:-1:-1;;;;;;12066:36:0;;;;;;:30;:36;;;;;;;;12065:37;12052:50;12048:340;;;12141:20;;12131:6;:30;;12123:99;;;;-1:-1:-1;;;12123:99:0;;10695:2:1;12123:99:0;;;10677:21:1;10734:2;10714:18;;;10707:30;10773:34;10753:18;;;10746:62;10844:26;10824:18;;;10817:54;10888:19;;12123:99:0;10493:420:1;12048:340:0;-1:-1:-1;;;;;12249:34:0;;;;;;:30;:34;;;;;;;;12244:144;;12338:9;;-1:-1:-1;;;;;3380:18:0;;3353:7;3380:18;;;;;;;;;;;12312:22;;:6;:22;:::i;:::-;:35;;12304:68;;;;-1:-1:-1;;;12304:68:0;;10346:2:1;12304:68:0;;;10328:21:1;10385:2;10365:18;;;10358:30;-1:-1:-1;;;10404:18:1;;;10397:50;10464:18;;12304:68:0;10144:344:1;12304:68:0;12427:8;;-1:-1:-1;;;;;12450:24:0;;12411:12;12450:24;;;:18;:24;;;;;;12427:8;-1:-1:-1;;;12427:8:0;;;;;12426:9;;12450:24;;:50;;-1:-1:-1;;;;;;12478:22:0;;;;;;:18;:22;;;;;;;;12450:50;12446:98;;;-1:-1:-1;12527:5:0;12446:98;12556:12;12587:7;12583:286;;;-1:-1:-1;;;;;12615:9:0;;;;;;:5;:9;;;;;;;;:27;;;;-1:-1:-1;12628:10:0;;:14;;12615:27;12611:218;;;12681:10;;12670:31;;12697:3;;12670:22;;:6;;:10;:22::i;:31::-;12663:38;;12611:218;;;-1:-1:-1;;;;;12727:11:0;;;;;;:5;:11;;;;;;;;:28;;;;-1:-1:-1;12742:5:0;:9;:13;;12727:28;12723:106;;;12794:5;:9;12783:30;;12809:3;;12783:21;;:6;;:10;:21::i;:30::-;12776:37;;12723:106;12843:14;12853:4;12843:14;;:::i;:::-;;;12583:286;12925:4;12881:23;3380:18;;;;;;;;;;;12976;;12957:37;;;;;;;13023:35;;-1:-1:-1;13047:11:0;;-1:-1:-1;;;13047:11:0;;;;13023:35;:61;;;;-1:-1:-1;13076:8:0;;-1:-1:-1;;;13076:8:0;;;;13075:9;13023:61;:90;;;;-1:-1:-1;;;;;;13102:11:0;;;;;;:5;:11;;;;;;;;13101:12;13023:90;:132;;;;-1:-1:-1;;;;;;13131:24:0;;;;;;:18;:24;;;;;;;;13130:25;13023:132;:172;;;;-1:-1:-1;;;;;;13173:22:0;;;;;;:18;:22;;;;;;;;13172:23;13023:172;13005:466;;;13222:8;:15;;-1:-1:-1;;;;13222:15:0;-1:-1:-1;;;13222:15:0;;;13329:10;;13222:15;;13279:63;;13296:45;;13300:6;;13308:32;;13312:15;;13308:3;:32::i;:::-;13296:3;:45::i;:::-;13279:16;:63::i;:::-;13379:9;;13371:57;;13379:9;;;;-1:-1:-1;;;;;13379:9:0;;13402:21;;13371:57;;;;13402:21;13379:9;13371:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13443:8:0;:16;;-1:-1:-1;;;;13443:16:0;;;-1:-1:-1;;13005:466:0;13487:8;;13483:83;;13512:42;13528:4;13542;13549;13512:15;:42::i;:::-;13578:33;13594:4;13600:2;13604:6;13578:15;:33::i;:::-;10805:2814;;;;10726:2893;;;:::o;1019:132::-;997:6;;-1:-1:-1;;;;;997:6:0;;;;;586:10;1083:23;1075:68;;;;-1:-1:-1;;;1075:68:0;;11330:2:1;1075:68:0;;;11312:21:1;;;11349:18;;;11342:30;11408:34;11388:18;;;11381:62;11460:18;;1075:68:0;11128:356:1;1270:191:0;1363:6;;;-1:-1:-1;;;;;1380:17:0;;;1363:6;1380:17;;;-1:-1:-1;;;;;;1380:17:0;;;;;;1413:40;;1363:6;;;;;;;;1413:40;;1344:16;;1413:40;1333:128;1270:191;:::o;156:98::-;214:7;241:5;245:1;241;:5;:::i;:::-;234:12;156:98;-1:-1:-1;;;156:98:0:o;262:::-;320:7;347:5;351:1;347;:5;:::i;9361:105::-;9418:7;9448:1;9444;:5;9443:15;;9457:1;9443:15;;;-1:-1:-1;9453:1:0;9361:105;-1:-1:-1;9361:105:0:o;13627:473::-;13717:16;;;13731:1;13717:16;;;;;;;;13693:21;;13717:16;;;;;;;;;;-1:-1:-1;13717:16:0;13693:40;;13762:4;13744;13749:1;13744:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13744:23:0;;;:7;;;;;;;;;;:23;;;;13788:15;;:22;;;-1:-1:-1;;;13788:22:0;;;;:15;;;;;:20;;:22;;;;;13744:7;;13788:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13778:4;13783:1;13778:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13778:32:0;;;:7;;;;;;;;;:32;13855:15;;13823:62;;13840:4;;13855:15;13873:11;13823:8;:62::i;:::-;13896:15;;:196;;-1:-1:-1;;;13896:196:0;;-1:-1:-1;;;;;13896:15:0;;;;:66;;:196;;13977:11;;13896:15;;14019:4;;14046;;14066:15;;13896:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13682:418;13627:473;:::o;4252:806::-;-1:-1:-1;;;;;4349:18:0;;4341:68;;;;-1:-1:-1;;;4341:68:0;;13335:2:1;4341:68:0;;;13317:21:1;13374:2;13354:18;;;13347:30;13413:34;13393:18;;;13386:62;-1:-1:-1;;;13464:18:1;;;13457:35;13509:19;;4341:68:0;13133:401:1;4341:68:0;-1:-1:-1;;;;;4428:16:0;;4420:64;;;;-1:-1:-1;;;4420:64:0;;13741:2:1;4420:64:0;;;13723:21:1;13780:2;13760:18;;;13753:30;13819:34;13799:18;;;13792:62;-1:-1:-1;;;13870:18:1;;;13863:33;13913:19;;4420:64:0;13539:399:1;4420:64:0;-1:-1:-1;;;;;4570:15:0;;4548:19;4570:15;;;;;;;;;;;4604:21;;;;4596:72;;;;-1:-1:-1;;;4596:72:0;;14145:2:1;4596:72:0;;;14127:21:1;14184:2;14164:18;;;14157:30;14223:34;14203:18;;;14196:62;-1:-1:-1;;;14274:18:1;;;14267:36;14320:19;;4596:72:0;13943:402:1;4596:72:0;-1:-1:-1;;;;;4704:15:0;;;:9;:15;;;;;;;;;;;4722:20;;;4704:38;;4922:13;;;;;;;;;;:23;;;;;;4974:26;;1803:25:1;;;4922:13:0;;4974:26;;1776:18:1;4974:26:0;;;;;;;5013:37;6403:91;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;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;830:70;775:131;:::o;911:315::-;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1839:456::-;1916:6;1924;1932;1985:2;1973:9;1964:7;1960:23;1956:32;1953:52;;;2001:1;1998;1991:12;1953:52;2040:9;2027:23;2059:31;2084:5;2059:31;:::i;:::-;2109:5;-1:-1:-1;2166:2:1;2151:18;;2138:32;2179:33;2138:32;2179:33;:::i;:::-;1839:456;;2231:7;;-1:-1:-1;;;2285:2:1;2270:18;;;;2257:32;;1839:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2994:388::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3178:9;3165:23;3197:31;3222:5;3197:31;:::i;:::-;3247:5;-1:-1:-1;3304:2:1;3289:18;;3276:32;3317:33;3276:32;3317:33;:::i;:::-;3369:7;3359:17;;;2994:388;;;;;:::o;3387:380::-;3466:1;3462:12;;;;3509;;;3530:61;;3584:4;3576:6;3572:17;3562:27;;3530:61;3637:2;3629:6;3626:14;3606:18;3603:38;3600:161;;3683:10;3678:3;3674:20;3671:1;3664:31;3718:4;3715:1;3708:15;3746:4;3743:1;3736:15;4124:251;4194:6;4247:2;4235:9;4226:7;4222:23;4218:32;4215:52;;;4263:1;4260;4253:12;4215:52;4295:9;4289:16;4314:31;4339:5;4314:31;:::i;4689:127::-;4750:10;4745:3;4741:20;4738:1;4731:31;4781:4;4778:1;4771:15;4805:4;4802:1;4795:15;4821:128;4888:9;;;4909:11;;;4906:37;;;4923:18;;:::i;5566:306::-;5654:6;5662;5670;5723:2;5711:9;5702:7;5698:23;5694:32;5691:52;;;5739:1;5736;5729:12;5691:52;5768:9;5762:16;5752:26;;5818:2;5807:9;5803:18;5797:25;5787:35;;5862:2;5851:9;5847:18;5841:25;5831:35;;5566:306;;;;;:::o;6156:277::-;6223:6;6276:2;6264:9;6255:7;6251:23;6247:32;6244:52;;;6292:1;6289;6282:12;6244:52;6324:9;6318:16;6377:5;6370:13;6363:21;6356:5;6353:32;6343:60;;6399:1;6396;6389:12;10014:125;10079:9;;;10100:10;;;10097:36;;;10113:18;;:::i;11489:168::-;11562:9;;;11593;;11610:15;;;11604:22;;11590:37;11580:71;;11631:18;;:::i;11662:217::-;11702:1;11728;11718:132;;11772:10;11767:3;11763:20;11760:1;11753:31;11807:4;11804:1;11797:15;11835:4;11832:1;11825:15;11718:132;-1:-1:-1;11864:9:1;;11662:217::o;12016:127::-;12077:10;12072:3;12068:20;12065:1;12058:31;12108:4;12105:1;12098:15;12132:4;12129:1;12122:15;12148:980;12410:4;12458:3;12447:9;12443:19;12489:6;12478:9;12471:25;12515:2;12553:6;12548:2;12537:9;12533:18;12526:34;12596:3;12591:2;12580:9;12576:18;12569:31;12620:6;12655;12649:13;12686:6;12678;12671:22;12724:3;12713:9;12709:19;12702:26;;12763:2;12755:6;12751:15;12737:29;;12784:1;12794:195;12808:6;12805:1;12802:13;12794:195;;;12873:13;;-1:-1:-1;;;;;12869:39:1;12857:52;;12964:15;;;;12929:12;;;;12905:1;12823:9;12794:195;;;-1:-1:-1;;;;;;;13045:32:1;;;;13040:2;13025:18;;13018:60;-1:-1:-1;;;13109:3:1;13094:19;13087:35;13006:3;12148:980;-1:-1:-1;;;12148:980:1:o

Swarm Source

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