ETH Price: $3,315.87 (+1.72%)
Gas: 4 Gwei

Token

Grok Printer (GROKP)
 

Overview

Max Total Supply

100,000,000,000,000,000 GROKP

Holders

78

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
149,434,121,282,784 GROKP

Value
$0.00
0xa0fb7d45c528e59112719c90111484ba05dd8b22
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:
GrokPrinter

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-28
*/

// Website: https://grokprinter.xyz
// Twitter: https://twitter.com/GrokPrinter
// Telegram: https://t.me/GrokPrinter

// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'~
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^,,╓▄▄µ^^^^^^^^^^^^^^^^^^^^^^'~
// ^^^^^^^^^^^^^^^^^▄▄▄▓▓▓███████████▀▀█^^^^^^^^^^^^^^^^^^^^^'~
// ^^^^^^^^^^^^^^^^^███▀▀╙╙└─          █^^^^^^^^^^^^^^^^^^^^^'~
// ^^^^^^^^^^^^^^^^^█╣▌                █^^^^^^^^^^^^^^^^^^^^^'~
// ^^^^^^^^^^^^^^^^^█╣▌                █.,.^^^^^^^^^^^^^^^^^^'~
// ^^^^^^^^^^^^^^^^^█╣▌            ,╓▄▄█╙╙▀▄.^^^^^^^^^^^^^^^^'~
// ^^^^^^^^^^:██▀▀▀▀▀██▓▓████████████████▀  ╙█▄^^^^^^^^^^^^^^'~
// ^^^^^^^^^^:█╬█▄     ▀▀▀▀▀▀▀╙╙└              ▀█▄~^^^^^^^^^^'~
// ^^^^^^^^^^:█╬╬╬╬█▄                       ,  ▄ ╨▌~^^^^^^^^^'~
// ^^^^^^^^^^:█╬╬╬╬╬╬██                  ██ Φ▀╙╝▀ █⌐^^^^^^^^^'~
// ^^^^^^^^^^:█╬╬╬╬╬╬╬╬█                          ╫░^^^^^^^^^'~
// ^^^^^^^^^^:█╬╬╬╬╬╬╬╬█                     ,▄▄▄ ╫░^^^^^^^^^'~
// ^^^^^^^^^^:█╬╬╬╬╬╬╬╬█     ▄▄▄▄▄▓██████████████ ╫░^^^^^^^^^'~
// ^^^^^^^^^^^██▒╬╬╬╬╬╬█    ▐████████████████████ ╫░^^^^^^^^^'~
// ^^^^^^^^^^^^─▀██╬╬╬╬█    ▐███████████████▀▀▀▀▀▓█░^^^^^^^^^'~
// ^^^^^^^^^^^^^^'└▀██╬█    ▐██▀╙╙└─               ▀▓▄^^^^^^^'~
// ^^^^^^^^^^^^^^^^^^└▀█▌#▌▀▀████▄                   └█^^^^^^'~
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^╙▀███        ,▄▄▄▄▄#▌▀▀▀▀'^^^^^'~
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^╙▀▀▀▀▀▀╙╙╙└└^^^^^^^^^^^^^^^^'~
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'~
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'~

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.13;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    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);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner"); _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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 IDividendDistributor {
    function setShare(address shareholder, uint256 amount) external;
    function deposit(uint256 amount) external;
    function claimDividend(address shareholder) external;
    function getDividendsClaimedOf (address shareholder) external returns (uint256);
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address public _token;
    address public _owner;

    address public immutable GROK = address(0x8390a1DA07E376ef7aDd4Be859BA74Fb83aA02D5); //UNI


    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalClaimed;
    }

    address[] private shareholders;
    mapping (address => uint256) private shareholderIndexes;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalClaimed;
    uint256 public dividendsPerShare;
    uint256 private dividendsPerShareAccuracyFactor = 10 ** 36;

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }
    
    modifier onlyOwner() {
        require(msg.sender == _owner); _;
    }

    constructor (address owner) {
        _token = msg.sender;
        _owner = owner;
    }

    receive() external payable { }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit(uint256 amount) external override onlyToken {
        
        if (amount > 0) {        
            totalDividends = totalDividends.add(amount);
            dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
        }
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getClaimableDividendOf(shareholder);
        if(amount > 0){
            totalClaimed = totalClaimed.add(amount);
            shares[shareholder].totalClaimed = shares[shareholder].totalClaimed.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
            IERC20(GROK).transfer(shareholder, amount);
        }
    }

    function claimDividend(address shareholder) external override onlyToken {
        distributeDividend(shareholder);
    }

    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
    
    function manualSend(uint256 amount, address holder) external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(holder).transfer(amount > 0 ? amount : contractETHBalance);
    }


    function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        require (shares[shareholder].amount > 0, "You're not a PRINTER shareholder!");
        return shares[shareholder].totalClaimed;
    }

    }

contract GrokPrinter is IERC20, Auth {
    using SafeMath for uint256;

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

    address public immutable GROK = address(0x8390a1DA07E376ef7aDd4Be859BA74Fb83aA02D5); //UNI

    string private constant  _name = "Grok Printer";
    string private constant _symbol = "GROKP";
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 100000000 * (10 ** _decimals);
    uint256 private _maxTxAmountBuy = _totalSupply;
    

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

    mapping (address => bool) private isFeeExempt;
    mapping (address => bool) private isDividendExempt;
    mapping (address => bool) private isBot;
            
    uint256 private totalFee = 5;
    uint256 private feeDenominator = 100;

    address payable public marketingWallet = payable(0x666BAe394fF2A3387C776995de363FFb924c0976);

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool private tradingOpen;
    bool private buyLimit = true;
    uint256 private maxBuy = 1000000 * (10 ** _decimals);
    uint256 public numTokensSellToAddToLiquidity = 1000000 * 10**9;

    DividendDistributor private distributor;    
    
    bool public blacklistEnabled = false;
    bool private inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (
        address _owner        
    ) Auth(_owner) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        distributor = new DividendDistributor(_owner);

        isFeeExempt[_owner] = true;
        isFeeExempt[marketingWallet] = true;             
              
        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;        

        _balances[_owner] = _totalSupply;
    
        emit Transfer(address(0), _owner, _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 approveMax(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) {
        if (sender!= owner && recipient!= owner) require(tradingOpen, "Trading not yet enabled."); //transfers disabled before openTrading
        if (blacklistEnabled) {
            require (!isBot[sender] && !isBot[recipient], "Bot!");
        }
        if (buyLimit) { 
            if (sender!=owner && recipient!= owner) require (amount<=maxBuy, "Too much sir");        
        }

        if (sender == pair && recipient != address(router) && !isFeeExempt[recipient]) {
            require (cooldown[recipient] < block.timestamp);
            cooldown[recipient] = block.timestamp + 60 seconds; 
        }
       
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }      

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
    
        bool shouldSwapBack = (overMinTokenBalance && recipient==pair && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

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

        if(sender != pair && !isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} }
        if(recipient != pair && !isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} }

        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 shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) &&  (sender == pair || recipient == pair) );
   }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount;
        feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

   
    function swapBack() internal swapping {

        uint256 amountToSwap = balanceOf(address(this));        
        uint256 amountToSwapForEth = amountToSwap.div(5);

        swapTokensForEth(amountToSwapForEth);
        swapTokensForGROK(amountToSwap - amountToSwapForEth);

        uint256 dividends = IERC20(GROK).balanceOf(address(this));

        bool success = IERC20(GROK).transfer(address(distributor), dividends);

        if (success) {
            distributor.deposit(dividends);            
        }
             
        payable(marketingWallet).transfer(address(this).balance);        
    }
    

    function swapTokensForGROK(uint256 tokenAmount) private {

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

        // make the swap
        router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        
        // add the liquidity
        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner,
            block.timestamp
        );
    }

    
    function openTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }    
  
    
    function setBot(address _address, bool toggle) external onlyOwner {
        isBot[_address] = toggle;
        _setIsDividendExempt(_address, toggle);
    }
    
    
    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function setIsDividendExempt(address holder, bool exempt) external onlyOwner {
        _setIsDividendExempt(holder, exempt);
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setFee (uint256 _fee) external onlyOwner {
        require (_fee <= 5, "Fee can't exceed 5%");
        totalFee = _fee;
    }
  
    function manualSend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingWallet).transfer(contractETHBalance);
    }

    function claimDividend() external {
        distributor.claimDividend(msg.sender);
    }
    
    function claimDividend(address holder) external onlyOwner {
        distributor.claimDividend(holder);
    }
    
    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        return distributor.getClaimableDividendOf(shareholder);
    }
    
    function manualBurn(uint256 amount) external onlyOwner returns (bool) {
        return _basicTransfer(address(this), DEAD, amount);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    } 

    function getTotalDividends() external view returns (uint256) {
        return distributor.totalDividends();
    }    

    function getTotalClaimed() external view returns (uint256) {
        return distributor.totalClaimed();
    }

     function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        return distributor.getDividendsClaimedOf(shareholder);
    }

    function removeBuyLimit() external onlyOwner {
        buyLimit = false;
    }

    function checkBot(address account) public view returns (bool) {
        return isBot[account];
    }

    function setBlacklistEnabled() external onlyOwner {
        require (blacklistEnabled == false, "can only be called once");
        blacklistEnabled = true;
    }

    function setSwapThresholdAmount (uint256 amount) external onlyOwner {
        require (amount <= _totalSupply.div(100), "can't exceed 1%");
        numTokensSellToAddToLiquidity = amount * 10 ** 9;
    } 
   
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"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":"address","name":"owner","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":"GROK","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":"approveMax","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":"blacklistEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"checkBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getDividendsClaimedOf","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":"getTotalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setBlacklistEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"toggle","type":"bool"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","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":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052600280546001600160a01b031990811661dead17909155600380549091169055738390a1da07e376ef7add4be859ba74fb83aa02d56080526200004a6009600a6200051a565b6200005a906305f5e10062000532565b60048190556005908155600c556064600d55600e80546001600160a01b03191673666bae394ff2a3387c776995de363ffb924c09761790556012805461ff001916610100179055620000af6009600a6200051a565b620000be90620f424062000532565b60135566038d7ea4c680006014556015805460ff60a01b19169055348015620000e657600080fd5b506040516200342738038062003427833981016040819052620001099162000554565b600080546001600160a01b03199081166001600160a01b03841617909155600f8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000182573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a8919062000554565b600180546001600160a01b0319166001600160a01b03928316179055600f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000207573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022d919062000554565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200027f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a5919062000554565b601080546001600160a01b0319166001600160a01b03928316179055306000908152600760209081526040808320600f5490941683529290528190206000199055518190620002f490620003f7565b6001600160a01b039091168152602001604051809103906000f08015801562000321573d6000803e3d6000fd5b50601580546001600160a01b0319166001600160a01b039283161790558181166000818152600960209081526040808320805460ff199081166001908117909255600e5487168552828520805482168317905560105487168552600a8452828520805482168317905530855282852080548216831790556002549096168452818420805490961617909455600454838352600682528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200057f565b610d9f806200268883390190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200045c57816000190482111562000440576200044062000405565b808516156200044e57918102915b93841c939080029062000420565b509250929050565b600082620004755750600162000514565b81620004845750600062000514565b81600181146200049d5760028114620004a857620004c8565b600191505062000514565b60ff841115620004bc57620004bc62000405565b50506001821b62000514565b5060208310610133831016604e8410600b8410161715620004ed575081810a62000514565b620004f983836200041b565b806000190482111562000510576200051062000405565b0290505b92915050565b60006200052b60ff84168362000464565b9392505050565b60008160001904831182151516156200054f576200054f62000405565b500290565b6000602082840312156200056757600080fd5b81516001600160a01b03811681146200052b57600080fd5b6080516120d8620005b060003960008181610252015281816118780152818161191a0152611cc001526120d86000f3fe6080604052600436106102345760003560e01c806370a082311161012e578063bf56b371116100ab578063f0fc6bca1161006f578063f0fc6bca146106f7578063f2fde38b1461070c578063f42938901461072c578063f708a64f14610741578063f887ea401461076157600080fd5b8063bf56b3711461064f578063bffb691d14610665578063c9567bf914610686578063d12a76881461069b578063dd62ed3e146106b157600080fd5b80638ecc37fb116100f25780638ecc37fb1461058857806395d89b41146105a8578063a8aa1b31146105d6578063a9059cbb146105f6578063b1a4e0dc1461061657600080fd5b806370a08231146104ea578063736a83a11461052057806375f0a87414610535578063764ca51214610555578063893d20e81461056a57600080fd5b80632f54bf6e116101bc5780635cc33f74116101805780635cc33f74146104555780635d098b3814610475578063658d4b7f1461049557806367ee5f09146104b557806369fe0e2d146104ca57600080fd5b80632f54bf6e146103b5578063313ce567146103e4578063342aa8b5146104005780633e07ce5b14610420578063571ac8b01461043557600080fd5b806318160ddd1161020357806318160ddd1461032157806323b635851461034057806323b872dd1461036057806329e04b4a146103805780632b112e49146103a057600080fd5b806305efa0571461024057806306fdde0314610291578063095ea7b3146102cf57806315f7e05e146102ff57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b506102747f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561029d57600080fd5b5060408051808201909152600c81526b23b937b590283934b73a32b960a11b60208201525b6040516102889190611dba565b3480156102db57600080fd5b506102ef6102ea366004611e27565b610781565b6040519015158152602001610288565b34801561030b57600080fd5b5061031f61031a366004611e53565b6107ee565b005b34801561032d57600080fd5b506004545b604051908152602001610288565b34801561034c57600080fd5b506102ef61035b366004611e70565b610883565b34801561036c57600080fd5b506102ef61037b366004611e89565b6108c6565b34801561038c57600080fd5b5061031f61039b366004611e70565b610988565b3480156103ac57600080fd5b50610332610a15565b3480156103c157600080fd5b506102ef6103d0366004611e53565b6000546001600160a01b0391821691161490565b3480156103f057600080fd5b5060405160098152602001610288565b34801561040c57600080fd5b5061031f61041b366004611ed8565b610a67565b34801561042c57600080fd5b5061031f610ac3565b34801561044157600080fd5b506102ef610450366004611e53565b610afa565b34801561046157600080fd5b50610332610470366004611e53565b610b08565b34801561048157600080fd5b5061031f610490366004611e53565b610b78565b3480156104a157600080fd5b5061031f6104b0366004611ed8565b610bc4565b3480156104c157600080fd5b50610332610c19565b3480156104d657600080fd5b5061031f6104e5366004611e70565b610c87565b3480156104f657600080fd5b50610332610505366004611e53565b6001600160a01b031660009081526006602052604090205490565b34801561052c57600080fd5b50610332610cfd565b34801561054157600080fd5b50600e54610274906001600160a01b031681565b34801561056157600080fd5b5061031f610d47565b34801561057657600080fd5b506000546001600160a01b0316610274565b34801561059457600080fd5b506103326105a3366004611e53565b610de0565b3480156105b457600080fd5b50604080518082019091526005815264047524f4b560dc1b60208201526102c2565b3480156105e257600080fd5b50601054610274906001600160a01b031681565b34801561060257600080fd5b506102ef610611366004611e27565b610e13565b34801561062257600080fd5b506102ef610631366004611e53565b6001600160a01b03166000908152600b602052604090205460ff1690565b34801561065b57600080fd5b5061033260115481565b34801561067157600080fd5b506015546102ef90600160a01b900460ff1681565b34801561069257600080fd5b5061031f610e20565b3480156106a757600080fd5b5061033260145481565b3480156106bd57600080fd5b506103326106cc366004611f11565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561070357600080fd5b5061031f610e5d565b34801561071857600080fd5b5061031f610727366004611e53565b610ebc565b34801561073857600080fd5b5061031f610f3a565b34801561074d57600080fd5b5061031f61075c366004611ed8565b610f9e565b34801561076d57600080fd5b50600f54610274906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107dc9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108215760405162461bcd60e51b815260040161081890611f3f565b60405180910390fd5b601554604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b15801561086857600080fd5b505af115801561087c573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146108ae5760405162461bcd60e51b815260040161081890611f3f565b6002546107e89030906001600160a01b031684610fd2565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610973576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260078252838120338252909152919091205461094e9184906110b8565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61097e8484846110f2565b90505b9392505050565b6000546001600160a01b031633146109b25760405162461bcd60e51b815260040161081890611f3f565b6004546109c090606461161d565b811115610a015760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b6044820152606401610818565b610a0f81633b9aca00611f75565b60145550565b6003546001600160a01b0316600090815260066020526040812054610a62906002546001600160a01b0316600090815260066020526040902054610a5c906004549061165f565b9061165f565b905090565b6000546001600160a01b03163314610a915760405162461bcd60e51b815260040161081890611f3f565b6001600160a01b0382166000908152600b60205260409020805460ff1916821515179055610abf82826116a1565b5050565b6000546001600160a01b03163314610aed5760405162461bcd60e51b815260040161081890611f3f565b6012805461ff0019169055565b60006107e882600019610781565b601554604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610b54573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e89190611f94565b6000546001600160a01b03163314610ba25760405162461bcd60e51b815260040161081890611f3f565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610bee5760405162461bcd60e51b815260040161081890611f3f565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6015546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a629190611f94565b6000546001600160a01b03163314610cb15760405162461bcd60e51b815260040161081890611f3f565b6005811115610cf85760405162461bcd60e51b81526020600482015260136024820152724665652063616e27742065786365656420352560681b6044820152606401610818565b600c55565b6015546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c63573d6000803e3d6000fd5b6000546001600160a01b03163314610d715760405162461bcd60e51b815260040161081890611f3f565b601554600160a01b900460ff1615610dcb5760405162461bcd60e51b815260206004820152601760248201527f63616e206f6e6c792062652063616c6c6564206f6e63650000000000000000006044820152606401610818565b6015805460ff60a01b1916600160a01b179055565b601554604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610b37565b60006109813384846110f2565b6000546001600160a01b03163314610e4a5760405162461bcd60e51b815260040161081890611f3f565b436011556012805460ff19166001179055565b601554604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610ea257600080fd5b505af1158015610eb6573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610ee65760405162461bcd60e51b815260040161081890611f3f565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610f645760405162461bcd60e51b815260040161081890611f3f565b600e5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610abf573d6000803e3d6000fd5b6000546001600160a01b03163314610fc85760405162461bcd60e51b815260040161081890611f3f565b610abf82826116a1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546110239184906110b8565b6001600160a01b03808616600090815260066020526040808220939093559085168152205461105290836117b2565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110a69086815260200190565b60405180910390a35060019392505050565b600081848411156110dc5760405162461bcd60e51b81526004016108189190611dba565b5060006110e98486611fad565b95945050505050565b600080546001600160a01b0385811691161480159061111f57506000546001600160a01b03848116911614155b156111765760125460ff166111765760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610818565b601554600160a01b900460ff16156111ff576001600160a01b0384166000908152600b602052604090205460ff161580156111ca57506001600160a01b0383166000908152600b602052604090205460ff16155b6111ff5760405162461bcd60e51b815260040161081890602080825260049082015263426f742160e01b604082015260600190565b601254610100900460ff1615611281576000546001600160a01b0385811691161480159061123b57506000546001600160a01b03848116911614155b15611281576013548211156112815760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b6044820152606401610818565b6010546001600160a01b0385811691161480156112ac5750600f546001600160a01b03848116911614155b80156112d157506001600160a01b03831660009081526009602052604090205460ff16155b1561131f576001600160a01b03831660009081526008602052604090205442116112fa57600080fd5b61130542603c611fc4565b6001600160a01b0384166000908152600860205260409020555b601554600160a81b900460ff16156113435761133c848484610fd2565b9050610981565b30600090815260066020526040812054601454909190821080159190829061137857506010546001600160a01b038781169116145b8015611391575030600090815260066020526040812054115b905080156113a1576113a1611811565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600690915291909120546113f39187906110b8565b6001600160a01b0388166000908152600660205260408120919091556114198888611a3d565b611423578561142d565b61142d8887611ab2565b6001600160a01b03881660009081526006602052604090205490915061145390826117b2565b6001600160a01b0380891660009081526006602052604090209190915560105489821691161480159061149f57506001600160a01b0388166000908152600a602052604090205460ff16155b15611515576015546001600160a01b0389811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561150257600080fd5b505af1925050508015611513575060015b505b6010546001600160a01b0388811691161480159061154c57506001600160a01b0387166000908152600a602052604090205460ff16155b156115c2576015546001600160a01b0388811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156115af57600080fd5b505af19250505080156115c0575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161160791815260200190565b60405180910390a3506001979650505050505050565b600061098183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b5e565b600061098183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110b8565b6001600160a01b03821630148015906116c857506010546001600160a01b03838116911614155b6116d157600080fd5b6001600160a01b0382166000908152600a60205260409020805460ff1916821580159190911790915561176957601554604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b15801561174d57600080fd5b505af1158015611761573d6000803e3d6000fd5b505050505050565b6015546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401611733565b6000806117bf8385611fc4565b9050838110156109815760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610818565b6015805460ff60a81b1916600160a81b179055306000908152600660205260408120549050600061184382600561161d565b905061184e81611b8c565b61186061185b8284611fad565b611c37565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156118c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118eb9190611f94565b60155460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192506000917f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af1158015611965573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119899190611fdc565b905080156119f05760155460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b1580156119d757600080fd5b505af11580156119eb573d6000803e3d6000fd5b505050505b600e546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611a29573d6000803e3d6000fd5b50506015805460ff60a81b19169055505050565b6001600160a01b03821660009081526009602052604081205460ff1680611a7c57506001600160a01b03821660009081526009602052604090205460ff165b15801561098157506010546001600160a01b03848116911614806109815750506010546001600160a01b03908116911614919050565b600080611ad6600d54611ad0600c5486611d3890919063ffffffff16565b9061161d565b30600090815260066020526040902054909150611af390826117b2565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b449085815260200190565b60405180910390a3611b56838261165f565b949350505050565b60008183611b7f5760405162461bcd60e51b81526004016108189190611dba565b5060006110e98486611ff9565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611bc157611bc161201b565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611bf157611bf161201b565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac94790611733908590600090869030904290600401612031565b60408051600380825260808201909252600091602082016060803683370190505090503081600081518110611c6e57611c6e61201b565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611c9e57611c9e61201b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600281518110611cf257611cf261201b565b6001600160a01b039283166020918202929092010152600f54604051635c11d79560e01b8152911690635c11d79590611733908590600090869030904290600401612031565b600082600003611d4a575060006107e8565b6000611d568385611f75565b905082611d638583611ff9565b146109815760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610818565b600060208083528351808285015260005b81811015611de757858101830151858201604001528201611dcb565b81811115611df9576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611e2457600080fd5b50565b60008060408385031215611e3a57600080fd5b8235611e4581611e0f565b946020939093013593505050565b600060208284031215611e6557600080fd5b813561098181611e0f565b600060208284031215611e8257600080fd5b5035919050565b600080600060608486031215611e9e57600080fd5b8335611ea981611e0f565b92506020840135611eb981611e0f565b929592945050506040919091013590565b8015158114611e2457600080fd5b60008060408385031215611eeb57600080fd5b8235611ef681611e0f565b91506020830135611f0681611eca565b809150509250929050565b60008060408385031215611f2457600080fd5b8235611f2f81611e0f565b91506020830135611f0681611e0f565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611f8f57611f8f611f5f565b500290565b600060208284031215611fa657600080fd5b5051919050565b600082821015611fbf57611fbf611f5f565b500390565b60008219821115611fd757611fd7611f5f565b500190565b600060208284031215611fee57600080fd5b815161098181611eca565b60008261201657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120815784516001600160a01b03168352938301939183019160010161205c565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122098e5025bf42897d6ae150371230aa7737199a1b01fd188647e933a41e3631dd164736f6c634300080d003360a0604052738390a1da07e376ef7add4be859ba74fb83aa02d56080526ec097ce7bc90715b34b9f100000000060095534801561003b57600080fd5b50604051610d9f380380610d9f83398101604081905261005a9161008d565b60008054336001600160a01b031991821617909155600180549091166001600160a01b03929092169190911790556100bd565b60006020828403121561009f57600080fd5b81516001600160a01b03811681146100b657600080fd5b9392505050565b608051610cc16100de6000396000818160ff01526107410152610cc16000f3fe6080604052600436106100e15760003560e01c8063997664d71161007f578063ce7c2ac211610059578063ce7c2ac21461025a578063d54ad2a1146102b1578063e2d2e219146102c7578063ecd0c0c3146102dd57600080fd5b8063997664d714610204578063b2bdfa7b1461021a578063b6b55f251461023a57600080fd5b806315f7e05e116100bb57806315f7e05e146101805780633a98ef39146101a05780635cc33f74146101c45780638ecc37fb146101e457600080fd5b806305efa057146100ed5780631014edf51461013e57806314b6ca961461016057600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b506101217f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014a57600080fd5b5061015e610159366004610ad8565b6102fd565b005b34801561016c57600080fd5b5061015e61017b366004610b04565b61035d565b34801561018c57600080fd5b5061015e61019b366004610b2e565b6104d5565b3480156101ac57600080fd5b506101b660055481565b604051908152602001610135565b3480156101d057600080fd5b506101b66101df366004610b2e565b6104f8565b3480156101f057600080fd5b506101b66101ff366004610b2e565b61058b565b34801561021057600080fd5b506101b660065481565b34801561022657600080fd5b50600154610121906001600160a01b031681565b34801561024657600080fd5b5061015e610255366004610b49565b610616565b34801561026657600080fd5b50610296610275366004610b2e565b60046020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610135565b3480156102bd57600080fd5b506101b660075481565b3480156102d357600080fd5b506101b660085481565b3480156102e957600080fd5b50600054610121906001600160a01b031681565b6001546001600160a01b0316331461031457600080fd5b476001600160a01b0382166108fc8461032d578261032f565b845b6040518115909202916000818181858888f19350505050158015610357573d6000803e3d6000fd5b50505050565b6000546001600160a01b0316331461037457600080fd5b6001600160a01b0382166000908152600460205260409020541561039b5761039b82610670565b6000811180156103c157506001600160a01b038216600090815260046020526040902054155b1561042757600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b031916909117905561045a565b8015801561044c57506001600160a01b03821660009081526004602052604090205415155b1561045a5761045a826107b4565b6001600160a01b03821660009081526004602052604090205460055461048b918391610485916108c9565b90610914565b6005556001600160a01b03821660009081526004602052604090208190556104b281610973565b6001600160a01b0390921660009081526004602052604090206001019190915550565b6000546001600160a01b031633146104ec57600080fd5b6104f581610670565b50565b6001600160a01b03811660009081526004602052604081205461056c5760405162461bcd60e51b815260206004820152602160248201527f596f75277265206e6f742061205052494e544552207368617265686f6c6465726044820152602160f81b60648201526084015b60405180910390fd5b506001600160a01b031660009081526004602052604090206002015490565b6001600160a01b03811660009081526004602052604081205481036105b257506000919050565b6001600160a01b0382166000908152600460205260408120546105d490610973565b6001600160a01b038416600090815260046020526040902060010154909150808211610604575060009392505050565b61060e82826108c9565b949350505050565b6000546001600160a01b0316331461062d57600080fd5b80156104f5576006546106409082610914565b60065560055460095461066a916106619161065b9085610990565b90610a12565b60085490610914565b60085550565b6001600160a01b03811660009081526004602052604081205490036106925750565b600061069d8261058b565b905080156107b0576007546106b29082610914565b6007556001600160a01b0382166000908152600460205260409020600201546106db9082610914565b6001600160a01b038316600090815260046020526040902060028101919091555461070590610973565b6001600160a01b03838116600081815260046020819052604091829020600101949094555163a9059cbb60e01b815292830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb906044016020604051808303816000875af115801561078a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ae9190610b62565b505b5050565b600280546107c490600190610b9a565b815481106107d4576107d4610bb1565b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061081257610812610bb1565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526003918290526040812054600280549193929161085e90600190610b9a565b8154811061086e5761086e610bb1565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560028054806108a4576108a4610bc7565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061090b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a54565b90505b92915050565b6000806109218385610bdd565b90508381101561090b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610563565b600061090e60095461065b6008548561099090919063ffffffff16565b6000826000036109a25750600061090e565b60006109ae8385610bf5565b9050826109bb8583610c14565b1461090b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610563565b600061090b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610a8e565b60008184841115610a785760405162461bcd60e51b81526004016105639190610c36565b506000610a858486610b9a565b95945050505050565b60008183610aaf5760405162461bcd60e51b81526004016105639190610c36565b506000610a858486610c14565b80356001600160a01b0381168114610ad357600080fd5b919050565b60008060408385031215610aeb57600080fd5b82359150610afb60208401610abc565b90509250929050565b60008060408385031215610b1757600080fd5b610b2083610abc565b946020939093013593505050565b600060208284031215610b4057600080fd5b61090b82610abc565b600060208284031215610b5b57600080fd5b5035919050565b600060208284031215610b7457600080fd5b8151801515811461090b57600080fd5b634e487b7160e01b600052601160045260246000fd5b600082821015610bac57610bac610b84565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b60008219821115610bf057610bf0610b84565b500190565b6000816000190483118215151615610c0f57610c0f610b84565b500290565b600082610c3157634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015610c6357858101830151858201604001528201610c47565b81811115610c75576000604083870101525b50601f01601f191692909201604001939250505056fea264697066735822122049c0413d39265dbdcb1d9470fd790ac0d9ac97b76b4900135e2d5d8d232d7ccc64736f6c634300080d0033000000000000000000000000666bae394ff2a3387c776995de363ffb924c0976

Deployed Bytecode

0x6080604052600436106102345760003560e01c806370a082311161012e578063bf56b371116100ab578063f0fc6bca1161006f578063f0fc6bca146106f7578063f2fde38b1461070c578063f42938901461072c578063f708a64f14610741578063f887ea401461076157600080fd5b8063bf56b3711461064f578063bffb691d14610665578063c9567bf914610686578063d12a76881461069b578063dd62ed3e146106b157600080fd5b80638ecc37fb116100f25780638ecc37fb1461058857806395d89b41146105a8578063a8aa1b31146105d6578063a9059cbb146105f6578063b1a4e0dc1461061657600080fd5b806370a08231146104ea578063736a83a11461052057806375f0a87414610535578063764ca51214610555578063893d20e81461056a57600080fd5b80632f54bf6e116101bc5780635cc33f74116101805780635cc33f74146104555780635d098b3814610475578063658d4b7f1461049557806367ee5f09146104b557806369fe0e2d146104ca57600080fd5b80632f54bf6e146103b5578063313ce567146103e4578063342aa8b5146104005780633e07ce5b14610420578063571ac8b01461043557600080fd5b806318160ddd1161020357806318160ddd1461032157806323b635851461034057806323b872dd1461036057806329e04b4a146103805780632b112e49146103a057600080fd5b806305efa0571461024057806306fdde0314610291578063095ea7b3146102cf57806315f7e05e146102ff57600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b506102747f0000000000000000000000008390a1da07e376ef7add4be859ba74fb83aa02d581565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561029d57600080fd5b5060408051808201909152600c81526b23b937b590283934b73a32b960a11b60208201525b6040516102889190611dba565b3480156102db57600080fd5b506102ef6102ea366004611e27565b610781565b6040519015158152602001610288565b34801561030b57600080fd5b5061031f61031a366004611e53565b6107ee565b005b34801561032d57600080fd5b506004545b604051908152602001610288565b34801561034c57600080fd5b506102ef61035b366004611e70565b610883565b34801561036c57600080fd5b506102ef61037b366004611e89565b6108c6565b34801561038c57600080fd5b5061031f61039b366004611e70565b610988565b3480156103ac57600080fd5b50610332610a15565b3480156103c157600080fd5b506102ef6103d0366004611e53565b6000546001600160a01b0391821691161490565b3480156103f057600080fd5b5060405160098152602001610288565b34801561040c57600080fd5b5061031f61041b366004611ed8565b610a67565b34801561042c57600080fd5b5061031f610ac3565b34801561044157600080fd5b506102ef610450366004611e53565b610afa565b34801561046157600080fd5b50610332610470366004611e53565b610b08565b34801561048157600080fd5b5061031f610490366004611e53565b610b78565b3480156104a157600080fd5b5061031f6104b0366004611ed8565b610bc4565b3480156104c157600080fd5b50610332610c19565b3480156104d657600080fd5b5061031f6104e5366004611e70565b610c87565b3480156104f657600080fd5b50610332610505366004611e53565b6001600160a01b031660009081526006602052604090205490565b34801561052c57600080fd5b50610332610cfd565b34801561054157600080fd5b50600e54610274906001600160a01b031681565b34801561056157600080fd5b5061031f610d47565b34801561057657600080fd5b506000546001600160a01b0316610274565b34801561059457600080fd5b506103326105a3366004611e53565b610de0565b3480156105b457600080fd5b50604080518082019091526005815264047524f4b560dc1b60208201526102c2565b3480156105e257600080fd5b50601054610274906001600160a01b031681565b34801561060257600080fd5b506102ef610611366004611e27565b610e13565b34801561062257600080fd5b506102ef610631366004611e53565b6001600160a01b03166000908152600b602052604090205460ff1690565b34801561065b57600080fd5b5061033260115481565b34801561067157600080fd5b506015546102ef90600160a01b900460ff1681565b34801561069257600080fd5b5061031f610e20565b3480156106a757600080fd5b5061033260145481565b3480156106bd57600080fd5b506103326106cc366004611f11565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561070357600080fd5b5061031f610e5d565b34801561071857600080fd5b5061031f610727366004611e53565b610ebc565b34801561073857600080fd5b5061031f610f3a565b34801561074d57600080fd5b5061031f61075c366004611ed8565b610f9e565b34801561076d57600080fd5b50600f54610274906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107dc9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108215760405162461bcd60e51b815260040161081890611f3f565b60405180910390fd5b601554604051630afbf02f60e11b81526001600160a01b038381166004830152909116906315f7e05e90602401600060405180830381600087803b15801561086857600080fd5b505af115801561087c573d6000803e3d6000fd5b5050505050565b600080546001600160a01b031633146108ae5760405162461bcd60e51b815260040161081890611f3f565b6002546107e89030906001600160a01b031684610fd2565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610973576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260078252838120338252909152919091205461094e9184906110b8565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61097e8484846110f2565b90505b9392505050565b6000546001600160a01b031633146109b25760405162461bcd60e51b815260040161081890611f3f565b6004546109c090606461161d565b811115610a015760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b6044820152606401610818565b610a0f81633b9aca00611f75565b60145550565b6003546001600160a01b0316600090815260066020526040812054610a62906002546001600160a01b0316600090815260066020526040902054610a5c906004549061165f565b9061165f565b905090565b6000546001600160a01b03163314610a915760405162461bcd60e51b815260040161081890611f3f565b6001600160a01b0382166000908152600b60205260409020805460ff1916821515179055610abf82826116a1565b5050565b6000546001600160a01b03163314610aed5760405162461bcd60e51b815260040161081890611f3f565b6012805461ff0019169055565b60006107e882600019610781565b601554604051631730cfdd60e21b81526001600160a01b0383811660048301526000921690635cc33f74906024015b602060405180830381865afa158015610b54573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e89190611f94565b6000546001600160a01b03163314610ba25760405162461bcd60e51b815260040161081890611f3f565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610bee5760405162461bcd60e51b815260040161081890611f3f565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6015546040805163997664d760e01b815290516000926001600160a01b03169163997664d79160048083019260209291908290030181865afa158015610c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a629190611f94565b6000546001600160a01b03163314610cb15760405162461bcd60e51b815260040161081890611f3f565b6005811115610cf85760405162461bcd60e51b81526020600482015260136024820152724665652063616e27742065786365656420352560681b6044820152606401610818565b600c55565b6015546040805163d54ad2a160e01b815290516000926001600160a01b03169163d54ad2a19160048083019260209291908290030181865afa158015610c63573d6000803e3d6000fd5b6000546001600160a01b03163314610d715760405162461bcd60e51b815260040161081890611f3f565b601554600160a01b900460ff1615610dcb5760405162461bcd60e51b815260206004820152601760248201527f63616e206f6e6c792062652063616c6c6564206f6e63650000000000000000006044820152606401610818565b6015805460ff60a01b1916600160a01b179055565b601554604051638ecc37fb60e01b81526001600160a01b0383811660048301526000921690638ecc37fb90602401610b37565b60006109813384846110f2565b6000546001600160a01b03163314610e4a5760405162461bcd60e51b815260040161081890611f3f565b436011556012805460ff19166001179055565b601554604051630afbf02f60e11b81523360048201526001600160a01b03909116906315f7e05e90602401600060405180830381600087803b158015610ea257600080fd5b505af1158015610eb6573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610ee65760405162461bcd60e51b815260040161081890611f3f565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b03163314610f645760405162461bcd60e51b815260040161081890611f3f565b600e5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610abf573d6000803e3d6000fd5b6000546001600160a01b03163314610fc85760405162461bcd60e51b815260040161081890611f3f565b610abf82826116a1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526006909152918220546110239184906110b8565b6001600160a01b03808616600090815260066020526040808220939093559085168152205461105290836117b2565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110a69086815260200190565b60405180910390a35060019392505050565b600081848411156110dc5760405162461bcd60e51b81526004016108189190611dba565b5060006110e98486611fad565b95945050505050565b600080546001600160a01b0385811691161480159061111f57506000546001600160a01b03848116911614155b156111765760125460ff166111765760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610818565b601554600160a01b900460ff16156111ff576001600160a01b0384166000908152600b602052604090205460ff161580156111ca57506001600160a01b0383166000908152600b602052604090205460ff16155b6111ff5760405162461bcd60e51b815260040161081890602080825260049082015263426f742160e01b604082015260600190565b601254610100900460ff1615611281576000546001600160a01b0385811691161480159061123b57506000546001600160a01b03848116911614155b15611281576013548211156112815760405162461bcd60e51b815260206004820152600c60248201526b2a37b79036bab1b41039b4b960a11b6044820152606401610818565b6010546001600160a01b0385811691161480156112ac5750600f546001600160a01b03848116911614155b80156112d157506001600160a01b03831660009081526009602052604090205460ff16155b1561131f576001600160a01b03831660009081526008602052604090205442116112fa57600080fd5b61130542603c611fc4565b6001600160a01b0384166000908152600860205260409020555b601554600160a81b900460ff16156113435761133c848484610fd2565b9050610981565b30600090815260066020526040812054601454909190821080159190829061137857506010546001600160a01b038781169116145b8015611391575030600090815260066020526040812054115b905080156113a1576113a1611811565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600690915291909120546113f39187906110b8565b6001600160a01b0388166000908152600660205260408120919091556114198888611a3d565b611423578561142d565b61142d8887611ab2565b6001600160a01b03881660009081526006602052604090205490915061145390826117b2565b6001600160a01b0380891660009081526006602052604090209190915560105489821691161480159061149f57506001600160a01b0388166000908152600a602052604090205460ff16155b15611515576015546001600160a01b0389811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561150257600080fd5b505af1925050508015611513575060015b505b6010546001600160a01b0388811691161480159061154c57506001600160a01b0387166000908152600a602052604090205460ff16155b156115c2576015546001600160a01b0388811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156115af57600080fd5b505af19250505080156115c0575060015b505b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161160791815260200190565b60405180910390a3506001979650505050505050565b600061098183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b5e565b600061098183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110b8565b6001600160a01b03821630148015906116c857506010546001600160a01b03838116911614155b6116d157600080fd5b6001600160a01b0382166000908152600a60205260409020805460ff1916821580159190911790915561176957601554604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044015b600060405180830381600087803b15801561174d57600080fd5b505af1158015611761573d6000803e3d6000fd5b505050505050565b6015546001600160a01b0383811660008181526006602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401611733565b6000806117bf8385611fc4565b9050838110156109815760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610818565b6015805460ff60a81b1916600160a81b179055306000908152600660205260408120549050600061184382600561161d565b905061184e81611b8c565b61186061185b8284611fad565b611c37565b6040516370a0823160e01b81523060048201526000907f0000000000000000000000008390a1da07e376ef7add4be859ba74fb83aa02d56001600160a01b0316906370a0823190602401602060405180830381865afa1580156118c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118eb9190611f94565b60155460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529192506000917f0000000000000000000000008390a1da07e376ef7add4be859ba74fb83aa02d59091169063a9059cbb906044016020604051808303816000875af1158015611965573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119899190611fdc565b905080156119f05760155460405163b6b55f2560e01b8152600481018490526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b1580156119d757600080fd5b505af11580156119eb573d6000803e3d6000fd5b505050505b600e546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611a29573d6000803e3d6000fd5b50506015805460ff60a81b19169055505050565b6001600160a01b03821660009081526009602052604081205460ff1680611a7c57506001600160a01b03821660009081526009602052604090205460ff165b15801561098157506010546001600160a01b03848116911614806109815750506010546001600160a01b03908116911614919050565b600080611ad6600d54611ad0600c5486611d3890919063ffffffff16565b9061161d565b30600090815260066020526040902054909150611af390826117b2565b30600081815260066020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b449085815260200190565b60405180910390a3611b56838261165f565b949350505050565b60008183611b7f5760405162461bcd60e51b81526004016108189190611dba565b5060006110e98486611ff9565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611bc157611bc161201b565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611bf157611bf161201b565b6001600160a01b039283166020918202929092010152600f5460405163791ac94760e01b815291169063791ac94790611733908590600090869030904290600401612031565b60408051600380825260808201909252600091602082016060803683370190505090503081600081518110611c6e57611c6e61201b565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611c9e57611c9e61201b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000008390a1da07e376ef7add4be859ba74fb83aa02d581600281518110611cf257611cf261201b565b6001600160a01b039283166020918202929092010152600f54604051635c11d79560e01b8152911690635c11d79590611733908590600090869030904290600401612031565b600082600003611d4a575060006107e8565b6000611d568385611f75565b905082611d638583611ff9565b146109815760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610818565b600060208083528351808285015260005b81811015611de757858101830151858201604001528201611dcb565b81811115611df9576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611e2457600080fd5b50565b60008060408385031215611e3a57600080fd5b8235611e4581611e0f565b946020939093013593505050565b600060208284031215611e6557600080fd5b813561098181611e0f565b600060208284031215611e8257600080fd5b5035919050565b600080600060608486031215611e9e57600080fd5b8335611ea981611e0f565b92506020840135611eb981611e0f565b929592945050506040919091013590565b8015158114611e2457600080fd5b60008060408385031215611eeb57600080fd5b8235611ef681611e0f565b91506020830135611f0681611eca565b809150509250929050565b60008060408385031215611f2457600080fd5b8235611f2f81611e0f565b91506020830135611f0681611e0f565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611f8f57611f8f611f5f565b500290565b600060208284031215611fa657600080fd5b5051919050565b600082821015611fbf57611fbf611f5f565b500390565b60008219821115611fd757611fd7611f5f565b500190565b600060208284031215611fee57600080fd5b815161098181611eca565b60008261201657634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120815784516001600160a01b03168352938301939183019160010161205c565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122098e5025bf42897d6ae150371230aa7737199a1b01fd188647e933a41e3631dd164736f6c634300080d0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000666BAe394fF2A3387C776995de363FFb924c0976

-----Decoded View---------------
Arg [0] : _owner (address): 0x666BAe394fF2A3387C776995de363FFb924c0976

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000666BAe394fF2A3387C776995de363FFb924c0976


Deployed Bytecode Sourcemap

11480:11780:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11732:83;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;11732:83:0;;;;;;;;14215:80;;;;;;;;;;-1:-1:-1;14287:5:0;;;;;;;;;;;;-1:-1:-1;;;14287:5:0;;;;14215:80;;;;;;;:::i;14637:216::-;;;;;;;;;;-1:-1:-1;14637:216:0;;;;;:::i;:::-;;:::i;:::-;;;1445:14:1;;1438:22;1420:41;;1408:2;1393:18;14637:216:0;1280:187:1;21527:110:0;;;;;;;;;;-1:-1:-1;21527:110:0;;;;;:::i;:::-;;:::i;:::-;;13945:88;;;;;;;;;;-1:-1:-1;14018:12:0;;13945:88;;;1870:25:1;;;1858:2;1843:18;13945:88:0;1724:177:1;21817:139:0;;;;;;;;;;-1:-1:-1;21817:139:0;;;;;:::i;:::-;;:::i;15155:370::-;;;;;;;;;;-1:-1:-1;15155:370:0;;;;;:::i;:::-;;:::i;23045:206::-;;;;;;;;;;-1:-1:-1;23045:206:0;;;;;:::i;:::-;;:::i;21968:142::-;;;;;;;;;;;;;:::i;5008:103::-;;;;;;;;;;-1:-1:-1;5008:103:0;;;;;:::i;:::-;5063:4;5098:5;-1:-1:-1;;;;;5087:16:0;;;5098:5;;5087:16;;5008:103;14039:80;;;;;;;;;;-1:-1:-1;14039:80:0;;11967:1;2694:36:1;;2682:2;2667:18;14039:80:0;2552:184:1;20308:158:0;;;;;;;;;;-1:-1:-1;20308:158:0;;;;;:::i;:::-;;:::i;22674:80::-;;;;;;;;;;;;;:::i;14861:122::-;;;;;;;;;;-1:-1:-1;14861:122:0;;;;;:::i;:::-;;:::i;22509:157::-;;;;;;;;;;-1:-1:-1;22509:157:0;;;;;:::i;:::-;;:::i;22118:135::-;;;;;;;;;;-1:-1:-1;22118:135:0;;;;;:::i;:::-;;:::i;20969:119::-;;;;;;;;;;-1:-1:-1;20969:119:0;;;;;:::i;:::-;;:::i;22262:115::-;;;;;;;;;;;;;:::i;21096:137::-;;;;;;;;;;-1:-1:-1;21096:137:0;;;;;:::i;:::-;;:::i;14385:105::-;;;;;;;;;;-1:-1:-1;14385:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;14469:18:0;14451:7;14469:18;;;:9;:18;;;;;;;14385:105;22389:111;;;;;;;;;;;;;:::i;12537:92::-;;;;;;;;;;-1:-1:-1;12537:92:0;;;;-1:-1:-1;;;;;12537:92:0;;;22872:165;;;;;;;;;;;;;:::i;14301:78::-;;;;;;;;;;-1:-1:-1;14353:7:0;14371:5;-1:-1:-1;;;;;14371:5:0;14301:78;;21649:156;;;;;;;;;;-1:-1:-1;21649:156:0;;;;;:::i;:::-;;:::i;14125:84::-;;;;;;;;;;-1:-1:-1;14199:7:0;;;;;;;;;;;;-1:-1:-1;;;14199:7:0;;;;14125:84;;12669:19;;;;;;;;;;-1:-1:-1;12669:19:0;;;;-1:-1:-1;;;;;12669:19:0;;;14991:156;;;;;;;;;;-1:-1:-1;14991:156:0;;;;;:::i;:::-;;:::i;22762:102::-;;;;;;;;;;-1:-1:-1;22762:102:0;;;;;:::i;:::-;-1:-1:-1;;;;;22842:14:0;22818:4;22842:14;;;:5;:14;;;;;;;;;22762:102;12697:25;;;;;;;;;;;;;;;;12981:36;;;;;;;;;;-1:-1:-1;12981:36:0;;;;-1:-1:-1;;;12981:36:0;;;;;;20173:115;;;;;;;;;;;;;:::i;12854:62::-;;;;;;;;;;;;;;;;14496:133;;;;;;;;;;-1:-1:-1;14496:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;14598:19:0;;;14580:7;14598:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;14496:133;21425:90;;;;;;;;;;;;;:::i;5236:136::-;;;;;;;;;;-1:-1:-1;5236:136:0;;;;;:::i;:::-;;:::i;21243:174::-;;;;;;;;;;;;;:::i;20829:132::-;;;;;;;;;;-1:-1:-1;20829:132:0;;;;;:::i;:::-;;:::i;12638:24::-;;;;;;;;;;-1:-1:-1;12638:24:0;;;;-1:-1:-1;;;;;12638:24:0;;;14637:216;14741:10;14712:4;14729:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;14729:32:0;;;;;;;;;;:41;;;14786:37;14712:4;;14729:32;;14786:37;;;;14764:6;1870:25:1;;1858:2;1843:18;;1724:177;14786:37:0;;;;;;;;-1:-1:-1;14841:4:0;14637:216;;;;;:::o;21527:110::-;5063:4;5098:5;-1:-1:-1;;;;;5098:5:0;4915:10;5087:16;4899:38;;;;-1:-1:-1;;;4899:38:0;;;;;;;:::i;:::-;;;;;;;;;21596:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;21596:33:0;;-1:-1:-1;;;;;178:32:1;;;21596:33:0::1;::::0;::::1;160:51:1::0;21596:11:0;;::::1;::::0;:25:::1;::::0;133:18:1;;21596:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21527:110:::0;:::o;21817:139::-;21881:4;5098:5;;-1:-1:-1;;;;;5098:5:0;4915:10;5087:16;4899:38;;;;-1:-1:-1;;;4899:38:0;;;;;;;:::i;:::-;21935:4:::1;::::0;21905:43:::1;::::0;21928:4:::1;::::0;-1:-1:-1;;;;;21935:4:0::1;21941:6:::0;21905:14:::1;:43::i;15155:370::-:0;-1:-1:-1;;;;;15275:19:0;;15255:4;15275:19;;;:11;:19;;;;;;;;15295:10;15275:31;;;;;;;;-1:-1:-1;;15275:52:0;15272:186;;15377:69;;;;;;;;;;;-1:-1:-1;;;15377:69:0;;;;;;;;-1:-1:-1;;;;;15377:19:0;;-1:-1:-1;15377:19:0;;;:11;:19;;;;;15397:10;15377:31;;;;;;;;;;:69;;15413:6;;15377:35;:69::i;:::-;-1:-1:-1;;;;;15343:19:0;;;;;;:11;:19;;;;;;;;15363:10;15343:31;;;;;;;:103;15272:186;15477:40;15491:6;15499:9;15510:6;15477:13;:40::i;:::-;15470:47;;15155:370;;;;;;:::o;23045:206::-;5063:4;5098:5;-1:-1:-1;;;;;5098:5:0;4915:10;5087:16;4899:38;;;;-1:-1:-1;;;4899:38:0;;;;;;;:::i;:::-;23143:12:::1;::::0;:21:::1;::::0;23160:3:::1;23143:16;:21::i;:::-;23133:6;:31;;23124:60;;;::::0;-1:-1:-1;;;23124:60:0;;4890:2:1;23124:60:0::1;::::0;::::1;4872:21:1::0;4929:2;4909:18;;;4902:30;-1:-1:-1;;;4948:18:1;;;4941:45;5003:18;;23124:60:0::1;4688:339:1::0;23124:60:0::1;23227:16;:6:::0;23236:7:::1;23227:16;:::i;:::-;23195:29;:48:::0;-1:-1:-1;23045:206:0:o;21968:142::-;22096:4;;-1:-1:-1;;;;;22096:4:0;22021:7;14469:18;;;:9;:18;;;;;;22048:54;;22075:4;;-1:-1:-1;;;;;22075:4:0;14451:7;14469:18;;;:9;:18;;;;;;22048:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;22041:61;;21968:142;:::o;20308:158::-;5063:4;5098:5;-1:-1:-1;;;;;5098:5:0;4915:10;5087:16;4899:38;;;;-1:-1:-1;;;4899:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20385:15:0;::::1;;::::0;;;:5:::1;:15;::::0;;;;:24;;-1:-1:-1;;20385:24:0::1;::::0;::::1;;;::::0;;20420:38:::1;20385:15:::0;:24;20420:20:::1;:38::i;:::-;20308:158:::0;;:::o;22674:80::-;5063:4;5098:5;-1:-1:-1;;;;;5098:5:0;4915:10;5087:16;4899:38;;;;-1:-1:-1;;;4899:38:0;;;;;;;:::i;:::-;22730:8:::1;:16:::0;;-1:-1:-1;;22730:16:0::1;::::0;;22674:80::o;14861:122::-;14916:4;14940:35;14948:7;-1:-1:-1;;14940:7:0;:35::i;22509:157::-;22612:11;;:46;;-1:-1:-1;;;22612:46:0;;-1:-1:-1;;;;;178:32:1;;;22612:46:0;;;160:51:1;22585:7:0;;22612:11;;:33;;133:18:1;;22612:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;22118:135::-;5063:4;5098:5;-1:-1:-1;;;;;5098:5:0;4915:10;5087:16;4899:38;;;;-1:-1:-1;;;4899:38:0;;;;;;;:::i;:::-;22202:15:::1;:43:::0;;-1:-1:-1;;;;;;22202:43:0::1;-1:-1:-1::0;;;;;22202:43:0;;;::::1;::::0;;;::::1;::::0;;22118:135::o;20969:119::-;5063:4;5098:5;-1:-1:-1;;;;;5098:5:0;4915:10;5087:16;4899:38;;;;-1:-1:-1;;;4899:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21052:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;21052:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20969:119::o;22262:115::-;22341:11;;:28;;;-1:-1:-1;;;22341:28:0;;;;22314:7;;-1:-1:-1;;;;;22341:11:0;;:26;;:28;;;;;;;;;;;;;;:11;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;21096:137::-;5063:4;5098:5;-1:-1:-1;;;;;5098:5:0;4915:10;5087:16;4899:38;;;;-1:-1:-1;;;4899:38:0;;;;;;;:::i;:::-;21174:1:::1;21166:4;:9;;21157:42;;;::::0;-1:-1:-1;;;21157:42:0;;5728:2:1;21157:42:0::1;::::0;::::1;5710:21:1::0;5767:2;5747:18;;;5740:30;-1:-1:-1;;;5786:18:1;;;5779:49;5845:18;;21157:42:0::1;5526:343:1::0;21157:42:0::1;21210:8;:15:::0;21096:137::o;22389:111::-;22466:11;;:26;;;-1:-1:-1;;;22466:26:0;;;;22439:7;;-1:-1:-1;;;;;22466:11:0;;:24;;:26;;;;;;;;;;;;;;:11;:26;;;;;;;;;;;;;;22872:165;5063:4;5098:5;-1:-1:-1;;;;;5098:5:0;4915:10;5087:16;4899:38;;;;-1:-1:-1;;;4899:38:0;;;;;;;:::i;:::-;22942:16:::1;::::0;-1:-1:-1;;;22942:16:0;::::1;;;:25;22933:62;;;::::0;-1:-1:-1;;;22933:62:0;;6076:2:1;22933:62:0::1;::::0;::::1;6058:21:1::0;6115:2;6095:18;;;6088:30;6154:25;6134:18;;;6127:53;6197:18;;22933:62:0::1;5874:347:1::0;22933:62:0::1;23006:16;:23:::0;;-1:-1:-1;;;;23006:23:0::1;-1:-1:-1::0;;;23006:23:0::1;::::0;;22872:165::o;21649:156::-;21750:11;;:47;;-1:-1:-1;;;21750:47:0;;-1:-1:-1;;;;;178:32:1;;;21750:47:0;;;160:51:1;21723:7:0;;21750:11;;:34;;133:18:1;;21750:47:0;14:203:1;14991:156:0;15071:4;15095:44;15109:10;15121:9;15132:6;15095:13;:44::i;20173:115::-;5063:4;5098:5;-1:-1:-1;;;;;5098:5:0;4915:10;5087:16;4899:38;;;;-1:-1:-1;;;4899:38:0;;;;;;;:::i;:::-;20239:12:::1;20226:10;:25:::0;20262:11:::1;:18:::0;;-1:-1:-1;;20262:18:0::1;20276:4;20262:18;::::0;;20173:115::o;21425:90::-;21470:11;;:37;;-1:-1:-1;;;21470:37:0;;21496:10;21470:37;;;160:51:1;-1:-1:-1;;;;;21470:11:0;;;;:25;;133:18:1;;21470:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21425:90::o;5236:136::-;5063:4;5098:5;-1:-1:-1;;;;;5098:5:0;4915:10;5087:16;4899:38;;;;-1:-1:-1;;;4899:38:0;;;;;;;:::i;:::-;5312:5:::1;:11:::0;;-1:-1:-1;;;;;;5312:11:0::1;-1:-1:-1::0;;;;;5312:11:0;::::1;::::0;;::::1;::::0;;;5339:25:::1;::::0;160:51:1;;;5339:25:0::1;::::0;148:2:1;133:18;5339:25:0::1;;;;;;;5236:136:::0;:::o;21243:174::-;5063:4;5098:5;-1:-1:-1;;;;;5098:5:0;4915:10;5087:16;4899:38;;;;-1:-1:-1;;;4899:38:0;;;;;;;:::i;:::-;21364:15:::1;::::0;21356:53:::1;::::0;21324:21:::1;::::0;-1:-1:-1;;;;;21364:15:0::1;::::0;21356:53;::::1;;;::::0;21324:21;;21295:26:::1;21356:53:::0;21295:26;21356:53;21324:21;21364:15;21356:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;20829:132:::0;5063:4;5098:5;-1:-1:-1;;;;;5098:5:0;4915:10;5087:16;4899:38;;;;-1:-1:-1;;;4899:38:0;;;;;;;:::i;:::-;20917:36:::1;20938:6;20946;20917:20;:36::i;17297:330::-:0;17427:53;;;;;;;;;;;-1:-1:-1;;;17427:53:0;;;;;;;;-1:-1:-1;;;;;17427:17:0;;17390:4;17427:17;;;:9;:17;;;;;;;:53;;17449:6;;17427:21;:53::i;:::-;-1:-1:-1;;;;;17407:17:0;;;;;;;:9;:17;;;;;;:73;;;;17514:20;;;;;;;:32;;17539:6;17514:24;:32::i;:::-;-1:-1:-1;;;;;17491:20:0;;;;;;;:9;:20;;;;;;;:55;;;;17562:35;;;;;;;;;;17590:6;1870:25:1;;1858:2;1843:18;;1724:177;17562:35:0;;;;;;;;-1:-1:-1;17615:4:0;17297:330;;;;;:::o;2670:192::-;2756:7;2792:12;2784:6;;;;2776:29;;;;-1:-1:-1;;;2776:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2816:9:0;2828:5;2832:1;2828;:5;:::i;:::-;2816:17;2670:192;-1:-1:-1;;;;;2670:192:0:o;15533:1752::-;15625:4;15655:5;;-1:-1:-1;;;;;15646:14:0;;;15655:5;;15646:14;;;;:35;;-1:-1:-1;15676:5:0;;-1:-1:-1;;;;;15664:17:0;;;15676:5;;15664:17;;15646:35;15642:89;;;15691:11;;;;15683:48;;;;-1:-1:-1;;;15683:48:0;;6774:2:1;15683:48:0;;;6756:21:1;6813:2;6793:18;;;6786:30;6852:26;6832:18;;;6825:54;6896:18;;15683:48:0;6572:348:1;15683:48:0;15786:16;;-1:-1:-1;;;15786:16:0;;;;15782:102;;;-1:-1:-1;;;;;15829:13:0;;;;;;:5;:13;;;;;;;;15828:14;:35;;;;-1:-1:-1;;;;;;15847:16:0;;;;;;:5;:16;;;;;;;;15846:17;15828:35;15819:53;;;;-1:-1:-1;;;15819:53:0;;;;;;7127:2:1;7109:21;;;7166:1;7146:18;;;7139:29;-1:-1:-1;;;7199:2:1;7184:18;;7177:34;7243:2;7228:18;;6925:327;15819:53:0;15898:8;;;;;;;15894:130;;;15936:5;;-1:-1:-1;;;;;15928:13:0;;;15936:5;;15928:13;;;;:34;;-1:-1:-1;15957:5:0;;-1:-1:-1;;;;;15945:17:0;;;15957:5;;15945:17;;15928:34;15924:80;;;15981:6;;15973;:14;;15964:40;;;;-1:-1:-1;;;15964:40:0;;7459:2:1;15964:40:0;;;7441:21:1;7498:2;7478:18;;;7471:30;-1:-1:-1;;;7517:18:1;;;7510:42;7569:18;;15964:40:0;7257:336:1;15964:40:0;16050:4;;-1:-1:-1;;;;;16040:14:0;;;16050:4;;16040:14;:46;;;;-1:-1:-1;16079:6:0;;-1:-1:-1;;;;;16058:28:0;;;16079:6;;16058:28;;16040:46;:73;;;;-1:-1:-1;;;;;;16091:22:0;;;;;;:11;:22;;;;;;;;16090:23;16040:73;16036:219;;;-1:-1:-1;;;;;16139:19:0;;;;;;:8;:19;;;;;;16161:15;-1:-1:-1;16130:47:0;;;;;;16214:28;:15;16232:10;16214:28;:::i;:::-;-1:-1:-1;;;;;16192:19:0;;;;;;:8;:19;;;;;:50;16036:219;16277:6;;-1:-1:-1;;;16277:6:0;;;;16274:63;;;16293:41;16308:6;16316:9;16327:6;16293:14;:41::i;:::-;16286:48;;;;16274:63;16404:4;16355:28;14469:18;;;:9;:18;;;;;;16474:29;;14469:18;;16450:53;;;;;;16355:28;16450:53;;16543:38;;-1:-1:-1;16577:4:0;;-1:-1:-1;;;;;16566:15:0;;;16577:4;;16566:15;16543:38;:70;;;;-1:-1:-1;16603:4:0;16612:1;14469:18;;;:9;:18;;;;;;16585:28;16543:70;16520:94;;16628:14;16625:33;;;16645:10;:8;:10::i;:::-;16690:53;;;;;;;;;;;-1:-1:-1;;;16690:53:0;;;;;;;;-1:-1:-1;;;;;16690:17:0;;-1:-1:-1;16690:17:0;;;:9;:17;;;;;;;;:53;;16712:6;;16690:21;:53::i;:::-;-1:-1:-1;;;;;16670:17:0;;;;;;:9;:17;;;;;:73;;;;16781:32;16680:6;16803:9;16781:13;:32::i;:::-;:67;;16842:6;16781:67;;;16816:23;16824:6;16832;16816:7;:23::i;:::-;-1:-1:-1;;;;;16892:20:0;;;;;;:9;:20;;;;;;16756:92;;-1:-1:-1;16892:40:0;;16756:92;16892:24;:40::i;:::-;-1:-1:-1;;;;;16869:20:0;;;;;;;:9;:20;;;;;:63;;;;16958:4;;16948:14;;;16958:4;;16948:14;;;;:43;;-1:-1:-1;;;;;;16967:24:0;;;;;;:16;:24;;;;;;;;16966:25;16948:43;16945:114;;;16998:11;;-1:-1:-1;;;;;17027:17:0;;;16998:11;17027:17;;;:9;:17;;;;;;;;16998:47;;-1:-1:-1;;;16998:47:0;;;;;7905:51:1;;;;7972:18;;;7965:34;16998:11:0;;;:20;;7878:18:1;;16998:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16994:63;;17085:4;;-1:-1:-1;;;;;17072:17:0;;;17085:4;;17072:17;;;;:49;;-1:-1:-1;;;;;;17094:27:0;;;;;;:16;:27;;;;;;;;17093:28;17072:49;17069:126;;;17128:11;;-1:-1:-1;;;;;17160:20:0;;;17128:11;17160:20;;;:9;:20;;;;;;;;17128:53;;-1:-1:-1;;;17128:53:0;;;;;7905:51:1;;;;7972:18;;;7965:34;17128:11:0;;;:20;;7878:18:1;;17128:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17124:69;;17229:9;-1:-1:-1;;;;;17212:43:0;17221:6;-1:-1:-1;;;;;17212:43:0;;17240:14;17212:43;;;;1870:25:1;;1858:2;1843:18;;1724:177;17212:43:0;;;;;;;;-1:-1:-1;17273:4:0;;15533:1752;-1:-1:-1;;;;;;;15533:1752:0:o;3124:132::-;3182:7;3209:39;3213:1;3216;3209:39;;;;;;;;;;;;;;;;;:3;:39::i;2528:136::-;2586:7;2613:43;2617:1;2620;2613:43;;;;;;;;;;;;;;;;;:3;:43::i;20484:337::-;-1:-1:-1;;;;;20571:23:0;;20589:4;20571:23;;;;:41;;-1:-1:-1;20608:4:0;;-1:-1:-1;;;;;20598:14:0;;;20608:4;;20598:14;;20571:41;20563:50;;;;;;-1:-1:-1;;;;;20624:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;20624:33:0;;;;;;;;;;;;20668:146;;20693:11;;:31;;-1:-1:-1;;;20693:31:0;;-1:-1:-1;;;;;7923:32:1;;;20693:31:0;;;7905:51:1;20693:11:0;7972:18:1;;;7965:34;20693:11:0;;;;:20;;7878:18:1;;20693:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20308:158;;:::o;20668:146::-;20755:11;;-1:-1:-1;;;;;20784:17:0;;;20755:11;20784:17;;;:9;:17;;;;;;;;20755:47;;-1:-1:-1;;;20755:47:0;;;;;7905:51:1;;;;7972:18;;;7965:34;20755:11:0;;;:20;;7878:18:1;;20755:47:0;7731:274:1;2341:181:0;2399:7;;2431:5;2435:1;2431;:5;:::i;:::-;2419:17;;2460:1;2455;:6;;2447:46;;;;-1:-1:-1;;;2447:46:0;;8499:2:1;2447:46:0;;;8481:21:1;8538:2;8518:18;;;8511:30;8577:29;8557:18;;;8550:57;8624:18;;2447:46:0;8297:351:1;18219:621:0;13072:6;:13;;-1:-1:-1;;;;13072:13:0;-1:-1:-1;;;13072:13:0;;;18311:4:::1;-1:-1:-1::0;14469:18:0;;;:9;:18;;;;;;18270:47;-1:-1:-1;18336:26:0::1;18365:19;18270:47:::0;18382:1:::1;18365:16;:19::i;:::-;18336:48;;18397:36;18414:18;18397:16;:36::i;:::-;18444:52;18462:33;18477:18:::0;18462:12;:33:::1;:::i;:::-;18444:17;:52::i;:::-;18529:37;::::0;-1:-1:-1;;;18529:37:0;;18560:4:::1;18529:37;::::0;::::1;160:51:1::0;18509:17:0::1;::::0;18536:4:::1;-1:-1:-1::0;;;;;18529:22:0::1;::::0;::::1;::::0;133:18:1;;18529:37:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18624:11;::::0;18594:54:::1;::::0;-1:-1:-1;;;18594:54:0;;-1:-1:-1;;;;;18624:11:0;;::::1;18594:54;::::0;::::1;7905:51:1::0;7972:18;;;7965:34;;;18509:57:0;;-1:-1:-1;18579:12:0::1;::::0;18601:4:::1;18594:21:::0;;::::1;::::0;::::1;::::0;7878:18:1;;18594:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18579:69;;18665:7;18661:82;;;18689:11;::::0;:30:::1;::::0;-1:-1:-1;;;18689:30:0;;::::1;::::0;::::1;1870:25:1::0;;;-1:-1:-1;;;;;18689:11:0;;::::1;::::0;:19:::1;::::0;1843:18:1;;18689:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18661:82;18776:15;::::0;18768:56:::1;::::0;-1:-1:-1;;;;;18776:15:0;;::::1;::::0;18802:21:::1;18768:56:::0;::::1;;;::::0;18776:15:::1;18768:56:::0;18776:15;18768:56;18802:21;18776:15;18768:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13090:6:0;:14;;-1:-1:-1;;;;13090:14:0;;;-1:-1:-1;;;18219:621:0:o;17638:206::-;-1:-1:-1;;;;;17747:19:0;;17719:4;17747:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;17770:22:0;;;;;;:11;:22;;;;;;;;17747:45;17745:48;:90;;;;-1:-1:-1;17809:4:0;;-1:-1:-1;;;;;17799:14:0;;;17809:4;;17799:14;;:35;;-1:-1:-1;;17830:4:0;;-1:-1:-1;;;;;17830:4:0;;;17817:17;;;;17638:206;-1:-1:-1;17638:206:0:o;17852:354::-;17919:7;17939:17;17979:40;18004:14;;17979:20;17990:8;;17979:6;:10;;:20;;;;:::i;:::-;:24;;:40::i;:::-;18075:4;18057:24;;;;:9;:24;;;;;;17967:52;;-1:-1:-1;18057:39:0;;17967:52;18057:28;:39::i;:::-;18048:4;18030:24;;;;:9;:24;;;;;;;:66;;;;18112:42;;-1:-1:-1;;;;;18112:42:0;;;;;;;18144:9;1870:25:1;;1858:2;1843:18;;1724:177;18112:42:0;;;;;;;;18177:21;:6;18188:9;18177:10;:21::i;:::-;18170:28;17852:354;-1:-1:-1;;;;17852:354:0:o;3262:345::-;3348:7;3450:12;3443:5;3435:28;;;;-1:-1:-1;;;3435:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3474:9:0;3486:5;3490:1;3486;:5;:::i;19292:489::-;19444:16;;;19458:1;19444:16;;;;;;;;19420:21;;19444:16;;;;;;;;;;-1:-1:-1;19444:16:0;19420:40;;19489:4;19471;19476:1;19471:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19471:23:0;;;:7;;;;;;;;;:23;19515:4;;;19505:7;;19515:4;;;19505;;19515;19505:7;;;;;;:::i;:::-;-1:-1:-1;;;;;19505:14:0;;;:7;;;;;;;;;:14;19558:6;;:215;;-1:-1:-1;;;19558:215:0;;:6;;;:57;;:215;;19630:11;;19558:6;;19700:4;;19727;;19747:15;;19558:215;;;:::i;18854:430::-;18947:16;;;18961:1;18947:16;;;;;;;;;18923:21;;18947:16;;;;;;;;;;-1:-1:-1;18947:16:0;18923:40;;18992:4;18974;18979:1;18974:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18974:23:0;;;:7;;;;;;;;;:23;19018:4;;;19008:7;;19018:4;;;19008;;19018;19008:7;;;;;;:::i;:::-;;;;;;:14;-1:-1:-1;;;;;19008:14:0;;;-1:-1:-1;;;;;19008:14:0;;;;;19043:4;19033;19038:1;19033:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19033:14:0;;;:7;;;;;;;;;:14;19086:6;;:190;;-1:-1:-1;;;19086:190:0;;:6;;;:60;;:190;;19161:11;;19086:6;;19203:4;;19230;;19250:15;;19086:190;;;:::i;2868:250::-;2926:7;2950:1;2955;2950:6;2946:47;;-1:-1:-1;2980:1:0;2973:8;;2946:47;3005:9;3017:5;3021:1;3017;:5;:::i;:::-;3005:17;-1:-1:-1;3050:1:0;3041:5;3045:1;3005:17;3041:5;:::i;:::-;:10;3033:56;;;;-1:-1:-1;;;3033:56:0;;10576:2:1;3033:56:0;;;10558:21:1;10615:2;10595:18;;;10588:30;10654:34;10634:18;;;10627:62;-1:-1:-1;;;10705:18:1;;;10698:31;10746:19;;3033:56:0;10374:397:1;222:597;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;660:6;657:1;654:13;651:91;;;730:1;725:2;716:6;705:9;701:22;697:31;690:42;651:91;-1:-1:-1;803:2:1;782:15;-1:-1:-1;;778:29:1;763:45;;;;810:2;759:54;;222:597;-1:-1:-1;;;222:597:1:o;824:131::-;-1:-1:-1;;;;;899:31:1;;889:42;;879:70;;945:1;942;935:12;879:70;824:131;:::o;960:315::-;1028:6;1036;1089:2;1077:9;1068:7;1064:23;1060:32;1057:52;;;1105:1;1102;1095:12;1057:52;1144:9;1131:23;1163:31;1188:5;1163:31;:::i;:::-;1213:5;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;960:315:1:o;1472:247::-;1531:6;1584:2;1572:9;1563:7;1559:23;1555:32;1552:52;;;1600:1;1597;1590:12;1552:52;1639:9;1626:23;1658:31;1683:5;1658:31;:::i;1906:180::-;1965:6;2018:2;2006:9;1997:7;1993:23;1989:32;1986:52;;;2034:1;2031;2024:12;1986:52;-1:-1:-1;2057:23:1;;1906:180;-1:-1:-1;1906:180:1:o;2091:456::-;2168:6;2176;2184;2237:2;2225:9;2216:7;2212:23;2208:32;2205:52;;;2253:1;2250;2243:12;2205:52;2292:9;2279:23;2311:31;2336:5;2311:31;:::i;:::-;2361:5;-1:-1:-1;2418:2:1;2403:18;;2390:32;2431:33;2390:32;2431:33;:::i;:::-;2091:456;;2483:7;;-1:-1:-1;;;2537:2:1;2522:18;;;;2509:32;;2091:456::o;2741:118::-;2827:5;2820:13;2813:21;2806:5;2803:32;2793:60;;2849:1;2846;2839:12;2864:382;2929:6;2937;2990:2;2978:9;2969:7;2965:23;2961:32;2958:52;;;3006:1;3003;2996:12;2958:52;3045:9;3032:23;3064:31;3089:5;3064:31;:::i;:::-;3114:5;-1:-1:-1;3171:2:1;3156:18;;3143:32;3184:30;3143:32;3184:30;:::i;:::-;3233:7;3223:17;;;2864:382;;;;;:::o;3475:388::-;3543:6;3551;3604:2;3592:9;3583:7;3579:23;3575:32;3572:52;;;3620:1;3617;3610:12;3572:52;3659:9;3646:23;3678:31;3703:5;3678:31;:::i;:::-;3728:5;-1:-1:-1;3785:2:1;3770:18;;3757:32;3798:33;3757:32;3798:33;:::i;4354:329::-;4556:2;4538:21;;;4595:1;4575:18;;;4568:29;-1:-1:-1;;;4628:2:1;4613:18;;4606:36;4674:2;4659:18;;4354:329::o;5032:127::-;5093:10;5088:3;5084:20;5081:1;5074:31;5124:4;5121:1;5114:15;5148:4;5145:1;5138:15;5164:168;5204:7;5270:1;5266;5262:6;5258:14;5255:1;5252:21;5247:1;5240:9;5233:17;5229:45;5226:71;;;5277:18;;:::i;:::-;-1:-1:-1;5317:9:1;;5164:168::o;5337:184::-;5407:6;5460:2;5448:9;5439:7;5435:23;5431:32;5428:52;;;5476:1;5473;5466:12;5428:52;-1:-1:-1;5499:16:1;;5337:184;-1:-1:-1;5337:184:1:o;6442:125::-;6482:4;6510:1;6507;6504:8;6501:34;;;6515:18;;:::i;:::-;-1:-1:-1;6552:9:1;;6442:125::o;7598:128::-;7638:3;7669:1;7665:6;7662:1;7659:13;7656:39;;;7675:18;;:::i;:::-;-1:-1:-1;7711:9:1;;7598:128::o;8653:245::-;8720:6;8773:2;8761:9;8752:7;8748:23;8744:32;8741:52;;;8789:1;8786;8779:12;8741:52;8821:9;8815:16;8840:28;8862:5;8840:28;:::i;8903:217::-;8943:1;8969;8959:132;;9013:10;9008:3;9004:20;9001:1;8994:31;9048:4;9045:1;9038:15;9076:4;9073:1;9066:15;8959:132;-1:-1:-1;9105:9:1;;8903:217::o;9257:127::-;9318:10;9313:3;9309:20;9306:1;9299:31;9349:4;9346:1;9339:15;9373:4;9370:1;9363:15;9389:980;9651:4;9699:3;9688:9;9684:19;9730:6;9719:9;9712:25;9756:2;9794:6;9789:2;9778:9;9774:18;9767:34;9837:3;9832:2;9821:9;9817:18;9810:31;9861:6;9896;9890:13;9927:6;9919;9912:22;9965:3;9954:9;9950:19;9943:26;;10004:2;9996:6;9992:15;9978:29;;10025:1;10035:195;10049:6;10046:1;10043:13;10035:195;;;10114:13;;-1:-1:-1;;;;;10110:39:1;10098:52;;10205:15;;;;10170:12;;;;10146:1;10064:9;10035:195;;;-1:-1:-1;;;;;;;10286:32:1;;;;10281:2;10266:18;;10259:60;-1:-1:-1;;;10350:3:1;10335:19;10328:35;10247:3;9389:980;-1:-1:-1;;;9389:980:1:o

Swarm Source

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