ETH Price: $3,271.14 (+3.66%)
 

Overview

Max Total Supply

100,000,000,000 TED

Holders

165

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 TED

Value
$0.00
0xce2e752c3b7942b485820c3781132d2f2852a2dd
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:
TED

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-16
*/

// T.ME/TEDTHETOKEN

// SPDX-License-Identifier: MIT

pragma solidity 0.8.25;

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

contract TED is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExile;
    mapping (address => bool) public marketPair;
    mapping (uint256 => uint256) private perBuyCount;
    address payable private _taxWallet;
    uint256 private firstBlock = 0;

    uint256 private _initialBuyTax=250;
    uint256 private _initialSellTax=250;
    uint256 private _finalBuyTax=3;
    uint256 private _finalSellTax=3;

    uint256 private _reduceBuyTaxAt=100;

    uint256 private _reduceSellTaxAt=100;
    uint256 private _preventSwapBefore=35;
    uint256 private _buyCount=0;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000000 * 10**_decimals;
    string private constant _name = unicode"TED";
    string private constant _symbol = unicode"TED";
    uint256 public _maxTxAmount =   1500000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1500000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 100000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1000000000 * 10**_decimals;


    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    uint256 private sellsPerBlock = 3;
    uint256 private buysFirstBlock = 85;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {

        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        isExile[owner()] = true;
        isExile[address(this)] = true;
        isExile[address(uniswapV2Pair)] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        marketPair[address(uniswapV2Pair)] = true;
        isExile[address(uniswapV2Pair)] = true;
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;

        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount> _reduceBuyTaxAt)? _finalBuyTax: _initialBuyTax).div(1000);

            if(block.number == firstBlock){
               require(perBuyCount[block.number] < buysFirstBlock, "Exceeds buys on the first block.");
               perBuyCount[block.number]++;
            }

            if (marketPair[from] && to != address(uniswapV2Router) && ! isExile[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if (!marketPair[to] && ! isExile[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(marketPair[to] && from!= address(this) ){
                taxAmount = amount.mul((_buyCount> _reduceSellTaxAt)? _finalSellTax: _initialSellTax).div(1000);
            }

	    if (!marketPair[from] && !marketPair[to] && from!= address(this) ) {
                taxAmount = 0;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < sellsPerBlock);
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }

            else if(!inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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
        );
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function rescueETH() external {
        require(_msgSender() == _taxWallet);
        payable(_taxWallet).transfer(address(this).balance);
    }

    function rescueTokens(address _tokenAddr, uint _amount) external {
        require(_msgSender() == _taxWallet);
        IERC20(_tokenAddr).transfer(_taxWallet, _amount);
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

60806040525f60075560fa60085560fa6009556003600a556003600b556064600c556064600d556023600e555f600f555f6010555f6011556009600a6100459190610644565b610053906359682f00610659565b6012556100626009600a610644565b610070906359682f00610659565b60135561007f6009600a610644565b61008d906305f5e100610659565b60145561009c6009600a610644565b6100aa90633b9aca00610659565b60155560036018556055601955601a805461ffff191690553480156100cd575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b0319163317905561012c6009600a610644565b61013b9064174876e800610659565b335f9081526001602081905260408220929092556003906101635f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556017549091168352912080549092161790556101c03390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101f76009600a610644565b6102069064174876e800610659565b60405190815260200160405180910390a3601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556102669030906102526009600a610644565b6102619064174876e800610659565b610426565b60165f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102da9190610670565b6001600160a01b031663c9c653963060165f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610339573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035d9190610670565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156103a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103cb9190610670565b601780546001600160a01b0319166001600160a01b0392831690811782555f908152600460209081526040808320805460ff199081166001908117909255945490951683526003909152902080549091169091179055610696565b6001600160a01b03831661048d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166104ee5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610484565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561059c57815f19048211156105825761058261054e565b8085161561058f57918102915b93841c9390800290610567565b509250929050565b5f826105b25750600161063e565b816105be57505f61063e565b81600181146105d457600281146105de576105fa565b600191505061063e565b60ff8411156105ef576105ef61054e565b50506001821b61063e565b5060208310610133831016604e8410600b841016171561061d575081810a61063e565b6106278383610562565b805f190482111561063a5761063a61054e565b0290505b92915050565b5f61065260ff8416836105a4565b9392505050565b808202811582820484141761063e5761063e61054e565b5f60208284031215610680575f80fd5b81516001600160a01b0381168114610652575f80fd5b61222b806106a35f395ff3fe608060405260043610610170575f3560e01c8063751039fc116100c657806395d89b411161007c578063dd62ed3e11610057578063dd62ed3e146103f9578063f2fde38b1461044a578063f5b3c3bf14610469575f80fd5b806395d89b411461017b578063a9059cbb146103c5578063bf474bed146103e4575f80fd5b80638a8c523c116100ac5780638a8c523c146103735780638da5cb5b146103875780638f9a55c0146103b0575f80fd5b8063751039fc1461034a5780637d1db4a51461035e575f80fd5b806323b872dd11610126578063573761981161010157806357376198146102d657806370a08231146102f5578063715018a614610336575f80fd5b806323b872dd1461024b578063313ce5671461026a57806349bd5a5e14610285575f80fd5b80630faee56f116101565780630faee56f146101fe57806318160ddd1461022157806320800a0014610235575f80fd5b806306fdde031461017b578063095ea7b3146101cf575f80fd5b3661017757005b5f80fd5b348015610186575f80fd5b50604080518082018252600381527f5445440000000000000000000000000000000000000000000000000000000000602082015290516101c69190611d7d565b60405180910390f35b3480156101da575f80fd5b506101ee6101e9366004611df1565b610497565b60405190151581526020016101c6565b348015610209575f80fd5b5061021360155481565b6040519081526020016101c6565b34801561022c575f80fd5b506102136104ad565b348015610240575f80fd5b506102496104ce565b005b348015610256575f80fd5b506101ee610265366004611e1b565b61054d565b348015610275575f80fd5b50604051600981526020016101c6565b348015610290575f80fd5b506017546102b19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c6565b3480156102e1575f80fd5b506102496102f0366004611df1565b6105c1565b348015610300575f80fd5b5061021361030f366004611e59565b73ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b348015610341575f80fd5b50610249610699565b348015610355575f80fd5b5061024961078b565b348015610369575f80fd5b5061021360125481565b34801561037e575f80fd5b50610249610896565b348015610392575f80fd5b505f5473ffffffffffffffffffffffffffffffffffffffff166102b1565b3480156103bb575f80fd5b5061021360135481565b3480156103d0575f80fd5b506101ee6103df366004611df1565b610be6565b3480156103ef575f80fd5b5061021360145481565b348015610404575f80fd5b50610213610413366004611e74565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260026020908152604080832093909416825291909152205490565b348015610455575f80fd5b50610249610464366004611e59565b610bf2565b348015610474575f80fd5b506101ee610483366004611e59565b60046020525f908152604090205460ff1681565b5f6104a3338484610da0565b5060015b92915050565b5f6104ba6009600a611ff6565b6104c99064174876e800612004565b905090565b60065473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610507575f80fd5b60065460405173ffffffffffffffffffffffffffffffffffffffff909116904780156108fc02915f818181858888f1935050505015801561054a573d5f803e3d5ffd5b50565b5f610559848484610f52565b6105b784336105b2856040518060600160405280602881526020016121ce6028913973ffffffffffffffffffffffffffffffffffffffff8a165f90815260026020908152604080832033845290915290205491906118d8565b610da0565b5060019392505050565b60065473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105fa575f80fd5b6006546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610670573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610694919061201b565b505050565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461071e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610715565b6108176009600a611ff6565b6108269064174876e800612004565b6012556108356009600a611ff6565b6108449064174876e800612004565b6013557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108746009600a611ff6565b6108839064174876e800612004565b60405190815260200160405180910390a1565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610715565b60175474010000000000000000000000000000000000000000900460ff161561099b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610715565b60165473ffffffffffffffffffffffffffffffffffffffff1663f305d71947306109e68173ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b5f80610a065f5473ffffffffffffffffffffffffffffffffffffffff1690565b60405160e088901b7fffffffff0000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a91573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ab6919061203a565b50506017546016546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b3906044016020604051808303815f875af1158015610b50573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b74919061201b565b50601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055601780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905543600755565b5f6104a3338484610f52565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610c72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610715565b73ffffffffffffffffffffffffffffffffffffffff8116610d15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610715565b5f805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8316610e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610715565b73ffffffffffffffffffffffffffffffffffffffff8216610ee5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610715565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610ff5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610715565b73ffffffffffffffffffffffffffffffffffffffff8216611098576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610715565b5f8111611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610715565b5f805473ffffffffffffffffffffffffffffffffffffffff85811691161480159061116c57505f5473ffffffffffffffffffffffffffffffffffffffff848116911614155b1561175a5761119e6103e8611198600c54600f541161118d57600854611191565b600a545b859061192a565b906119e5565b9050600754430361124257601954435f9081526005602052604090205410611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e6044820152606401610715565b435f90815260056020526040812080549161123c83612065565b91905055505b73ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff168015611291575060165473ffffffffffffffffffffffffffffffffffffffff848116911614155b80156112c2575073ffffffffffffffffffffffffffffffffffffffff83165f9081526003602052604090205460ff16155b156113e957601254821115611333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610715565b601354826113628573ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b61136c919061209c565b11156113d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610715565b600f8054905f6113e383612065565b91905055505b73ffffffffffffffffffffffffffffffffffffffff83165f9081526004602052604090205460ff16158015611443575073ffffffffffffffffffffffffffffffffffffffff83165f9081526003602052604090205460ff16155b156114e957601354826114778573ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b611481919061209c565b11156114e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610715565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526004602052604090205460ff168015611533575073ffffffffffffffffffffffffffffffffffffffff84163014155b156115615761155e6103e8611198600d54600f541161155457600954611191565b600b54859061192a565b90505b73ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff161580156115bb575073ffffffffffffffffffffffffffffffffffffffff83165f9081526004602052604090205460ff16155b80156115dd575073ffffffffffffffffffffffffffffffffffffffff84163014155b156115e557505f5b305f90815260016020526040902054601a5460ff1615801561162b575073ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff165b801561163e5750601a54610100900460ff165b801561164b575060145481115b801561165a5750600e54600f54115b156116c85760115443111561166e575f6010555b6018546010541061167d575f80fd5b61169a6116958461169084601554611a26565b611a26565b611a3a565b4780156116aa576116aa47611c36565b60108054905f6116b983612065565b90915550504360115550611758565b601a5460ff161580156116ff575073ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff165b80156117125750601a54610100900460ff165b801561171f575060145481115b801561172e5750600e54600f54115b15611758576117466116958461169084601554611a26565b4780156117565761175647611c36565b505b505b80156117df57305f908152600160205260409020546117799082611c7e565b305f818152600160205260409081902092909255905173ffffffffffffffffffffffffffffffffffffffff8616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117d69085815260200190565b60405180910390a35b73ffffffffffffffffffffffffffffffffffffffff84165f9081526001602052604090205461180e9083611cf6565b73ffffffffffffffffffffffffffffffffffffffff85165f9081526001602052604090205561186b6118408383611cf6565b73ffffffffffffffffffffffffffffffffffffffff85165f9081526001602052604090205490611c7e565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118c18585611cf6565b60405190815260200160405180910390a350505050565b5f8184841115611915576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107159190611d7d565b505f61192184866120af565b95945050505050565b5f825f0361193957505f6104a7565b5f6119448385612004565b90508261195185836120c2565b146119de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610715565b9392505050565b5f6119de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d37565b5f818311611a3457826119de565b50919050565b601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611a9857611a986120fa565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152601654604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611b15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b399190612127565b81600181518110611b4c57611b4c6120fa565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152601654611b7f9130911684610da0565b6016546040517f791ac94700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063791ac94790611bdd9085905f90869030904290600401612142565b5f604051808303815f87803b158015611bf4575f80fd5b505af1158015611c06573d5f803e3d5ffd5b5050601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905550505050565b60065460405173ffffffffffffffffffffffffffffffffffffffff9091169082156108fc029083905f818181858888f19350505050158015611c7a573d5f803e3d5ffd5b5050565b5f80611c8a838561209c565b9050838110156119de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610715565b5f6119de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118d8565b5f8183611d71576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107159190611d7d565b505f61192184866120c2565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461054a575f80fd5b5f8060408385031215611e02575f80fd5b8235611e0d81611dd0565b946020939093013593505050565b5f805f60608486031215611e2d575f80fd5b8335611e3881611dd0565b92506020840135611e4881611dd0565b929592945050506040919091013590565b5f60208284031215611e69575f80fd5b81356119de81611dd0565b5f8060408385031215611e85575f80fd5b8235611e9081611dd0565b91506020830135611ea081611dd0565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b600181815b80851115611f3157817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611f1757611f17611eab565b80851615611f2457918102915b93841c9390800290611edd565b509250929050565b5f82611f47575060016104a7565b81611f5357505f6104a7565b8160018114611f695760028114611f7357611f8f565b60019150506104a7565b60ff841115611f8457611f84611eab565b50506001821b6104a7565b5060208310610133831016604e8410600b8410161715611fb2575081810a6104a7565b611fbc8383611ed8565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611fee57611fee611eab565b029392505050565b5f6119de60ff841683611f39565b80820281158282048414176104a7576104a7611eab565b5f6020828403121561202b575f80fd5b815180151581146119de575f80fd5b5f805f6060848603121561204c575f80fd5b8351925060208401519150604084015190509250925092565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361209557612095611eab565b5060010190565b808201808211156104a7576104a7611eab565b818103818111156104a7576104a7611eab565b5f826120f5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215612137575f80fd5b81516119de81611dd0565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561219f57845173ffffffffffffffffffffffffffffffffffffffff168352938301939183019160010161216d565b505073ffffffffffffffffffffffffffffffffffffffff96909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207ef4e154d617de26569a711de1fdf712dfe57cf95c369505172b32ce37bb650364736f6c63430008190033

Deployed Bytecode

0x608060405260043610610170575f3560e01c8063751039fc116100c657806395d89b411161007c578063dd62ed3e11610057578063dd62ed3e146103f9578063f2fde38b1461044a578063f5b3c3bf14610469575f80fd5b806395d89b411461017b578063a9059cbb146103c5578063bf474bed146103e4575f80fd5b80638a8c523c116100ac5780638a8c523c146103735780638da5cb5b146103875780638f9a55c0146103b0575f80fd5b8063751039fc1461034a5780637d1db4a51461035e575f80fd5b806323b872dd11610126578063573761981161010157806357376198146102d657806370a08231146102f5578063715018a614610336575f80fd5b806323b872dd1461024b578063313ce5671461026a57806349bd5a5e14610285575f80fd5b80630faee56f116101565780630faee56f146101fe57806318160ddd1461022157806320800a0014610235575f80fd5b806306fdde031461017b578063095ea7b3146101cf575f80fd5b3661017757005b5f80fd5b348015610186575f80fd5b50604080518082018252600381527f5445440000000000000000000000000000000000000000000000000000000000602082015290516101c69190611d7d565b60405180910390f35b3480156101da575f80fd5b506101ee6101e9366004611df1565b610497565b60405190151581526020016101c6565b348015610209575f80fd5b5061021360155481565b6040519081526020016101c6565b34801561022c575f80fd5b506102136104ad565b348015610240575f80fd5b506102496104ce565b005b348015610256575f80fd5b506101ee610265366004611e1b565b61054d565b348015610275575f80fd5b50604051600981526020016101c6565b348015610290575f80fd5b506017546102b19073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c6565b3480156102e1575f80fd5b506102496102f0366004611df1565b6105c1565b348015610300575f80fd5b5061021361030f366004611e59565b73ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b348015610341575f80fd5b50610249610699565b348015610355575f80fd5b5061024961078b565b348015610369575f80fd5b5061021360125481565b34801561037e575f80fd5b50610249610896565b348015610392575f80fd5b505f5473ffffffffffffffffffffffffffffffffffffffff166102b1565b3480156103bb575f80fd5b5061021360135481565b3480156103d0575f80fd5b506101ee6103df366004611df1565b610be6565b3480156103ef575f80fd5b5061021360145481565b348015610404575f80fd5b50610213610413366004611e74565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260026020908152604080832093909416825291909152205490565b348015610455575f80fd5b50610249610464366004611e59565b610bf2565b348015610474575f80fd5b506101ee610483366004611e59565b60046020525f908152604090205460ff1681565b5f6104a3338484610da0565b5060015b92915050565b5f6104ba6009600a611ff6565b6104c99064174876e800612004565b905090565b60065473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610507575f80fd5b60065460405173ffffffffffffffffffffffffffffffffffffffff909116904780156108fc02915f818181858888f1935050505015801561054a573d5f803e3d5ffd5b50565b5f610559848484610f52565b6105b784336105b2856040518060600160405280602881526020016121ce6028913973ffffffffffffffffffffffffffffffffffffffff8a165f90815260026020908152604080832033845290915290205491906118d8565b610da0565b5060019392505050565b60065473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105fa575f80fd5b6006546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610670573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610694919061201b565b505050565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461071e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610715565b6108176009600a611ff6565b6108269064174876e800612004565b6012556108356009600a611ff6565b6108449064174876e800612004565b6013557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108746009600a611ff6565b6108839064174876e800612004565b60405190815260200160405180910390a1565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610715565b60175474010000000000000000000000000000000000000000900460ff161561099b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610715565b60165473ffffffffffffffffffffffffffffffffffffffff1663f305d71947306109e68173ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b5f80610a065f5473ffffffffffffffffffffffffffffffffffffffff1690565b60405160e088901b7fffffffff0000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a91573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ab6919061203a565b50506017546016546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248201529116915063095ea7b3906044016020604051808303815f875af1158015610b50573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b74919061201b565b50601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055601780547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905543600755565b5f6104a3338484610f52565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610c72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610715565b73ffffffffffffffffffffffffffffffffffffffff8116610d15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610715565b5f805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b73ffffffffffffffffffffffffffffffffffffffff8316610e42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610715565b73ffffffffffffffffffffffffffffffffffffffff8216610ee5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610715565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610ff5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610715565b73ffffffffffffffffffffffffffffffffffffffff8216611098576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610715565b5f8111611127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610715565b5f805473ffffffffffffffffffffffffffffffffffffffff85811691161480159061116c57505f5473ffffffffffffffffffffffffffffffffffffffff848116911614155b1561175a5761119e6103e8611198600c54600f541161118d57600854611191565b600a545b859061192a565b906119e5565b9050600754430361124257601954435f9081526005602052604090205410611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e6044820152606401610715565b435f90815260056020526040812080549161123c83612065565b91905055505b73ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff168015611291575060165473ffffffffffffffffffffffffffffffffffffffff848116911614155b80156112c2575073ffffffffffffffffffffffffffffffffffffffff83165f9081526003602052604090205460ff16155b156113e957601254821115611333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610715565b601354826113628573ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b61136c919061209c565b11156113d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610715565b600f8054905f6113e383612065565b91905055505b73ffffffffffffffffffffffffffffffffffffffff83165f9081526004602052604090205460ff16158015611443575073ffffffffffffffffffffffffffffffffffffffff83165f9081526003602052604090205460ff16155b156114e957601354826114778573ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b611481919061209c565b11156114e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610715565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526004602052604090205460ff168015611533575073ffffffffffffffffffffffffffffffffffffffff84163014155b156115615761155e6103e8611198600d54600f541161155457600954611191565b600b54859061192a565b90505b73ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff161580156115bb575073ffffffffffffffffffffffffffffffffffffffff83165f9081526004602052604090205460ff16155b80156115dd575073ffffffffffffffffffffffffffffffffffffffff84163014155b156115e557505f5b305f90815260016020526040902054601a5460ff1615801561162b575073ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff165b801561163e5750601a54610100900460ff165b801561164b575060145481115b801561165a5750600e54600f54115b156116c85760115443111561166e575f6010555b6018546010541061167d575f80fd5b61169a6116958461169084601554611a26565b611a26565b611a3a565b4780156116aa576116aa47611c36565b60108054905f6116b983612065565b90915550504360115550611758565b601a5460ff161580156116ff575073ffffffffffffffffffffffffffffffffffffffff84165f9081526004602052604090205460ff165b80156117125750601a54610100900460ff165b801561171f575060145481115b801561172e5750600e54600f54115b15611758576117466116958461169084601554611a26565b4780156117565761175647611c36565b505b505b80156117df57305f908152600160205260409020546117799082611c7e565b305f818152600160205260409081902092909255905173ffffffffffffffffffffffffffffffffffffffff8616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117d69085815260200190565b60405180910390a35b73ffffffffffffffffffffffffffffffffffffffff84165f9081526001602052604090205461180e9083611cf6565b73ffffffffffffffffffffffffffffffffffffffff85165f9081526001602052604090205561186b6118408383611cf6565b73ffffffffffffffffffffffffffffffffffffffff85165f9081526001602052604090205490611c7e565b73ffffffffffffffffffffffffffffffffffffffff8085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118c18585611cf6565b60405190815260200160405180910390a350505050565b5f8184841115611915576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107159190611d7d565b505f61192184866120af565b95945050505050565b5f825f0361193957505f6104a7565b5f6119448385612004565b90508261195185836120c2565b146119de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152608401610715565b9392505050565b5f6119de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d37565b5f818311611a3457826119de565b50919050565b601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611a9857611a986120fa565b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152601654604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c46489260048083019391928290030181865afa158015611b15573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b399190612127565b81600181518110611b4c57611b4c6120fa565b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092010152601654611b7f9130911684610da0565b6016546040517f791ac94700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063791ac94790611bdd9085905f90869030904290600401612142565b5f604051808303815f87803b158015611bf4575f80fd5b505af1158015611c06573d5f803e3d5ffd5b5050601a80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905550505050565b60065460405173ffffffffffffffffffffffffffffffffffffffff9091169082156108fc029083905f818181858888f19350505050158015611c7a573d5f803e3d5ffd5b5050565b5f80611c8a838561209c565b9050838110156119de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610715565b5f6119de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118d8565b5f8183611d71576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107159190611d7d565b505f61192184866120c2565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461054a575f80fd5b5f8060408385031215611e02575f80fd5b8235611e0d81611dd0565b946020939093013593505050565b5f805f60608486031215611e2d575f80fd5b8335611e3881611dd0565b92506020840135611e4881611dd0565b929592945050506040919091013590565b5f60208284031215611e69575f80fd5b81356119de81611dd0565b5f8060408385031215611e85575f80fd5b8235611e9081611dd0565b91506020830135611ea081611dd0565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b600181815b80851115611f3157817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611f1757611f17611eab565b80851615611f2457918102915b93841c9390800290611edd565b509250929050565b5f82611f47575060016104a7565b81611f5357505f6104a7565b8160018114611f695760028114611f7357611f8f565b60019150506104a7565b60ff841115611f8457611f84611eab565b50506001821b6104a7565b5060208310610133831016604e8410600b8410161715611fb2575081810a6104a7565b611fbc8383611ed8565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611fee57611fee611eab565b029392505050565b5f6119de60ff841683611f39565b80820281158282048414176104a7576104a7611eab565b5f6020828403121561202b575f80fd5b815180151581146119de575f80fd5b5f805f6060848603121561204c575f80fd5b8351925060208401519150604084015190509250925092565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361209557612095611eab565b5060010190565b808201808211156104a7576104a7611eab565b818103818111156104a7576104a7611eab565b5f826120f5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60208284031215612137575f80fd5b81516119de81611dd0565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561219f57845173ffffffffffffffffffffffffffffffffffffffff168352938301939183019160010161216d565b505073ffffffffffffffffffffffffffffffffffffffff96909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207ef4e154d617de26569a711de1fdf712dfe57cf95c369505172b32ce37bb650364736f6c63430008190033

Deployed Bytecode Sourcemap

3746:8822:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6188:83;;;;;;;;;;-1:-1:-1;6258:5:0;;;;;;;;;;;;;;;;6188:83;;;;6258:5;6188:83;:::i;:::-;;;;;;;;7021:161;;;;;;;;;;-1:-1:-1;7021:161:0;;;;;:::i;:::-;;:::i;:::-;;;1140:14:1;;1133:22;1115:41;;1103:2;1088:18;7021:161:0;975:187:1;5005:54:0;;;;;;;;;;;;;;;;;;;1313:25:1;;;1301:2;1286:18;5005:54:0;1167:177:1;6465:95:0;;;;;;;;;;;;;:::i;11593:146::-;;;;;;;;;;;;;:::i;:::-;;7190:313;;;;;;;;;;-1:-1:-1;7190:313:0;;;;;:::i;:::-;;:::i;6374:83::-;;;;;;;;;;-1:-1:-1;6374:83:0;;4627:1;1952:36:1;;1940:2;1925:18;6374:83:0;1810:184:1;5119:28:0;;;;;;;;;;-1:-1:-1;5119:28:0;;;;;;;;;;;2175:42:1;2163:55;;;2145:74;;2133:2;2118:18;5119:28:0;1999:226:1;11747:178:0;;;;;;;;;;-1:-1:-1;11747:178:0;;;;;:::i;:::-;;:::i;6568:119::-;;;;;;;;;;-1:-1:-1;6568:119:0;;;;;:::i;:::-;6661:18;;6634:7;6661:18;;;:9;:18;;;;;;;6568:119;2577:148;;;;;;;;;;;;;:::i;11933:159::-;;;;;;;;;;;;;:::i;4809:58::-;;;;;;;;;;;;;;;;12100:428;;;;;;;;;;;;;:::i;2363:79::-;;;;;;;;;;-1:-1:-1;2401:7:0;2428:6;;;2363:79;;4874:58;;;;;;;;;;;;;;;;6695:167;;;;;;;;;;-1:-1:-1;6695:167:0;;;;;:::i;:::-;;:::i;4939:59::-;;;;;;;;;;;;;;;;6870:143;;;;;;;;;;-1:-1:-1;6870:143:0;;;;;:::i;:::-;6978:18;;;;6951:7;6978:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6870:143;2733:244;;;;;;;;;;-1:-1:-1;2733:244:0;;;;;:::i;:::-;;:::i;4004:43::-;;;;;;;;;;-1:-1:-1;4004:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7021:161;7096:4;7113:39;198:10;7136:7;7145:6;7113:8;:39::i;:::-;-1:-1:-1;7170:4:0;7021:161;;;;;:::o;6465:95::-;6518:7;4685:13;4627:1;4685:2;:13;:::i;:::-;4670:28;;:12;:28;:::i;:::-;6538:14;;6465:95;:::o;11593:146::-;11658:10;;;;198;11642:26;;;11634:35;;;;;;11688:10;;11680:51;;11688:10;;;;;11709:21;11680:51;;;;;11688:10;11680:51;11688:10;11680:51;11709:21;11688:10;11680:51;;;;;;;;;;;;;;;;;;;;;11593:146::o;7190:313::-;7288:4;7305:36;7315:6;7323:9;7334:6;7305:9;:36::i;:::-;7352:121;7361:6;198:10;7383:89;7421:6;7383:89;;;;;;;;;;;;;;;;;:19;;;;;;;:11;:19;;;;;;;;198:10;7383:33;;;;;;;;;;:37;:89::i;:::-;7352:8;:121::i;:::-;-1:-1:-1;7491:4:0;7190:313;;;;;:::o;11747:178::-;11847:10;;;;198;11831:26;;;11823:35;;;;;;11897:10;;11869:48;;;;;:27;11897:10;;;11869:48;;;4916:74:1;5006:18;;;4999:34;;;11869:27:0;;;;;;4889:18:1;;11869:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11747:178;;:::o;2577:148::-;2490:6;;:22;:6;198:10;2490:22;2482:67;;;;;;;5528:2:1;2482:67:0;;;5510:21:1;;;5547:18;;;5540:30;5606:34;5586:18;;;5579:62;5658:18;;2482:67:0;;;;;;;;;2684:1:::1;2668:6:::0;;2647:40:::1;::::0;::::1;2668:6:::0;;::::1;::::0;2647:40:::1;::::0;2684:1;;2647:40:::1;2715:1;2698:19:::0;;;::::1;::::0;;2577:148::o;11933:159::-;2490:6;;:22;:6;198:10;2490:22;2482:67;;;;;;;5528:2:1;2482:67:0;;;5510:21:1;;;5547:18;;;5540:30;5606:34;5586:18;;;5579:62;5658:18;;2482:67:0;5326:356:1;2482:67:0;4685:13:::1;4627:1;4685:2;:13;:::i;:::-;4670:28;::::0;:12:::1;:28;:::i;:::-;11986:12;:22:::0;4685:13:::1;4627:1;4685:2;:13;:::i;:::-;4670:28;::::0;:12:::1;:28;:::i;:::-;12019:14;:22:::0;12057:27:::1;4685:13;4627:1;4685:2;:13;:::i;:::-;4670:28;::::0;:12:::1;:28;:::i;:::-;12057:27;::::0;1313:25:1;;;1301:2;1286:18;12057:27:0::1;;;;;;;11933:159::o:0;12100:428::-;2490:6;;:22;:6;198:10;2490:22;2482:67;;;;;;;5528:2:1;2482:67:0;;;5510:21:1;;;5547:18;;;5540:30;5606:34;5586:18;;;5579:62;5658:18;;2482:67:0;5326:356:1;2482:67:0;12166:11:::1;::::0;;;::::1;;;12165:12;12157:47;;;::::0;::::1;::::0;;5889:2:1;12157:47:0::1;::::0;::::1;5871:21:1::0;5928:2;5908:18;;;5901:30;5967:25;5947:18;;;5940:53;6010:18;;12157:47:0::1;5687:347:1::0;12157:47:0::1;12215:15;::::0;::::1;;:31;12254:21;12285:4;12291:24;12285:4:::0;6661:18;;6634:7;6661:18;;;:9;:18;;;;;;;6568:119;12291:24:::1;12316:1;12318::::0;12320:7:::1;2401::::0;2428:6;;;;2363:79;12320:7:::1;12215:129;::::0;::::1;::::0;;;;;;;6352:42:1;6421:15;;;12215:129:0::1;::::0;::::1;6403:34:1::0;6453:18;;;6446:34;;;;6496:18;;;6489:34;;;;6539:18;;;6532:34;6603:15;;;6582:19;;;6575:44;12328:15:0::1;6635:19:1::0;;;6628:35;6314:19;;12215:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12362:13:0::1;::::0;12393:15:::1;::::0;12355:71:::1;::::0;;;;12362:13:::1;12393:15:::0;;::::1;12355:71;::::0;::::1;4916:74:1::0;12411:14:0::1;5006:18:1::0;;;4999:34;12362:13:0;::::1;::::0;-1:-1:-1;12355:29:0::1;::::0;4889:18:1;;12355:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12437:11:0::1;:18:::0;;;::::1;;;::::0;;12466:11:::1;:18:::0;;;::::1;::::0;::::1;::::0;;12508:12:::1;12495:10;:25:::0;12100:428::o;6695:167::-;6773:4;6790:42;198:10;6814:9;6825:6;6790:9;:42::i;2733:244::-;2490:6;;:22;:6;198:10;2490:22;2482:67;;;;;;;5528:2:1;2482:67:0;;;5510:21:1;;;5547:18;;;5540:30;5606:34;5586:18;;;5579:62;5658:18;;2482:67:0;5326:356:1;2482:67:0;2822:22:::1;::::0;::::1;2814:73;;;::::0;::::1;::::0;;7489:2:1;2814:73:0::1;::::0;::::1;7471:21:1::0;7528:2;7508:18;;;7501:30;7567:34;7547:18;;;7540:62;7638:8;7618:18;;;7611:36;7664:19;;2814:73:0::1;7287:402:1::0;2814:73:0::1;2924:6;::::0;;2903:38:::1;::::0;::::1;::::0;;::::1;::::0;2924:6;::::1;::::0;2903:38:::1;::::0;::::1;2952:6;:17:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;2733:244::o;7511:335::-;7604:19;;;7596:68;;;;;;;7896:2:1;7596:68:0;;;7878:21:1;7935:2;7915:18;;;7908:30;7974:34;7954:18;;;7947:62;8045:6;8025:18;;;8018:34;8069:19;;7596:68:0;7694:400:1;7596:68:0;7683:21;;;7675:68;;;;;;;8301:2:1;7675:68:0;;;8283:21:1;8340:2;8320:18;;;8313:30;8379:34;8359:18;;;8352:62;8450:4;8430:18;;;8423:32;8472:19;;7675:68:0;8099:398:1;7675:68:0;7754:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7806:32;;1313:25:1;;;7806:32:0;;1286:18:1;7806:32:0;;;;;;;7511:335;;;:::o;7854:3032::-;7942:18;;;7934:68;;;;;;;8704:2:1;7934:68:0;;;8686:21:1;8743:2;8723:18;;;8716:30;8782:34;8762:18;;;8755:62;8853:7;8833:18;;;8826:35;8878:19;;7934:68:0;8502:401:1;7934:68:0;8021:16;;;8013:64;;;;;;;9110:2:1;8013:64:0;;;9092:21:1;9149:2;9129:18;;;9122:30;9188:34;9168:18;;;9161:62;9259:5;9239:18;;;9232:33;9282:19;;8013:64:0;8908:399:1;8013:64:0;8105:1;8096:6;:10;8088:64;;;;;;;9514:2:1;8088:64:0;;;9496:21:1;9553:2;9533:18;;;9526:30;9592:34;9572:18;;;9565:62;9663:11;9643:18;;;9636:39;9692:19;;8088:64:0;9312:405:1;8088:64:0;8163:17;2428:6;;;8199:15;;;2428:6;;8199:15;;;;:32;;-1:-1:-1;2401:7:0;2428:6;;8218:13;;;2428:6;;8218:13;;8199:32;8195:2335;;;8260:80;8335:4;8260:70;8283:15;;8272:9;;:26;8271:58;;8315:14;;8271:58;;;8301:12;;8271:58;8260:6;;:10;:70::i;:::-;:74;;:80::i;:::-;8248:92;;8376:10;;8360:12;:26;8357:196;;8441:14;;8425:12;8413:25;;;;:11;:25;;;;;;:42;8405:87;;;;;;;9924:2:1;8405:87:0;;;9906:21:1;;;9943:18;;;9936:30;10002:34;9982:18;;;9975:62;10054:18;;8405:87:0;9722:356:1;8405:87:0;8522:12;8510:25;;;;:11;:25;;;;;:27;;;;;;:::i;:::-;;;;;;8357:196;8573:16;;;;;;;:10;:16;;;;;;;;:50;;;;-1:-1:-1;8607:15:0;;;8593:30;;;8607:15;;8593:30;;8573:50;:67;;;;-1:-1:-1;8629:11:0;;;;;;;:7;:11;;;;;;;;8627:13;8573:67;8569:297;;;8680:12;;8670:6;:22;;8662:60;;;;;;;10485:2:1;8662:60:0;;;10467:21:1;10524:2;10504:18;;;10497:30;10563:27;10543:18;;;10536:55;10608:18;;8662:60:0;10283:349:1;8662:60:0;8775:14;;8765:6;8749:13;8759:2;6661:18;;6634:7;6661:18;;;:9;:18;;;;;;;6568:119;8749:13;:22;;;;:::i;:::-;:40;;8741:79;;;;;;;10969:2:1;8741:79:0;;;10951:21:1;11008:2;10988:18;;;10981:30;11047:28;11027:18;;;11020:56;11093:18;;8741:79:0;10767:350:1;8741:79:0;8839:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8569:297;8887:14;;;;;;;:10;:14;;;;;;;;8886:15;:32;;;;-1:-1:-1;8907:11:0;;;;;;;:7;:11;;;;;;;;8905:13;8886:32;8882:152;;;8973:14;;8963:6;8947:13;8957:2;6661:18;;6634:7;6661:18;;;:9;:18;;;;;;;6568:119;8947:13;:22;;;;:::i;:::-;:40;;8939:79;;;;;;;10969:2:1;8939:79:0;;;10951:21:1;11008:2;10988:18;;;10981:30;11047:28;11027:18;;;11020:56;11093:18;;8939:79:0;10767:350:1;8939:79:0;9053:14;;;;;;;:10;:14;;;;;;;;:38;;;;-1:-1:-1;9071:20:0;;;9086:4;9071:20;;9053:38;9050:173;;;9124:83;9202:4;9124:73;9147:16;;9136:9;;:27;9135:61;;9181:15;;9135:61;;;9166:13;;9124:6;;:10;:73::i;:83::-;9112:95;;9050:173;9237:16;;;;;;;:10;:16;;;;;;;;9236:17;:36;;;;-1:-1:-1;9258:14:0;;;;;;;:10;:14;;;;;;;;9257:15;9236:36;:60;;;;-1:-1:-1;9276:20:0;;;9291:4;9276:20;;9236:60;9232:115;;;-1:-1:-1;9330:1:0;9232:115;9412:4;9363:28;6661:18;;;:9;:18;;;;;;9438:6;;;;9437:7;:25;;;;-1:-1:-1;9448:14:0;;;;;;;:10;:14;;;;;;;;9437:25;:40;;;;-1:-1:-1;9466:11:0;;;;;;;9437:40;:82;;;;;9502:17;;9481:20;:38;9437:82;:114;;;;;9533:18;;9523:9;;:28;9437:114;9433:1086;;;9591:13;;9576:12;:28;9572:90;;;9641:1;9629:9;:13;9572:90;9700:13;;9688:9;;:25;9680:34;;;;;;9733:67;9750:49;9754:6;9761:37;9765:20;9786:11;;9761:3;:37::i;:::-;9750:3;:49::i;:::-;9733:16;:67::i;:::-;9848:21;9891:22;;9888:105;;9938:35;9951:21;9938:12;:35::i;:::-;10011:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;10057:12:0;10041:13;:28;-1:-1:-1;9433:1086:0;;;10110:6;;;;10109:7;:25;;;;-1:-1:-1;10120:14:0;;;;;;;:10;:14;;;;;;;;10109:25;:40;;;;-1:-1:-1;10138:11:0;;;;;;;10109:40;:82;;;;;10174:17;;10153:20;:38;10109:82;:114;;;;;10205:18;;10195:9;;:28;10109:114;10106:413;;;10244:67;10261:49;10265:6;10272:37;10276:20;10297:11;;10272:3;:37::i;10244:67::-;10359:21;10402:22;;10399:105;;10449:35;10462:21;10449:12;:35::i;:::-;10225:294;10106:413;8233:2297;8195:2335;10545:11;;10542:161;;10613:4;10595:24;;;;:9;:24;;;;;;:39;;10624:9;10595:28;:39::i;:::-;10588:4;10570:24;;;;:9;:24;;;;;;;:64;;;;10652:39;;10570:24;10652:39;;;;;;;10681:9;1313:25:1;;1301:2;1286:18;;1167:177;10652:39:0;;;;;;;;10542:161;10729:15;;;;;;;:9;:15;;;;;;:27;;10749:6;10729:19;:27::i;:::-;10713:15;;;;;;;:9;:15;;;;;:43;10781:40;10799:21;:6;10810:9;10799:10;:21::i;:::-;10781:13;;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;10767:13;;;;;;;;:9;:13;;;;;:54;;;;10837:41;;;10856:21;:6;10867:9;10856:10;:21::i;:::-;10837:41;;1313:25:1;;;1301:2;1286:18;10837:41:0;;;;;;;7923:2963;7854:3032;;;:::o;1255:190::-;1341:7;1377:12;1369:6;;;;1361:29;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1401:9:0;1413:5;1417:1;1413;:5;:::i;:::-;1401:17;1255:190;-1:-1:-1;;;;;1255:190:0:o;1453:246::-;1511:7;1535:1;1540;1535:6;1531:47;;-1:-1:-1;1565:1:0;1558:8;;1531:47;1588:9;1600:5;1604:1;1600;:5;:::i;:::-;1588:17;-1:-1:-1;1633:1:0;1624:5;1628:1;1588:17;1624:5;:::i;:::-;:10;1616:56;;;;;;;11736:2:1;1616:56:0;;;11718:21:1;11775:2;11755:18;;;11748:30;11814:34;11794:18;;;11787:62;11885:3;11865:18;;;11858:31;11906:19;;1616:56:0;11534:397:1;1616:56:0;1690:1;1453:246;-1:-1:-1;;;1453:246:0:o;1707:132::-;1765:7;1792:39;1796:1;1799;1792:39;;;;;;;;;;;;;;;;;:3;:39::i;10896:98::-;10953:7;10980:1;10978;:3;10977:9;;10985:1;10977:9;;;-1:-1:-1;10983:1:0;10896:98;-1:-1:-1;10896:98:0:o;11002:483::-;5424:6;:13;;;;5433:4;5424:13;;;11104:16:::1;::::0;;11118:1:::1;11104:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11104:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11104:16:0::1;11080:40;;11149:4;11131;11136:1;11131:7;;;;;;;;:::i;:::-;:23;::::0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11175:15:::1;::::0;:22:::1;::::0;;;;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11131:7;;11175:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11165:4;11170:1;11165:7;;;;;;;;:::i;:::-;:32;::::0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11240:15:::1;::::0;11208:62:::1;::::0;11225:4:::1;::::0;11240:15:::1;11258:11:::0;11208:8:::1;:62::i;:::-;11281:15;::::0;:196:::1;::::0;;;;:15:::1;::::0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11362:11;;11281:15:::1;::::0;11404:4;;11431::::1;::::0;11451:15:::1;::::0;11281:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5460:6:0;:14;;;;;;-1:-1:-1;;;;11002:483:0:o;11493:92::-;11550:10;;:27;;:10;;;;;:27;;;;;11570:6;;11550:10;:27;:10;:27;11570:6;11550:10;:27;;;;;;;;;;;;;;;;;;;;;11493:92;:::o;924:179::-;982:7;;1014:5;1018:1;1014;:5;:::i;:::-;1002:17;;1043:1;1038;:6;;1030:46;;;;;;;13803:2:1;1030:46:0;;;13785:21:1;13842:2;13822:18;;;13815:30;13881:29;13861:18;;;13854:57;13928:18;;1030:46:0;13601:351:1;1111:136:0;1169:7;1196:43;1200:1;1203;1196:43;;;;;;;;;;;;;;;;;:3;:43::i;1847:189::-;1933:7;1968:12;1961:5;1953:28;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1992:9:0;2004:5;2008:1;2004;:5;:::i;14:477:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;482:2;412:66;407:2;399:6;395:15;391:88;380:9;376:104;372:113;364:121;;;14:477;;;;:::o;496:154::-;582:42;575:5;571:54;564:5;561:65;551:93;;640:1;637;630:12;655:315;723:6;731;784:2;772:9;763:7;759:23;755:32;752:52;;;800:1;797;790:12;752:52;839:9;826:23;858:31;883:5;858:31;:::i;:::-;908:5;960:2;945:18;;;;932:32;;-1:-1:-1;;;655:315:1:o;1349:456::-;1426:6;1434;1442;1495:2;1483:9;1474:7;1470:23;1466:32;1463:52;;;1511:1;1508;1501:12;1463:52;1550:9;1537:23;1569:31;1594:5;1569:31;:::i;:::-;1619:5;-1:-1:-1;1676:2:1;1661:18;;1648:32;1689:33;1648:32;1689:33;:::i;:::-;1349:456;;1741:7;;-1:-1:-1;;;1795:2:1;1780:18;;;;1767:32;;1349:456::o;2230:247::-;2289:6;2342:2;2330:9;2321:7;2317:23;2313:32;2310:52;;;2358:1;2355;2348:12;2310:52;2397:9;2384:23;2416:31;2441:5;2416:31;:::i;2482:388::-;2550:6;2558;2611:2;2599:9;2590:7;2586:23;2582:32;2579:52;;;2627:1;2624;2617:12;2579:52;2666:9;2653:23;2685:31;2710:5;2685:31;:::i;:::-;2735:5;-1:-1:-1;2792:2:1;2777:18;;2764:32;2805:33;2764:32;2805:33;:::i;:::-;2857:7;2847:17;;;2482:388;;;;;:::o;2875:184::-;2927:77;2924:1;2917:88;3024:4;3021:1;3014:15;3048:4;3045:1;3038:15;3064:476;3153:1;3190:5;3153:1;3204:330;3225:7;3215:8;3212:21;3204:330;;;3344:4;3276:66;3272:77;3266:4;3263:87;3260:113;;;3353:18;;:::i;:::-;3403:7;3393:8;3389:22;3386:55;;;3423:16;;;;3386:55;3502:22;;;;3462:15;;;;3204:330;;;3208:3;3064:476;;;;;:::o;3545:866::-;3594:5;3624:8;3614:80;;-1:-1:-1;3665:1:1;3679:5;;3614:80;3713:4;3703:76;;-1:-1:-1;3750:1:1;3764:5;;3703:76;3795:4;3813:1;3808:59;;;;3881:1;3876:130;;;;3788:218;;3808:59;3838:1;3829:10;;3852:5;;;3876:130;3913:3;3903:8;3900:17;3897:43;;;3920:18;;:::i;:::-;-1:-1:-1;;3976:1:1;3962:16;;3991:5;;3788:218;;4090:2;4080:8;4077:16;4071:3;4065:4;4062:13;4058:36;4052:2;4042:8;4039:16;4034:2;4028:4;4025:12;4021:35;4018:77;4015:159;;;-1:-1:-1;4127:19:1;;;4159:5;;4015:159;4206:34;4231:8;4225:4;4206:34;:::i;:::-;4336:6;4268:66;4264:79;4255:7;4252:92;4249:118;;;4347:18;;:::i;:::-;4385:20;;3545:866;-1:-1:-1;;;3545:866:1:o;4416:140::-;4474:5;4503:47;4544:4;4534:8;4530:19;4524:4;4503:47;:::i;4561:168::-;4634:9;;;4665;;4682:15;;;4676:22;;4662:37;4652:71;;4703:18;;:::i;5044:277::-;5111:6;5164:2;5152:9;5143:7;5139:23;5135:32;5132:52;;;5180:1;5177;5170:12;5132:52;5212:9;5206:16;5265:5;5258:13;5251:21;5244:5;5241:32;5231:60;;5287:1;5284;5277:12;6674:306;6762:6;6770;6778;6831:2;6819:9;6810:7;6806:23;6802:32;6799:52;;;6847:1;6844;6837:12;6799:52;6876:9;6870:16;6860:26;;6926:2;6915:9;6911:18;6905:25;6895:35;;6970:2;6959:9;6955:18;6949:25;6939:35;;6674:306;;;;;:::o;10083:195::-;10122:3;10153:66;10146:5;10143:77;10140:103;;10223:18;;:::i;:::-;-1:-1:-1;10270:1:1;10259:13;;10083:195::o;10637:125::-;10702:9;;;10723:10;;;10720:36;;;10736:18;;:::i;11122:128::-;11189:9;;;11210:11;;;11207:37;;;11224:18;;:::i;11255:274::-;11295:1;11321;11311:189;;11356:77;11353:1;11346:88;11457:4;11454:1;11447:15;11485:4;11482:1;11475:15;11311:189;-1:-1:-1;11514:9:1;;11255:274::o;12125:184::-;12177:77;12174:1;12167:88;12274:4;12271:1;12264:15;12298:4;12295:1;12288:15;12314:251;12384:6;12437:2;12425:9;12416:7;12412:23;12408:32;12405:52;;;12453:1;12450;12443:12;12405:52;12485:9;12479:16;12504:31;12529:5;12504:31;:::i;12570:1026::-;12832:4;12880:3;12869:9;12865:19;12911:6;12900:9;12893:25;12937:2;12975:6;12970:2;12959:9;12955:18;12948:34;13018:3;13013:2;13002:9;12998:18;12991:31;13042:6;13077;13071:13;13108:6;13100;13093:22;13146:3;13135:9;13131:19;13124:26;;13185:2;13177:6;13173:15;13159:29;;13206:1;13216:218;13230:6;13227:1;13224:13;13216:218;;;13295:13;;13310:42;13291:62;13279:75;;13409:15;;;;13374:12;;;;13252:1;13245:9;13216:218;;;-1:-1:-1;;13502:42:1;13490:55;;;;13485:2;13470:18;;13463:83;-1:-1:-1;;;13577:3:1;13562:19;13555:35;13451:3;12570:1026;-1:-1:-1;;;12570:1026:1:o

Swarm Source

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