ETH Price: $3,955.47 (+1.17%)

Token

ERC-20: TigerKing 2.0 (TKING2.0)
 

Overview

Max Total Supply

450,000,000,000 TKING2.0

Holders

513

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 TKING2.0

Value
$0.00
0x70d719b48700f4ab1105e4f06f6b54a961084290
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:
TigerKing2

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-06
*/

// SPDX-License-Identifier: MIT
/*


████████╗██╗ ██████╗ ███████╗██████╗     ██╗  ██╗██╗███╗   ██╗ ██████╗     ██████╗     ██████╗ 
╚══██╔══╝██║██╔════╝ ██╔════╝██╔══██╗    ██║ ██╔╝██║████╗  ██║██╔════╝     ╚════██╗   ██╔═████╗
   ██║   ██║██║  ███╗█████╗  ██████╔╝    █████╔╝ ██║██╔██╗ ██║██║  ███╗     █████╔╝   ██║██╔██║
   ██║   ██║██║   ██║██╔══╝  ██╔══██╗    ██╔═██╗ ██║██║╚██╗██║██║   ██║    ██╔═══╝    ████╔╝██║
   ██║   ██║╚██████╔╝███████╗██║  ██║    ██║  ██╗██║██║ ╚████║╚██████╔╝    ███████╗██╗╚██████╔╝
   ╚═╝   ╚═╝ ╚═════╝ ╚══════╝╚═╝  ╚═╝    ╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝ ╚═════╝     ╚══════╝╚═╝ ╚═════╝ 
                                                                                               
                                                  
WEB : tking2.io
TG  : https://t.me/TKING_2
TW  : https://twitter.com/TKING2_0 

*/

pragma solidity ^0.8.17;

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

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address public _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface InterfaceLP {
    function sync() external;
}

contract TigerKing2 is Ownable, ERC20 {
    using SafeMath for uint256;

    address WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
    

    string constant _name = "TigerKing 2.0";
    string constant _symbol = "TKING2.0";
    uint8 constant _decimals = 18; 
  

    uint256 _totalSupply = 450 * 10**9 * 10**_decimals;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    
    mapping (address => bool) isFeeExempt;


    uint256 public totalFee         = 10;
    uint256 private feeDenominator  = 100;

    uint256 sellMultiplier = 20;
    uint256 buyMultiplier = 20;

    address private marketingFeeReceiver;


    IDEXRouter public router;
    InterfaceLP private pairContract;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 100 / 10000; 
    bool inSwap;

    bool private antiMEV = false;
    mapping (address => bool) private isContractExempt;

    bool public tradingEnabled = false;

    uint256 public maxWalletToken = ( _totalSupply * 100 ) / 10000;
    uint256 public maxTxAmount = ( _totalSupply * 100 ) / 10000;


    modifier swapping() { inSwap = true; _; inSwap = false; }
    
    constructor () {

        address router_address = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        
        router = IDEXRouter(router_address);

        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);

       
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0x00d9EDe2A1C0533E956987189861d6548645474e;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isFeeExempt[address(this)] = true;

        isContractExempt[address(router)] = true;
        isContractExempt[address(pair)] = true;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) {return owner();}
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveAll(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }


   
  
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        
        require(tradingEnabled || sender == owner() || recipient == owner(), "Trading not yet enabled!");

        if (recipient != address(pair) && recipient != address(ZERO) && recipient != address(DEAD)) {
          require((_balances[recipient].add(amount)) <= maxWalletToken || isFeeExempt[sender] || isFeeExempt[recipient], "Exceeds maximum wallet amount.");
        }
        
        if(sender != address(pair)) {
            require(amount <= maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");
        }
        // Anti MEV
        if(antiMEV && !isContractExempt[sender] && !isContractExempt[recipient]){
            require(!isContract(recipient) || !isContract(sender), "Anti MEV");
        }
    
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(shouldSwapBack()){ swapBack(); }
        
         _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");



        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

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

    

    function excemptContract(address ctr_ady) external onlyOwner {
        isContractExempt[ctr_ady] = true;
    }

    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "Trading already enabled.");
        tradingEnabled = true;
    }

    function toggleAntiMEV(bool toggle) external onlyOwner {
        antiMEV = toggle;
    }

    function setMarketingFeeReceiver(address _feeReceiver) external onlyOwner {
        marketingFeeReceiver = _feeReceiver;
    }

   
    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function setParams(uint256 _sellMultiplier, uint256 _buyMultiplier, uint256 _maxWalletToken, uint256 _maxTxAmount) external onlyOwner {
        sellMultiplier = _sellMultiplier;
        buyMultiplier = _buyMultiplier;
        maxWalletToken = _maxWalletToken;
        maxTxAmount = _maxTxAmount;
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = 0;

        if(recipient == address(pair)) {
            multiplier = sellMultiplier;
        } else if (sender == address(pair)) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        uint256 contractTokens = feeAmount;
        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        emit Transfer(sender, address(this), contractTokens);

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != address(pair)
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckETH(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

     function swapback() external onlyOwner {
           swapBack();
    
    }


    function clearStuckToken(address tokenAddress, uint256 tokens) external onlyOwner returns (bool) {
        if(tokens == 0){
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        return ERC20(tokenAddress).transfer(msg.sender, tokens);
    }

        
    function swapBack() internal swapping {

        uint256 amountToSwap = swapThreshold;

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        
        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETH}("");
        
        tmpSuccess = false;

        
    }

    function editSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ctr_ady","type":"address"}],"name":"excemptContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_feeReceiver","type":"address"}],"name":"setMarketingFeeReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellMultiplier","type":"uint256"},{"internalType":"uint256","name":"_buyMultiplier","type":"uint256"},{"internalType":"uint256","name":"_maxWalletToken","type":"uint256"},{"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"setParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"toggle","type":"bool"}],"name":"toggleAntiMEV","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326012600a6200050d565b62000043906468c617140062000525565b6005819055600a60098190556064908190556014600b819055600c556010805460ff60a01b1916600160a01b17905561271091620000819162000525565b6200008d91906200053f565b6011556012805461ff00191690556014805460ff1916905560055461271090620000b990606462000525565b620000c591906200053f565b6015556127106005546064620000dc919062000525565b620000e891906200053f565b601655348015620000f857600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b81529051829163ad5c46489160048083019260209291908290030181865afa158015620001b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001df919062000562565b600280546001600160a01b0319166001600160a01b03928316179055600e546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200023e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000264919062000562565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dc919062000562565b601080546001600160a01b039283166001600160a01b031991821681178355600f805483169091179055306000818152600760209081526040808320600e8054891685529083528184206000199055600d805490961672d9ede2a1c0533e956987189861d6548645474e1786553380855260088452828520805460ff19908116600190811790925597548a16865283862080548916821790559585528285208054881687179055905488168452601383528184208054871686179055955490961682528582208054909416909217909255600554838352600682528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200058d565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200044f578160001904821115620004335762000433620003f8565b808516156200044157918102915b93841c939080029062000413565b509250929050565b600082620004685750600162000507565b81620004775750600062000507565b81600181146200049057600281146200049b57620004bb565b600191505062000507565b60ff841115620004af57620004af620003f8565b50506001821b62000507565b5060208310610133831016604e8410600b8410161715620004e0575081810a62000507565b620004ec83836200040e565b8060001904821115620005035762000503620003f8565b0290505b92915050565b60006200051e60ff84168362000457565b9392505050565b8082028115828204841417620005075762000507620003f8565b6000826200055d57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200057557600080fd5b81516001600160a01b03811681146200051e57600080fd5b611c7e806200059d6000396000f3fe6080604052600436106102025760003560e01c806377b54bad1161011d578063a9059cbb116100b0578063dd62ed3e1161007f578063edafd4ad11610064578063edafd4ad1461062c578063f2fde38b1461064c578063f887ea401461066c57600080fd5b8063dd62ed3e146105d0578063e6c75f711461061657600080fd5b8063a9059cbb1461055b578063b2bdfa7b1461057b578063d148b74c1461059b578063d78e139d146105b057600080fd5b80638c0b5e22116100ec5780638c0b5e22146104c15780638da5cb5b146104d757806395d89b41146104f5578063a8aa1b311461053b57600080fd5b806377b54bad1461043a5780637ece45e81461045a578063893d20e81461047a5780638a8c523c146104ac57600080fd5b806323b872dd116101955780634ada218b116101645780634ada218b146103b45780636ddd1713146103ce57806370a08231146103ef578063715018a61461042557600080fd5b806323b872dd1461034357806327dcb913146103635780632b112e4914610383578063313ce5671461039857600080fd5b8063095ea7b3116101d1578063095ea7b3146102d857806309fb5639146102f857806318160ddd146103185780631df4ccfc1461032d57600080fd5b806304368f651461020e5780630445b667146102305780630621472c1461025957806306fdde031461028957600080fd5b3661020957005b600080fd5b34801561021a57600080fd5b5061022e610229366004611952565b61068c565b005b34801561023c57600080fd5b5061024660115481565b6040519081526020015b60405180910390f35b34801561026557600080fd5b5061027961027436600461199a565b610716565b6040519015158152602001610250565b34801561029557600080fd5b5060408051808201909152600d81527f54696765724b696e6720322e300000000000000000000000000000000000000060208201525b60405161025091906119b5565b3480156102e457600080fd5b506102796102f3366004611a03565b61072a565b34801561030457600080fd5b5061022e610313366004611a1f565b610796565b34801561032457600080fd5b50600554610246565b34801561033957600080fd5b5061024660095481565b34801561034f57600080fd5b5061027961035e366004611a3c565b6107f8565b34801561036f57600080fd5b5061022e61037e36600461199a565b6108c1565b34801561038f57600080fd5b5061024661092d565b3480156103a457600080fd5b5060405160128152602001610250565b3480156103c057600080fd5b506014546102799060ff1681565b3480156103da57600080fd5b5060105461027990600160a01b900460ff1681565b3480156103fb57600080fd5b5061024661040a36600461199a565b6001600160a01b031660009081526006602052604090205490565b34801561043157600080fd5b5061022e61097f565b34801561044657600080fd5b50610279610455366004611a03565b610a1e565b34801561046657600080fd5b5061022e610475366004611a78565b610b7d565b34801561048657600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610250565b3480156104b857600080fd5b5061022e610bd9565b3480156104cd57600080fd5b5061024660165481565b3480156104e357600080fd5b506000546001600160a01b0316610494565b34801561050157600080fd5b5060408051808201909152600881527f544b494e47322e3000000000000000000000000000000000000000000000000060208201526102cb565b34801561054757600080fd5b50601054610494906001600160a01b031681565b34801561056757600080fd5b50610279610576366004611a03565b610c83565b34801561058757600080fd5b50600054610494906001600160a01b031681565b3480156105a757600080fd5b5061022e610c90565b3480156105bc57600080fd5b5061022e6105cb366004611aaa565b610ce2565b3480156105dc57600080fd5b506102466105eb366004611ac3565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561062257600080fd5b5061024660155481565b34801561063857600080fd5b5061022e61064736600461199a565b610d7e565b34801561065857600080fd5b5061022e61066736600461199a565b610df5565b34801561067857600080fd5b50600e54610494906001600160a01b031681565b6000546001600160a01b031633146106d95760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064015b60405180910390fd5b60108054921515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff90931692909217909155601155565b60006107248260001961072a565b92915050565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107859086815260200190565b60405180910390a350600192915050565b6000546001600160a01b031633146107de5760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b601280549115156101000261ff0019909216919091179055565b6001600160a01b0383166000908152600760209081526040808320338452909152812054600019146108ac57604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610887918490610f21565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6108b7848484610f5b565b90505b9392505050565b6000546001600160a01b031633146109095760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b6001600160a01b03166000908152601360205260409020805460ff19166001179055565b6004546001600160a01b031660009081526006602052604081205461097a906003546001600160a01b031660009081526006602052604090205461097490600554906113c2565b906113c2565b905090565b6000546001600160a01b031633146109c75760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600080546001600160a01b03163314610a675760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b81600003610af3576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af09190611af6565b91505b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610b59573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ba9190611b0f565b6000546001600160a01b03163314610bc55760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b600b93909355600c91909155601555601655565b6000546001600160a01b03163314610c215760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b60145460ff1615610c745760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642e000000000000000060448201526064016106d0565b6014805460ff19166001179055565b60006108ba338484610f5b565b6000546001600160a01b03163314610cd85760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b610ce0611404565b565b6000546001600160a01b03163314610d2a5760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b600d5447906001600160a01b03166108fc6064610d478585611b42565b610d519190611b59565b6040518115909202916000818181858888f19350505050158015610d79573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610dc65760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e3d5760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b6001600160a01b038116610eb95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106d0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60008184841115610f455760405162461bcd60e51b81526004016106d091906119b5565b506000610f528486611b7b565b95945050505050565b60145460009060ff1680610f7c57506000546001600160a01b038581169116145b80610f9457506000546001600160a01b038481169116145b610fe05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016106d0565b6010546001600160a01b0384811691161480159061100c57506004546001600160a01b03848116911614155b801561102657506003546001600160a01b03848116911614155b156110e5576015546001600160a01b038416600090815260066020526040902054611051908461158f565b11158061107657506001600160a01b03841660009081526008602052604090205460ff165b8061109957506001600160a01b03831660009081526008602052604090205460ff165b6110e55760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016106d0565b6010546001600160a01b03858116911614611192576016548211158061112357506001600160a01b03841660009081526008602052604090205460ff165b8061114657506001600160a01b03831660009081526008602052604090205460ff165b6111925760405162461bcd60e51b815260206004820152601160248201527f5458204c696d697420457863656564656400000000000000000000000000000060448201526064016106d0565b601254610100900460ff1680156111c257506001600160a01b03841660009081526013602052604090205460ff16155b80156111e757506001600160a01b03831660009081526013602052604090205460ff16155b1561124557823b15806111f95750833b155b6112455760405162461bcd60e51b815260206004820152600860248201527f416e7469204d455600000000000000000000000000000000000000000000000060448201526064016106d0565b60125460ff16156112625761125b8484846115ee565b90506108ba565b61126a6116dd565b1561127757611277611404565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b0387166000908152600690915291909120546112d2918490610f21565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff168061131f57506001600160a01b03841660009081526008602052604090205460ff165b6113335761132e858486611733565b611335565b825b6001600160a01b03851660009081526006602052604090205490915061135b908261158f565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113af9085815260200190565b60405180910390a3506001949350505050565b60006108ba83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f21565b6012805460ff19166001179055601154604080516002808252606082018352600092602083019080368337019050509050308160008151811061144957611449611b8e565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061147a5761147a611b8e565b6001600160a01b039283166020918202929092010152600e546040517f791ac9470000000000000000000000000000000000000000000000000000000081524792919091169063791ac947906114dd908690600090879030904290600401611ba4565b600060405180830381600087803b1580156114f757600080fd5b505af115801561150b573d6000803e3d6000fd5b50505050600061152482476113c290919063ffffffff16565b600d546040519192506000916001600160a01b039091169083908381818185875af1925050503d8060008114611576576040519150601f19603f3d011682016040523d82523d6000602084013e61157b565b606091505b50506012805460ff19169055505050505050565b60008061159c8385611c15565b9050838110156108ba5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106d0565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b0386166000908152600690915291822054611648918490610f21565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611677908361158f565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116cb9086815260200190565b60405180910390a35060019392505050565b6010546000906001600160a01b031633148015906116fe575060125460ff16155b80156117135750601054600160a01b900460ff165b801561097a57505060115430600090815260066020526040902054101590565b60105460009081906001600160a01b03908116908416036117575750600b54611772565b6010546001600160a01b03908116908616036117725750600c545b60006117ab600a5460646117869190611b42565b6117a58461179f6009548a61183890919063ffffffff16565b90611838565b906118d6565b3060009081526006602052604090205490915081906117ca908261158f565b30600081815260066020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061181b9085815260200190565b60405180910390a361182d86836113c2565b979650505050505050565b60008260000361184a57506000610724565b60006118568385611b42565b9050826118638583611b59565b146108ba5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016106d0565b60006108ba83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836119345760405162461bcd60e51b81526004016106d091906119b5565b506000610f528486611b59565b801515811461194f57600080fd5b50565b6000806040838503121561196557600080fd5b823561197081611941565b946020939093013593505050565b80356001600160a01b038116811461199557600080fd5b919050565b6000602082840312156119ac57600080fd5b6108ba8261197e565b600060208083528351808285015260005b818110156119e2578581018301518582016040015282016119c6565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611a1657600080fd5b6119708361197e565b600060208284031215611a3157600080fd5b81356108ba81611941565b600080600060608486031215611a5157600080fd5b611a5a8461197e565b9250611a686020850161197e565b9150604084013590509250925092565b60008060008060808587031215611a8e57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215611abc57600080fd5b5035919050565b60008060408385031215611ad657600080fd5b611adf8361197e565b9150611aed6020840161197e565b90509250929050565b600060208284031215611b0857600080fd5b5051919050565b600060208284031215611b2157600080fd5b81516108ba81611941565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761072457610724611b2c565b600082611b7657634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561072457610724611b2c565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bf45784516001600160a01b031683529383019391830191600101611bcf565b50506001600160a01b03969096166060850152505050608001529392505050565b8082018082111561072457610724611b2c56fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212201d3a26c5bbff712f74cfa3ff67d6accca7b0eaa4dcb06d033fe027194bf879d964736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102025760003560e01c806377b54bad1161011d578063a9059cbb116100b0578063dd62ed3e1161007f578063edafd4ad11610064578063edafd4ad1461062c578063f2fde38b1461064c578063f887ea401461066c57600080fd5b8063dd62ed3e146105d0578063e6c75f711461061657600080fd5b8063a9059cbb1461055b578063b2bdfa7b1461057b578063d148b74c1461059b578063d78e139d146105b057600080fd5b80638c0b5e22116100ec5780638c0b5e22146104c15780638da5cb5b146104d757806395d89b41146104f5578063a8aa1b311461053b57600080fd5b806377b54bad1461043a5780637ece45e81461045a578063893d20e81461047a5780638a8c523c146104ac57600080fd5b806323b872dd116101955780634ada218b116101645780634ada218b146103b45780636ddd1713146103ce57806370a08231146103ef578063715018a61461042557600080fd5b806323b872dd1461034357806327dcb913146103635780632b112e4914610383578063313ce5671461039857600080fd5b8063095ea7b3116101d1578063095ea7b3146102d857806309fb5639146102f857806318160ddd146103185780631df4ccfc1461032d57600080fd5b806304368f651461020e5780630445b667146102305780630621472c1461025957806306fdde031461028957600080fd5b3661020957005b600080fd5b34801561021a57600080fd5b5061022e610229366004611952565b61068c565b005b34801561023c57600080fd5b5061024660115481565b6040519081526020015b60405180910390f35b34801561026557600080fd5b5061027961027436600461199a565b610716565b6040519015158152602001610250565b34801561029557600080fd5b5060408051808201909152600d81527f54696765724b696e6720322e300000000000000000000000000000000000000060208201525b60405161025091906119b5565b3480156102e457600080fd5b506102796102f3366004611a03565b61072a565b34801561030457600080fd5b5061022e610313366004611a1f565b610796565b34801561032457600080fd5b50600554610246565b34801561033957600080fd5b5061024660095481565b34801561034f57600080fd5b5061027961035e366004611a3c565b6107f8565b34801561036f57600080fd5b5061022e61037e36600461199a565b6108c1565b34801561038f57600080fd5b5061024661092d565b3480156103a457600080fd5b5060405160128152602001610250565b3480156103c057600080fd5b506014546102799060ff1681565b3480156103da57600080fd5b5060105461027990600160a01b900460ff1681565b3480156103fb57600080fd5b5061024661040a36600461199a565b6001600160a01b031660009081526006602052604090205490565b34801561043157600080fd5b5061022e61097f565b34801561044657600080fd5b50610279610455366004611a03565b610a1e565b34801561046657600080fd5b5061022e610475366004611a78565b610b7d565b34801561048657600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610250565b3480156104b857600080fd5b5061022e610bd9565b3480156104cd57600080fd5b5061024660165481565b3480156104e357600080fd5b506000546001600160a01b0316610494565b34801561050157600080fd5b5060408051808201909152600881527f544b494e47322e3000000000000000000000000000000000000000000000000060208201526102cb565b34801561054757600080fd5b50601054610494906001600160a01b031681565b34801561056757600080fd5b50610279610576366004611a03565b610c83565b34801561058757600080fd5b50600054610494906001600160a01b031681565b3480156105a757600080fd5b5061022e610c90565b3480156105bc57600080fd5b5061022e6105cb366004611aaa565b610ce2565b3480156105dc57600080fd5b506102466105eb366004611ac3565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561062257600080fd5b5061024660155481565b34801561063857600080fd5b5061022e61064736600461199a565b610d7e565b34801561065857600080fd5b5061022e61066736600461199a565b610df5565b34801561067857600080fd5b50600e54610494906001600160a01b031681565b6000546001600160a01b031633146106d95760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064015b60405180910390fd5b60108054921515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff90931692909217909155601155565b60006107248260001961072a565b92915050565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107859086815260200190565b60405180910390a350600192915050565b6000546001600160a01b031633146107de5760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b601280549115156101000261ff0019909216919091179055565b6001600160a01b0383166000908152600760209081526040808320338452909152812054600019146108ac57604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b0387166000908152600782528381203382529091529190912054610887918490610f21565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6108b7848484610f5b565b90505b9392505050565b6000546001600160a01b031633146109095760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b6001600160a01b03166000908152601360205260409020805460ff19166001179055565b6004546001600160a01b031660009081526006602052604081205461097a906003546001600160a01b031660009081526006602052604090205461097490600554906113c2565b906113c2565b905090565b6000546001600160a01b031633146109c75760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600080546001600160a01b03163314610a675760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b81600003610af3576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af09190611af6565b91505b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610b59573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ba9190611b0f565b6000546001600160a01b03163314610bc55760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b600b93909355600c91909155601555601655565b6000546001600160a01b03163314610c215760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b60145460ff1615610c745760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642e000000000000000060448201526064016106d0565b6014805460ff19166001179055565b60006108ba338484610f5b565b6000546001600160a01b03163314610cd85760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b610ce0611404565b565b6000546001600160a01b03163314610d2a5760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b600d5447906001600160a01b03166108fc6064610d478585611b42565b610d519190611b59565b6040518115909202916000818181858888f19350505050158015610d79573d6000803e3d6000fd5b505050565b6000546001600160a01b03163314610dc65760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e3d5760405162461bcd60e51b81526020600482018190526024820152600080516020611c2983398151915260448201526064016106d0565b6001600160a01b038116610eb95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106d0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60008184841115610f455760405162461bcd60e51b81526004016106d091906119b5565b506000610f528486611b7b565b95945050505050565b60145460009060ff1680610f7c57506000546001600160a01b038581169116145b80610f9457506000546001600160a01b038481169116145b610fe05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016106d0565b6010546001600160a01b0384811691161480159061100c57506004546001600160a01b03848116911614155b801561102657506003546001600160a01b03848116911614155b156110e5576015546001600160a01b038416600090815260066020526040902054611051908461158f565b11158061107657506001600160a01b03841660009081526008602052604090205460ff165b8061109957506001600160a01b03831660009081526008602052604090205460ff165b6110e55760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e000060448201526064016106d0565b6010546001600160a01b03858116911614611192576016548211158061112357506001600160a01b03841660009081526008602052604090205460ff165b8061114657506001600160a01b03831660009081526008602052604090205460ff165b6111925760405162461bcd60e51b815260206004820152601160248201527f5458204c696d697420457863656564656400000000000000000000000000000060448201526064016106d0565b601254610100900460ff1680156111c257506001600160a01b03841660009081526013602052604090205460ff16155b80156111e757506001600160a01b03831660009081526013602052604090205460ff16155b1561124557823b15806111f95750833b155b6112455760405162461bcd60e51b815260206004820152600860248201527f416e7469204d455600000000000000000000000000000000000000000000000060448201526064016106d0565b60125460ff16156112625761125b8484846115ee565b90506108ba565b61126a6116dd565b1561127757611277611404565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b0387166000908152600690915291909120546112d2918490610f21565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff168061131f57506001600160a01b03841660009081526008602052604090205460ff165b6113335761132e858486611733565b611335565b825b6001600160a01b03851660009081526006602052604090205490915061135b908261158f565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113af9085815260200190565b60405180910390a3506001949350505050565b60006108ba83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f21565b6012805460ff19166001179055601154604080516002808252606082018352600092602083019080368337019050509050308160008151811061144957611449611b8e565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061147a5761147a611b8e565b6001600160a01b039283166020918202929092010152600e546040517f791ac9470000000000000000000000000000000000000000000000000000000081524792919091169063791ac947906114dd908690600090879030904290600401611ba4565b600060405180830381600087803b1580156114f757600080fd5b505af115801561150b573d6000803e3d6000fd5b50505050600061152482476113c290919063ffffffff16565b600d546040519192506000916001600160a01b039091169083908381818185875af1925050503d8060008114611576576040519150601f19603f3d011682016040523d82523d6000602084013e61157b565b606091505b50506012805460ff19169055505050505050565b60008061159c8385611c15565b9050838110156108ba5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106d0565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b0386166000908152600690915291822054611648918490610f21565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611677908361158f565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116cb9086815260200190565b60405180910390a35060019392505050565b6010546000906001600160a01b031633148015906116fe575060125460ff16155b80156117135750601054600160a01b900460ff165b801561097a57505060115430600090815260066020526040902054101590565b60105460009081906001600160a01b03908116908416036117575750600b54611772565b6010546001600160a01b03908116908616036117725750600c545b60006117ab600a5460646117869190611b42565b6117a58461179f6009548a61183890919063ffffffff16565b90611838565b906118d6565b3060009081526006602052604090205490915081906117ca908261158f565b30600081815260066020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061181b9085815260200190565b60405180910390a361182d86836113c2565b979650505050505050565b60008260000361184a57506000610724565b60006118568385611b42565b9050826118638583611b59565b146108ba5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f770000000000000000000000000000000000000000000000000000000000000060648201526084016106d0565b60006108ba83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836119345760405162461bcd60e51b81526004016106d091906119b5565b506000610f528486611b59565b801515811461194f57600080fd5b50565b6000806040838503121561196557600080fd5b823561197081611941565b946020939093013593505050565b80356001600160a01b038116811461199557600080fd5b919050565b6000602082840312156119ac57600080fd5b6108ba8261197e565b600060208083528351808285015260005b818110156119e2578581018301518582016040015282016119c6565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060408385031215611a1657600080fd5b6119708361197e565b600060208284031215611a3157600080fd5b81356108ba81611941565b600080600060608486031215611a5157600080fd5b611a5a8461197e565b9250611a686020850161197e565b9150604084013590509250925092565b60008060008060808587031215611a8e57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215611abc57600080fd5b5035919050565b60008060408385031215611ad657600080fd5b611adf8361197e565b9150611aed6020840161197e565b90509250929050565b600060208284031215611b0857600080fd5b5051919050565b600060208284031215611b2157600080fd5b81516108ba81611941565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761072457610724611b2c565b600082611b7657634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561072457610724611b2c565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bf45784516001600160a01b031683529383019391830191600101611bcf565b50506001600160a01b03969096166060850152505050608001529392505050565b8082018082111561072457610724611b2c56fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212201d3a26c5bbff712f74cfa3ff67d6accca7b0eaa4dcb06d033fe027194bf879d964736f6c63430008110033

Deployed Bytecode Sourcemap

6663:9251:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15595:156;;;;;;;;;;-1:-1:-1;15595:156:0;;;;;:::i;:::-;;:::i;:::-;;7598:57;;;;;;;;;;;;;;;;;;;597:25:1;;;585:2;570:18;7598:57:0;;;;;;;;9830:122;;;;;;;;;;-1:-1:-1;9830:122:0;;;;;:::i;:::-;;:::i;:::-;;;1190:14:1;;1183:22;1165:41;;1153:2;1138:18;9830:122:0;1025:187:1;9184:80:0;;;;;;;;;;-1:-1:-1;9256:5:0;;;;;;;;;;;;;;;;;9184:80;;;;;;;:::i;9606:216::-;;;;;;;;;;-1:-1:-1;9606:216:0;;;;;:::i;:::-;;:::i;12738:90::-;;;;;;;;;;-1:-1:-1;12738:90:0;;;;;:::i;:::-;;:::i;8914:88::-;;;;;;;;;;-1:-1:-1;8987:12:0;;8914:88;;7258:36;;;;;;;;;;;;;;;;10124:370;;;;;;;;;;-1:-1:-1;10124:370:0;;;;;:::i;:::-;;:::i;12464:112::-;;;;;;;;;;-1:-1:-1;12464:112:0;;;;;:::i;:::-;;:::i;15765:142::-;;;;;;;;;;;;;:::i;9008:80::-;;;;;;;;;;-1:-1:-1;9008:80:0;;7014:2;2750:36:1;;2738:2;2723:18;9008:80:0;2608:184:1;7777:34:0;;;;;;;;;;-1:-1:-1;7777:34:0;;;;;;;;7561:30;;;;;;;;;;-1:-1:-1;7561:30:0;;;;-1:-1:-1;;;7561:30:0;;;;;;9354:105;;;;;;;;;;-1:-1:-1;9354:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;9438:18:0;9420:7;9438:18;;;:9;:18;;;;;;;9354:105;4720:148;;;;;;;;;;;;;:::i;14603:276::-;;;;;;;;;;-1:-1:-1;14603:276:0;;;;;:::i;:::-;;:::i;13099:306::-;;;;;;;;;;-1:-1:-1;13099:306:0;;;;;:::i;:::-;;:::i;9270:78::-;;;;;;;;;;-1:-1:-1;9322:7:0;4571:6;-1:-1:-1;;;;;4571:6:0;9270:78;;;-1:-1:-1;;;;;3351:55:1;;;3333:74;;3321:2;3306:18;9270:78:0;3187:226:1;12584:146:0;;;;;;;;;;;;;:::i;7889:59::-;;;;;;;;;;;;;;;;4506:79;;;;;;;;;;-1:-1:-1;4544:7:0;4571:6;-1:-1:-1;;;;;4571:6:0;4506:79;;9094:84;;;;;;;;;;-1:-1:-1;9168:7:0;;;;;;;;;;;;;;;;;9094:84;;7533:19;;;;;;;;;;-1:-1:-1;7533:19:0;;;;-1:-1:-1;;;;;7533:19:0;;;9960:156;;;;;;;;;;-1:-1:-1;9960:156:0;;;;;:::i;:::-;;:::i;4126:21::-;;;;;;;;;;-1:-1:-1;4126:21:0;;;;-1:-1:-1;;;;;4126:21:0;;;14516:77;;;;;;;;;;;;;:::i;14294:213::-;;;;;;;;;;-1:-1:-1;14294:213:0;;;;;:::i;:::-;;:::i;9465:133::-;;;;;;;;;;-1:-1:-1;9465:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9567:19:0;;;9549:7;9567:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9465:133;7820:62;;;;;;;;;;;;;;;;12836:128;;;;;;;;;;-1:-1:-1;12836:128:0;;;;;:::i;:::-;;:::i;4876:244::-;;;;;;;;;;-1:-1:-1;4876:244:0;;;;;:::i;:::-;;:::i;7463:24::-;;;;;;;;;;-1:-1:-1;7463:24:0;;;;-1:-1:-1;;;;;7463:24:0;;;15595:156;4633:6;;-1:-1:-1;;;;;4633:6:0;3943:10;4633:22;4625:67;;;;-1:-1:-1;;;4625:67:0;;4319:2:1;4625:67:0;;;4301:21:1;;;4338:18;;;4331:30;-1:-1:-1;;;;;;;;;;;4377:18:1;;;4370:62;4449:18;;4625:67:0;;;;;;;;;15687:11:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;15687:22:0::1;::::0;;;::::1;::::0;;;::::1;::::0;;;15720:13:::1;:23:::0;15595:156::o;9830:122::-;9885:4;9909:35;9917:7;-1:-1:-1;;9909:7:0;:35::i;:::-;9902:42;9830:122;-1:-1:-1;;9830:122:0:o;9606:216::-;9710:10;9681:4;9698:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9698:32:0;;;;;;;;;;:41;;;9755:37;9681:4;;9698:32;;9755:37;;;;9733:6;597:25:1;;585:2;570:18;;451:177;9755:37:0;;;;;;;;-1:-1:-1;9810:4:0;9606:216;;;;:::o;12738:90::-;4633:6;;-1:-1:-1;;;;;4633:6:0;3943:10;4633:22;4625:67;;;;-1:-1:-1;;;4625:67:0;;4319:2:1;4625:67:0;;;4301:21:1;;;4338:18;;;4331:30;-1:-1:-1;;;;;;;;;;;4377:18:1;;;4370:62;4449:18;;4625:67:0;4117:356:1;4625:67:0;12804:7:::1;:16:::0;;;::::1;;;;-1:-1:-1::0;;12804:16:0;;::::1;::::0;;;::::1;::::0;;12738:90::o;10124:370::-;-1:-1:-1;;;;;10244:19:0;;10224:4;10244:19;;;:11;:19;;;;;;;;10264:10;10244:31;;;;;;;;-1:-1:-1;;10244:52:0;10241:186;;10346:69;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10346:19:0;;-1:-1:-1;10346:19:0;;;:11;:19;;;;;10366:10;10346:31;;;;;;;;;;:69;;10382:6;;10346:35;:69::i;:::-;-1:-1:-1;;;;;10312:19:0;;;;;;:11;:19;;;;;;;;10332:10;10312:31;;;;;;;:103;10241:186;10446:40;10460:6;10468:9;10479:6;10446:13;:40::i;:::-;10439:47;;10124:370;;;;;;:::o;12464:112::-;4633:6;;-1:-1:-1;;;;;4633:6:0;3943:10;4633:22;4625:67;;;;-1:-1:-1;;;4625:67:0;;4319:2:1;4625:67:0;;;4301:21:1;;;4338:18;;;4331:30;-1:-1:-1;;;;;;;;;;;4377:18:1;;;4370:62;4449:18;;4625:67:0;4117:356:1;4625:67:0;-1:-1:-1;;;;;12536:25:0::1;;::::0;;;:16:::1;:25;::::0;;;;:32;;-1:-1:-1;;12536:32:0::1;12564:4;12536:32;::::0;;12464:112::o;15765:142::-;15893:4;;-1:-1:-1;;;;;15893:4:0;15818:7;9438:18;;;:9;:18;;;;;;15845:54;;15872:4;;-1:-1:-1;;;;;15872:4:0;9420:7;9438:18;;;:9;:18;;;;;;15845:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;15838:61;;15765:142;:::o;4720:148::-;4633:6;;-1:-1:-1;;;;;4633:6:0;3943:10;4633:22;4625:67;;;;-1:-1:-1;;;4625:67:0;;4319:2:1;4625:67:0;;;4301:21:1;;;4338:18;;;4331:30;-1:-1:-1;;;;;;;;;;;4377:18:1;;;4370:62;4449:18;;4625:67:0;4117:356:1;4625:67:0;4827:1:::1;4811:6:::0;;4790:40:::1;::::0;-1:-1:-1;;;;;4811:6:0;;::::1;::::0;4790:40:::1;::::0;4827:1;;4790:40:::1;4858:1;4841:19:::0;;-1:-1:-1;;4841:19:0::1;::::0;;4720:148::o;14603:276::-;14694:4;4633:6;;-1:-1:-1;;;;;4633:6:0;3943:10;4633:22;4625:67;;;;-1:-1:-1;;;4625:67:0;;4319:2:1;4625:67:0;;;4301:21:1;;;4338:18;;;4331:30;-1:-1:-1;;;;;;;;;;;4377:18:1;;;4370:62;4449:18;;4625:67:0;4117:356:1;4625:67:0;14714:6:::1;14724:1;14714:11:::0;14711:95:::1;;14750:44;::::0;;;;14788:4:::1;14750:44;::::0;::::1;3333:74:1::0;-1:-1:-1;;;;;14750:29:0;::::1;::::0;::::1;::::0;3306:18:1;;14750:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14741:53;;14711:95;14823:48;::::0;;;;14852:10:::1;14823:48;::::0;::::1;4841:74:1::0;4931:18;;;4924:34;;;-1:-1:-1;;;;;14823:28:0;::::1;::::0;::::1;::::0;4814:18:1;;14823:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13099:306::-:0;4633:6;;-1:-1:-1;;;;;4633:6:0;3943:10;4633:22;4625:67;;;;-1:-1:-1;;;4625:67:0;;4319:2:1;4625:67:0;;;4301:21:1;;;4338:18;;;4331:30;-1:-1:-1;;;;;;;;;;;4377:18:1;;;4370:62;4449:18;;4625:67:0;4117:356:1;4625:67:0;13244:14:::1;:32:::0;;;;13287:13:::1;:30:::0;;;;13328:14:::1;:32:::0;13371:11:::1;:26:::0;13099:306::o;12584:146::-;4633:6;;-1:-1:-1;;;;;4633:6:0;3943:10;4633:22;4625:67;;;;-1:-1:-1;;;4625:67:0;;4319:2:1;4625:67:0;;;4301:21:1;;;4338:18;;;4331:30;-1:-1:-1;;;;;;;;;;;4377:18:1;;;4370:62;4449:18;;4625:67:0;4117:356:1;4625:67:0;12647:14:::1;::::0;::::1;;12646:15;12638:52;;;::::0;-1:-1:-1;;;12638:52:0;;5421:2:1;12638:52:0::1;::::0;::::1;5403:21:1::0;5460:2;5440:18;;;5433:30;5499:26;5479:18;;;5472:54;5543:18;;12638:52:0::1;5219:348:1::0;12638:52:0::1;12701:14;:21:::0;;-1:-1:-1;;12701:21:0::1;12718:4;12701:21;::::0;;12584:146::o;9960:156::-;10040:4;10064:44;10078:10;10090:9;10101:6;10064:13;:44::i;14516:77::-;4633:6;;-1:-1:-1;;;;;4633:6:0;3943:10;4633:22;4625:67;;;;-1:-1:-1;;;4625:67:0;;4319:2:1;4625:67:0;;;4301:21:1;;;4338:18;;;4331:30;-1:-1:-1;;;;;;;;;;;4377:18:1;;;4370:62;4449:18;;4625:67:0;4117:356:1;4625:67:0;14569:10:::1;:8;:10::i;:::-;14516:77::o:0;14294:213::-;4633:6;;-1:-1:-1;;;;;4633:6:0;3943:10;4633:22;4625:67;;;;-1:-1:-1;;;4625:67:0;;4319:2:1;4625:67:0;;;4301:21:1;;;4338:18;;;4331:30;-1:-1:-1;;;;;;;;;;;4377:18:1;;;4370:62;4449:18;;4625:67:0;4117:356:1;4625:67:0;14433:20:::1;::::0;14393:21:::1;::::0;-1:-1:-1;;;;;14433:20:0::1;14425:74;14495:3;14464:28;14476:16:::0;14393:21;14464:28:::1;:::i;:::-;:34;;;;:::i;:::-;14425:74;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14362:145;14294:213:::0;:::o;12836:128::-;4633:6;;-1:-1:-1;;;;;4633:6:0;3943:10;4633:22;4625:67;;;;-1:-1:-1;;;4625:67:0;;4319:2:1;4625:67:0;;;4301:21:1;;;4338:18;;;4331:30;-1:-1:-1;;;;;;;;;;;4377:18:1;;;4370:62;4449:18;;4625:67:0;4117:356:1;4625:67:0;12921:20:::1;:35:::0;;-1:-1:-1;;12921:35:0::1;-1:-1:-1::0;;;;;12921:35:0;;;::::1;::::0;;;::::1;::::0;;12836:128::o;4876:244::-;4633:6;;-1:-1:-1;;;;;4633:6:0;3943:10;4633:22;4625:67;;;;-1:-1:-1;;;4625:67:0;;4319:2:1;4625:67:0;;;4301:21:1;;;4338:18;;;4331:30;-1:-1:-1;;;;;;;;;;;4377:18:1;;;4370:62;4449:18;;4625:67:0;4117:356:1;4625:67:0;-1:-1:-1;;;;;4965:22:0;::::1;4957:73;;;::::0;-1:-1:-1;;;4957:73:0;;6415:2:1;4957:73:0::1;::::0;::::1;6397:21:1::0;6454:2;6434:18;;;6427:30;6493:34;6473:18;;;6466:62;6564:8;6544:18;;;6537:36;6590:19;;4957:73:0::1;6213:402:1::0;4957:73:0::1;5067:6;::::0;;5046:38:::1;::::0;-1:-1:-1;;;;;5046:38:0;;::::1;::::0;5067:6;::::1;::::0;5046:38:::1;::::0;::::1;5095:6;:17:::0;;-1:-1:-1;;5095:17:0::1;-1:-1:-1::0;;;;;5095:17:0;;;::::1;::::0;;;::::1;::::0;;4876:244::o;2107:192::-;2193:7;2229:12;2221:6;;;;2213:29;;;;-1:-1:-1;;;2213:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2253:9:0;2265:5;2269:1;2265;:5;:::i;:::-;2253:17;2107:192;-1:-1:-1;;;;;2107:192:0:o;10513:1380::-;10640:14;;10605:4;;10640:14;;;:35;;-1:-1:-1;4544:7:0;4571:6;-1:-1:-1;;;;;10658:17:0;;;4571:6;;10658:17;10640:35;:59;;;-1:-1:-1;4544:7:0;4571:6;-1:-1:-1;;;;;10679:20:0;;;4571:6;;10679:20;10640:59;10632:96;;;;-1:-1:-1;;;10632:96:0;;6955:2:1;10632:96:0;;;6937:21:1;6994:2;6974:18;;;6967:30;7033:26;7013:18;;;7006:54;7077:18;;10632:96:0;6753:348:1;10632:96:0;10766:4;;-1:-1:-1;;;;;10745:26:0;;;10766:4;;10745:26;;;;:56;;-1:-1:-1;10796:4:0;;-1:-1:-1;;;;;10775:26:0;;;10796:4;;10775:26;;10745:56;:86;;;;-1:-1:-1;10826:4:0;;-1:-1:-1;;;;;10805:26:0;;;10826:4;;10805:26;;10745:86;10741:261;;;10892:14;;-1:-1:-1;;;;;10855:20:0;;;;;;:9;:20;;;;;;:32;;10880:6;10855:24;:32::i;:::-;10854:52;;:75;;;-1:-1:-1;;;;;;10910:19:0;;;;;;:11;:19;;;;;;;;10854:75;:101;;;-1:-1:-1;;;;;;10933:22:0;;;;;;:11;:22;;;;;;;;10854:101;10846:144;;;;-1:-1:-1;;;10846:144:0;;7308:2:1;10846:144:0;;;7290:21:1;7347:2;7327:18;;;7320:30;7386:32;7366:18;;;7359:60;7436:18;;10846:144:0;7106:354:1;10846:144:0;11043:4;;-1:-1:-1;;;;;11025:23:0;;;11043:4;;11025:23;11022:155;;11083:11;;11073:6;:21;;:44;;;-1:-1:-1;;;;;;11098:19:0;;;;;;:11;:19;;;;;;;;11073:44;:70;;;-1:-1:-1;;;;;;11121:22:0;;;;;;:11;:22;;;;;;;;11073:70;11065:100;;;;-1:-1:-1;;;11065:100:0;;7667:2:1;11065:100:0;;;7649:21:1;7706:2;7686:18;;;7679:30;7745:19;7725:18;;;7718:47;7782:18;;11065:100:0;7465:341:1;11065:100:0;11211:7;;;;;;;:36;;;;-1:-1:-1;;;;;;11223:24:0;;;;;;:16;:24;;;;;;;;11222:25;11211:36;:68;;;;-1:-1:-1;;;;;;11252:27:0;;;;;;:16;:27;;;;;;;;11251:28;11211:68;11208:165;;;12374:20;;12432:8;;11303:45;;-1:-1:-1;12374:20:0;;12432:8;11303:45;11295:66;;;;-1:-1:-1;;;11295:66:0;;8013:2:1;11295:66:0;;;7995:21:1;8052:1;8032:18;;;8025:29;8090:10;8070:18;;;8063:38;8118:18;;11295:66:0;7811:331:1;11295:66:0;11392:6;;;;11389:63;;;11408:41;11423:6;11431:9;11442:6;11408:14;:41::i;:::-;11401:48;;;;11389:63;11467:16;:14;:16::i;:::-;11464:35;;;11486:10;:8;:10::i;:::-;11540:53;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11540:17:0;;-1:-1:-1;11540:17:0;;;:9;:17;;;;;;;;:53;;11562:6;;11540:21;:53::i;:::-;-1:-1:-1;;;;;11520:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11636:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11659:22:0;;;;;;:11;:22;;;;;;;;11636:45;11635:93;;11694:34;11702:6;11710;11718:9;11694:7;:34::i;:::-;11635:93;;;11685:6;11635:93;-1:-1:-1;;;;;11762:20:0;;;;;;:9;:20;;;;;;11610:118;;-1:-1:-1;11762:40:0;;11610:118;11762:24;:40::i;:::-;-1:-1:-1;;;;;11739:20:0;;;;;;;:9;:20;;;;;;;:63;;;;11820:43;;;;;;;;;;11848:14;597:25:1;;585:2;570:18;;451:177;11820:43:0;;;;;;;;-1:-1:-1;11881:4:0;;10513:1380;-1:-1:-1;;;;10513:1380:0:o;1965:136::-;2023:7;2050:43;2054:1;2057;2050:43;;;;;;;;;;;;;;;;;:3;:43::i;14897:690::-;7981:6;:13;;-1:-1:-1;;7981:13:0;7990:4;7981:13;;;14971::::1;::::0;15021:16:::1;::::0;;15035:1:::1;15021:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15021:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15021:16:0::1;14997:40;;15066:4;15048;15053:1;15048:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15048:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;15092:4:::1;::::0;15082:7;;15092:4;::::1;::::0;15082;;15092;;15082:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;15082:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;15167:6:::1;::::0;:188:::1;::::0;;;;15133:21:::1;::::0;15167:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;15239:12;;15109:21:::1;::::0;15282:4;;15309::::1;::::0;15329:15:::1;::::0;15167:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15368:17;15388:40;15414:13;15388:21;:25;;:40;;;;:::i;:::-;15480:20;::::0;15472:56:::1;::::0;15368:60;;-1:-1:-1;15452:15:0::1;::::0;-1:-1:-1;;;;;15480:20:0;;::::1;::::0;15368:60;;15452:15;15472:56;15452:15;15472:56;15368:60;15480:20;15472:56:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;7999:6:0;:14;;-1:-1:-1;;7999:14:0;;;-1:-1:-1;;;;;;14897:690:0:o;1778:181::-;1836:7;;1868:5;1872:1;1868;:5;:::i;:::-;1856:17;;1897:1;1892;:6;;1884:46;;;;-1:-1:-1;;;1884:46:0;;10098:2:1;1884:46:0;;;10080:21:1;10137:2;10117:18;;;10110:30;10176:29;10156:18;;;10149:57;10223:18;;1884:46:0;9896:351:1;11905:330:0;12035:53;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12035:17:0;;11998:4;12035:17;;;:9;:17;;;;;;;:53;;12057:6;;12035:21;:53::i;:::-;-1:-1:-1;;;;;12015:17:0;;;;;;;:9;:17;;;;;;:73;;;;12122:20;;;;;;;:32;;12147:6;12122:24;:32::i;:::-;-1:-1:-1;;;;;12099:20:0;;;;;;;:9;:20;;;;;;;:55;;;;12170:35;;;;;;;;;;12198:6;597:25:1;;585:2;570:18;;451:177;12170:35:0;;;;;;;;-1:-1:-1;12223:4:0;11905:330;;;;;:::o;14080:206::-;14175:4;;14129;;-1:-1:-1;;;;;14175:4:0;14153:10;:27;;;;:47;;-1:-1:-1;14194:6:0;;;;14193:7;14153:47;:71;;;;-1:-1:-1;14213:11:0;;-1:-1:-1;;;14213:11:0;;;;14153:71;:125;;;;-1:-1:-1;;14265:13:0;;14255:4;14237:24;;;;:9;:24;;;;;;:41;;;14080:206::o;13413:659::-;13588:4;;13499:7;;;;-1:-1:-1;;;;;13588:4:0;;;13567:26;;;;13564:173;;-1:-1:-1;13623:14:0;;13564:173;;;13677:4;;-1:-1:-1;;;;;13677:4:0;;;13659:23;;;;13655:82;;-1:-1:-1;13712:13:0;;13655:82;13749:17;13769:62;13810:14;;13827:3;13810:20;;;;:::i;:::-;13769:36;13794:10;13769:20;13780:8;;13769:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;13934:4;13844:22;13916:24;;;:9;:24;;;;;;13749:82;;-1:-1:-1;13749:82:0;;13916:44;;13749:82;13916:28;:44::i;:::-;13907:4;13889:24;;;;:9;:24;;;;;;;:71;;;;13976:47;;-1:-1:-1;;;;;13976:47:0;;;;;;;14008:14;597:25:1;;585:2;570:18;;451:177;13976:47:0;;;;;;;;14043:21;:6;14054:9;14043:10;:21::i;:::-;14036:28;13413:659;-1:-1:-1;;;;;;;13413:659:0:o;2305:250::-;2363:7;2387:1;2392;2387:6;2383:47;;-1:-1:-1;2417:1:0;2410:8;;2383:47;2442:9;2454:5;2458:1;2454;:5;:::i;:::-;2442:17;-1:-1:-1;2487:1:0;2478:5;2482:1;2442:17;2478:5;:::i;:::-;:10;2470:56;;;;-1:-1:-1;;;2470:56:0;;10454:2:1;2470:56:0;;;10436:21:1;10493:2;10473:18;;;10466:30;10532:34;10512:18;;;10505:62;10603:3;10583:18;;;10576:31;10624:19;;2470:56:0;10252:397:1;2561:132:0;2619:7;2646:39;2650:1;2653;2646:39;;;;;;;;;;;;;;;;;2785:7;2820:12;2813:5;2805:28;;;;-1:-1:-1;;;2805:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2844:9:0;2856:5;2860:1;2856;:5;:::i;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;66:60;14:118;:::o;137:309::-;202:6;210;263:2;251:9;242:7;238:23;234:32;231:52;;;279:1;276;269:12;231:52;318:9;305:23;337:28;359:5;337:28;:::i;:::-;384:5;436:2;421:18;;;;408:32;;-1:-1:-1;;;137:309:1:o;633:196::-;701:20;;-1:-1:-1;;;;;750:54:1;;740:65;;730:93;;819:1;816;809:12;730:93;633:196;;;:::o;834:186::-;893:6;946:2;934:9;925:7;921:23;917:32;914:52;;;962:1;959;952:12;914:52;985:29;1004:9;985:29;:::i;1217:548::-;1329:4;1358:2;1387;1376:9;1369:21;1419:6;1413:13;1462:6;1457:2;1446:9;1442:18;1435:34;1487:1;1497:140;1511:6;1508:1;1505:13;1497:140;;;1606:14;;;1602:23;;1596:30;1572:17;;;1591:2;1568:26;1561:66;1526:10;;1497:140;;;1501:3;1686:1;1681:2;1672:6;1661:9;1657:22;1653:31;1646:42;1756:2;1749;1745:7;1740:2;1732:6;1728:15;1724:29;1713:9;1709:45;1705:54;1697:62;;;;1217:548;;;;:::o;1770:254::-;1838:6;1846;1899:2;1887:9;1878:7;1874:23;1870:32;1867:52;;;1915:1;1912;1905:12;1867:52;1938:29;1957:9;1938:29;:::i;2029:241::-;2085:6;2138:2;2126:9;2117:7;2113:23;2109:32;2106:52;;;2154:1;2151;2144:12;2106:52;2193:9;2180:23;2212:28;2234:5;2212:28;:::i;2275:328::-;2352:6;2360;2368;2421:2;2409:9;2400:7;2396:23;2392:32;2389:52;;;2437:1;2434;2427:12;2389:52;2460:29;2479:9;2460:29;:::i;:::-;2450:39;;2508:38;2542:2;2531:9;2527:18;2508:38;:::i;:::-;2498:48;;2593:2;2582:9;2578:18;2565:32;2555:42;;2275:328;;;;;:::o;2797:385::-;2883:6;2891;2899;2907;2960:3;2948:9;2939:7;2935:23;2931:33;2928:53;;;2977:1;2974;2967:12;2928:53;-1:-1:-1;;3000:23:1;;;3070:2;3055:18;;3042:32;;-1:-1:-1;3121:2:1;3106:18;;3093:32;;3172:2;3157:18;3144:32;;-1:-1:-1;2797:385:1;-1:-1:-1;2797:385:1:o;3418:180::-;3477:6;3530:2;3518:9;3509:7;3505:23;3501:32;3498:52;;;3546:1;3543;3536:12;3498:52;-1:-1:-1;3569:23:1;;3418:180;-1:-1:-1;3418:180:1:o;3603:260::-;3671:6;3679;3732:2;3720:9;3711:7;3707:23;3703:32;3700:52;;;3748:1;3745;3738:12;3700:52;3771:29;3790:9;3771:29;:::i;:::-;3761:39;;3819:38;3853:2;3842:9;3838:18;3819:38;:::i;:::-;3809:48;;3603:260;;;;;:::o;4478:184::-;4548:6;4601:2;4589:9;4580:7;4576:23;4572:32;4569:52;;;4617:1;4614;4607:12;4569:52;-1:-1:-1;4640:16:1;;4478:184;-1:-1:-1;4478:184:1:o;4969:245::-;5036:6;5089:2;5077:9;5068:7;5064:23;5060:32;5057:52;;;5105:1;5102;5095:12;5057:52;5137:9;5131:16;5156:28;5178:5;5156:28;:::i;5572:184::-;-1:-1:-1;;;5621:1:1;5614:88;5721:4;5718:1;5711:15;5745:4;5742:1;5735:15;5761:168;5834:9;;;5865;;5882:15;;;5876:22;;5862:37;5852:71;;5903:18;;:::i;5934:274::-;5974:1;6000;5990:189;;-1:-1:-1;;;6032:1:1;6025:88;6136:4;6133:1;6126:15;6164:4;6161:1;6154:15;5990:189;-1:-1:-1;6193:9:1;;5934:274::o;6620:128::-;6687:9;;;6708:11;;;6705:37;;;6722:18;;:::i;8336:184::-;-1:-1:-1;;;8385:1:1;8378:88;8485:4;8482:1;8475:15;8509:4;8506:1;8499:15;8525:1026;8787:4;8835:3;8824:9;8820:19;8866:6;8855:9;8848:25;8892:2;8930:6;8925:2;8914:9;8910:18;8903:34;8973:3;8968:2;8957:9;8953:18;8946:31;8997:6;9032;9026:13;9063:6;9055;9048:22;9101:3;9090:9;9086:19;9079:26;;9140:2;9132:6;9128:15;9114:29;;9161:1;9171:218;9185:6;9182:1;9179:13;9171:218;;;9250:13;;-1:-1:-1;;;;;9246:62:1;9234:75;;9364:15;;;;9329:12;;;;9207:1;9200:9;9171:218;;;-1:-1:-1;;;;;;;9445:55:1;;;;9440:2;9425:18;;9418:83;-1:-1:-1;;;9532:3:1;9517:19;9510:35;9406:3;8525:1026;-1:-1:-1;;;8525:1026:1:o;9766:125::-;9831:9;;;9852:10;;;9849:36;;;9865:18;;:::i

Swarm Source

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