ETH Price: $3,618.80 (-2.81%)

Token

ERC-20: dEaD By 0x (dEaD)
 

Overview

Max Total Supply

100,000,000 dEaD

Holders

119

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
123,279.549135614 dEaD

Value
$0.00
0x6c06B4ad565C1d8E72fa7f6D0D16622E0A3A8F97
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:
dEaD

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 2024-07-21
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;

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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    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);
}

library Address {
    function sendValue(address payable recipient, uint256 amount) internal returns(bool){
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        return success; // always proceeds
    }
}

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

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

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

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

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

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

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

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

contract dEaD is ERC20, Ownable {
    using Address for address payable;

    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair;

    mapping (address => bool) private _isExcludedFromFees;

    address public  feeReceiver;

    uint256 public  swapTokensAtAmount;
    bool    private swapping;

    bool    public swapEnabled;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SwapAndSendFee(uint256 tokensSwapped, uint256 bnbSend);
    event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount);

    constructor () ERC20("dEaD By 0x", "dEaD") 
    {   
        address router;
        address pinkLock;
        
        if (block.chainid == 56) {
            router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // BSC Pancake Mainnet Router
            pinkLock = 0x407993575c91ce7643a4d4cCACc9A98c36eE1BBE; // BSC PinkLock
        } else if (block.chainid == 97) {
            router = 0xD99D1c33F9fC3444f8101754aBC46c52416550D1; // BSC Pancake Testnet Router
            pinkLock = 0x5E5b9bE5fd939c578ABE5800a90C566eeEbA44a5; // BSC Testnet PinkLock
        } else if (block.chainid == 1 || block.chainid == 5) {
            router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // ETH Uniswap Mainnet % Testnet
            pinkLock = 0x71B5759d73262FBb223956913ecF4ecC51057641; // ETH PinkLock
        } else {
            revert();
        }

        transferOwnership(0xeF263baB1Bc6aD55800Dbc0489B2138568Ec2D20);

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

        feeReceiver = 0x0D230622A86b848FBeeBa11C54a6A0282C202708;

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

        _mintOnce(owner(), 100e6 * (10 ** decimals()));
        swapTokensAtAmount = totalSupply() / 5_000;

        swapEnabled = false;
    }

    receive() external payable {}

    function claimStuckTokens(address token) external onlyOwner {
        if (token == address(0x0)) {
            payable(msg.sender).sendValue(address(this).balance);
            return;
        }
        
        IERC20(token).transfer(msg.sender, IERC20(token).balanceOf(address(this)));
    }

    function excludeFromFees(address account, bool excluded) external onlyOwner{
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }

    event FeeReceiverChanged(address feeReceiver);

    function changeFeeReceiver(address _feeReceiver) external onlyOwner{
        require(_feeReceiver != address(0), "ER: Fee receiver cannot be the zero address");
        feeReceiver = _feeReceiver;

        emit FeeReceiverChanged(feeReceiver);
    }
    
    event TradingEnabled(bool tradingEnabled);

    bool public tradingEnabled;
    uint256 public tradingTime;

    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "ER: Trading already enabled.");
        tradingEnabled = true;
        swapEnabled = true;
        tradingTime = block.timestamp;

        emit TradingEnabled(tradingEnabled);
    }

    function _transfer(address from,address to,uint256 amount) internal  override {
        require(from != address(0), "ER: transfer from the zero address");
        require(to != address(0), "ER: transfer to the zero address");
        require(tradingEnabled || _isExcludedFromFees[from] || _isExcludedFromFees[to], "ER: Trading not yet enabled!");
       
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

		uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap &&
            !swapping &&
            to == uniswapV2Pair &&
            !_isExcludedFromFees[from] &&
            swapEnabled
        ) {
            swapping = true;

            swapAndSendFee(contractTokenBalance);     

            swapping = false;
        }

        uint256 _totalFees;
        uint256 _burnFees;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) {
            _totalFees = 0;
        } else if (from == uniswapV2Pair) {
            if (block.timestamp > tradingTime + 30 minutes) {
                _burnFees = 1;
            } else {
                _totalFees = 230;
            }
        } else if (to == uniswapV2Pair) {
            if (block.timestamp > tradingTime + 30 minutes) {
                _burnFees = 1;
            } else {
                _totalFees = 230;
            }
        } else {
            _totalFees = 0;
        }

        if (_totalFees > 0) {
            uint256 fees = (amount * _totalFees) / 1_000;
            amount = amount - fees;
            super._transfer(from, address(this), fees);
        }

        if (_burnFees > 0) {
            uint256 fees = (amount * _burnFees) / 1_000;
            amount = amount - fees;
            super._transfer(from, address(0xdead), fees);
        }

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

    function swapAndSendFee(uint256 tokenAmount) private {
        uint256 initialBalance = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        uint256 newBalance = address(this).balance - initialBalance;

        payable(feeReceiver).sendValue(newBalance);

        emit SwapAndSendFee(tokenAmount, newBalance);
    }
}

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":false,"internalType":"address","name":"feeReceiver","type":"address"}],"name":"FeeReceiverChanged","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":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbSend","type":"uint256"}],"name":"SwapAndSendFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tradingEnabled","type":"bool"}],"name":"TradingEnabled","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":"_feeReceiver","type":"address"}],"name":"changeFeeReceiver","outputs":[],"stateMutability":"nonpayable","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":"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":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","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":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"}]

608060405234801562000010575f80fd5b506040518060400160405280600a8152602001690c88ac2884084f24060f60b31b815250604051806040016040528060048152602001631911585160e21b815250816003908162000062919062000815565b50600462000071828262000815565b5050505f620000856200045860201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f905f805160206200225a833981519152908290a3505f8046603803620000fe57507310ed43c718714eb63d5aa57b78b54704e256024e905073407993575c91ce7643a4d4ccacc9a98c36ee1bbe62000187565b466061036200013a575073d99d1c33f9fc3444f8101754abc46c52416550d19050735e5b9be5fd939c578abe5800a90c566eeeba44a562000187565b46600114806200014a5750466005145b15620001835750737a250d5630b4cf539739df2c5dacb4c659f2488d90507371b5759d73262fbb223956913ecf4ecc5105764162000187565b5f80fd5b620001a673ef263bab1bc6ad55800dbc0489b2138568ec2d206200045c565b5f8290505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200020e9190620008dd565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002809190620008dd565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002cb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002f19190620008dd565b600680546001600160a01b038086166001600160a01b031992831681179093556007805491851691909216179055909150620003319030905f196200056c565b600980546001600160a01b031916730d230622a86b848fbeeba11c54a6a0282c202708179055600160085f6200036f6005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560089093527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd09334299805485166001908117909155308452828420805486168217905590871683529120805490921617905562000426620004026005546001600160a01b031690565b620004106009600a62000a1b565b62000420906305f5e10062000a2b565b62000693565b6113886200043360025490565b6200043f919062000a45565b600a555050600b805461ff00191690555062000a7b9050565b3390565b6005546001600160a01b03163314620004bc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b038116620005235760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401620004b3565b6005546040516001600160a01b038084169216905f805160206200225a833981519152905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316620005d05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620004b3565b6001600160a01b038216620006335760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004b3565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038216620006eb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620004b3565b8060025f828254620006fe919062000a65565b90915550506001600160a01b0382165f90815260208190526040812080548392906200072c90849062000a65565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200079e57607f821691505b602082108103620007bd57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000810575f81815260208120601f850160051c81016020861015620007eb5750805b601f850160051c820191505b818110156200080c57828155600101620007f7565b5050505b505050565b81516001600160401b0381111562000831576200083162000775565b620008498162000842845462000789565b84620007c3565b602080601f8311600181146200087f575f8415620008675750858301515b5f19600386901b1c1916600185901b1785556200080c565b5f85815260208120601f198616915b82811015620008af578886015182559484019460019091019084016200088e565b5085821015620008cd57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f60208284031215620008ee575f80fd5b81516001600160a01b038116811462000905575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200096057815f19048211156200094457620009446200090c565b808516156200095257918102915b93841c939080029062000925565b509250929050565b5f82620009785750600162000a15565b816200098657505f62000a15565b81600181146200099f5760028114620009aa57620009ca565b600191505062000a15565b60ff841115620009be57620009be6200090c565b50506001821b62000a15565b5060208310610133831016604e8410600b8410161715620009ef575081810a62000a15565b620009fb838362000920565b805f190482111562000a115762000a116200090c565b0290505b92915050565b5f6200090560ff84168362000968565b808202811582820484141762000a155762000a156200090c565b5f8262000a6057634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111562000a155762000a156200090c565b6117d18062000a895f395ff3fe60806040526004361061017e575f3560e01c80637c08b964116100cd578063b3f0067411610087578063dd62ed3e11610062578063dd62ed3e14610462578063e2f45605146104a6578063f2fde38b146104bb578063f9d0831a146104da575f80fd5b8063b3f006741461040f578063b8158d601461042e578063c024666814610443575f80fd5b80637c08b9641461036d5780638a8c523c1461038c5780638da5cb5b146103a057806395d89b41146103bd578063a457c2d7146103d1578063a9059cbb146103f0575f80fd5b806339509351116101385780634fbee193116101135780634fbee193146102ce5780636ddd17131461030557806370a0823114610323578063715018a614610357575f80fd5b8063395093511461027157806349bd5a5e146102905780634ada218b146102af575f80fd5b806306fdde0314610189578063095ea7b3146101b35780631694505e146101e257806318160ddd1461021957806323b872dd14610237578063313ce56714610256575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b5061019d6104f9565b6040516101aa9190611495565b60405180910390f35b3480156101be575f80fd5b506101d26101cd3660046114f4565b610589565b60405190151581526020016101aa565b3480156101ed575f80fd5b50600654610201906001600160a01b031681565b6040516001600160a01b0390911681526020016101aa565b348015610224575f80fd5b506002545b6040519081526020016101aa565b348015610242575f80fd5b506101d261025136600461151e565b61059f565b348015610261575f80fd5b50604051600981526020016101aa565b34801561027c575f80fd5b506101d261028b3660046114f4565b610653565b34801561029b575f80fd5b50600754610201906001600160a01b031681565b3480156102ba575f80fd5b50600b546101d29062010000900460ff1681565b3480156102d9575f80fd5b506101d26102e836600461155c565b6001600160a01b03165f9081526008602052604090205460ff1690565b348015610310575f80fd5b50600b546101d290610100900460ff1681565b34801561032e575f80fd5b5061022961033d36600461155c565b6001600160a01b03165f9081526020819052604090205490565b348015610362575f80fd5b5061036b61068e565b005b348015610378575f80fd5b5061036b61038736600461155c565b610701565b348015610397575f80fd5b5061036b6107e9565b3480156103ab575f80fd5b506005546001600160a01b0316610201565b3480156103c8575f80fd5b5061019d6108c5565b3480156103dc575f80fd5b506101d26103eb3660046114f4565b6108d4565b3480156103fb575f80fd5b506101d261040a3660046114f4565b61096c565b34801561041a575f80fd5b50600954610201906001600160a01b031681565b348015610439575f80fd5b50610229600c5481565b34801561044e575f80fd5b5061036b61045d36600461158b565b610978565b34801561046d575f80fd5b5061022961047c3660046115c2565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156104b1575f80fd5b50610229600a5481565b3480156104c6575f80fd5b5061036b6104d536600461155c565b610a00565b3480156104e5575f80fd5b5061036b6104f436600461155c565b610aea565b606060038054610508906115ee565b80601f0160208091040260200160405190810160405280929190818152602001828054610534906115ee565b801561057f5780601f106105565761010080835404028352916020019161057f565b820191905f5260205f20905b81548152906001019060200180831161056257829003601f168201915b5050505050905090565b5f610595338484610c0f565b5060015b92915050565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f19811461063d57828110156106305760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61063d8533858403610c0f565b610648858585610d32565b506001949350505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161059591859061068990869061163a565b610c0f565b6005546001600160a01b031633146106b85760405162461bcd60e51b81526004016106279061164d565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461072b5760405162461bcd60e51b81526004016106279061164d565b6001600160a01b0381166107955760405162461bcd60e51b815260206004820152602b60248201527f45523a204665652072656365697665722063616e6e6f7420626520746865207a60448201526a65726f206164647265737360a81b6064820152608401610627565b600980546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f7860599060200160405180910390a150565b6005546001600160a01b031633146108135760405162461bcd60e51b81526004016106279061164d565b600b5462010000900460ff161561086c5760405162461bcd60e51b815260206004820152601c60248201527f45523a2054726164696e6720616c726561647920656e61626c65642e000000006044820152606401610627565b600b80546201010062ffff0019909116179081905542600c556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b606060048054610508906115ee565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156109555760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610627565b6109623385858403610c0f565b5060019392505050565b5f610595338484610d32565b6005546001600160a01b031633146109a25760405162461bcd60e51b81526004016106279061164d565b6001600160a01b0382165f81815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610a2a5760405162461bcd60e51b81526004016106279061164d565b6001600160a01b038116610a8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610627565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610b145760405162461bcd60e51b81526004016106279061164d565b6001600160a01b038116610b3057610b2c334761107f565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610b7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba09190611682565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610be8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2c9190611699565b50565b6001600160a01b038316610c715760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610627565b6001600160a01b038216610cd25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610627565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d935760405162461bcd60e51b815260206004820152602260248201527f45523a207472616e736665722066726f6d20746865207a65726f206164647265604482015261737360f01b6064820152608401610627565b6001600160a01b038216610de95760405162461bcd60e51b815260206004820181905260248201527f45523a207472616e7366657220746f20746865207a65726f20616464726573736044820152606401610627565b600b5462010000900460ff1680610e1757506001600160a01b0383165f9081526008602052604090205460ff165b80610e3957506001600160a01b0382165f9081526008602052604090205460ff165b610e855760405162461bcd60e51b815260206004820152601c60248201527f45523a2054726164696e67206e6f742079657420656e61626c656421000000006044820152606401610627565b805f03610e9c57610e9783835f611129565b505050565b305f90815260208190526040902054600a5481108015908190610ec25750600b5460ff16155b8015610edb57506007546001600160a01b038581169116145b8015610eff57506001600160a01b0385165f9081526008602052604090205460ff16155b8015610f125750600b54610100900460ff165b15610f3857600b805460ff19166001179055610f2d826112f6565b600b805460ff191690555b6001600160a01b0385165f90815260086020526040812054819060ff1680610f7757506001600160a01b0386165f9081526008602052604090205460ff165b80610f845750600b5460ff165b15610f91575f9150610ff7565b6007546001600160a01b0390811690881603610fce57600c54610fb69061070861163a565b421115610fc557506001610ff7565b60e69150610ff7565b6007546001600160a01b0390811690871603610ff357600c54610fb69061070861163a565b5f91505b8115611030575f6103e861100b84886116b4565b61101591906116cb565b905061102181876116ea565b955061102e883083611129565b505b801561106b575f6103e861104483886116b4565b61104e91906116cb565b905061105a81876116ea565b95506110698861dead83611129565b505b611076878787611129565b50505050505050565b5f814710156110d05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610627565b5f836001600160a01b0316836040515f6040518083038185875af1925050503d805f8114611119576040519150601f19603f3d011682016040523d82523d5f602084013e61111e565b606091505b509095945050505050565b6001600160a01b03831661118d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610627565b6001600160a01b0382166111ef5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610627565b6001600160a01b0383165f90815260208190526040902054818110156112665760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610627565b6001600160a01b038085165f9081526020819052604080822085850390559185168152908120805484929061129c90849061163a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112e891815260200190565b60405180910390a350505050565b60408051600280825260608201835247925f92919060208301908036833701905050905030815f8151811061132d5761132d6116fd565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611384573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a89190611711565b816001815181106113bb576113bb6116fd565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac947906114009086905f9086903090429060040161172c565b5f604051808303815f87803b158015611417575f80fd5b505af1925050508015611428575060015b61143157505050565b5f61143c83476116ea565b600954909150611455906001600160a01b03168261107f565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b5f6020808352835180828501525f5b818110156114c0578581018301518582016040015282016114a4565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c0c575f80fd5b5f8060408385031215611505575f80fd5b8235611510816114e0565b946020939093013593505050565b5f805f60608486031215611530575f80fd5b833561153b816114e0565b9250602084013561154b816114e0565b929592945050506040919091013590565b5f6020828403121561156c575f80fd5b8135611577816114e0565b9392505050565b8015158114610c0c575f80fd5b5f806040838503121561159c575f80fd5b82356115a7816114e0565b915060208301356115b78161157e565b809150509250929050565b5f80604083850312156115d3575f80fd5b82356115de816114e0565b915060208301356115b7816114e0565b600181811c9082168061160257607f821691505b60208210810361162057634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561059957610599611626565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611692575f80fd5b5051919050565b5f602082840312156116a9575f80fd5b81516115778161157e565b808202811582820484141761059957610599611626565b5f826116e557634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561059957610599611626565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611721575f80fd5b8151611577816114e0565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561177a5784516001600160a01b031683529383019391830191600101611755565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d7a5d732d1a03e175e2d5b7613b52cb6783df0e451490b209d02575956c9499664736f6c634300081500338be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0

Deployed Bytecode

0x60806040526004361061017e575f3560e01c80637c08b964116100cd578063b3f0067411610087578063dd62ed3e11610062578063dd62ed3e14610462578063e2f45605146104a6578063f2fde38b146104bb578063f9d0831a146104da575f80fd5b8063b3f006741461040f578063b8158d601461042e578063c024666814610443575f80fd5b80637c08b9641461036d5780638a8c523c1461038c5780638da5cb5b146103a057806395d89b41146103bd578063a457c2d7146103d1578063a9059cbb146103f0575f80fd5b806339509351116101385780634fbee193116101135780634fbee193146102ce5780636ddd17131461030557806370a0823114610323578063715018a614610357575f80fd5b8063395093511461027157806349bd5a5e146102905780634ada218b146102af575f80fd5b806306fdde0314610189578063095ea7b3146101b35780631694505e146101e257806318160ddd1461021957806323b872dd14610237578063313ce56714610256575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b5061019d6104f9565b6040516101aa9190611495565b60405180910390f35b3480156101be575f80fd5b506101d26101cd3660046114f4565b610589565b60405190151581526020016101aa565b3480156101ed575f80fd5b50600654610201906001600160a01b031681565b6040516001600160a01b0390911681526020016101aa565b348015610224575f80fd5b506002545b6040519081526020016101aa565b348015610242575f80fd5b506101d261025136600461151e565b61059f565b348015610261575f80fd5b50604051600981526020016101aa565b34801561027c575f80fd5b506101d261028b3660046114f4565b610653565b34801561029b575f80fd5b50600754610201906001600160a01b031681565b3480156102ba575f80fd5b50600b546101d29062010000900460ff1681565b3480156102d9575f80fd5b506101d26102e836600461155c565b6001600160a01b03165f9081526008602052604090205460ff1690565b348015610310575f80fd5b50600b546101d290610100900460ff1681565b34801561032e575f80fd5b5061022961033d36600461155c565b6001600160a01b03165f9081526020819052604090205490565b348015610362575f80fd5b5061036b61068e565b005b348015610378575f80fd5b5061036b61038736600461155c565b610701565b348015610397575f80fd5b5061036b6107e9565b3480156103ab575f80fd5b506005546001600160a01b0316610201565b3480156103c8575f80fd5b5061019d6108c5565b3480156103dc575f80fd5b506101d26103eb3660046114f4565b6108d4565b3480156103fb575f80fd5b506101d261040a3660046114f4565b61096c565b34801561041a575f80fd5b50600954610201906001600160a01b031681565b348015610439575f80fd5b50610229600c5481565b34801561044e575f80fd5b5061036b61045d36600461158b565b610978565b34801561046d575f80fd5b5061022961047c3660046115c2565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156104b1575f80fd5b50610229600a5481565b3480156104c6575f80fd5b5061036b6104d536600461155c565b610a00565b3480156104e5575f80fd5b5061036b6104f436600461155c565b610aea565b606060038054610508906115ee565b80601f0160208091040260200160405190810160405280929190818152602001828054610534906115ee565b801561057f5780601f106105565761010080835404028352916020019161057f565b820191905f5260205f20905b81548152906001019060200180831161056257829003601f168201915b5050505050905090565b5f610595338484610c0f565b5060015b92915050565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f19811461063d57828110156106305760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61063d8533858403610c0f565b610648858585610d32565b506001949350505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909161059591859061068990869061163a565b610c0f565b6005546001600160a01b031633146106b85760405162461bcd60e51b81526004016106279061164d565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b0316331461072b5760405162461bcd60e51b81526004016106279061164d565b6001600160a01b0381166107955760405162461bcd60e51b815260206004820152602b60248201527f45523a204665652072656365697665722063616e6e6f7420626520746865207a60448201526a65726f206164647265737360a81b6064820152608401610627565b600980546001600160a01b0319166001600160a01b0383169081179091556040519081527f647672599d3468abcfa241a13c9e3d34383caadb5cc80fb67c3cdfcd5f7860599060200160405180910390a150565b6005546001600160a01b031633146108135760405162461bcd60e51b81526004016106279061164d565b600b5462010000900460ff161561086c5760405162461bcd60e51b815260206004820152601c60248201527f45523a2054726164696e6720616c726561647920656e61626c65642e000000006044820152606401610627565b600b80546201010062ffff0019909116179081905542600c556040516201000090910460ff16151581527fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a9060200160405180910390a1565b606060048054610508906115ee565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156109555760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610627565b6109623385858403610c0f565b5060019392505050565b5f610595338484610d32565b6005546001600160a01b031633146109a25760405162461bcd60e51b81526004016106279061164d565b6001600160a01b0382165f81815260086020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b03163314610a2a5760405162461bcd60e51b81526004016106279061164d565b6001600160a01b038116610a8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610627565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610b145760405162461bcd60e51b81526004016106279061164d565b6001600160a01b038116610b3057610b2c334761107f565b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa158015610b7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba09190611682565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610be8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b2c9190611699565b50565b6001600160a01b038316610c715760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610627565b6001600160a01b038216610cd25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610627565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d935760405162461bcd60e51b815260206004820152602260248201527f45523a207472616e736665722066726f6d20746865207a65726f206164647265604482015261737360f01b6064820152608401610627565b6001600160a01b038216610de95760405162461bcd60e51b815260206004820181905260248201527f45523a207472616e7366657220746f20746865207a65726f20616464726573736044820152606401610627565b600b5462010000900460ff1680610e1757506001600160a01b0383165f9081526008602052604090205460ff165b80610e3957506001600160a01b0382165f9081526008602052604090205460ff165b610e855760405162461bcd60e51b815260206004820152601c60248201527f45523a2054726164696e67206e6f742079657420656e61626c656421000000006044820152606401610627565b805f03610e9c57610e9783835f611129565b505050565b305f90815260208190526040902054600a5481108015908190610ec25750600b5460ff16155b8015610edb57506007546001600160a01b038581169116145b8015610eff57506001600160a01b0385165f9081526008602052604090205460ff16155b8015610f125750600b54610100900460ff165b15610f3857600b805460ff19166001179055610f2d826112f6565b600b805460ff191690555b6001600160a01b0385165f90815260086020526040812054819060ff1680610f7757506001600160a01b0386165f9081526008602052604090205460ff165b80610f845750600b5460ff165b15610f91575f9150610ff7565b6007546001600160a01b0390811690881603610fce57600c54610fb69061070861163a565b421115610fc557506001610ff7565b60e69150610ff7565b6007546001600160a01b0390811690871603610ff357600c54610fb69061070861163a565b5f91505b8115611030575f6103e861100b84886116b4565b61101591906116cb565b905061102181876116ea565b955061102e883083611129565b505b801561106b575f6103e861104483886116b4565b61104e91906116cb565b905061105a81876116ea565b95506110698861dead83611129565b505b611076878787611129565b50505050505050565b5f814710156110d05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610627565b5f836001600160a01b0316836040515f6040518083038185875af1925050503d805f8114611119576040519150601f19603f3d011682016040523d82523d5f602084013e61111e565b606091505b509095945050505050565b6001600160a01b03831661118d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610627565b6001600160a01b0382166111ef5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610627565b6001600160a01b0383165f90815260208190526040902054818110156112665760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610627565b6001600160a01b038085165f9081526020819052604080822085850390559185168152908120805484929061129c90849061163a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112e891815260200190565b60405180910390a350505050565b60408051600280825260608201835247925f92919060208301908036833701905050905030815f8151811061132d5761132d6116fd565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611384573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a89190611711565b816001815181106113bb576113bb6116fd565b6001600160a01b03928316602091820292909201015260065460405163791ac94760e01b815291169063791ac947906114009086905f9086903090429060040161172c565b5f604051808303815f87803b158015611417575f80fd5b505af1925050508015611428575060015b61143157505050565b5f61143c83476116ea565b600954909150611455906001600160a01b03168261107f565b5060408051858152602081018390527f54c5e193a68e36b996e0c85b164c5953625d951c488fbad0e67aa32e1c45307b910160405180910390a150505050565b5f6020808352835180828501525f5b818110156114c0578581018301518582016040015282016114a4565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c0c575f80fd5b5f8060408385031215611505575f80fd5b8235611510816114e0565b946020939093013593505050565b5f805f60608486031215611530575f80fd5b833561153b816114e0565b9250602084013561154b816114e0565b929592945050506040919091013590565b5f6020828403121561156c575f80fd5b8135611577816114e0565b9392505050565b8015158114610c0c575f80fd5b5f806040838503121561159c575f80fd5b82356115a7816114e0565b915060208301356115b78161157e565b809150509250929050565b5f80604083850312156115d3575f80fd5b82356115de816114e0565b915060208301356115b7816114e0565b600181811c9082168061160257607f821691505b60208210810361162057634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561059957610599611626565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611692575f80fd5b5051919050565b5f602082840312156116a9575f80fd5b81516115778161157e565b808202811582820484141761059957610599611626565b5f826116e557634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561059957610599611626565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611721575f80fd5b8151611577816114e0565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561177a5784516001600160a01b031683529383019391830191600101611755565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220d7a5d732d1a03e175e2d5b7613b52cb6783df0e451490b209d02575956c9499664736f6c63430008150033

Deployed Bytecode Sourcemap

7955:6409:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3867:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4780:169;;;;;;;;;;-1:-1:-1;4780:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4780:169:0;1023:187:1;8036:41:0;;;;;;;;;;-1:-1:-1;8036:41:0;;;;-1:-1:-1;;;;;8036:41:0;;;;;;-1:-1:-1;;;;;1404:32:1;;;1386:51;;1374:2;1359:18;8036:41:0;1215:228:1;4187:108:0;;;;;;;;;;-1:-1:-1;4275:12:0;;4187:108;;;1594:25:1;;;1582:2;1567:18;4187:108:0;1448:177:1;4957:573:0;;;;;;;;;;-1:-1:-1;4957:573:0;;;;;:::i;:::-;;:::i;4087:92::-;;;;;;;;;;-1:-1:-1;4087:92:0;;4170:1;2233:36:1;;2221:2;2206:18;4087:92:0;2091:184:1;5538:215:0;;;;;;;;;;-1:-1:-1;5538:215:0;;;;;:::i;:::-;;:::i;8084:29::-;;;;;;;;;;-1:-1:-1;8084:29:0;;;;-1:-1:-1;;;;;8084:29:0;;;11333:26;;;;;;;;;;-1:-1:-1;11333:26:0;;;;;;;;;;;10830:125;;;;;;;;;;-1:-1:-1;10830:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;10919:28:0;10895:4;10919:28;;;:19;:28;;;;;;;;;10830:125;8294:26;;;;;;;;;;-1:-1:-1;8294:26:0;;;;;;;;;;;4303:127;;;;;;;;;;-1:-1:-1;4303:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;4404:18:0;4377:7;4404:18;;;;;;;;;;;;4303:127;3056:148;;;;;;;;;;;;;:::i;:::-;;11017:254;;;;;;;;;;-1:-1:-1;11017:254:0;;;;;:::i;:::-;;:::i;11401:267::-;;;;;;;;;;;;;:::i;2842:79::-;;;;;;;;;;-1:-1:-1;2907:6:0;;-1:-1:-1;;;;;2907:6:0;2842:79;;3975:104;;;;;;;;;;;;;:::i;5761:413::-;;;;;;;;;;-1:-1:-1;5761:413:0;;;;;:::i;:::-;;:::i;4438:175::-;;;;;;;;;;-1:-1:-1;4438:175:0;;;;;:::i;:::-;;:::i;8184:27::-;;;;;;;;;;-1:-1:-1;8184:27:0;;;;-1:-1:-1;;;;;8184:27:0;;;11366:26;;;;;;;;;;;;;;;;10637:185;;;;;;;;;;-1:-1:-1;10637:185:0;;;;;:::i;:::-;;:::i;4621:151::-;;;;;;;;;;-1:-1:-1;4621:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4737:18:0;;;4710:7;4737:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4621:151;8220:34;;;;;;;;;;;;;;;;3212:244;;;;;;;;;;-1:-1:-1;3212:244:0;;;;;:::i;:::-;;:::i;10329:300::-;;;;;;;;;;-1:-1:-1;10329:300:0;;;;;:::i;:::-;;:::i;3867:100::-;3921:13;3954:5;3947:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3867:100;:::o;4780:169::-;4863:4;4880:39;2245:10;4903:7;4912:6;4880:8;:39::i;:::-;-1:-1:-1;4937:4:0;4780:169;;;;;:::o;4957:573::-;-1:-1:-1;;;;;5141:19:0;;5097:4;5141:19;;;:11;:19;;;;;;;;2245:10;5141:33;;;;;;;;-1:-1:-1;;5189:37:0;;5185:265;;5271:6;5251:16;:26;;5243:79;;;;-1:-1:-1;;;5243:79:0;;4230:2:1;5243:79:0;;;4212:21:1;4269:2;4249:18;;;4242:30;4308:34;4288:18;;;4281:62;-1:-1:-1;;;4359:18:1;;;4352:38;4407:19;;5243:79:0;;;;;;;;;5366:57;5375:6;2245:10;5416:6;5397:16;:25;5366:8;:57::i;:::-;5462:36;5472:6;5480:9;5491:6;5462:9;:36::i;:::-;-1:-1:-1;5518:4:0;;4957:573;-1:-1:-1;;;;4957:573:0:o;5538:215::-;2245:10;5626:4;5675:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5675:34:0;;;;;;;;;;5626:4;;5643:80;;5666:7;;5675:47;;5712:10;;5675:47;:::i;:::-;5643:8;:80::i;3056:148::-;2969:6;;-1:-1:-1;;;;;2969:6:0;2245:10;2969:22;2961:67;;;;-1:-1:-1;;;2961:67:0;;;;;;;:::i;:::-;3147:6:::1;::::0;3126:40:::1;::::0;3163:1:::1;::::0;-1:-1:-1;;;;;3147:6:0::1;::::0;3126:40:::1;::::0;3163:1;;3126:40:::1;3177:6;:19:::0;;-1:-1:-1;;;;;;3177:19:0::1;::::0;;3056:148::o;11017:254::-;2969:6;;-1:-1:-1;;;;;2969:6:0;2245:10;2969:22;2961:67;;;;-1:-1:-1;;;2961:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11103:26:0;::::1;11095:82;;;::::0;-1:-1:-1;;;11095:82:0;;5262:2:1;11095:82:0::1;::::0;::::1;5244:21:1::0;5301:2;5281:18;;;5274:30;5340:34;5320:18;;;5313:62;-1:-1:-1;;;5391:18:1;;;5384:41;5442:19;;11095:82:0::1;5060:407:1::0;11095:82:0::1;11188:11;:26:::0;;-1:-1:-1;;;;;;11188:26:0::1;-1:-1:-1::0;;;;;11188:26:0;::::1;::::0;;::::1;::::0;;;11232:31:::1;::::0;1386:51:1;;;11232:31:0::1;::::0;1374:2:1;1359:18;11232:31:0::1;;;;;;;11017:254:::0;:::o;11401:267::-;2969:6;;-1:-1:-1;;;;;2969:6:0;2245:10;2969:22;2961:67;;;;-1:-1:-1;;;2961:67:0;;;;;;;:::i;:::-;11464:14:::1;::::0;;;::::1;;;11463:15;11455:56;;;::::0;-1:-1:-1;;;11455:56:0;;5674:2:1;11455:56:0::1;::::0;::::1;5656:21:1::0;5713:2;5693:18;;;5686:30;5752;5732:18;;;5725:58;5800:18;;11455:56:0::1;5472:352:1::0;11455:56:0::1;11522:14;:21:::0;;11554:18;-1:-1:-1;;11554:18:0;;;;;;;;11597:15:::1;11583:11;:29:::0;11630:30:::1;::::0;11522:21;11645:14;;::::1;11522:21;11645:14;1188::1::0;1181:22;1163:41;;11630:30:0::1;::::0;1151:2:1;1136:18;11630:30:0::1;;;;;;;11401:267::o:0;3975:104::-;4031:13;4064:7;4057:14;;;;;:::i;5761:413::-;2245:10;5854:4;5898:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5898:34:0;;;;;;;;;;5951:35;;;;5943:85;;;;-1:-1:-1;;;5943:85:0;;6031:2:1;5943:85:0;;;6013:21:1;6070:2;6050:18;;;6043:30;6109:34;6089:18;;;6082:62;-1:-1:-1;;;6160:18:1;;;6153:35;6205:19;;5943:85:0;5829:401:1;5943:85:0;6064:67;2245:10;6087:7;6115:15;6096:16;:34;6064:8;:67::i;:::-;-1:-1:-1;6162:4:0;;5761:413;-1:-1:-1;;;5761:413:0:o;4438:175::-;4524:4;4541:42;2245:10;4565:9;4576:6;4541:9;:42::i;10637:185::-;2969:6;;-1:-1:-1;;;;;2969:6:0;2245:10;2969:22;2961:67;;;;-1:-1:-1;;;2961:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10723:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;10723:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;10780:34;;1163:41:1;;;10780:34:0::1;::::0;1136:18:1;10780:34:0::1;;;;;;;10637:185:::0;;:::o;3212:244::-;2969:6;;-1:-1:-1;;;;;2969:6:0;2245:10;2969:22;2961:67;;;;-1:-1:-1;;;2961:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3301:22:0;::::1;3293:73;;;::::0;-1:-1:-1;;;3293:73:0;;6437:2:1;3293:73:0::1;::::0;::::1;6419:21:1::0;6476:2;6456:18;;;6449:30;6515:34;6495:18;;;6488:62;-1:-1:-1;;;6566:18:1;;;6559:36;6612:19;;3293:73:0::1;6235:402:1::0;3293:73:0::1;3403:6;::::0;3382:38:::1;::::0;-1:-1:-1;;;;;3382:38:0;;::::1;::::0;3403:6:::1;::::0;3382:38:::1;::::0;3403:6:::1;::::0;3382:38:::1;3431:6;:17:::0;;-1:-1:-1;;;;;;3431:17:0::1;-1:-1:-1::0;;;;;3431:17:0;;;::::1;::::0;;;::::1;::::0;;3212:244::o;10329:300::-;2969:6;;-1:-1:-1;;;;;2969:6:0;2245:10;2969:22;2961:67;;;;-1:-1:-1;;;2961:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10404:21:0;::::1;10400:127;;10442:52;10450:10;10472:21;10442:29;:52::i;:::-;;10329:300:::0;:::o;10400:127::-:1;10582:38;::::0;-1:-1:-1;;;10582:38:0;;10614:4:::1;10582:38;::::0;::::1;1386:51:1::0;-1:-1:-1;;;;;10547:22:0;::::1;::::0;::::1;::::0;10570:10:::1;::::0;10547:22;;10582:23:::1;::::0;1359:18:1;;10582:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10547:74;::::0;-1:-1:-1;;;;;;10547:74:0::1;::::0;;;;;;-1:-1:-1;;;;;7023:32:1;;;10547:74:0::1;::::0;::::1;7005:51:1::0;7072:18;;;7065:34;6978:18;;10547:74:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3039:1::-;10329:300:::0;:::o;7568:380::-;-1:-1:-1;;;;;7704:19:0;;7696:68;;;;-1:-1:-1;;;7696:68:0;;7562:2:1;7696:68:0;;;7544:21:1;7601:2;7581:18;;;7574:30;7640:34;7620:18;;;7613:62;-1:-1:-1;;;7691:18:1;;;7684:34;7735:19;;7696:68:0;7360:400:1;7696:68:0;-1:-1:-1;;;;;7783:21:0;;7775:68;;;;-1:-1:-1;;;7775:68:0;;7967:2:1;7775:68:0;;;7949:21:1;8006:2;7986:18;;;7979:30;8045:34;8025:18;;;8018:62;-1:-1:-1;;;8096:18:1;;;8089:32;8138:19;;7775:68:0;7765:398:1;7775:68:0;-1:-1:-1;;;;;7856:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7908:32;;1594:25:1;;;7908:32:0;;1567:18:1;7908:32:0;;;;;;;7568:380;;;:::o;11676:1990::-;-1:-1:-1;;;;;11773:18:0;;11765:65;;;;-1:-1:-1;;;11765:65:0;;8370:2:1;11765:65:0;;;8352:21:1;8409:2;8389:18;;;8382:30;8448:34;8428:18;;;8421:62;-1:-1:-1;;;8499:18:1;;;8492:32;8541:19;;11765:65:0;8168:398:1;11765:65:0;-1:-1:-1;;;;;11849:16:0;;11841:61;;;;-1:-1:-1;;;11841:61:0;;8773:2:1;11841:61:0;;;8755:21:1;;;8792:18;;;8785:30;8851:34;8831:18;;;8824:62;8903:18;;11841:61:0;8571:356:1;11841:61:0;11921:14;;;;;;;;:43;;-1:-1:-1;;;;;;11939:25:0;;;;;;:19;:25;;;;;;;;11921:43;:70;;;-1:-1:-1;;;;;;11968:23:0;;;;;;:19;:23;;;;;;;;11921:70;11913:111;;;;-1:-1:-1;;;11913:111:0;;9134:2:1;11913:111:0;;;9116:21:1;9173:2;9153:18;;;9146:30;9212;9192:18;;;9185:58;9260:18;;11913:111:0;8932:352:1;11913:111:0;12048:6;12058:1;12048:11;12044:93;;12076:28;12092:4;12098:2;12102:1;12076:15;:28::i;:::-;11676:1990;;;:::o;12044:93::-;12192:4;12143:28;4404:18;;;;;;;;;;;12250;;12226:42;;;;;;;12285:33;;-1:-1:-1;12310:8:0;;;;12309:9;12285:33;:69;;;;-1:-1:-1;12341:13:0;;-1:-1:-1;;;;;12335:19:0;;;12341:13;;12335:19;12285:69;:112;;;;-1:-1:-1;;;;;;12372:25:0;;;;;;:19;:25;;;;;;;;12371:26;12285:112;:140;;;;-1:-1:-1;12414:11:0;;;;;;;12285:140;12281:289;;;12452:8;:15;;-1:-1:-1;;12452:15:0;12463:4;12452:15;;;12484:36;12499:20;12484:14;:36::i;:::-;12542:8;:16;;-1:-1:-1;;12542:16:0;;;12281:289;-1:-1:-1;;;;;12643:25:0;;12582:18;12643:25;;;:19;:25;;;;;;12582:18;;12643:25;;;:52;;-1:-1:-1;;;;;;12672:23:0;;;;;;:19;:23;;;;;;;;12643:52;:64;;;-1:-1:-1;12699:8:0;;;;12643:64;12639:580;;;12737:1;12724:14;;12639:580;;;12768:13;;-1:-1:-1;;;;;12768:13:0;;;12760:21;;;;12756:463;;12820:11;;:24;;12834:10;12820:24;:::i;:::-;12802:15;:42;12798:153;;;-1:-1:-1;12877:1:0;12756:463;;12798:153;12932:3;12919:16;;12756:463;;;12978:13;;-1:-1:-1;;;;;12978:13:0;;;12972:19;;;;12968:251;;13030:11;;:24;;13044:10;13030:24;:::i;12968:251::-;13206:1;13193:14;;12968:251;13235:14;;13231:185;;13266:12;13305:5;13282:19;13291:10;13282:6;:19;:::i;:::-;13281:29;;;;:::i;:::-;13266:44;-1:-1:-1;13334:13:0;13266:44;13334:6;:13;:::i;:::-;13325:22;;13362:42;13378:4;13392;13399;13362:15;:42::i;:::-;13251:165;13231:185;13432:13;;13428:185;;13462:12;13500:5;13478:18;13487:9;13478:6;:18;:::i;:::-;13477:28;;;;:::i;:::-;13462:43;-1:-1:-1;13529:13:0;13462:43;13529:6;:13;:::i;:::-;13520:22;;13557:44;13573:4;13587:6;13596:4;13557:15;:44::i;:::-;13447:166;13428:185;13625:33;13641:4;13647:2;13651:6;13625:15;:33::i;:::-;11754:1912;;;;11676:1990;;;:::o;1840:285::-;1919:4;1968:6;1943:21;:31;;1935:73;;;;-1:-1:-1;;;1935:73:0;;10019:2:1;1935:73:0;;;10001:21:1;10058:2;10038:18;;;10031:30;10097:31;10077:18;;;10070:59;10146:18;;1935:73:0;9817:353:1;1935:73:0;2022:12;2040:9;-1:-1:-1;;;;;2040:14:0;2062:6;2040:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2021:52:0;;1840:285;-1:-1:-1;;;;;1840:285:0:o;6182:614::-;-1:-1:-1;;;;;6322:20:0;;6314:70;;;;-1:-1:-1;;;6314:70:0;;10587:2:1;6314:70:0;;;10569:21:1;10626:2;10606:18;;;10599:30;10665:34;10645:18;;;10638:62;-1:-1:-1;;;10716:18:1;;;10709:35;10761:19;;6314:70:0;10385:401:1;6314:70:0;-1:-1:-1;;;;;6403:23:0;;6395:71;;;;-1:-1:-1;;;6395:71:0;;10993:2:1;6395:71:0;;;10975:21:1;11032:2;11012:18;;;11005:30;11071:34;11051:18;;;11044:62;-1:-1:-1;;;11122:18:1;;;11115:33;11165:19;;6395:71:0;10791:399:1;6395:71:0;-1:-1:-1;;;;;6503:17:0;;6479:21;6503:17;;;;;;;;;;;6539:23;;;;6531:74;;;;-1:-1:-1;;;6531:74:0;;11397:2:1;6531:74:0;;;11379:21:1;11436:2;11416:18;;;11409:30;11475:34;11455:18;;;11448:62;-1:-1:-1;;;11526:18:1;;;11519:36;11572:19;;6531:74:0;11195:402:1;6531:74:0;-1:-1:-1;;;;;6641:17:0;;;:9;:17;;;;;;;;;;;6661:22;;;6641:42;;6705:20;;;;;;;;:30;;6677:6;;6641:9;6705:30;;6677:6;;6705:30;:::i;:::-;;;;;;;;6770:9;-1:-1:-1;;;;;6753:35:0;6762:6;-1:-1:-1;;;;;6753:35:0;;6781:6;6753:35;;;;1594:25:1;;1582:2;1567:18;;1448:177;6753:35:0;;;;;;;;6303:493;6182:614;;;:::o;13674:687::-;13821:16;;;13835:1;13821:16;;;;;;;;13763:21;;13738:22;;13821:16;13835:1;13821:16;;;;;;;;;;-1:-1:-1;13821:16:0;13797:40;;13866:4;13848;13853:1;13848:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13848:23:0;;;:7;;;;;;;;;;:23;;;;13892:15;;:22;;;-1:-1:-1;;;13892:22:0;;;;:15;;;;;:20;;:22;;;;;13848:7;;13892:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13882:4;13887:1;13882:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13882:32:0;;;:7;;;;;;;;;:32;13931:15;;:196;;-1:-1:-1;;;13931:196:0;;:15;;;:66;;:196;;14012:11;;13931:15;;14054:4;;14081;;14101:15;;13931:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13927:243;;14152:7;;13674:687;:::o;13927:243::-;14182:18;14203:38;14227:14;14203:21;:38;:::i;:::-;14262:11;;14182:59;;-1:-1:-1;14254:42:0;;-1:-1:-1;;;;;14262:11:0;14182:59;14254:30;:42::i;:::-;-1:-1:-1;14314:39:0;;;13281:25:1;;;13337:2;13322:18;;13315:34;;;14314:39:0;;13254:18:1;14314:39:0;;;;;;;13727:634;;;13674:687;:::o;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:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1630:456::-;1707:6;1715;1723;1776:2;1764:9;1755:7;1751:23;1747:32;1744:52;;;1792:1;1789;1782:12;1744:52;1831:9;1818:23;1850:31;1875:5;1850:31;:::i;:::-;1900:5;-1:-1:-1;1957:2:1;1942:18;;1929:32;1970:33;1929:32;1970:33;:::i;:::-;1630:456;;2022:7;;-1:-1:-1;;;2076:2:1;2061:18;;;;2048:32;;1630:456::o;2488:247::-;2547:6;2600:2;2588:9;2579:7;2575:23;2571:32;2568:52;;;2616:1;2613;2606:12;2568:52;2655:9;2642:23;2674:31;2699:5;2674:31;:::i;:::-;2724:5;2488:247;-1:-1:-1;;;2488:247:1:o;2740:118::-;2826:5;2819:13;2812:21;2805:5;2802:32;2792:60;;2848:1;2845;2838:12;2863:382;2928:6;2936;2989:2;2977:9;2968:7;2964:23;2960:32;2957:52;;;3005:1;3002;2995:12;2957:52;3044:9;3031:23;3063:31;3088:5;3063:31;:::i;:::-;3113:5;-1:-1:-1;3170:2:1;3155:18;;3142:32;3183:30;3142:32;3183:30;:::i;:::-;3232:7;3222:17;;;2863:382;;;;;:::o;3250:388::-;3318:6;3326;3379:2;3367:9;3358:7;3354:23;3350:32;3347:52;;;3395:1;3392;3385:12;3347:52;3434:9;3421:23;3453:31;3478:5;3453:31;:::i;:::-;3503:5;-1:-1:-1;3560:2:1;3545:18;;3532:32;3573:33;3532:32;3573:33;:::i;3643:380::-;3722:1;3718:12;;;;3765;;;3786:61;;3840:4;3832:6;3828:17;3818:27;;3786:61;3893:2;3885:6;3882:14;3862:18;3859:38;3856:161;;3939:10;3934:3;3930:20;3927:1;3920:31;3974:4;3971:1;3964:15;4002:4;3999:1;3992:15;3856:161;;3643:380;;;:::o;4437:127::-;4498:10;4493:3;4489:20;4486:1;4479:31;4529:4;4526:1;4519:15;4553:4;4550:1;4543:15;4569:125;4634:9;;;4655:10;;;4652:36;;;4668:18;;:::i;4699:356::-;4901:2;4883:21;;;4920:18;;;4913:30;4979:34;4974:2;4959:18;;4952:62;5046:2;5031:18;;4699:356::o;6642:184::-;6712:6;6765:2;6753:9;6744:7;6740:23;6736:32;6733:52;;;6781:1;6778;6771:12;6733:52;-1:-1:-1;6804:16:1;;6642:184;-1:-1:-1;6642:184:1:o;7110:245::-;7177:6;7230:2;7218:9;7209:7;7205:23;7201:32;7198:52;;;7246:1;7243;7236:12;7198:52;7278:9;7272:16;7297:28;7319:5;7297:28;:::i;9289:168::-;9362:9;;;9393;;9410:15;;;9404:22;;9390:37;9380:71;;9431:18;;:::i;9462:217::-;9502:1;9528;9518:132;;9572:10;9567:3;9563:20;9560:1;9553:31;9607:4;9604:1;9597:15;9635:4;9632:1;9625:15;9518:132;-1:-1:-1;9664:9:1;;9462:217::o;9684:128::-;9751:9;;;9772:11;;;9769:37;;;9786:18;;:::i;11734:127::-;11795:10;11790:3;11786:20;11783:1;11776:31;11826:4;11823:1;11816:15;11850:4;11847:1;11840:15;11866:251;11936:6;11989:2;11977:9;11968:7;11964:23;11960:32;11957:52;;;12005:1;12002;11995:12;11957:52;12037:9;12031:16;12056:31;12081:5;12056:31;:::i;12122:980::-;12384:4;12432:3;12421:9;12417:19;12463:6;12452:9;12445:25;12489:2;12527:6;12522:2;12511:9;12507:18;12500:34;12570:3;12565:2;12554:9;12550:18;12543:31;12594:6;12629;12623:13;12660:6;12652;12645:22;12698:3;12687:9;12683:19;12676:26;;12737:2;12729:6;12725:15;12711:29;;12758:1;12768:195;12782:6;12779:1;12776:13;12768:195;;;12847:13;;-1:-1:-1;;;;;12843:39:1;12831:52;;12938:15;;;;12903:12;;;;12879:1;12797:9;12768:195;;;-1:-1:-1;;;;;;;13019:32:1;;;;13014:2;12999:18;;12992:60;-1:-1:-1;;;13083:3:1;13068:19;13061:35;12980:3;12122:980;-1:-1:-1;;;12122:980:1:o

Swarm Source

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