ETH Price: $3,533.74 (+4.33%)

Token

Terra Ecosystem (Terra)
 

Overview

Max Total Supply

1,000,000 Terra

Holders

1,053

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 Terra

Value
$0.00
0xabde049274087ea0cd381ef6232843549cf1a95e
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:
Terra

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-12-02
*/

// SPDX-License-Identifier: MIT

/*
Transforming user perceptions of GPUs and unlocking their full potential to drive highly
efficient and effective revenue generation. Powered by $TERRA

TG: https://t.me/UseTerra
Twitter: https://twitter.com/use_Terra
Web: https:/useterra.network/

*/

pragma solidity 0.8.23;

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

}

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 Terra is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 30;
    uint256 private _initialSellTax = 35;
    uint256 private _finalBuyTax = 4;
    uint256 private _finalSellTax = 4;
    uint256 private _reduceBuyTaxAt = 3;
    uint256 private _reduceSellTaxAt = 3;
    uint256 private _preventSwapBefore = 20;
    uint256 private _transferTax = 0;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000 * 10**_decimals;
    string private constant _name = unicode"Terra Ecosystem";
    string private constant _symbol = unicode"Terra";
    uint256 public _maxTxAmount= (_tTotal * 2) / 100;
    uint256 public _maxWalletSize= (_tTotal * 2) / 100;
    uint256 public _taxSwapThreshold= (_tTotal * 35) / 10000;
    uint256 public _maxTaxSwap= (_tTotal * 6) / 100;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    uint256 private firstBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    event ClearToken(address TokenAddressCleared, uint256 Amount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () payable {
        _taxWallet = payable(_msgSender());

       _balances[address(this)] = _tTotal;
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0), address(this), _balances[address(this)]);
    }

    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()) {

            if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
                require(tradingOpen, "Trading not opened");
            }

            if(_buyCount == 0){
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
            }

            if(_buyCount > 0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
                _buyCount++;
                if(block.number == firstBlock){
                    require(_buyCount <= 27, "Exceeds buys on the first block.");
                }
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 5, "Only 5 sells per block!");

                swapTokensForEth(min(amount,min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }

                sellCount++;
                lastSellBlock =block.number;
            }
        }

        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 removeALLLimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeTransferTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

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

    function addLP() external  onlyOwner() {
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}
    
    function reduceFee(uint256 _newFee) external{
        require(_msgSender() == _taxWallet);
        require(_newFee <= _finalBuyTax && _newFee <= _finalSellTax);

        _finalBuyTax = _newFee;
        _finalSellTax = _newFee;
    }

    function clearStuckToken(address tokenAddress, uint256 tokens) external returns (bool success) {
        require(_msgSender() == _taxWallet);

        if(tokens == 0){
            tokens = IERC20(tokenAddress).balanceOf(address(this));
        }

        emit ClearToken(tokenAddress,tokens);
        return IERC20(tokenAddress).transfer(_taxWallet, tokens);
    }

    function manualSend() external {
        require(_msgSender() == _taxWallet);

        uint256 ethBalance= address(this).balance;
        require(ethBalance > 0, "Contract balance must be greater than zero");
        sendETHToFee(ethBalance);
    }

    function manualSwap() external {
        require(_msgSender() == _taxWallet);

        uint256 tokenBalance = balanceOf(address(this));
        if(tokenBalance > 0){
          swapTokensForEth(tokenBalance);
        }

        uint256 ethBalance = address(this).balance;
        if(ethBalance > 0){ sendETHToFee(ethBalance); }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","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":[],"name":"addLP","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeALLLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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"},{"stateMutability":"payable","type":"receive"}]

6080604052601e60055560236006556004600755600460085560036009556003600a556014600b555f600c555f600d5560646009600a6200004191906200068f565b6200005090620f4240620006a6565b6200005d906002620006a6565b620000699190620006c0565b600e5560646200007c6009600a6200068f565b6200008b90620f4240620006a6565b62000098906002620006a6565b620000a49190620006c0565b600f55612710620000b86009600a6200068f565b620000c790620f4240620006a6565b620000d4906023620006a6565b620000e09190620006c0565b6010556064620000f36009600a6200068f565b6200010290620f4240620006a6565b6200010f906006620006a6565b6200011b9190620006c0565b6011556013805461ffff60a81b191690555f60148190556015819055601681905580546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b031916331790556200019b6009600a6200068f565b620001aa90620f4240620006a6565b305f908152600160208190526040822092909255600390620001d35f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308082526003909452828120805486166001908117909155600454909216815291909120805490931617909155601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556200027f91906200026a6009600a6200068f565b6200027990620f4240620006a6565b62000455565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002f69190620006e0565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000356573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200037c9190620006e0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620003c7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003ed9190620006e0565b601380546001600160a01b0319166001600160a01b0392909216919091179055305f8181526001602090815260408083205490519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000708565b6001600160a01b038316620004bd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620005205760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004b4565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005d457815f1904821115620005b857620005b862000580565b80851615620005c657918102915b93841c939080029062000599565b509250929050565b5f82620005ec5750600162000689565b81620005fa57505f62000689565b81600181146200061357600281146200061e576200063e565b600191505062000689565b60ff84111562000632576200063262000580565b50506001821b62000689565b5060208310610133831016604e8410600b841016171562000663575081810a62000689565b6200066f838362000594565b805f190482111562000685576200068562000580565b0290505b92915050565b5f6200069f60ff841683620005dc565b9392505050565b808202811582820484141762000689576200068962000580565b5f82620006db57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620006f1575f80fd5b81516001600160a01b03811681146200069f575f80fd5b611a5380620007165f395ff3fe60806040526004361061013f575f3560e01c80637d1db4a5116100b3578063bf474bed1161006d578063bf474bed14610374578063c9567bf914610389578063dd62ed3e1461039d578063ec1f3f63146103e1578063f429389014610400578063faf3eea914610414575f80fd5b80637d1db4a5146102c45780638da5cb5b146102d95780638f9a55c0146102ff57806395d89b4114610314578063a9059cbb14610341578063bc37e1a314610360575f80fd5b806323b872dd1161010457806323b872dd1461020f578063313ce5671461022e57806351bc3c851461024957806370a082311461025d578063715018a61461029157806377b54bad146102a5575f80fd5b806306fdde031461014a578063095ea7b3146101935780630faee56f146101c2578063109daa99146101e557806318160ddd146101fb575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152600f81526e54657272612045636f73797374656d60881b60208201525b60405161018a9190611618565b60405180910390f35b34801561019e575f80fd5b506101b26101ad366004611678565b610428565b604051901515815260200161018a565b3480156101cd575f80fd5b506101d760115481565b60405190815260200161018a565b3480156101f0575f80fd5b506101f961043e565b005b348015610206575f80fd5b506101d76104ac565b34801561021a575f80fd5b506101b26102293660046116a2565b6104cb565b348015610239575f80fd5b506040516009815260200161018a565b348015610254575f80fd5b506101f9610532565b348015610268575f80fd5b506101d76102773660046116e0565b6001600160a01b03165f9081526001602052604090205490565b34801561029c575f80fd5b506101f9610583565b3480156102b0575f80fd5b506101b26102bf366004611678565b6105f4565b3480156102cf575f80fd5b506101d7600e5481565b3480156102e4575f80fd5b505f546040516001600160a01b03909116815260200161018a565b34801561030a575f80fd5b506101d7600f5481565b34801561031f575f80fd5b50604080518082019091526005815264546572726160d81b602082015261017d565b34801561034c575f80fd5b506101b261035b366004611678565b610744565b34801561036b575f80fd5b506101f9610750565b34801561037f575f80fd5b506101d760105481565b348015610394575f80fd5b506101f961084d565b3480156103a8575f80fd5b506101d76103b73660046116fb565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103ec575f80fd5b506101f96103fb366004611732565b610964565b34801561040b575f80fd5b506101f96109a9565b34801561041f575f80fd5b506101f9610a35565b5f610434338484610ade565b5060015b92915050565b5f546001600160a01b031633146104705760405162461bcd60e51b815260040161046790611749565b60405180910390fd5b5f600c8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6104b96009600a611872565b6104c690620f4240611880565b905090565b5f6104d7848484610c01565b6105288433610523856040518060600160405280602881526020016119f6602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061129b565b610ade565b5060019392505050565b6004546001600160a01b0316336001600160a01b031614610551575f80fd5b305f90815260016020526040902054801561056f5761056f816112d3565b47801561057f5761057f81611443565b5050565b5f546001600160a01b031633146105ac5760405162461bcd60e51b815260040161046790611749565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6004545f906001600160a01b0316336001600160a01b031614610615575f80fd5b815f03610685576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561065e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106829190611897565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a16004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820184905284169063a9059cbb906044016020604051808303815f875af1158015610719573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073d91906118ae565b9392505050565b5f610434338484610c01565b5f546001600160a01b031633146107795760405162461bcd60e51b815260040161046790611749565b6012546001600160a01b031663f305d71947306107aa816001600160a01b03165f9081526001602052604090205490565b5f806107bd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610823573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061084891906118cd565b505050565b5f546001600160a01b031633146108765760405162461bcd60e51b815260040161046790611749565b601354600160a01b900460ff16156108d05760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610467565b60135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af1158015610922573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094691906118ae565b506013805462ff00ff60a01b19166201000160a01b17905543601655565b6004546001600160a01b0316336001600160a01b031614610983575f80fd5b600754811115801561099757506008548111155b61099f575f80fd5b6007819055600855565b6004546001600160a01b0316336001600160a01b0316146109c8575f80fd5b4780610a295760405162461bcd60e51b815260206004820152602a60248201527f436f6e74726163742062616c616e6365206d7573742062652067726561746572604482015269207468616e207a65726f60b01b6064820152608401610467565b610a3281611443565b50565b5f546001600160a01b03163314610a5e5760405162461bcd60e51b815260040161046790611749565b610a6a6009600a611872565b610a7790620f4240611880565b600e55610a866009600a611872565b610a9390620f4240611880565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610ac36009600a611872565b610ad090620f4240611880565b6040519081526020016104a2565b6001600160a01b038316610b405760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610467565b6001600160a01b038216610ba15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610467565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c655760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610467565b6001600160a01b038216610cc75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610467565b5f8111610d285760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610467565b5f80546001600160a01b03858116911614801590610d5357505f546001600160a01b03848116911614155b1561115e576001600160a01b0384165f9081526003602052604090205460ff16158015610d9857506001600160a01b0383165f9081526003602052604090205460ff16155b15610deb57601354600160a01b900460ff16610deb5760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b6044820152606401610467565b600d545f03610e2357610e206064610e1a600954600d5411610e0f57600554610e13565b6007545b859061147a565b906114f8565b90505b600d5415610e4857610e456064610e1a600c548561147a90919063ffffffff16565b90505b6013546001600160a01b038581169116148015610e7357506012546001600160a01b03848116911614155b8015610e9757506001600160a01b0383165f9081526003602052604090205460ff16155b15610ff557600e54821115610eee5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610467565b600f5482610f10856001600160a01b03165f9081526001602052604090205490565b610f1a91906118f8565b1115610f685760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610467565b610f836064610e1a600954600d5411610e0f57600554610e13565b600d80549192505f610f948361190b565b91905055506016544303610ff557601b600d541115610ff55760405162461bcd60e51b815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e6044820152606401610467565b6013546001600160a01b03848116911614801561101b57506001600160a01b0384163014155b15611048576110456064610e1a600a54600d541161103b57600654610e13565b600854859061147a565b90505b305f90815260016020526040902054601354600160a81b900460ff1615801561107e57506013546001600160a01b038581169116145b80156110935750601354600160b01b900460ff165b80156110a0575060105481115b80156110af5750600b54600d54115b1561115c576015544311156110c3575f6014555b6005601454106111155760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920352073656c6c732070657220626c6f636b210000000000000000006044820152606401610467565b61113261112d8461112884601154611539565b611539565b6112d3565b4780156111425761114247611443565b60148054905f6111518361190b565b909155505043601555505b505b80156111d657305f9081526001602052604090205461117d908261154d565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111cd9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111f890836115ab565b6001600160a01b0385165f9081526001602052604090205561123b61121d83836115ab565b6001600160a01b0385165f908152600160205260409020549061154d565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61128485856115ab565b60405190815260200160405180910390a350505050565b5f81848411156112be5760405162461bcd60e51b81526004016104679190611618565b505f6112ca8486611923565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061131957611319611936565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611370573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611394919061194a565b816001815181106113a7576113a7611936565b6001600160a01b0392831660209182029290920101526012546113cd9130911684610ade565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906114059085905f90869030904290600401611965565b5f604051808303815f87803b15801561141c575f80fd5b505af115801561142e573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561057f573d5f803e3d5ffd5b5f825f0361148957505f610438565b5f6114948385611880565b9050826114a185836119d6565b1461073d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610467565b5f61073d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115ec565b5f818311611547578261073d565b50919050565b5f8061155983856118f8565b90508381101561073d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610467565b5f61073d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061129b565b5f818361160c5760405162461bcd60e51b81526004016104679190611618565b505f6112ca84866119d6565b5f602080835283518060208501525f5b8181101561164457858101830151858201604001528201611628565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a32575f80fd5b5f8060408385031215611689575f80fd5b823561169481611664565b946020939093013593505050565b5f805f606084860312156116b4575f80fd5b83356116bf81611664565b925060208401356116cf81611664565b929592945050506040919091013590565b5f602082840312156116f0575f80fd5b813561073d81611664565b5f806040838503121561170c575f80fd5b823561171781611664565b9150602083013561172781611664565b809150509250929050565b5f60208284031215611742575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117cc57815f19048211156117b2576117b261177e565b808516156117bf57918102915b93841c9390800290611797565b509250929050565b5f826117e257506001610438565b816117ee57505f610438565b8160018114611804576002811461180e5761182a565b6001915050610438565b60ff84111561181f5761181f61177e565b50506001821b610438565b5060208310610133831016604e8410600b841016171561184d575081810a610438565b6118578383611792565b805f190482111561186a5761186a61177e565b029392505050565b5f61073d60ff8416836117d4565b80820281158282048414176104385761043861177e565b5f602082840312156118a7575f80fd5b5051919050565b5f602082840312156118be575f80fd5b8151801515811461073d575f80fd5b5f805f606084860312156118df575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104385761043861177e565b5f6001820161191c5761191c61177e565b5060010190565b818103818111156104385761043861177e565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561195a575f80fd5b815161073d81611664565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119b55784516001600160a01b031683529383019391830191600101611990565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119f057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122059e45a7ad0b75706b1adc362bc4f62012e5e3bd30a239a5bd64f9a80715ed7e264736f6c63430008170033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c80637d1db4a5116100b3578063bf474bed1161006d578063bf474bed14610374578063c9567bf914610389578063dd62ed3e1461039d578063ec1f3f63146103e1578063f429389014610400578063faf3eea914610414575f80fd5b80637d1db4a5146102c45780638da5cb5b146102d95780638f9a55c0146102ff57806395d89b4114610314578063a9059cbb14610341578063bc37e1a314610360575f80fd5b806323b872dd1161010457806323b872dd1461020f578063313ce5671461022e57806351bc3c851461024957806370a082311461025d578063715018a61461029157806377b54bad146102a5575f80fd5b806306fdde031461014a578063095ea7b3146101935780630faee56f146101c2578063109daa99146101e557806318160ddd146101fb575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152600f81526e54657272612045636f73797374656d60881b60208201525b60405161018a9190611618565b60405180910390f35b34801561019e575f80fd5b506101b26101ad366004611678565b610428565b604051901515815260200161018a565b3480156101cd575f80fd5b506101d760115481565b60405190815260200161018a565b3480156101f0575f80fd5b506101f961043e565b005b348015610206575f80fd5b506101d76104ac565b34801561021a575f80fd5b506101b26102293660046116a2565b6104cb565b348015610239575f80fd5b506040516009815260200161018a565b348015610254575f80fd5b506101f9610532565b348015610268575f80fd5b506101d76102773660046116e0565b6001600160a01b03165f9081526001602052604090205490565b34801561029c575f80fd5b506101f9610583565b3480156102b0575f80fd5b506101b26102bf366004611678565b6105f4565b3480156102cf575f80fd5b506101d7600e5481565b3480156102e4575f80fd5b505f546040516001600160a01b03909116815260200161018a565b34801561030a575f80fd5b506101d7600f5481565b34801561031f575f80fd5b50604080518082019091526005815264546572726160d81b602082015261017d565b34801561034c575f80fd5b506101b261035b366004611678565b610744565b34801561036b575f80fd5b506101f9610750565b34801561037f575f80fd5b506101d760105481565b348015610394575f80fd5b506101f961084d565b3480156103a8575f80fd5b506101d76103b73660046116fb565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103ec575f80fd5b506101f96103fb366004611732565b610964565b34801561040b575f80fd5b506101f96109a9565b34801561041f575f80fd5b506101f9610a35565b5f610434338484610ade565b5060015b92915050565b5f546001600160a01b031633146104705760405162461bcd60e51b815260040161046790611749565b60405180910390fd5b5f600c8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6104b96009600a611872565b6104c690620f4240611880565b905090565b5f6104d7848484610c01565b6105288433610523856040518060600160405280602881526020016119f6602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061129b565b610ade565b5060019392505050565b6004546001600160a01b0316336001600160a01b031614610551575f80fd5b305f90815260016020526040902054801561056f5761056f816112d3565b47801561057f5761057f81611443565b5050565b5f546001600160a01b031633146105ac5760405162461bcd60e51b815260040161046790611749565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6004545f906001600160a01b0316336001600160a01b031614610615575f80fd5b815f03610685576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa15801561065e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106829190611897565b91505b604080516001600160a01b0385168152602081018490527fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f910160405180910390a16004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820184905284169063a9059cbb906044016020604051808303815f875af1158015610719573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073d91906118ae565b9392505050565b5f610434338484610c01565b5f546001600160a01b031633146107795760405162461bcd60e51b815260040161046790611749565b6012546001600160a01b031663f305d71947306107aa816001600160a01b03165f9081526001602052604090205490565b5f806107bd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610823573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061084891906118cd565b505050565b5f546001600160a01b031633146108765760405162461bcd60e51b815260040161046790611749565b601354600160a01b900460ff16156108d05760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610467565b60135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f19602482015291169063095ea7b3906044016020604051808303815f875af1158015610922573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094691906118ae565b506013805462ff00ff60a01b19166201000160a01b17905543601655565b6004546001600160a01b0316336001600160a01b031614610983575f80fd5b600754811115801561099757506008548111155b61099f575f80fd5b6007819055600855565b6004546001600160a01b0316336001600160a01b0316146109c8575f80fd5b4780610a295760405162461bcd60e51b815260206004820152602a60248201527f436f6e74726163742062616c616e6365206d7573742062652067726561746572604482015269207468616e207a65726f60b01b6064820152608401610467565b610a3281611443565b50565b5f546001600160a01b03163314610a5e5760405162461bcd60e51b815260040161046790611749565b610a6a6009600a611872565b610a7790620f4240611880565b600e55610a866009600a611872565b610a9390620f4240611880565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610ac36009600a611872565b610ad090620f4240611880565b6040519081526020016104a2565b6001600160a01b038316610b405760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610467565b6001600160a01b038216610ba15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610467565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c655760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610467565b6001600160a01b038216610cc75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610467565b5f8111610d285760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610467565b5f80546001600160a01b03858116911614801590610d5357505f546001600160a01b03848116911614155b1561115e576001600160a01b0384165f9081526003602052604090205460ff16158015610d9857506001600160a01b0383165f9081526003602052604090205460ff16155b15610deb57601354600160a01b900460ff16610deb5760405162461bcd60e51b8152602060048201526012602482015271151c98591a5b99c81b9bdd081bdc195b995960721b6044820152606401610467565b600d545f03610e2357610e206064610e1a600954600d5411610e0f57600554610e13565b6007545b859061147a565b906114f8565b90505b600d5415610e4857610e456064610e1a600c548561147a90919063ffffffff16565b90505b6013546001600160a01b038581169116148015610e7357506012546001600160a01b03848116911614155b8015610e9757506001600160a01b0383165f9081526003602052604090205460ff16155b15610ff557600e54821115610eee5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610467565b600f5482610f10856001600160a01b03165f9081526001602052604090205490565b610f1a91906118f8565b1115610f685760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610467565b610f836064610e1a600954600d5411610e0f57600554610e13565b600d80549192505f610f948361190b565b91905055506016544303610ff557601b600d541115610ff55760405162461bcd60e51b815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e6044820152606401610467565b6013546001600160a01b03848116911614801561101b57506001600160a01b0384163014155b15611048576110456064610e1a600a54600d541161103b57600654610e13565b600854859061147a565b90505b305f90815260016020526040902054601354600160a81b900460ff1615801561107e57506013546001600160a01b038581169116145b80156110935750601354600160b01b900460ff165b80156110a0575060105481115b80156110af5750600b54600d54115b1561115c576015544311156110c3575f6014555b6005601454106111155760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920352073656c6c732070657220626c6f636b210000000000000000006044820152606401610467565b61113261112d8461112884601154611539565b611539565b6112d3565b4780156111425761114247611443565b60148054905f6111518361190b565b909155505043601555505b505b80156111d657305f9081526001602052604090205461117d908261154d565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111cd9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111f890836115ab565b6001600160a01b0385165f9081526001602052604090205561123b61121d83836115ab565b6001600160a01b0385165f908152600160205260409020549061154d565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61128485856115ab565b60405190815260200160405180910390a350505050565b5f81848411156112be5760405162461bcd60e51b81526004016104679190611618565b505f6112ca8486611923565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061131957611319611936565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611370573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611394919061194a565b816001815181106113a7576113a7611936565b6001600160a01b0392831660209182029290920101526012546113cd9130911684610ade565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906114059085905f90869030904290600401611965565b5f604051808303815f87803b15801561141c575f80fd5b505af115801561142e573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561057f573d5f803e3d5ffd5b5f825f0361148957505f610438565b5f6114948385611880565b9050826114a185836119d6565b1461073d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610467565b5f61073d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115ec565b5f818311611547578261073d565b50919050565b5f8061155983856118f8565b90508381101561073d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610467565b5f61073d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061129b565b5f818361160c5760405162461bcd60e51b81526004016104679190611618565b505f6112ca84866119d6565b5f602080835283518060208501525f5b8181101561164457858101830151858201604001528201611628565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a32575f80fd5b5f8060408385031215611689575f80fd5b823561169481611664565b946020939093013593505050565b5f805f606084860312156116b4575f80fd5b83356116bf81611664565b925060208401356116cf81611664565b929592945050506040919091013590565b5f602082840312156116f0575f80fd5b813561073d81611664565b5f806040838503121561170c575f80fd5b823561171781611664565b9150602083013561172781611664565b809150509250929050565b5f60208284031215611742575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117cc57815f19048211156117b2576117b261177e565b808516156117bf57918102915b93841c9390800290611797565b509250929050565b5f826117e257506001610438565b816117ee57505f610438565b8160018114611804576002811461180e5761182a565b6001915050610438565b60ff84111561181f5761181f61177e565b50506001821b610438565b5060208310610133831016604e8410600b841016171561184d575081810a610438565b6118578383611792565b805f190482111561186a5761186a61177e565b029392505050565b5f61073d60ff8416836117d4565b80820281158282048414176104385761043861177e565b5f602082840312156118a7575f80fd5b5051919050565b5f602082840312156118be575f80fd5b8151801515811461073d575f80fd5b5f805f606084860312156118df575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104385761043861177e565b5f6001820161191c5761191c61177e565b5060010190565b818103818111156104385761043861177e565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561195a575f80fd5b815161073d81611664565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119b55784516001600160a01b031683529383019391830191600101611990565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119f057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122059e45a7ad0b75706b1adc362bc4f62012e5e3bd30a239a5bd64f9a80715ed7e264736f6c63430008170033

Deployed Bytecode Sourcemap

3738:9541:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6093:83;;;;;;;;;;-1:-1:-1;6163:5:0;;;;;;;;;;;;-1:-1:-1;;;6163:5:0;;;;6093:83;;;;;;;:::i;:::-;;;;;;;;6926:161;;;;;;;;;;-1:-1:-1;6926:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6926:161:0;1023:187:1;4827:47:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4827:47:0;1215:177:1;11283:119:0;;;;;;;;;;;;;:::i;:::-;;6370:95;;;;;;;;;;;;;:::i;7095:313::-;;;;;;;;;;-1:-1:-1;7095:313:0;;;;;:::i;:::-;;:::i;6279:83::-;;;;;;;;;;-1:-1:-1;6279:83:0;;4459:1;2000:36:1;;1988:2;1973:18;6279:83:0;1858:184:1;12934:342:0;;;;;;;;;;;;;:::i;6473:119::-;;;;;;;;;;-1:-1:-1;6473:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6566:18:0;6539:7;6566:18;;;:9;:18;;;;;;;6473:119;2819:148;;;;;;;;;;;;;:::i;12291:373::-;;;;;;;;;;-1:-1:-1;12291:373:0;;;;;:::i;:::-;;:::i;4652:48::-;;;;;;;;;;;;;;;;2605:79;;;;;;;;;;-1:-1:-1;2643:7:0;2670:6;2605:79;;-1:-1:-1;;;;;2670:6:0;;;2445:51:1;;2433:2;2418:18;2605:79:0;2299:203:1;4707:50:0;;;;;;;;;;;;;;;;6184:87;;;;;;;;;;-1:-1:-1;6256:7:0;;;;;;;;;;;;-1:-1:-1;;;6256:7:0;;;;6184:87;;6600:167;;;;;;;;;;-1:-1:-1;6600:167:0;;;;;:::i;:::-;;:::i;11510:192::-;;;;;;;;;;;;;:::i;4764:56::-;;;;;;;;;;;;;;;;11710:286;;;;;;;;;;;;;:::i;6775:143::-;;;;;;;;;;-1:-1:-1;6775:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6883:18:0;;;6856:7;6883:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6775:143;12045:238;;;;;;;;;;-1:-1:-1;12045:238:0;;;;;:::i;:::-;;:::i;12672:254::-;;;;;;;;;;;;;:::i;11112:163::-;;;;;;;;;;;;;:::i;6926:161::-;7001:4;7018:39;440:10;7041:7;7050:6;7018:8;:39::i;:::-;-1:-1:-1;7075:4:0;6926:161;;;;;:::o;11283:119::-;2732:6;;-1:-1:-1;;;;;2732:6:0;440:10;2732:22;2724:67;;;;-1:-1:-1;;;2724:67:0;;;;;;;:::i;:::-;;;;;;;;;11356:1:::1;11341:12;:16:::0;;;11373:21:::1;::::0;1361:25:1;;;11373:21:0::1;::::0;1349:2:1;1334:18;11373:21:0::1;;;;;;;;11283:119::o:0;6370:95::-;6423:7;4514:13;4459:1;4514:2;:13;:::i;:::-;4502:25;;:9;:25;:::i;:::-;6443:14;;6370:95;:::o;7095:313::-;7193:4;7210:36;7220:6;7228:9;7239:6;7210:9;:36::i;:::-;7257:121;7266:6;440:10;7288:89;7326:6;7288:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7288:19:0;;;;;;:11;:19;;;;;;;;440:10;7288:33;;;;;;;;;;:37;:89::i;:::-;7257:8;:121::i;:::-;-1:-1:-1;7396:4:0;7095:313;;;;;:::o;12934:342::-;13000:10;;-1:-1:-1;;;;;13000:10:0;440;-1:-1:-1;;;;;12984:26:0;;12976:35;;;;;;13065:4;13024:20;6566:18;;;:9;:18;;;;;;13085:16;;13082:75;;13115:30;13132:12;13115:16;:30::i;:::-;13190:21;13225:14;;13222:47;;13242:24;13255:10;13242:12;:24::i;:::-;12965:311;;12934:342::o;2819:148::-;2732:6;;-1:-1:-1;;;;;2732:6:0;440:10;2732:22;2724:67;;;;-1:-1:-1;;;2724:67:0;;;;;;;:::i;:::-;2926:1:::1;2910:6:::0;;2889:40:::1;::::0;-1:-1:-1;;;;;2910:6:0;;::::1;::::0;2889:40:::1;::::0;2926:1;;2889:40:::1;2957:1;2940:19:::0;;-1:-1:-1;;;;;;2940:19:0::1;::::0;;2819:148::o;12291:373::-;12421:10;;12372:12;;-1:-1:-1;;;;;12421:10:0;440;-1:-1:-1;;;;;12405:26:0;;12397:35;;;;;;12448:6;12458:1;12448:11;12445:96;;12484:45;;-1:-1:-1;;;12484:45:0;;12523:4;12484:45;;;2445:51:1;-1:-1:-1;;;;;12484:30:0;;;;;2418:18:1;;12484:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12475:54;;12445:96;12558:31;;;-1:-1:-1;;;;;5699:32:1;;5681:51;;5763:2;5748:18;;5741:34;;;12558:31:0;;5654:18:1;12558:31:0;;;;;;;12637:10;;;12607:49;;-1:-1:-1;;;12607:49:0;;-1:-1:-1;;;;;12637:10:0;;;12607:49;;;5681:51:1;;;;5748:18;;;5741:34;;;12607:29:0;;;;;5654:18:1;;12607:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12600:56;12291:373;-1:-1:-1;;;12291:373:0:o;6600:167::-;6678:4;6695:42;440:10;6719:9;6730:6;6695:9;:42::i;11510:192::-;2732:6;;-1:-1:-1;;;;;2732:6:0;440:10;2732:22;2724:67;;;;-1:-1:-1;;;2724:67:0;;;;;;;:::i;:::-;11560:15:::1;::::0;-1:-1:-1;;;;;11560:15:0::1;:31;11599:21;11630:4;11637:24;11630:4:::0;-1:-1:-1;;;;;6566:18:0;6539:7;6566:18;;;:9;:18;;;;;;;6473:119;11637:24:::1;11663:1;11666::::0;11669:7:::1;2643::::0;2670:6;-1:-1:-1;;;;;2670:6:0;;2605:79;11669:7:::1;11560:134;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11560:134:0;;;-1:-1:-1;;;;;6714:15:1;;;11560:134:0::1;::::0;::::1;6696:34:1::0;6746:18;;;6739:34;;;;6789:18;;;6782:34;;;;6832:18;;;6825:34;6896:15;;;6875:19;;;6868:44;11678:15:0::1;6928:19:1::0;;;6921:35;6630:19;;11560:134:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11510:192::o:0;11710:286::-;2732:6;;-1:-1:-1;;;;;2732:6:0;440:10;2732:22;2724:67;;;;-1:-1:-1;;;2724:67:0;;;;;;;:::i;:::-;11774:11:::1;::::0;-1:-1:-1;;;11774:11:0;::::1;;;11773:12;11765:47;;;::::0;-1:-1:-1;;;11765:47:0;;7480:2:1;11765:47:0::1;::::0;::::1;7462:21:1::0;7519:2;7499:18;;;7492:30;7558:25;7538:18;;;7531:53;7601:18;;11765:47:0::1;7278:347:1::0;11765:47:0::1;11830:13;::::0;11861:15:::1;::::0;11823:71:::1;::::0;-1:-1:-1;;;11823:71:0;;-1:-1:-1;;;;;11861:15:0;;::::1;11823:71;::::0;::::1;5681:51:1::0;-1:-1:-1;;5748:18:1;;;5741:34;11830:13:0;::::1;::::0;11823:29:::1;::::0;5654:18:1;;11823:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11905:11:0::1;:18:::0;;-1:-1:-1;;;;11934:18:0;-1:-1:-1;;;11934:18:0;;;11976:12:::1;11905:11;11963:25:::0;11710:286::o;12045:238::-;12124:10;;-1:-1:-1;;;;;12124:10:0;440;-1:-1:-1;;;;;12108:26:0;;12100:35;;;;;;12165:12;;12154:7;:23;;:51;;;;;12192:13;;12181:7;:24;;12154:51;12146:60;;;;;;12219:12;:22;;;12252:13;:23;12045:238::o;12672:254::-;12738:10;;-1:-1:-1;;;;;12738:10:0;440;-1:-1:-1;;;;;12722:26:0;;12714:35;;;;;;12782:21;12822:14;12814:69;;;;-1:-1:-1;;;12814:69:0;;7832:2:1;12814:69:0;;;7814:21:1;7871:2;7851:18;;;7844:30;7910:34;7890:18;;;7883:62;-1:-1:-1;;;7961:18:1;;;7954:40;8011:19;;12814:69:0;7630:406:1;12814:69:0;12894:24;12907:10;12894:12;:24::i;:::-;12703:223;12672:254::o;11112:163::-;2732:6;;-1:-1:-1;;;;;2732:6:0;440:10;2732:22;2724:67;;;;-1:-1:-1;;;2724:67:0;;;;;;;:::i;:::-;4514:13:::1;4459:1;4514:2;:13;:::i;:::-;4502:25;::::0;:9:::1;:25;:::i;:::-;11167:12;:22:::0;4514:13:::1;4459:1;4514:2;:13;:::i;:::-;4502:25;::::0;:9:::1;:25;:::i;:::-;11200:14;:24:::0;11240:27:::1;4514:13;4459:1;4514:2;:13;:::i;:::-;4502:25;::::0;:9:::1;:25;:::i;:::-;11240:27;::::0;1361:25:1;;;1349:2;1334:18;11240:27:0::1;1215:177:1::0;7416:335:0;-1:-1:-1;;;;;7509:19:0;;7501:68;;;;-1:-1:-1;;;7501:68:0;;8243:2:1;7501:68:0;;;8225:21:1;8282:2;8262:18;;;8255:30;8321:34;8301:18;;;8294:62;-1:-1:-1;;;8372:18:1;;;8365:34;8416:19;;7501:68:0;8041:400:1;7501:68:0;-1:-1:-1;;;;;7588:21:0;;7580:68;;;;-1:-1:-1;;;7580:68:0;;8648:2:1;7580:68:0;;;8630:21:1;8687:2;8667:18;;;8660:30;8726:34;8706:18;;;8699:62;-1:-1:-1;;;8777:18:1;;;8770:32;8819:19;;7580:68:0;8446:398:1;7580:68:0;-1:-1:-1;;;;;7659:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7711:32;;1361:25:1;;;7711:32:0;;1334:18:1;7711:32:0;;;;;;;7416:335;;;:::o;7759:2740::-;-1:-1:-1;;;;;7847:18:0;;7839:68;;;;-1:-1:-1;;;7839:68:0;;9051:2:1;7839:68:0;;;9033:21:1;9090:2;9070:18;;;9063:30;9129:34;9109:18;;;9102:62;-1:-1:-1;;;9180:18:1;;;9173:35;9225:19;;7839:68:0;8849:401:1;7839:68:0;-1:-1:-1;;;;;7926:16:0;;7918:64;;;;-1:-1:-1;;;7918:64:0;;9457:2:1;7918:64:0;;;9439:21:1;9496:2;9476:18;;;9469:30;9535:34;9515:18;;;9508:62;-1:-1:-1;;;9586:18:1;;;9579:33;9629:19;;7918:64:0;9255:399:1;7918:64:0;8010:1;8001:6;:10;7993:64;;;;-1:-1:-1;;;7993:64:0;;9861:2:1;7993:64:0;;;9843:21:1;9900:2;9880:18;;;9873:30;9939:34;9919:18;;;9912:62;-1:-1:-1;;;9990:18:1;;;9983:39;10039:19;;7993:64:0;9659:405:1;7993:64:0;8068:17;2670:6;;-1:-1:-1;;;;;8104:15:0;;;2670:6;;8104:15;;;;:32;;-1:-1:-1;2643:7:0;2670:6;-1:-1:-1;;;;;8123:13:0;;;2670:6;;8123:13;;8104:32;8100:2032;;;-1:-1:-1;;;;;8159:24:0;;;;;;:18;:24;;;;;;;;8158:25;:52;;;;-1:-1:-1;;;;;;8188:22:0;;;;;;:18;:22;;;;;;;;8187:23;8158:52;8155:133;;;8238:11;;-1:-1:-1;;;8238:11:0;;;;8230:42;;;;-1:-1:-1;;;8230:42:0;;10271:2:1;8230:42:0;;;10253:21:1;10310:2;10290:18;;;10283:30;-1:-1:-1;;;10329:18:1;;;10322:48;10387:18;;8230:42:0;10069:342:1;8230:42:0;8307:9;;8320:1;8307:14;8304:147;;8353:82;8431:3;8353:73;8377:15;;8365:9;;:27;8364:61;;8411:14;;8364:61;;;8396:12;;8364:61;8353:6;;:10;:73::i;:::-;:77;;:82::i;:::-;8341:94;;8304:147;8470:9;;:13;8467:97;;8515:33;8544:3;8515:24;8526:12;;8515:6;:10;;:24;;;;:::i;:33::-;8503:45;;8467:97;8592:13;;-1:-1:-1;;;;;8584:21:0;;;8592:13;;8584:21;:55;;;;-1:-1:-1;8623:15:0;;-1:-1:-1;;;;;8609:30:0;;;8623:15;;8609:30;;8584:55;:83;;;;-1:-1:-1;;;;;;8645:22:0;;;;;;:18;:22;;;;;;;;8643:24;8584:83;8580:577;;;8707:12;;8697:6;:22;;8689:60;;;;-1:-1:-1;;;8689:60:0;;10618:2:1;8689:60:0;;;10600:21:1;10657:2;10637:18;;;10630:30;10696:27;10676:18;;;10669:55;10741:18;;8689:60:0;10416:349:1;8689:60:0;8802:14;;8792:6;8776:13;8786:2;-1:-1:-1;;;;;6566:18:0;6539:7;6566:18;;;:9;:18;;;;;;;6473:119;8776:13;:22;;;;:::i;:::-;:40;;8768:79;;;;-1:-1:-1;;;8768:79:0;;11102:2:1;8768:79:0;;;11084:21:1;11141:2;11121:18;;;11114:30;11180:28;11160:18;;;11153:56;11226:18;;8768:79:0;10900:350:1;8768:79:0;8878:82;8956:3;8878:73;8902:15;;8890:9;;:27;8889:61;;8936:14;;8889:61;;8878:82;8979:9;:11;;8866:94;;-1:-1:-1;8979:9:0;:11;;;:::i;:::-;;;;;;9028:10;;9012:12;:26;9009:133;;9083:2;9070:9;;:15;;9062:60;;;;-1:-1:-1;;;9062:60:0;;11597:2:1;9062:60:0;;;11579:21:1;;;11616:18;;;11609:30;11675:34;11655:18;;;11648:62;11727:18;;9062:60:0;11395:356:1;9062:60:0;9182:13;;-1:-1:-1;;;;;9176:19:0;;;9182:13;;9176:19;:44;;;;-1:-1:-1;;;;;;9199:21:0;;9215:4;9199:21;;9176:44;9173:181;;;9253:85;9334:3;9253:76;9277:16;;9265:9;;:28;9264:64;;9313:15;;9264:64;;;9297:13;;9253:6;;:10;:76::i;:85::-;9241:97;;9173:181;9419:4;9370:28;6566:18;;;:9;:18;;;;;;9445:6;;-1:-1:-1;;;9445:6:0;;;;9444:7;:30;;;;-1:-1:-1;9461:13:0;;-1:-1:-1;;;;;9455:19:0;;;9461:13;;9455:19;9444:30;:45;;;;-1:-1:-1;9478:11:0;;-1:-1:-1;;;9478:11:0;;;;9444:45;:89;;;;;9516:17;;9493:20;:40;9444:89;:123;;;;;9549:18;;9537:9;;:30;9444:123;9440:681;;;9607:13;;9592:12;:28;9588:90;;;9657:1;9645:9;:13;9588:90;9716:1;9704:9;;:13;9696:49;;;;-1:-1:-1;;;9696:49:0;;11958:2:1;9696:49:0;;;11940:21:1;11997:2;11977:18;;;11970:30;12036:25;12016:18;;;12009:53;12079:18;;9696:49:0;11756:347:1;9696:49:0;9766:68;9783:50;9787:6;9794:38;9798:20;9820:11;;9794:3;:38::i;:::-;9783:3;:50::i;:::-;9766:16;:68::i;:::-;9882:21;9926:22;;9922:106;;9973:35;9986:21;9973:12;:35::i;:::-;10048:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;10093:12:0;10078:13;:27;-1:-1:-1;9440:681:0;8138:1994;8100:2032;10147:13;;10144:166;;10219:4;10201:24;;;;:9;:24;;;;;;:39;;10230:9;10201:28;:39::i;:::-;10192:4;10174:24;;;;:9;:24;;;;;;;:66;;;;10258:40;;-1:-1:-1;;;;;10258:40:0;;;;;;;10288:9;1361:25:1;;1349:2;1334:18;;1215:177;10258:40:0;;;;;;;;10144:166;-1:-1:-1;;;;;10340:15:0;;;;;;:9;:15;;;;;;:27;;10360:6;10340:19;:27::i;:::-;-1:-1:-1;;;;;10322:15:0;;;;;;:9;:15;;;;;:45;10394:40;10412:21;:6;10423:9;10412:10;:21::i;:::-;-1:-1:-1;;;;;10394:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10378:13:0;;;;;;;:9;:13;;;;;:56;;;;10450:41;;;10469:21;:6;10480:9;10469:10;:21::i;:::-;10450:41;;1361:25:1;;;1349:2;1334:18;10450:41:0;;;;;;;7828:2671;7759:2740;;;:::o;1497:190::-;1583:7;1619:12;1611:6;;;;1603:29;;;;-1:-1:-1;;;1603:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1643:9:0;1655:5;1659:1;1655;:5;:::i;:::-;1643:17;1497:190;-1:-1:-1;;;;;1497:190:0:o;10621:483::-;5381:6;:13;;-1:-1:-1;;;;5381:13:0;-1:-1:-1;;;5381:13:0;;;10723:16:::1;::::0;;10737:1:::1;10723:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10723:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10723:16:0::1;10699:40;;10768:4;10750;10755:1;10750:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10750:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10794:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10794:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10750:7;;10794:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10784:4;10789:1;10784:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10784:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10859:15:::1;::::0;10827:62:::1;::::0;10844:4:::1;::::0;10859:15:::1;10877:11:::0;10827:8:::1;:62::i;:::-;10900:15;::::0;:196:::1;::::0;-1:-1:-1;;;10900:196:0;;-1:-1:-1;;;;;10900:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10981:11;;10900:15:::1;::::0;11023:4;;11050::::1;::::0;11070:15:::1;::::0;10900:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5417:6:0;:14;;-1:-1:-1;;;;5417:14:0;;;-1:-1:-1;;;;10621:483:0:o;11410:92::-;11467:10;;:27;;-1:-1:-1;;;;;11467:10:0;;;;:27;;;;;11487:6;;11467:10;:27;:10;:27;11487:6;11467:10;:27;;;;;;;;;;;;;;;;;;;1695:246;1753:7;1777:1;1782;1777:6;1773:47;;-1:-1:-1;1807:1:0;1800:8;;1773:47;1830:9;1842:5;1846:1;1842;:5;:::i;:::-;1830:17;-1:-1:-1;1875:1:0;1866:5;1870:1;1830:17;1866:5;:::i;:::-;:10;1858:56;;;;-1:-1:-1;;;1858:56:0;;14170:2:1;1858:56:0;;;14152:21:1;14209:2;14189:18;;;14182:30;14248:34;14228:18;;;14221:62;-1:-1:-1;;;14299:18:1;;;14292:31;14340:19;;1858:56:0;13968:397:1;1949:132:0;2007:7;2034:39;2038:1;2041;2034:39;;;;;;;;;;;;;;;;;:3;:39::i;10509:104::-;10566:7;10595:1;10591;:5;10590:15;;10604:1;10590:15;;;-1:-1:-1;10600:1:0;10509:104;-1:-1:-1;10509:104:0:o;1166:179::-;1224:7;;1256:5;1260:1;1256;:5;:::i;:::-;1244:17;;1285:1;1280;:6;;1272:46;;;;-1:-1:-1;;;1272:46:0;;14572:2:1;1272:46:0;;;14554:21:1;14611:2;14591:18;;;14584:30;14650:29;14630:18;;;14623:57;14697:18;;1272:46:0;14370:351:1;1353:136:0;1411:7;1438:43;1442:1;1445;1438:43;;;;;;;;;;;;;;;;;:3;:43::i;2089:189::-;2175:7;2210:12;2203:5;2195:28;;;;-1:-1:-1;;;2195:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2234:9:0;2246:5;2250:1;2246;:5;:::i;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;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:180::-;2959:6;3012:2;3000:9;2991:7;2987:23;2983:32;2980:52;;;3028:1;3025;3018:12;2980:52;-1:-1:-1;3051:23:1;;2900:180;-1:-1:-1;2900:180:1:o;3085:356::-;3287:2;3269:21;;;3306:18;;;3299:30;3365:34;3360:2;3345:18;;3338:62;3432:2;3417:18;;3085:356::o;3636:127::-;3697:10;3692:3;3688:20;3685:1;3678:31;3728:4;3725:1;3718:15;3752:4;3749:1;3742:15;3768:416;3857:1;3894:5;3857:1;3908:270;3929:7;3919:8;3916:21;3908:270;;;3988:4;3984:1;3980:6;3976:17;3970:4;3967:27;3964:53;;;3997:18;;:::i;:::-;4047:7;4037:8;4033:22;4030:55;;;4067:16;;;;4030:55;4146:22;;;;4106:15;;;;3908:270;;;3912:3;3768:416;;;;;:::o;4189:806::-;4238:5;4268:8;4258:80;;-1:-1:-1;4309:1:1;4323:5;;4258:80;4357:4;4347:76;;-1:-1:-1;4394:1:1;4408:5;;4347:76;4439:4;4457:1;4452:59;;;;4525:1;4520:130;;;;4432:218;;4452:59;4482:1;4473:10;;4496:5;;;4520:130;4557:3;4547:8;4544:17;4541:43;;;4564:18;;:::i;:::-;-1:-1:-1;;4620:1:1;4606:16;;4635:5;;4432:218;;4734:2;4724:8;4721:16;4715:3;4709:4;4706:13;4702:36;4696:2;4686:8;4683:16;4678:2;4672:4;4669:12;4665:35;4662:77;4659:159;;;-1:-1:-1;4771:19:1;;;4803:5;;4659:159;4850:34;4875:8;4869:4;4850:34;:::i;:::-;4920:6;4916:1;4912:6;4908:19;4899:7;4896:32;4893:58;;;4931:18;;:::i;:::-;4969:20;;4189:806;-1:-1:-1;;;4189:806:1:o;5000:140::-;5058:5;5087:47;5128:4;5118:8;5114:19;5108:4;5087:47;:::i;5145:168::-;5218:9;;;5249;;5266:15;;;5260:22;;5246:37;5236:71;;5287:18;;:::i;5318:184::-;5388:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:52;;;5457:1;5454;5447:12;5409:52;-1:-1:-1;5480:16:1;;5318:184;-1:-1:-1;5318:184:1:o;6073:277::-;6140:6;6193:2;6181:9;6172:7;6168:23;6164:32;6161:52;;;6209:1;6206;6199:12;6161:52;6241:9;6235:16;6294:5;6287:13;6280:21;6273:5;6270:32;6260:60;;6316:1;6313;6306:12;6967:306;7055:6;7063;7071;7124:2;7112:9;7103:7;7099:23;7095:32;7092:52;;;7140:1;7137;7130:12;7092:52;7169:9;7163:16;7153:26;;7219:2;7208:9;7204:18;7198:25;7188:35;;7263:2;7252:9;7248:18;7242:25;7232:35;;6967:306;;;;;:::o;10770:125::-;10835:9;;;10856:10;;;10853:36;;;10869:18;;:::i;11255:135::-;11294:3;11315:17;;;11312:43;;11335:18;;:::i;:::-;-1:-1:-1;11382:1:1;11371:13;;11255:135::o;12108:128::-;12175:9;;;12196:11;;;12193:37;;;12210:18;;:::i;12373:127::-;12434:10;12429:3;12425:20;12422:1;12415:31;12465:4;12462:1;12455:15;12489:4;12486:1;12479:15;12505:251;12575:6;12628:2;12616:9;12607:7;12603:23;12599:32;12596:52;;;12644:1;12641;12634:12;12596:52;12676:9;12670:16;12695:31;12720:5;12695:31;:::i;12761:980::-;13023:4;13071:3;13060:9;13056:19;13102:6;13091:9;13084:25;13128:2;13166:6;13161:2;13150:9;13146:18;13139:34;13209:3;13204:2;13193:9;13189:18;13182:31;13233:6;13268;13262:13;13299:6;13291;13284:22;13337:3;13326:9;13322:19;13315:26;;13376:2;13368:6;13364:15;13350:29;;13397:1;13407:195;13421:6;13418:1;13415:13;13407:195;;;13486:13;;-1:-1:-1;;;;;13482:39:1;13470:52;;13577:15;;;;13542:12;;;;13518:1;13436:9;13407:195;;;-1:-1:-1;;;;;;;13658:32:1;;;;13653:2;13638:18;;13631:60;-1:-1:-1;;;13722:3:1;13707:19;13700:35;13619:3;12761:980;-1:-1:-1;;;12761:980:1:o;13746:217::-;13786:1;13812;13802:132;;13856:10;13851:3;13847:20;13844:1;13837:31;13891:4;13888:1;13881:15;13919:4;13916:1;13909:15;13802:132;-1:-1:-1;13948:9:1;;13746:217::o

Swarm Source

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