ETH Price: $3,625.90 (+5.97%)

Token

Baby CryptoAI (Baby CryptoAI)
 

Overview

Max Total Supply

1,000,000,000 Baby CryptoAI

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000001 Baby CryptoAI

Value
$0.00
0x9132c5097c163f18199e73965572e4214d80b5c5
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:
BabyCryptoAI

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-03
*/

/*
https://medium.com/@BABYCAI/baby-cai-created-by-the-top-supporter-of-crypto-ai-tokens-is-a-new-and-exciting-rewards-token-in-2e8d39b5fba

*/
// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.13;
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;
    }
}

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

abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner"); _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    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 ICryptoaiPrinter {
    function setCryptoai (address cryptoaiAddress) external;
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
    function goCRYPTOAI(address shareholder) external;
}


contract CryptoaiPrinter is ICryptoaiPrinter {

    using SafeMath for uint256;
    address _token;

    address public Cryptoai;

    IDEXRouter router;

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

    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;
    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;

    uint256 public minPeriod = 60 minutes;
    uint256 public minDistribution = 1 / 100000 * (10 ** 18);

    uint256 public currentIndex;
    bool initialized;

    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

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

    constructor () {
        _token = msg.sender;
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        Cryptoai = 0xf36C5f04127F7470834ed6f98bDDC1BE62aba48D;
    }
    
    receive() external payable {
        deposit();
    }

    function setCryptoai(address cryptoaiAddress) external override onlyToken {
        Cryptoai = cryptoaiAddress;
    }

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken {
        minPeriod = newMinPeriod;
        minDistribution = newMinDistribution;
    }

    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() public payable override {

        uint256 balanceBefore = IERC20(Cryptoai).balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(Cryptoai);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amount = IERC20(Cryptoai).balanceOf(address(this)).sub(balanceBefore);
        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }
    
    function process(uint256 gas) external override {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 iterations = 0;
        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        while(gasUsed < gas && iterations < shareholderCount) {

            if(currentIndex >= shareholderCount){ currentIndex = 0; }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
    
    function shouldDistribute(address shareholder) public view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

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

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            IERC20(Cryptoai).transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function goCRYPTOAI(address) external override onlyToken {
        require(shouldDistribute(msg.sender), "Cryptoai not rdy yet!");
        distributeDividend(msg.sender);
    }

    function getUnpaidEarnings(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();
    }
}

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

    address public Cryptoai = 0xf36C5f04127F7470834ed6f98bDDC1BE62aba48D; //CRYPTOAI 

    string private constant _name = "Baby CryptoAI";
    string private constant _symbol = "Baby CryptoAI";
    uint8 private constant _decimals = 18;
    
    uint256 private _totalSupply = 1_000_000_000 * (10 ** _decimals);

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

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

    bool public antiBot = true;

    mapping (address => bool) private bots; 
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isDividendExempt;

    uint256 public launchedAt;
    address private lpWallet = 0xE101BB9A4B56dCEEf350601E7a14cB0B781E8F17;//

    uint256 public buyFee = 20;//
    uint256 public sellFee = 40;//

    uint256 public toReflections = 50;//
    uint256 public toLiquidity = 0;
    uint256 public toMarketing = 50;//

    uint256 public allocationSum = 100;

    IDEXRouter public router;
    address public pair;
    address public factory;
    address private tokenOwner;
    address public devWallet = 0xE101BB9A4B56dCEEf350601E7a14cB0B781E8F17;//
    

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = false;
    
    CryptoaiPrinter public cryptoaiPrinter;
    uint256 public cryptoaiPrinterGas = 5000;

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

    uint256 public maxTx = _totalSupply.mul(2).div(100);
    uint256 public maxWallet = _totalSupply.mul(2).div(100);
    uint256 public swapThreshold = _totalSupply.mul(5).div(10000);

    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;

        cryptoaiPrinter = new CryptoaiPrinter();
        
        isFeeExempt[_owner] = true;
        isFeeExempt[devWallet] = true;             

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

        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;    


        _balances[_owner] = _totalSupply;
    
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function _setCryptoai(address cryptoaiAddress) internal {
        cryptoaiPrinter.setCryptoai(cryptoaiAddress);
    }

    function setCryptoai(address cryptoaiAddress) external onlyOwner {
        Cryptoai = cryptoaiAddress;
        _setCryptoai(cryptoaiAddress);
    }

    function setBots(address[] memory bots_) external onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    //once enabled, cannot be reversed
    function openTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }      

    function changeTotalFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {

        buyFee = newBuyFee;
        sellFee = newSellFee;

        require(buyFee <= 20, "don be greedy DEV");
        require(sellFee <= 40, "don be greedy DEV");
    } 
    
    function changeFeeAllocation(uint256 newRewardFee, uint256 newLpFee, uint256 newMarketingFee) external onlyOwner {
        toReflections = newRewardFee;
        toLiquidity = newLpFee;
        toMarketing = newMarketingFee;
    }

    function changeTxLimit(uint256 amountPercent) external onlyOwner {
        require(amountPercent>1);
        maxTx = (_totalSupply * amountPercent ) / 100;
    }

    function changeWalletLimit(uint256 amountPercent) external onlyOwner {
        require(amountPercent>1);
        maxWallet = (_totalSupply * amountPercent ) / 100;
    }

     function removeLimits() external onlyOwner{
        maxTx = _totalSupply;
        maxWallet = _totalSupply;
    }
    
    function changeIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

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

    function setDevWallet(address payable newDevWallet) external onlyOwner {
        devWallet = payable(newDevWallet);
    }

    function setLpWallet(address newLpWallet) external onlyOwner {
        lpWallet = newLpWallet;
    }    

    function setOwnerWallet(address payable newOwnerWallet) external onlyOwner {
        tokenOwner = newOwnerWallet;
    }     

    function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner {
        swapAndLiquifyEnabled  = enableSwapBack;
        swapThreshold = newSwapBackLimit;
    }

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external onlyOwner {
        cryptoaiPrinter.setDistributionCriteria(newMinPeriod, newMinDistribution);        
    }

    function delBot(address notbot) external onlyOwner {
        bots[notbot] = false;
    }

    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            cryptoaiPrinter.setShare(holder, 0);
        }else{
            cryptoaiPrinter.setShare(holder, _balances[holder]);
        }
    }

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

    function changeCryptoaiPrinterGas(uint256 newGas) external onlyOwner {
        cryptoaiPrinterGas = newGas;
    }           

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

    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 _transfer(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 _transfer(sender, recipient, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (sender!= owner && recipient!= owner) require(tradingOpen, "hold ur horses big guy."); //transfers disabled before tradingActive
        require(!bots[sender] && !bots[recipient]);

        if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }

        require(amount <= maxTx || isTxLimitExempt[sender], "tx");

        if(!isTxLimitExempt[recipient] && antiBot)
        {
            require(_balances[recipient].add(amount) <= maxWallet, "wallet");
        }

        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        
        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        // Dividend tracker
        if(!isDividendExempt[sender]) {
            try cryptoaiPrinter.setShare(sender, _balances[sender]) {} catch {}
        }

        if(!isDividendExempt[recipient]) {
            try cryptoaiPrinter.setShare(recipient, _balances[recipient]) {} catch {} 
        }

        emit Transfer(sender, recipient, finalAmount);
        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 takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeApplicable = pair == recipient ? sellFee : buyFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

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

        return amount.sub(feeAmount);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {

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

        approve(address(this), tokenAmount);

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpWallet,
            block.timestamp
        );
    }

    function swapBack() internal lockTheSwap {
    
        uint256 tokenBalance = _balances[address(this)]; 
        uint256 tokensForLiquidity = tokenBalance.mul(toLiquidity).div(100).div(2);     
        uint256 amountToSwap = tokenBalance.sub(tokensForLiquidity);

        swapTokensForEth(amountToSwap);

        uint256 totalEthBalance = address(this).balance;
        uint256 ethForCryptoai = totalEthBalance.mul(toReflections).div(100);
        uint256 ethForMarketing = totalEthBalance.mul(toMarketing).div(100);
        uint256 ethForLiquidity = totalEthBalance.mul(toLiquidity).div(100).div(2);
      
        if (totalEthBalance > 0){
            payable(devWallet).transfer(ethForMarketing);
        }
        
        try cryptoaiPrinter.deposit{value: ethForCryptoai}() {} catch {}
        
        if (tokensForLiquidity > 0){
            addLiquidity(tokensForLiquidity, ethForLiquidity);
        }
    }

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

    function clearStuckEth() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0){          
            payable(devWallet).transfer(contractETHBalance);
        }
    }

    function manualProcessGas(uint256 manualGas) external onlyOwner {
        cryptoaiPrinter.process(manualGas);
    }

    function howMuchCRYPTOAI(address shareholder) external view returns (uint256) {
        return cryptoaiPrinter.getUnpaidEarnings(shareholder);
    }

    function giveMeMyOwedCryptoai() external {
        cryptoaiPrinter.goCRYPTOAI(msg.sender);
    }
}

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":"Cryptoai","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allocationSum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"antiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newGas","type":"uint256"}],"name":"changeCryptoaiPrinterGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"changeFeeAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"changeTotalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cryptoaiPrinter","outputs":[{"internalType":"contract CryptoaiPrinter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cryptoaiPrinterGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"giveMeMyOwedCryptoai","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"howMuchCRYPTOAI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","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":"manualGas","type":"uint256"}],"name":"manualProcessGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"cryptoaiAddress","type":"address"}],"name":"setCryptoai","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDevWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"setDistributionCriteria","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":"newLpWallet","type":"address"}],"name":"setLpWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwnerWallet","type":"address"}],"name":"setOwnerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"toLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b03191673f36c5f04127f7470834ed6f98bddc1be62aba48d179055620000386012600a620006ee565b6200004890633b9aca00620006ff565b6002818155600780546001600160a01b031990811661dead17909155600880546001600160a81b031916600160a01b179055600e805490911673e101bb9a4b56dceef350601e7a14cb0b781e8f171790556014600f819055602860105560326011819055600060125560135560649081905560198054600162ffff0160a01b031916750100e101bb9a4b56dceef350601e7a14cb0b781e8f17179055611388601b55620001209290916200010c91906200155f620004b0602090811b91909117901c565b6200054760201b620015e11790919060201c565b601c556200014560646200010c60028054620004b060201b6200155f1790919060201c565b601d556200016c6127106200010c6005600254620004b060201b6200155f1790919060201c565b601e553480156200017c57600080fd5b5060405162003fd238038062003fd28339810160408190526200019f9162000721565b600080546001600160a01b03199081166001600160a01b0384161790915560158054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000218573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023e919062000721565b600680546001600160a01b0319166001600160a01b039283161790556015546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa1580156200029d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c3919062000721565b6006546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000315573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033b919062000721565b601680546001600160a01b0319166001600160a01b0392831617905530600090815260046020908152604080832060155490941683529290528190206000199055516200038890620005cd565b604051809103906000f080158015620003a5573d6000803e3d6000fd5b50601a80546001600160a01b0319166001600160a01b039283161790558181166000818152600a60209081526040808320805460ff1990811660019081179092556019548716855282852080548216831790556016805488168652600c85528386208054831684179055308652838620805483168417905560078054891687528487208054841685179055878752600b865284872080548416851790559054881686528386208054831684179055549096168452818420805490961617909455600254838352600382528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350620007c7565b600082600003620004c45750600062000541565b6000620004d28385620006ff565b905082620004e185836200074c565b146200053e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200053e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200059160201b60201c565b60008183620005b55760405162461bcd60e51b81526004016200053591906200076f565b506000620005c484866200074c565b95945050505050565b6111538062002e7f83390190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000632578160001904821115620006165762000616620005db565b808516156200062457918102915b93841c9390800290620005f6565b509250929050565b6000826200064b5750600162000541565b816200065a5750600062000541565b81600181146200067357600281146200067e576200069e565b600191505062000541565b60ff841115620006925762000692620005db565b50506001821b62000541565b5060208310610133831016604e8410600b8410161715620006c3575081810a62000541565b620006cf8383620005f1565b8060001904821115620006e657620006e6620005db565b029392505050565b60006200053e60ff8416836200063a565b60008160001904831182151516156200071c576200071c620005db565b500290565b6000602082840312156200073457600080fd5b81516001600160a01b03811681146200053e57600080fd5b6000826200076a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b818110156200079e5785810183015185820160400152820162000780565b81811115620007b1576000604083870101525b50601f01601f1916929092016040019392505050565b6126a880620007d76000396000f3fe60806040526004361061039b5760003560e01c806375df1305116101dc578063bb542ef011610102578063d920334e116100a0578063f887ea401161006f578063f887ea4014610aa6578063f8b45b0514610ac6578063fabe628314610adc578063ffb54a9914610afc57600080fd5b8063d920334e14610a00578063dd62ed3e14610a20578063f2fde38b14610a66578063f708a64f14610a8657600080fd5b8063c45a0155116100dc578063c45a01551461099f578063c8d1293d146109bf578063c9567bf9146109d5578063caa5581b146109ea57600080fd5b8063bb542ef014610949578063bea7791414610969578063bf56b3711461098957600080fd5b80638b42507f1161017a578063a3a2e89e11610149578063a3a2e89e146108c9578063a8aa1b31146108e9578063a9059cbb14610909578063b515566a1461092957600080fd5b80638b42507f146108635780638ea5220f1461089357806395d89b41146103d0578063981e07be146108b357600080fd5b80637dfcbe34116101b65780637dfcbe34146107ef578063819340311461081057806389291a8f14610830578063893d20e81461084557600080fd5b806375df1305146107995780637b648934146107af5780637db1342c146107cf57600080fd5b80633dab5269116102c15780634a74bb021161025f57806366eb37851161022e57806366eb37851461072357806370a08231146107385780637437681e1461076e578063751039fc1461078457600080fd5b80634a74bb021461068a5780634f4253ea146106ab578063571ac8b0146106e35780635cc95cf51461070357600080fd5b8063454343771161029b578063454343771461061e57806345e30ff814610634578063468c7ee214610654578063470624021461067457600080fd5b80633dab52691461059e5780633f4218e0146105be5780634355855a146105ee57600080fd5b8063273123b7116103395780632dbea2e1116103085780632dbea2e1146105135780632f54bf6e1461053357806330ca34ee14610562578063313ce5671461058257600080fd5b8063273123b7146104a85780632b112e49146104c85780632b14ca56146104dd5780632d48e896146104f357600080fd5b806318160ddd1161037557806318160ddd1461043c5780631f53ac021461045157806321b7f1e91461047357806323b872dd1461048857600080fd5b80630445b667146103a757806306fdde03146103d0578063095ea7b31461040c57600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bd601e5481565b6040519081526020015b60405180910390f35b3480156103dc57600080fd5b50604080518082018252600d81526c426162792043727970746f414960981b602082015290516103c791906121e8565b34801561041857600080fd5b5061042c610427366004612262565b610b1d565b60405190151581526020016103c7565b34801561044857600080fd5b506002546103bd565b34801561045d57600080fd5b5061047161046c36600461228e565b610b8a565b005b34801561047f57600080fd5b50610471610bdf565b34801561049457600080fd5b5061042c6104a33660046122ab565b610c3e565b3480156104b457600080fd5b506104716104c336600461228e565b610d00565b3480156104d457600080fd5b506103bd610d4b565b3480156104e957600080fd5b506103bd60105481565b3480156104ff57600080fd5b5061047161050e3660046122ec565b610d9d565b34801561051f57600080fd5b5061047161052e36600461230e565b610e31565b34801561053f57600080fd5b5061042c61054e36600461228e565b6000546001600160a01b0391821691161490565b34801561056e57600080fd5b5061047161057d3660046122ec565b610e69565b34801561058e57600080fd5b50604051601281526020016103c7565b3480156105aa57600080fd5b506104716105b936600461234a565b610f2d565b3480156105ca57600080fd5b5061042c6105d936600461228e565b600a6020526000908152604090205460ff1681565b3480156105fa57600080fd5b5061042c61060936600461228e565b600c6020526000908152604090205460ff1681565b34801561062a57600080fd5b506103bd60145481565b34801561064057600080fd5b506103bd61064f36600461228e565b610f79565b34801561066057600080fd5b5061047161066f36600461228e565b610fe8565b34801561068057600080fd5b506103bd600f5481565b34801561069657600080fd5b5060195461042c90600160a81b900460ff1681565b3480156106b757600080fd5b506001546106cb906001600160a01b031681565b6040516001600160a01b0390911681526020016103c7565b3480156106ef57600080fd5b5061042c6106fe36600461228e565b611034565b34801561070f57600080fd5b50601a546106cb906001600160a01b031681565b34801561072f57600080fd5b50610471611042565b34801561074457600080fd5b506103bd61075336600461228e565b6001600160a01b031660009081526003602052604090205490565b34801561077a57600080fd5b506103bd601c5481565b34801561079057600080fd5b50610471611076565b3480156107a557600080fd5b506103bd60135481565b3480156107bb57600080fd5b506104716107ca366004612366565b6110ad565b3480156107db57600080fd5b506104716107ea366004612366565b6110dc565b3480156107fb57600080fd5b5060085461042c90600160a01b900460ff1681565b34801561081c57600080fd5b5061047161082b366004612366565b611133565b34801561083c57600080fd5b506104716111c2565b34801561085157600080fd5b506000546001600160a01b03166106cb565b34801561086f57600080fd5b5061042c61087e36600461228e565b600b6020526000908152604090205460ff1681565b34801561089f57600080fd5b506019546106cb906001600160a01b031681565b3480156108bf57600080fd5b506103bd601b5481565b3480156108d557600080fd5b506104716108e436600461237f565b611230565b3480156108f557600080fd5b506016546106cb906001600160a01b031681565b34801561091557600080fd5b5061042c610924366004612262565b611285565b34801561093557600080fd5b506104716109443660046123ca565b611292565b34801561095557600080fd5b5061047161096436600461228e565b611324565b34801561097557600080fd5b5061047161098436600461228e565b611370565b34801561099557600080fd5b506103bd600d5481565b3480156109ab57600080fd5b506017546106cb906001600160a01b031681565b3480156109cb57600080fd5b506103bd60125481565b3480156109e157600080fd5b506104716113be565b3480156109f657600080fd5b506103bd60115481565b348015610a0c57600080fd5b50610471610a1b366004612366565b611401565b348015610a2c57600080fd5b506103bd610a3b36600461248f565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a7257600080fd5b50610471610a8136600461228e565b611458565b348015610a9257600080fd5b50610471610aa136600461237f565b6114d6565b348015610ab257600080fd5b506015546106cb906001600160a01b031681565b348015610ad257600080fd5b506103bd601d5481565b348015610ae857600080fd5b50610471610af736600461237f565b61150a565b348015610b0857600080fd5b5060195461042c90600160b01b900460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b789086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610bbd5760405162461bcd60e51b8152600401610bb4906124c8565b60405180910390fd5b601980546001600160a01b0319166001600160a01b0392909216919091179055565b601a54604051632e9de57d60e01b81523360048201526001600160a01b0390911690632e9de57d90602401600060405180830381600087803b158015610c2457600080fd5b505af1158015610c38573d6000803e3d6000fd5b50505050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610ceb576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600482528381203382529091529190912054610cc6918490611623565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610cf684848461165d565b90505b9392505050565b6000546001600160a01b03163314610d2a5760405162461bcd60e51b8152600401610bb4906124c8565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6008546001600160a01b0316600090815260036020526040812054610d98906007546001600160a01b0316600090815260036020526040902054610d929060025490611b13565b90611b13565b905090565b6000546001600160a01b03163314610dc75760405162461bcd60e51b8152600401610bb4906124c8565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610e1557600080fd5b505af1158015610e29573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610e5b5760405162461bcd60e51b8152600401610bb4906124c8565b601192909255601255601355565b6000546001600160a01b03163314610e935760405162461bcd60e51b8152600401610bb4906124c8565b600f82905560108190556014821115610ee25760405162461bcd60e51b81526020600482015260116024820152703237b71031329033b932b2b23c902222ab60791b6044820152606401610bb4565b60286010541115610f295760405162461bcd60e51b81526020600482015260116024820152703237b71031329033b932b2b23c902222ab60791b6044820152606401610bb4565b5050565b6000546001600160a01b03163314610f575760405162461bcd60e51b8152600401610bb4906124c8565b60198054921515600160a81b0260ff60a81b1990931692909217909155601e55565b601a5460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd319890602401602060405180830381865afa158015610fc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8491906124e8565b6000546001600160a01b031633146110125760405162461bcd60e51b8152600401610bb4906124c8565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610b8482600019610b1d565b6000546001600160a01b0316331461106c5760405162461bcd60e51b8152600401610bb4906124c8565b611074611b55565b565b6000546001600160a01b031633146110a05760405162461bcd60e51b8152600401610bb4906124c8565b600254601c819055601d55565b6000546001600160a01b031633146110d75760405162461bcd60e51b8152600401610bb4906124c8565b601b55565b6000546001600160a01b031633146111065760405162461bcd60e51b8152600401610bb4906124c8565b6001811161111357600080fd5b6064816002546111239190612517565b61112d9190612536565b601d5550565b6000546001600160a01b0316331461115d5760405162461bcd60e51b8152600401610bb4906124c8565b601a546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c479906024015b600060405180830381600087803b1580156111a757600080fd5b505af11580156111bb573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146111ec5760405162461bcd60e51b8152600401610bb4906124c8565b47801561122d576019546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f29573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461125a5760405162461bcd60e51b8152600401610bb4906124c8565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610cf933848461165d565b6000546001600160a01b031633146112bc5760405162461bcd60e51b8152600401610bb4906124c8565b60005b8151811015610f29576001600960008484815181106112e0576112e0612558565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061131c8161256e565b9150506112bf565b6000546001600160a01b0316331461134e5760405162461bcd60e51b8152600401610bb4906124c8565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461139a5760405162461bcd60e51b8152600401610bb4906124c8565b600180546001600160a01b0319166001600160a01b03831617905561122d81611ce3565b6000546001600160a01b031633146113e85760405162461bcd60e51b8152600401610bb4906124c8565b43600d556019805460ff60b01b1916600160b01b179055565b6000546001600160a01b0316331461142b5760405162461bcd60e51b8152600401610bb4906124c8565b6001811161143857600080fd5b6064816002546114489190612517565b6114529190612536565b601c5550565b6000546001600160a01b031633146114825760405162461bcd60e51b8152600401610bb4906124c8565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146115005760405162461bcd60e51b8152600401610bb4906124c8565b610f298282611d15565b6000546001600160a01b031633146115345760405162461bcd60e51b8152600401610bb4906124c8565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60008260000361157157506000610b84565b600061157d8385612517565b90508261158a8583612536565b14610cf95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610bb4565b6000610cf983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611df4565b600081848411156116475760405162461bcd60e51b8152600401610bb491906121e8565b5060006116548486612587565b95945050505050565b600080546001600160a01b0385811691161480159061168a57506000546001600160a01b03848116911614155b156116e857601954600160b01b900460ff166116e85760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e0000000000000000006044820152606401610bb4565b6001600160a01b03841660009081526009602052604090205460ff1615801561172a57506001600160a01b03831660009081526009602052604090205460ff16155b61173357600080fd5b601954600160a01b900460ff161561175757611750848484611e22565b9050610cf9565b601c548211158061178057506001600160a01b0384166000908152600b602052604090205460ff165b6117b15760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610bb4565b6001600160a01b0383166000908152600b602052604090205460ff161580156117e35750600854600160a01b900460ff165b1561184557601d546001600160a01b03841660009081526003602052604090205461180e9084611f08565b11156118455760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610bb4565b6016546001600160a01b0316331480159061186a5750601954600160a01b900460ff16155b801561187f5750601954600160a81b900460ff165b801561189c5750601e543060009081526003602052604090205410155b156118a9576118a9611b55565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600390915291909120546118fb918490611623565b6001600160a01b038516600090815260036020908152604080832093909355600a90529081205460ff1615801561194b57506001600160a01b0384166000908152600a602052604090205460ff16155b6119555782611960565b611960858585611f67565b6001600160a01b0385166000908152600360205260409020549091506119869082611f08565b6001600160a01b038086166000908152600360209081526040808320949094559188168152600c909152205460ff16611a2a57601a546001600160a01b0386811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611a1757600080fd5b505af1925050508015611a28575060015b505b6001600160a01b0384166000908152600c602052604090205460ff16611abb57601a546001600160a01b0385811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611aa857600080fd5b505af1925050508015611ab9575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b0091815260200190565b60405180910390a3506001949350505050565b6000610cf983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611623565b6019805460ff60a01b1916600160a01b17905530600090815260036020526040812054601254909190611b9b90600290611b95906064908290879061155f565b906115e1565b90506000611ba98383611b13565b9050611bb48161202a565b60004790506000611bd56064611b956011548561155f90919063ffffffff16565b90506000611bf36064611b956013548661155f90919063ffffffff16565b90506000611c166002611b956064611b956012548961155f90919063ffffffff16565b90508315611c5a576019546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611c58573d6000803e3d6000fd5b505b601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611caa57600080fd5b505af193505050508015611cbc575060015b508515611ccd57611ccd8682612153565b50506019805460ff60a01b191690555050505050565b601a54604051632fa9de4560e21b81526001600160a01b0383811660048301529091169063bea779149060240161118d565b6001600160a01b0382163014801590611d3c57506016546001600160a01b03838116911614155b611d4557600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611dab57601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610dfb565b601a546001600160a01b0383811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610dfb565b60008183611e155760405162461bcd60e51b8152600401610bb491906121e8565b5060006116548486612536565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054611e73918490611623565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611ea29083611f08565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ef69086815260200190565b60405180910390a35060019392505050565b600080611f15838561259e565b905083811015610cf95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610bb4565b60165460009081906001600160a01b03858116911614611f8957600f54611f8d565b6010545b90506000611fa06064611b95868561155f565b30600090815260036020526040902054909150611fbd9082611f08565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061200e9085815260200190565b60405180910390a36120208482611b13565b9695505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061205f5761205f612558565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dc91906125b6565b816001815181106120ef576120ef612558565b60200260200101906001600160a01b031690816001600160a01b0316815250506121193083610b1d565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610dfb9085906000908690309042906004016125d3565b601554600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156121c3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111bb9190612644565b600060208083528351808285015260005b81811015612215578581018301518582016040015282016121f9565b81811115612227576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461122d57600080fd5b803561225d8161223d565b919050565b6000806040838503121561227557600080fd5b82356122808161223d565b946020939093013593505050565b6000602082840312156122a057600080fd5b8135610cf98161223d565b6000806000606084860312156122c057600080fd5b83356122cb8161223d565b925060208401356122db8161223d565b929592945050506040919091013590565b600080604083850312156122ff57600080fd5b50508035926020909101359150565b60008060006060848603121561232357600080fd5b505081359360208301359350604090920135919050565b8035801515811461225d57600080fd5b6000806040838503121561235d57600080fd5b6122808361233a565b60006020828403121561237857600080fd5b5035919050565b6000806040838503121561239257600080fd5b823561239d8161223d565b91506123ab6020840161233a565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156123dd57600080fd5b823567ffffffffffffffff808211156123f557600080fd5b818501915085601f83011261240957600080fd5b81358181111561241b5761241b6123b4565b8060051b604051601f19603f83011681018181108582111715612440576124406123b4565b60405291825284820192508381018501918883111561245e57600080fd5b938501935b828510156124835761247485612252565b84529385019392850192612463565b98975050505050505050565b600080604083850312156124a257600080fd5b82356124ad8161223d565b915060208301356124bd8161223d565b809150509250929050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b6000602082840312156124fa57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561253157612531612501565b500290565b60008261255357634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820161258057612580612501565b5060010190565b60008282101561259957612599612501565b500390565b600082198211156125b1576125b1612501565b500190565b6000602082840312156125c857600080fd5b8151610cf98161223d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126235784516001600160a01b0316835293830193918301916001016125fe565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561265957600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212204811ce113cad6a23c1f05390c3182d1e2fcf7af52e20ea2385e2c500e9088d0564736f6c634300080d003360806040526ec097ce7bc90715b34b9f1000000000600b55610e10600c556509184e72a000600d5534801561003357600080fd5b50600080546001600160a01b03199081163317909155600280548216737a250d5630b4cf539739df2c5dacb4c659f2488d1790556001805490911673f36c5f04127f7470834ed6f98bddc1be62aba48d1790556110be806100956000396000f3fe60806040526004361061010d5760003560e01c80638c21cd5211610095578063d0e30db011610064578063d0e30db014610301578063e2d2e21914610309578063efca2eed1461031f578063ffb2c47914610335578063ffd49c841461035557600080fd5b80638c21cd5214610244578063997664d714610274578063bea779141461028a578063ce7c2ac2146102aa57600080fd5b80632d48e896116100dc5780632d48e896146101a05780632e9de57d146101c05780633a98ef39146101e05780634f4253ea146101f65780634fab0ae81461022e57600080fd5b806311ce023d1461012157806314b6ca961461014a57806326987b601461016a57806328fd31981461018057600080fd5b3661011c5761011a61036b565b005b600080fd5b34801561012d57600080fd5b50610137600b5481565b6040519081526020015b60405180910390f35b34801561015657600080fd5b5061011a610165366004610e22565b6105e3565b34801561017657600080fd5b50610137600e5481565b34801561018c57600080fd5b5061013761019b366004610e4e565b61075b565b3480156101ac57600080fd5b5061011a6101bb366004610e6b565b6107e6565b3480156101cc57600080fd5b5061011a6101db366004610e4e565b610808565b3480156101ec57600080fd5b5061013760075481565b34801561020257600080fd5b50600154610216906001600160a01b031681565b6040516001600160a01b039091168152602001610141565b34801561023a57600080fd5b50610137600d5481565b34801561025057600080fd5b5061026461025f366004610e4e565b61087d565b6040519015158152602001610141565b34801561028057600080fd5b5061013760085481565b34801561029657600080fd5b5061011a6102a5366004610e4e565b6108c3565b3480156102b657600080fd5b506102e66102c5366004610e4e565b60066020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610141565b61011a61036b565b34801561031557600080fd5b50610137600a5481565b34801561032b57600080fd5b5061013760095481565b34801561034157600080fd5b5061011a610350366004610e8d565b6108fc565b34801561036157600080fd5b50610137600c5481565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156103b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d89190610ea6565b60408051600280825260608201835292935060009290916020830190803683375050600254604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015610447573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046b9190610ebf565b8160008151811061047e5761047e610edc565b6001600160a01b03928316602091820292909201015260018054835192169183919081106104ae576104ae610edc565b6001600160a01b03928316602091820292909201015260025460405163b6f9de9560e01b815291169063b6f9de959034906104f490600090869030904290600401610ef2565b6000604051808303818588803b15801561050d57600080fd5b505af1158015610521573d6000803e3d6000fd5b50506001546040516370a0823160e01b8152306004820152600094506105a193508692506001600160a01b03909116906370a0823190602401602060405180830381865afa158015610577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059b9190610ea6565b906109e9565b6008549091506105b19082610a32565b600855600754600b546105db916105d2916105cc9085610a91565b90610b13565b600a5490610a32565b600a55505050565b6000546001600160a01b031633146105fa57600080fd5b6001600160a01b038216600090815260066020526040902054156106215761062182610b55565b60008111801561064757506001600160a01b038216600090815260066020526040902054155b156106ad57600380546001600160a01b0384166000818152600460205260408120839055600183018455929092527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b03191690911790556106e0565b801580156106d257506001600160a01b03821660009081526006602052604090205415155b156106e0576106e082610c73565b6001600160a01b03821660009081526006602052604090205460075461071191839161070b916109e9565b90610a32565b6007556001600160a01b038216600090815260066020526040902081905561073881610d88565b6001600160a01b0390921660009081526006602052604090206001019190915550565b6001600160a01b038116600090815260066020526040812054810361078257506000919050565b6001600160a01b0382166000908152600660205260408120546107a490610d88565b6001600160a01b0384166000908152600660205260409020600101549091508082116107d4575060009392505050565b6107de82826109e9565b949350505050565b6000546001600160a01b031633146107fd57600080fd5b600c91909155600d55565b6000546001600160a01b0316331461081f57600080fd5b6108283361087d565b6108715760405162461bcd60e51b815260206004820152601560248201527443727970746f6169206e6f7420726479207965742160581b60448201526064015b60405180910390fd5b61087a33610b55565b50565b600c546001600160a01b038216600090815260056020526040812054909142916108a79190610f72565b1080156108bd5750600d546108bb8361075b565b115b92915050565b6000546001600160a01b031633146108da57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600354600081900361090c575050565b60008060005a90505b848210801561092357508383105b156109e25783600e5410610937576000600e555b6109696003600e548154811061094f5761094f610edc565b6000918252602090912001546001600160a01b031661087d565b156109a0576109a06003600e548154811061098657610986610edc565b6000918252602090912001546001600160a01b0316610b55565b6109b56109ae5a83906109e9565b8390610a32565b91505a600e805491925060006109ca83610f8a565b919050555082806109da90610f8a565b935050610915565b5050505050565b6000610a2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610da5565b9392505050565b600080610a3f8385610f72565b905083811015610a2b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610868565b600082600003610aa3575060006108bd565b6000610aaf8385610fa3565b905082610abc8583610fc2565b14610a2b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610868565b6000610a2b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ddf565b6001600160a01b0381166000908152600660205260408120549003610b775750565b6000610b828261075b565b90508015610c6f57600954610b979082610a32565b60095560015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610bed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c119190610fe4565b506001600160a01b03821660009081526005602090815260408083204290556006909152902060020154610c459082610a32565b6001600160a01b038316600090815260066020526040902060028101919091555461073890610d88565b5050565b60038054610c8390600190611006565b81548110610c9357610c93610edc565b60009182526020808320909101546001600160a01b0384811684526004909252604090922054600380549290931692918110610cd157610cd1610edc565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260049182905260408120546003805491939291610d1d90600190611006565b81548110610d2d57610d2d610edc565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610d6357610d6361101d565b600082815260209020810160001990810180546001600160a01b031916905501905550565b60006108bd600b546105cc600a5485610a9190919063ffffffff16565b60008184841115610dc95760405162461bcd60e51b81526004016108689190611033565b506000610dd68486611006565b95945050505050565b60008183610e005760405162461bcd60e51b81526004016108689190611033565b506000610dd68486610fc2565b6001600160a01b038116811461087a57600080fd5b60008060408385031215610e3557600080fd5b8235610e4081610e0d565b946020939093013593505050565b600060208284031215610e6057600080fd5b8135610a2b81610e0d565b60008060408385031215610e7e57600080fd5b50508035926020909101359150565b600060208284031215610e9f57600080fd5b5035919050565b600060208284031215610eb857600080fd5b5051919050565b600060208284031215610ed157600080fd5b8151610a2b81610e0d565b634e487b7160e01b600052603260045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610f3c5784516001600160a01b031683529383019391830191600101610f17565b50506001600160a01b039690961660408501525050506060015292915050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610f8557610f85610f5c565b500190565b600060018201610f9c57610f9c610f5c565b5060010190565b6000816000190483118215151615610fbd57610fbd610f5c565b500290565b600082610fdf57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215610ff657600080fd5b81518015158114610a2b57600080fd5b60008282101561101857611018610f5c565b500390565b634e487b7160e01b600052603160045260246000fd5b600060208083528351808285015260005b8181101561106057858101830151858201604001528201611044565b81811115611072576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220dbe2d38a9e42fc29c4d7afc889cd02d852ee46a488ced571a6902de321b03c7264736f6c634300080d0033000000000000000000000000e101bb9a4b56dceef350601e7a14cb0b781e8f17

Deployed Bytecode

0x60806040526004361061039b5760003560e01c806375df1305116101dc578063bb542ef011610102578063d920334e116100a0578063f887ea401161006f578063f887ea4014610aa6578063f8b45b0514610ac6578063fabe628314610adc578063ffb54a9914610afc57600080fd5b8063d920334e14610a00578063dd62ed3e14610a20578063f2fde38b14610a66578063f708a64f14610a8657600080fd5b8063c45a0155116100dc578063c45a01551461099f578063c8d1293d146109bf578063c9567bf9146109d5578063caa5581b146109ea57600080fd5b8063bb542ef014610949578063bea7791414610969578063bf56b3711461098957600080fd5b80638b42507f1161017a578063a3a2e89e11610149578063a3a2e89e146108c9578063a8aa1b31146108e9578063a9059cbb14610909578063b515566a1461092957600080fd5b80638b42507f146108635780638ea5220f1461089357806395d89b41146103d0578063981e07be146108b357600080fd5b80637dfcbe34116101b65780637dfcbe34146107ef578063819340311461081057806389291a8f14610830578063893d20e81461084557600080fd5b806375df1305146107995780637b648934146107af5780637db1342c146107cf57600080fd5b80633dab5269116102c15780634a74bb021161025f57806366eb37851161022e57806366eb37851461072357806370a08231146107385780637437681e1461076e578063751039fc1461078457600080fd5b80634a74bb021461068a5780634f4253ea146106ab578063571ac8b0146106e35780635cc95cf51461070357600080fd5b8063454343771161029b578063454343771461061e57806345e30ff814610634578063468c7ee214610654578063470624021461067457600080fd5b80633dab52691461059e5780633f4218e0146105be5780634355855a146105ee57600080fd5b8063273123b7116103395780632dbea2e1116103085780632dbea2e1146105135780632f54bf6e1461053357806330ca34ee14610562578063313ce5671461058257600080fd5b8063273123b7146104a85780632b112e49146104c85780632b14ca56146104dd5780632d48e896146104f357600080fd5b806318160ddd1161037557806318160ddd1461043c5780631f53ac021461045157806321b7f1e91461047357806323b872dd1461048857600080fd5b80630445b667146103a757806306fdde03146103d0578063095ea7b31461040c57600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bd601e5481565b6040519081526020015b60405180910390f35b3480156103dc57600080fd5b50604080518082018252600d81526c426162792043727970746f414960981b602082015290516103c791906121e8565b34801561041857600080fd5b5061042c610427366004612262565b610b1d565b60405190151581526020016103c7565b34801561044857600080fd5b506002546103bd565b34801561045d57600080fd5b5061047161046c36600461228e565b610b8a565b005b34801561047f57600080fd5b50610471610bdf565b34801561049457600080fd5b5061042c6104a33660046122ab565b610c3e565b3480156104b457600080fd5b506104716104c336600461228e565b610d00565b3480156104d457600080fd5b506103bd610d4b565b3480156104e957600080fd5b506103bd60105481565b3480156104ff57600080fd5b5061047161050e3660046122ec565b610d9d565b34801561051f57600080fd5b5061047161052e36600461230e565b610e31565b34801561053f57600080fd5b5061042c61054e36600461228e565b6000546001600160a01b0391821691161490565b34801561056e57600080fd5b5061047161057d3660046122ec565b610e69565b34801561058e57600080fd5b50604051601281526020016103c7565b3480156105aa57600080fd5b506104716105b936600461234a565b610f2d565b3480156105ca57600080fd5b5061042c6105d936600461228e565b600a6020526000908152604090205460ff1681565b3480156105fa57600080fd5b5061042c61060936600461228e565b600c6020526000908152604090205460ff1681565b34801561062a57600080fd5b506103bd60145481565b34801561064057600080fd5b506103bd61064f36600461228e565b610f79565b34801561066057600080fd5b5061047161066f36600461228e565b610fe8565b34801561068057600080fd5b506103bd600f5481565b34801561069657600080fd5b5060195461042c90600160a81b900460ff1681565b3480156106b757600080fd5b506001546106cb906001600160a01b031681565b6040516001600160a01b0390911681526020016103c7565b3480156106ef57600080fd5b5061042c6106fe36600461228e565b611034565b34801561070f57600080fd5b50601a546106cb906001600160a01b031681565b34801561072f57600080fd5b50610471611042565b34801561074457600080fd5b506103bd61075336600461228e565b6001600160a01b031660009081526003602052604090205490565b34801561077a57600080fd5b506103bd601c5481565b34801561079057600080fd5b50610471611076565b3480156107a557600080fd5b506103bd60135481565b3480156107bb57600080fd5b506104716107ca366004612366565b6110ad565b3480156107db57600080fd5b506104716107ea366004612366565b6110dc565b3480156107fb57600080fd5b5060085461042c90600160a01b900460ff1681565b34801561081c57600080fd5b5061047161082b366004612366565b611133565b34801561083c57600080fd5b506104716111c2565b34801561085157600080fd5b506000546001600160a01b03166106cb565b34801561086f57600080fd5b5061042c61087e36600461228e565b600b6020526000908152604090205460ff1681565b34801561089f57600080fd5b506019546106cb906001600160a01b031681565b3480156108bf57600080fd5b506103bd601b5481565b3480156108d557600080fd5b506104716108e436600461237f565b611230565b3480156108f557600080fd5b506016546106cb906001600160a01b031681565b34801561091557600080fd5b5061042c610924366004612262565b611285565b34801561093557600080fd5b506104716109443660046123ca565b611292565b34801561095557600080fd5b5061047161096436600461228e565b611324565b34801561097557600080fd5b5061047161098436600461228e565b611370565b34801561099557600080fd5b506103bd600d5481565b3480156109ab57600080fd5b506017546106cb906001600160a01b031681565b3480156109cb57600080fd5b506103bd60125481565b3480156109e157600080fd5b506104716113be565b3480156109f657600080fd5b506103bd60115481565b348015610a0c57600080fd5b50610471610a1b366004612366565b611401565b348015610a2c57600080fd5b506103bd610a3b36600461248f565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a7257600080fd5b50610471610a8136600461228e565b611458565b348015610a9257600080fd5b50610471610aa136600461237f565b6114d6565b348015610ab257600080fd5b506015546106cb906001600160a01b031681565b348015610ad257600080fd5b506103bd601d5481565b348015610ae857600080fd5b50610471610af736600461237f565b61150a565b348015610b0857600080fd5b5060195461042c90600160b01b900460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b789086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610bbd5760405162461bcd60e51b8152600401610bb4906124c8565b60405180910390fd5b601980546001600160a01b0319166001600160a01b0392909216919091179055565b601a54604051632e9de57d60e01b81523360048201526001600160a01b0390911690632e9de57d90602401600060405180830381600087803b158015610c2457600080fd5b505af1158015610c38573d6000803e3d6000fd5b50505050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610ceb576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600482528381203382529091529190912054610cc6918490611623565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610cf684848461165d565b90505b9392505050565b6000546001600160a01b03163314610d2a5760405162461bcd60e51b8152600401610bb4906124c8565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6008546001600160a01b0316600090815260036020526040812054610d98906007546001600160a01b0316600090815260036020526040902054610d929060025490611b13565b90611b13565b905090565b6000546001600160a01b03163314610dc75760405162461bcd60e51b8152600401610bb4906124c8565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610e1557600080fd5b505af1158015610e29573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610e5b5760405162461bcd60e51b8152600401610bb4906124c8565b601192909255601255601355565b6000546001600160a01b03163314610e935760405162461bcd60e51b8152600401610bb4906124c8565b600f82905560108190556014821115610ee25760405162461bcd60e51b81526020600482015260116024820152703237b71031329033b932b2b23c902222ab60791b6044820152606401610bb4565b60286010541115610f295760405162461bcd60e51b81526020600482015260116024820152703237b71031329033b932b2b23c902222ab60791b6044820152606401610bb4565b5050565b6000546001600160a01b03163314610f575760405162461bcd60e51b8152600401610bb4906124c8565b60198054921515600160a81b0260ff60a81b1990931692909217909155601e55565b601a5460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd319890602401602060405180830381865afa158015610fc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8491906124e8565b6000546001600160a01b031633146110125760405162461bcd60e51b8152600401610bb4906124c8565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610b8482600019610b1d565b6000546001600160a01b0316331461106c5760405162461bcd60e51b8152600401610bb4906124c8565b611074611b55565b565b6000546001600160a01b031633146110a05760405162461bcd60e51b8152600401610bb4906124c8565b600254601c819055601d55565b6000546001600160a01b031633146110d75760405162461bcd60e51b8152600401610bb4906124c8565b601b55565b6000546001600160a01b031633146111065760405162461bcd60e51b8152600401610bb4906124c8565b6001811161111357600080fd5b6064816002546111239190612517565b61112d9190612536565b601d5550565b6000546001600160a01b0316331461115d5760405162461bcd60e51b8152600401610bb4906124c8565b601a546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c479906024015b600060405180830381600087803b1580156111a757600080fd5b505af11580156111bb573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146111ec5760405162461bcd60e51b8152600401610bb4906124c8565b47801561122d576019546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610f29573d6000803e3d6000fd5b50565b6000546001600160a01b0316331461125a5760405162461bcd60e51b8152600401610bb4906124c8565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610cf933848461165d565b6000546001600160a01b031633146112bc5760405162461bcd60e51b8152600401610bb4906124c8565b60005b8151811015610f29576001600960008484815181106112e0576112e0612558565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061131c8161256e565b9150506112bf565b6000546001600160a01b0316331461134e5760405162461bcd60e51b8152600401610bb4906124c8565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461139a5760405162461bcd60e51b8152600401610bb4906124c8565b600180546001600160a01b0319166001600160a01b03831617905561122d81611ce3565b6000546001600160a01b031633146113e85760405162461bcd60e51b8152600401610bb4906124c8565b43600d556019805460ff60b01b1916600160b01b179055565b6000546001600160a01b0316331461142b5760405162461bcd60e51b8152600401610bb4906124c8565b6001811161143857600080fd5b6064816002546114489190612517565b6114529190612536565b601c5550565b6000546001600160a01b031633146114825760405162461bcd60e51b8152600401610bb4906124c8565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146115005760405162461bcd60e51b8152600401610bb4906124c8565b610f298282611d15565b6000546001600160a01b031633146115345760405162461bcd60e51b8152600401610bb4906124c8565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60008260000361157157506000610b84565b600061157d8385612517565b90508261158a8583612536565b14610cf95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610bb4565b6000610cf983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611df4565b600081848411156116475760405162461bcd60e51b8152600401610bb491906121e8565b5060006116548486612587565b95945050505050565b600080546001600160a01b0385811691161480159061168a57506000546001600160a01b03848116911614155b156116e857601954600160b01b900460ff166116e85760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e0000000000000000006044820152606401610bb4565b6001600160a01b03841660009081526009602052604090205460ff1615801561172a57506001600160a01b03831660009081526009602052604090205460ff16155b61173357600080fd5b601954600160a01b900460ff161561175757611750848484611e22565b9050610cf9565b601c548211158061178057506001600160a01b0384166000908152600b602052604090205460ff165b6117b15760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610bb4565b6001600160a01b0383166000908152600b602052604090205460ff161580156117e35750600854600160a01b900460ff165b1561184557601d546001600160a01b03841660009081526003602052604090205461180e9084611f08565b11156118455760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610bb4565b6016546001600160a01b0316331480159061186a5750601954600160a01b900460ff16155b801561187f5750601954600160a81b900460ff165b801561189c5750601e543060009081526003602052604090205410155b156118a9576118a9611b55565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600390915291909120546118fb918490611623565b6001600160a01b038516600090815260036020908152604080832093909355600a90529081205460ff1615801561194b57506001600160a01b0384166000908152600a602052604090205460ff16155b6119555782611960565b611960858585611f67565b6001600160a01b0385166000908152600360205260409020549091506119869082611f08565b6001600160a01b038086166000908152600360209081526040808320949094559188168152600c909152205460ff16611a2a57601a546001600160a01b0386811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611a1757600080fd5b505af1925050508015611a28575060015b505b6001600160a01b0384166000908152600c602052604090205460ff16611abb57601a546001600160a01b0385811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611aa857600080fd5b505af1925050508015611ab9575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b0091815260200190565b60405180910390a3506001949350505050565b6000610cf983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611623565b6019805460ff60a01b1916600160a01b17905530600090815260036020526040812054601254909190611b9b90600290611b95906064908290879061155f565b906115e1565b90506000611ba98383611b13565b9050611bb48161202a565b60004790506000611bd56064611b956011548561155f90919063ffffffff16565b90506000611bf36064611b956013548661155f90919063ffffffff16565b90506000611c166002611b956064611b956012548961155f90919063ffffffff16565b90508315611c5a576019546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611c58573d6000803e3d6000fd5b505b601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611caa57600080fd5b505af193505050508015611cbc575060015b508515611ccd57611ccd8682612153565b50506019805460ff60a01b191690555050505050565b601a54604051632fa9de4560e21b81526001600160a01b0383811660048301529091169063bea779149060240161118d565b6001600160a01b0382163014801590611d3c57506016546001600160a01b03838116911614155b611d4557600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611dab57601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610dfb565b601a546001600160a01b0383811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610dfb565b60008183611e155760405162461bcd60e51b8152600401610bb491906121e8565b5060006116548486612536565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054611e73918490611623565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611ea29083611f08565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ef69086815260200190565b60405180910390a35060019392505050565b600080611f15838561259e565b905083811015610cf95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610bb4565b60165460009081906001600160a01b03858116911614611f8957600f54611f8d565b6010545b90506000611fa06064611b95868561155f565b30600090815260036020526040902054909150611fbd9082611f08565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061200e9085815260200190565b60405180910390a36120208482611b13565b9695505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061205f5761205f612558565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156120b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dc91906125b6565b816001815181106120ef576120ef612558565b60200260200101906001600160a01b031690816001600160a01b0316815250506121193083610b1d565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610dfb9085906000908690309042906004016125d3565b601554600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156121c3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111bb9190612644565b600060208083528351808285015260005b81811015612215578581018301518582016040015282016121f9565b81811115612227576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461122d57600080fd5b803561225d8161223d565b919050565b6000806040838503121561227557600080fd5b82356122808161223d565b946020939093013593505050565b6000602082840312156122a057600080fd5b8135610cf98161223d565b6000806000606084860312156122c057600080fd5b83356122cb8161223d565b925060208401356122db8161223d565b929592945050506040919091013590565b600080604083850312156122ff57600080fd5b50508035926020909101359150565b60008060006060848603121561232357600080fd5b505081359360208301359350604090920135919050565b8035801515811461225d57600080fd5b6000806040838503121561235d57600080fd5b6122808361233a565b60006020828403121561237857600080fd5b5035919050565b6000806040838503121561239257600080fd5b823561239d8161223d565b91506123ab6020840161233a565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156123dd57600080fd5b823567ffffffffffffffff808211156123f557600080fd5b818501915085601f83011261240957600080fd5b81358181111561241b5761241b6123b4565b8060051b604051601f19603f83011681018181108582111715612440576124406123b4565b60405291825284820192508381018501918883111561245e57600080fd5b938501935b828510156124835761247485612252565b84529385019392850192612463565b98975050505050505050565b600080604083850312156124a257600080fd5b82356124ad8161223d565b915060208301356124bd8161223d565b809150509250929050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b6000602082840312156124fa57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561253157612531612501565b500290565b60008261255357634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820161258057612580612501565b5060010190565b60008282101561259957612599612501565b500390565b600082198211156125b1576125b1612501565b500190565b6000602082840312156125c857600080fd5b8151610cf98161223d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156126235784516001600160a01b0316835293830193918301916001016125fe565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561265957600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212204811ce113cad6a23c1f05390c3182d1e2fcf7af52e20ea2385e2c500e9088d0564736f6c634300080d0033

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

000000000000000000000000e101bb9a4b56dceef350601e7a14cb0b781e8f17

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000e101bb9a4b56dceef350601e7a14cb0b781e8f17


Deployed Bytecode Sourcemap

10743:12784:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12732:61;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;12732:61:0;;;;;;;;17581:80;;;;;;;;;;-1:-1:-1;17653:5:0;;;;;;;;;;;-1:-1:-1;;;17653:5:0;;;;17581:80;;;;17653:5;17581:80;:::i;18007:216::-;;;;;;;;;;-1:-1:-1;18007:216:0;;;;;:::i;:::-;;:::i;:::-;;;1558:14:1;;1551:22;1533:41;;1521:2;1506:18;18007:216:0;1393:187:1;17311:88:0;;;;;;;;;;-1:-1:-1;17384:12:0;;17311:88;;15640:123;;;;;;;;;;-1:-1:-1;15640:123:0;;;;;:::i;:::-;;:::i;:::-;;23426:98;;;;;;;;;;;;;:::i;18521:366::-;;;;;;;;;;-1:-1:-1;18521:366:0;;;;;:::i;:::-;;:::i;16436:90::-;;;;;;;;;;-1:-1:-1;16436:90:0;;;;;:::i;:::-;;:::i;17161:142::-;;;;;;;;;;;;;:::i;11874:27::-;;;;;;;;;;;;;;;;16226:202;;;;;;;;;;-1:-1:-1;16226:202:0;;;;;:::i;:::-;;:::i;14644:233::-;;;;;;;;;;-1:-1:-1;14644:233:0;;;;;:::i;:::-;;:::i;2643:103::-;;;;;;;;;;-1:-1:-1;2643:103:0;;;;;:::i;:::-;2698:4;2733:5;-1:-1:-1;;;;;2722:16:0;;;2733:5;;2722:16;;2643:103;14369:262;;;;;;;;;;-1:-1:-1;14369:262:0;;;;;:::i;:::-;;:::i;17405:80::-;;;;;;;;;;-1:-1:-1;17405:80:0;;11057:2;3274:36:1;;3262:2;3247:18;17405:80:0;3132:184:1;16019:199:0;;;;;;;;;;-1:-1:-1;16019:199:0;;;;;:::i;:::-;;:::i;11563:44::-;;;;;;;;;;-1:-1:-1;11563:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11669:49;;;;;;;;;;-1:-1:-1;11669:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12033:34;;;;;;;;;;;;;;;;23268:150;;;;;;;;;;-1:-1:-1;23268:150:0;;;;;:::i;:::-;;:::i;15771:102::-;;;;;;;;;;-1:-1:-1;15771:102:0;;;;;:::i;:::-;;:::i;11839:26::-;;;;;;;;;;;;;;;;12309:40;;;;;;;;;;-1:-1:-1;12309:40:0;;;;-1:-1:-1;;;12309:40:0;;;;;;10823:68;;;;;;;;;;-1:-1:-1;10823:68:0;;;;-1:-1:-1;;;;;10823:68:0;;;;;;-1:-1:-1;;;;;3903:32:1;;;3885:51;;3873:2;3858:18;10823:68:0;3739:203:1;18231:122:0;;;;;;;;;;-1:-1:-1;18231:122:0;;;;;:::i;:::-;;:::i;12400:38::-;;;;;;;;;;-1:-1:-1;12400:38:0;;;;-1:-1:-1;;;;;12400:38:0;;;22820:74;;;;;;;;;;;;;:::i;17751:105::-;;;;;;;;;;-1:-1:-1;17751:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;17835:18:0;17817:7;17835:18;;;:9;:18;;;;;;;17751:105;12612:51;;;;;;;;;;;;;;;;15238:116;;;;;;;;;;;;;:::i;11991:31::-;;;;;;;;;;;;;;;;17027:115;;;;;;;;;;-1:-1:-1;17027:115:0;;;;;:::i;:::-;;:::i;15057:172::-;;;;;;;;;;-1:-1:-1;15057:172:0;;;;;:::i;:::-;;:::i;11482:26::-;;;;;;;;;;-1:-1:-1;11482:26:0;;;;-1:-1:-1;;;11482:26:0;;;;;;23143:117;;;;;;;;;;-1:-1:-1;23143:117:0;;;;;:::i;:::-;;:::i;22902:233::-;;;;;;;;;;;;;:::i;17667:78::-;;;;;;;;;;-1:-1:-1;17719:7:0;17737:5;-1:-1:-1;;;;;17737:5:0;17667:78;;11614:48;;;;;;;;;;-1:-1:-1;11614:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12195:69;;;;;;;;;;-1:-1:-1;12195:69:0;;;;-1:-1:-1;;;;;12195:69:0;;;12445:40;;;;;;;;;;;;;;;;15366:122;;;;;;;;;;-1:-1:-1;15366:122:0;;;;;:::i;:::-;;:::i;12107:19::-;;;;;;;;;;-1:-1:-1;12107:19:0;;;;-1:-1:-1;;;;;12107:19:0;;;18361:152;;;;;;;;;;-1:-1:-1;18361:152:0;;;;;:::i;:::-;;:::i;14022:166::-;;;;;;;;;;-1:-1:-1;14022:166:0;;;;;:::i;:::-;;:::i;15885:121::-;;;;;;;;;;-1:-1:-1;15885:121:0;;;;;:::i;:::-;;:::i;13864:150::-;;;;;;;;;;-1:-1:-1;13864:150:0;;;;;:::i;:::-;;:::i;11727:25::-;;;;;;;;;;;;;;;;12133:22;;;;;;;;;;-1:-1:-1;12133:22:0;;;;-1:-1:-1;;;;;12133:22:0;;;11954:30;;;;;;;;;;;;;;;;14240:115;;;;;;;;;;;;;:::i;11912:33::-;;;;;;;;;;;;;;;;14885:164;;;;;;;;;;-1:-1:-1;14885:164:0;;;;;:::i;:::-;;:::i;17862:133::-;;;;;;;;;;-1:-1:-1;17862:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;17964:19:0;;;17946:7;17964:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;17862:133;2754:136;;;;;;;;;;-1:-1:-1;2754:136:0;;;;;:::i;:::-;;:::i;16887:132::-;;;;;;;;;;-1:-1:-1;16887:132:0;;;;;:::i;:::-;;:::i;12076:24::-;;;;;;;;;;-1:-1:-1;12076:24:0;;;;-1:-1:-1;;;;;12076:24:0;;;12670:55;;;;;;;;;;;;;;;;15496:136;;;;;;;;;;-1:-1:-1;15496:136:0;;;;;:::i;:::-;;:::i;12356:31::-;;;;;;;;;;-1:-1:-1;12356:31:0;;;;-1:-1:-1;;;12356:31:0;;;;;;18007:216;18111:10;18082:4;18099:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18099:32:0;;;;;;;;;;:41;;;18156:37;18082:4;;18099:32;;18156:37;;;;18134:6;160:25:1;;148:2;133:18;;14:177;18156:37:0;;;;;;;;-1:-1:-1;18211:4:0;18007:216;;;;;:::o;15640:123::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;;;;;;;;;15722:9:::1;:33:::0;;-1:-1:-1;;;;;;15722:33:0::1;-1:-1:-1::0;;;;;15722:33:0;;;::::1;::::0;;;::::1;::::0;;15640:123::o;23426:98::-;23478:15;;:38;;-1:-1:-1;;;23478:38:0;;23505:10;23478:38;;;3885:51:1;-1:-1:-1;;;;;23478:15:0;;;;:26;;3858:18:1;;23478:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23426:98::o;18521:366::-;-1:-1:-1;;;;;18641:19:0;;18621:4;18641:19;;;:11;:19;;;;;;;;18661:10;18641:31;;;;;;;;-1:-1:-1;;18641:52:0;18638:186;;18743:69;;;;;;;;;;;-1:-1:-1;;;18743:69:0;;;;;;;;-1:-1:-1;;;;;18743:19:0;;-1:-1:-1;18743:19:0;;;:11;:19;;;;;18763:10;18743:31;;;;;;;;;;:69;;18779:6;;18743:35;:69::i;:::-;-1:-1:-1;;;;;18709:19:0;;;;;;:11;:19;;;;;;;;18729:10;18709:31;;;;;;;:103;18638:186;18843:36;18853:6;18861:9;18872:6;18843:9;:36::i;:::-;18836:43;;18521:366;;;;;;:::o;16436:90::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16498:12:0::1;16513:5;16498:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;16498:20:0::1;::::0;;16436:90::o;17161:142::-;17289:4;;-1:-1:-1;;;;;17289:4:0;17214:7;17835:18;;;:9;:18;;;;;;17241:54;;17268:4;;-1:-1:-1;;;;;17268:4:0;17817:7;17835:18;;;:9;:18;;;;;;17241:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;17234:61;;17161:142;:::o;16226:202::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;16339:15:::1;::::0;:73:::1;::::0;-1:-1:-1;;;16339:73:0;;::::1;::::0;::::1;7077:25:1::0;;;7118:18;;;7111:34;;;-1:-1:-1;;;;;16339:15:0;;::::1;::::0;:39:::1;::::0;7050:18:1;;16339:73:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16226:202:::0;;:::o;14644:233::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;14768:13:::1;:28:::0;;;;14807:11:::1;:22:::0;14840:11:::1;:29:::0;14644:233::o;14369:262::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;14465:6:::1;:18:::0;;;14494:7:::1;:20:::0;;;14545:2:::1;14535:12:::0;::::1;;14527:42;;;::::0;-1:-1:-1;;;14527:42:0;;7358:2:1;14527:42:0::1;::::0;::::1;7340:21:1::0;7397:2;7377:18;;;7370:30;-1:-1:-1;;;7416:18:1;;;7409:47;7473:18;;14527:42:0::1;7156:341:1::0;14527:42:0::1;14599:2;14588:7;;:13;;14580:43;;;::::0;-1:-1:-1;;;14580:43:0;;7358:2:1;14580:43:0::1;::::0;::::1;7340:21:1::0;7397:2;7377:18;;;7370:30;-1:-1:-1;;;7416:18:1;;;7409:47;7473:18;;14580:43:0::1;7156:341:1::0;14580:43:0::1;14369:262:::0;;:::o;16019:199::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;16128:21:::1;:39:::0;;;::::1;;-1:-1:-1::0;;;16128:39:0::1;-1:-1:-1::0;;;;16128:39:0;;::::1;::::0;;;::::1;::::0;;;16178:13:::1;:32:::0;16019:199::o;23268:150::-;23364:15;;:46;;-1:-1:-1;;;23364:46:0;;-1:-1:-1;;;;;3903:32:1;;;23364:46:0;;;3885:51:1;23337:7:0;;23364:15;;:33;;3858:18:1;;23364:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15771:102::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;15843:8:::1;:22:::0;;-1:-1:-1;;;;;;15843:22:0::1;-1:-1:-1::0;;;;;15843:22:0;;;::::1;::::0;;;::::1;::::0;;15771:102::o;18231:122::-;18286:4;18310:35;18318:7;-1:-1:-1;;18310:7:0;:35::i;22820:74::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;22876:10:::1;:8;:10::i;:::-;22820:74::o:0;15238:116::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;15299:12:::1;::::0;15291:5:::1;:20:::0;;;15322:9:::1;:24:::0;15238:116::o;17027:115::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;17107:18:::1;:27:::0;17027:115::o;15057:172::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;15159:1:::1;15145:13;:15;15137:24;;;::::0;::::1;;15218:3;15200:13;15185:12;;:28;;;;:::i;:::-;15184:37;;;;:::i;:::-;15172:9;:49:::0;-1:-1:-1;15057:172:0:o;23143:117::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;23218:15:::1;::::0;:34:::1;::::0;-1:-1:-1;;;;;;23218:34:0;;::::1;::::0;::::1;160:25:1::0;;;-1:-1:-1;;;;;23218:15:0;;::::1;::::0;:23:::1;::::0;133:18:1;;23218:34:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23143:117:::0;:::o;22902:233::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;22986:21:::1;23021:22:::0;;23018:110:::1;;23077:9;::::0;23069:47:::1;::::0;-1:-1:-1;;;;;23077:9:0;;::::1;::::0;23069:47;::::1;;;::::0;23097:18;;23077:9:::1;23069:47:::0;23077:9;23069:47;23097:18;23077:9;23069:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;23018:110;22946:189;22902:233::o:0;15366:122::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15452:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;15452:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15366:122::o;18361:152::-;18441:4;18465:40;18475:10;18487:9;18498:6;18465:9;:40::i;14022:166::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;14098:6:::1;14093:88;14114:5;:12;14110:1;:16;14093:88;;;14165:4;14148;:14;14153:5;14159:1;14153:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14148:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14148:14:0;:21;;-1:-1:-1;;14148:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14128:3;::::1;::::0;::::1;:::i;:::-;;;;14093:88;;15885:121:::0;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;15971:10:::1;:27:::0;;-1:-1:-1;;;;;;15971:27:0::1;-1:-1:-1::0;;;;;15971:27:0;;;::::1;::::0;;;::::1;::::0;;15885:121::o;13864:150::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;13940:8:::1;:26:::0;;-1:-1:-1;;;;;;13940:26:0::1;-1:-1:-1::0;;;;;13940:26:0;::::1;;::::0;;13977:29:::1;13940:26:::0;13977:12:::1;:29::i;14240:115::-:0;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;14306:12:::1;14293:10;:25:::0;14329:11:::1;:18:::0;;-1:-1:-1;;;;14329:18:0::1;-1:-1:-1::0;;;14329:18:0::1;::::0;;14240:115::o;14885:164::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;14983:1:::1;14969:13;:15;14961:24;;;::::0;::::1;;15038:3;15020:13;15005:12;;:28;;;;:::i;:::-;15004:37;;;;:::i;:::-;14996:5;:45:::0;-1:-1:-1;14885:164:0:o;2754:136::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;2830:5:::1;:11:::0;;-1:-1:-1;;;;;;2830:11:0::1;-1:-1:-1::0;;;;;2830:11:0;::::1;::::0;;::::1;::::0;;;2857:25:::1;::::0;3885:51:1;;;2857:25:0::1;::::0;3873:2:1;3858:18;2857:25:0::1;;;;;;;2754:136:::0;:::o;16887:132::-;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;16975:36:::1;16996:6;17004;16975:20;:36::i;15496:136::-:0;2698:4;2733:5;-1:-1:-1;;;;;2733:5:0;2602:10;2722:16;2586:38;;;;-1:-1:-1;;;2586:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15592:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;15592:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15496:136::o;764:250::-;822:7;846:1;851;846:6;842:47;;-1:-1:-1;876:1:0;869:8;;842:47;901:9;913:5;917:1;913;:5;:::i;:::-;901:17;-1:-1:-1;946:1:0;937:5;941:1;901:17;937:5;:::i;:::-;:10;929:56;;;;-1:-1:-1;;;929:56:0;;8908:2:1;929:56:0;;;8890:21:1;8947:2;8927:18;;;8920:30;8986:34;8966:18;;;8959:62;-1:-1:-1;;;9037:18:1;;;9030:31;9078:19;;929:56:0;8706:397:1;1020:132:0;1078:7;1105:39;1109:1;1112;1105:39;;;;;;;;;;;;;;;;;:3;:39::i;566:192::-;652:7;688:12;680:6;;;;672:29;;;;-1:-1:-1;;;672:29:0;;;;;;;;:::i;:::-;-1:-1:-1;712:9:0;724:5;728:1;724;:5;:::i;:::-;712:17;566:192;-1:-1:-1;;;;;566:192:0:o;18895:1428::-;18983:4;19013:5;;-1:-1:-1;;;;;19004:14:0;;;19013:5;;19004:14;;;;:35;;-1:-1:-1;19034:5:0;;-1:-1:-1;;;;;19022:17:0;;;19034:5;;19022:17;;19004:35;19000:88;;;19049:11;;-1:-1:-1;;;19049:11:0;;;;19041:47;;;;-1:-1:-1;;;19041:47:0;;9440:2:1;19041:47:0;;;9422:21:1;9479:2;9459:18;;;9452:30;9518:25;9498:18;;;9491:53;9561:18;;19041:47:0;9238:347:1;19041:47:0;-1:-1:-1;;;;;19150:12:0;;;;;;:4;:12;;;;;;;;19149:13;:33;;;;-1:-1:-1;;;;;;19167:15:0;;;;;;:4;:15;;;;;;;;19166:16;19149:33;19141:42;;;;;;19199:16;;-1:-1:-1;;;19199:16:0;;;;19196:73;;;19225:41;19240:6;19248:9;19259:6;19225:14;:41::i;:::-;19218:48;;;;19196:73;19299:5;;19289:6;:15;;:42;;;-1:-1:-1;;;;;;19308:23:0;;;;;;:15;:23;;;;;;;;19289:42;19281:57;;;;-1:-1:-1;;;19281:57:0;;9792:2:1;19281:57:0;;;9774:21:1;9831:1;9811:18;;;9804:29;-1:-1:-1;;;9849:18:1;;;9842:32;9891:18;;19281:57:0;9590:325:1;19281:57:0;-1:-1:-1;;;;;19355:26:0;;;;;;:15;:26;;;;;;;;19354:27;:38;;;;-1:-1:-1;19385:7:0;;-1:-1:-1;;;19385:7:0;;;;19354:38;19351:143;;;19462:9;;-1:-1:-1;;;;;19426:20:0;;;;;;:9;:20;;;;;;:32;;19451:6;19426:24;:32::i;:::-;:45;;19418:64;;;;-1:-1:-1;;;19418:64:0;;10122:2:1;19418:64:0;;;10104:21:1;10161:1;10141:18;;;10134:29;-1:-1:-1;;;10179:18:1;;;10172:36;10225:18;;19418:64:0;9920:329:1;19418:64:0;19523:4;;-1:-1:-1;;;;;19523:4:0;19509:10;:18;;;;:39;;-1:-1:-1;19532:16:0;;-1:-1:-1;;;19532:16:0;;;;19531:17;19509:39;:64;;;;-1:-1:-1;19552:21:0;;-1:-1:-1;;;19552:21:0;;;;19509:64;:109;;;;-1:-1:-1;19605:13:0;;19595:4;19577:24;;;;:9;:24;;;;;;:41;;19509:109;19506:128;;;19621:10;:8;:10::i;:::-;19666:53;;;;;;;;;;;-1:-1:-1;;;19666:53:0;;;;;;;;-1:-1:-1;;;;;19666:17:0;;-1:-1:-1;19666:17:0;;;:9;:17;;;;;;;;:53;;19688:6;;19666:21;:53::i;:::-;-1:-1:-1;;;;;19646:17:0;;;;;;:9;:17;;;;;;;;:73;;;;19763:11;:19;;;;;;;;19762:20;:47;;;;-1:-1:-1;;;;;;19787:22:0;;;;;;:11;:22;;;;;;;;19786:23;19762:47;:93;;19849:6;19762:93;;;19812:34;19820:6;19828:9;19839:6;19812:7;:34::i;:::-;-1:-1:-1;;;;;19889:20:0;;;;;;:9;:20;;;;;;19740:115;;-1:-1:-1;19889:37:0;;19740:115;19889:24;:37::i;:::-;-1:-1:-1;;;;;19866:20:0;;;;;;;:9;:20;;;;;;;;:60;;;;19972:24;;;;;:16;:24;;;;;;;19968:123;;20017:15;;-1:-1:-1;;;;;20050:17:0;;;20017:15;20050:17;;;:9;:17;;;;;;;;20017:51;;-1:-1:-1;;;20017:51:0;;;;;10428::1;;;;10495:18;;;10488:34;20017:15:0;;;:24;;10401:18:1;;20017:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20013:67;;-1:-1:-1;;;;;20107:27:0;;;;;;:16;:27;;;;;;;;20103:133;;20155:15;;-1:-1:-1;;;;;20191:20:0;;;20155:15;20191:20;;;:9;:20;;;;;;;;20155:57;;-1:-1:-1;;;20155:57:0;;;;;10428:51:1;;;;10495:18;;;10488:34;20155:15:0;;;:24;;10401:18:1;;20155:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20151:73;;20270:9;-1:-1:-1;;;;;20253:40:0;20262:6;-1:-1:-1;;;;;20253:40:0;;20281:11;20253:40;;;;160:25:1;;148:2;133:18;;14:177;20253:40:0;;;;;;;;-1:-1:-1;20311:4:0;;18895:1428;-1:-1:-1;;;;18895:1428:0:o;424:136::-;482:7;509:43;513:1;516;509:43;;;;;;;;;;;;;;;;;:3;:43::i;21873:939::-;12526:16;:23;;-1:-1:-1;;;;12526:23:0;-1:-1:-1;;;12526:23:0;;;21972:4:::1;12526:23:::0;21954:24;;;:9:::1;:24;::::0;;;;;22036:11:::1;::::0;21954:24;;12526:23;22019:45:::1;::::0;22062:1:::1;::::0;22019:38:::1;::::0;22053:3:::1;::::0;22019:38;;21954:24;;22019:16:::1;:29::i;:::-;:33:::0;::::1;:38::i;:45::-;21990:74:::0;-1:-1:-1;22080:20:0::1;22103:36;:12:::0;21990:74;22103:16:::1;:36::i;:::-;22080:59;;22152:30;22169:12;22152:16;:30::i;:::-;22195:23;22221:21;22195:47;;22253:22;22278:43;22317:3;22278:34;22298:13;;22278:15;:19;;:34;;;;:::i;:43::-;22253:68;;22332:23;22358:41;22395:3;22358:32;22378:11;;22358:15;:19;;:32;;;;:::i;:41::-;22332:67;;22410:23;22436:48;22482:1;22436:41;22473:3;22436:32;22456:11;;22436:15;:19;;:32;;;;:::i;:48::-;22410:74:::0;-1:-1:-1;22507:19:0;;22503:95:::1;;22550:9;::::0;22542:44:::1;::::0;-1:-1:-1;;;;;22550:9:0;;::::1;::::0;22542:44;::::1;;;::::0;22570:15;;22550:9:::1;22542:44:::0;22550:9;22542:44;22570:15;22550:9;22542:44;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22503:95;22622:15;;;;;;;;;-1:-1:-1::0;;;;;22622:15:0::1;-1:-1:-1::0;;;;;22622:23:0::1;;22653:14;22622:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;22618:64:::0;22706:22;;22702:103:::1;;22744:49;22757:18;22777:15;22744:12;:49::i;:::-;-1:-1:-1::0;;12572:16:0;:24;;-1:-1:-1;;;;12572:24:0;;;-1:-1:-1;;;;;21873:939:0:o;13737:119::-;13804:15;;:44;;-1:-1:-1;;;13804:44:0;;-1:-1:-1;;;;;3903:32:1;;;13804:44:0;;;3885:51:1;13804:15:0;;;;:27;;3858:18:1;;13804:44:0;3739:203:1;16534:345:0;-1:-1:-1;;;;;16621:23:0;;16639:4;16621:23;;;;:41;;-1:-1:-1;16658:4:0;;-1:-1:-1;;;;;16648:14:0;;;16658:4;;16648:14;;16621:41;16613:50;;;;;;-1:-1:-1;;;;;16674:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;16674:33:0;;;;;;;;;;;;16718:154;;16743:15;;:35;;-1:-1:-1;;;16743:35:0;;-1:-1:-1;;;;;10446:32:1;;;16743:35:0;;;10428:51:1;16743:15:0;10495:18:1;;;10488:34;16743:15:0;;;;:24;;10401:18:1;;16743:35:0;10254:274:1;16718:154:0;16809:15;;-1:-1:-1;;;;;16842:17:0;;;16809:15;16842:17;;;:9;:17;;;;;;;;16809:51;;-1:-1:-1;;;16809:51:0;;;;;10428::1;;;;10495:18;;;10488:34;16809:15:0;;;:24;;10401:18:1;;16809:51:0;10254:274:1;1158:345:0;1244:7;1346:12;1339:5;1331:28;;;;-1:-1:-1;;;1331:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1370:9:0;1382:5;1386:1;1382;:5;:::i;20335:330::-;20465:53;;;;;;;;;;;-1:-1:-1;;;20465:53:0;;;;;;;;-1:-1:-1;;;;;20465:17:0;;20428:4;20465:17;;;:9;:17;;;;;;;:53;;20487:6;;20465:21;:53::i;:::-;-1:-1:-1;;;;;20445:17:0;;;;;;;:9;:17;;;;;;:73;;;;20552:20;;;;;;;:32;;20577:6;20552:24;:32::i;:::-;-1:-1:-1;;;;;20529:20:0;;;;;;;:9;:20;;;;;;;:55;;;;20600:35;;;;;;;;;;20628:6;160:25:1;;148:2;133:18;;14:177;20600:35:0;;;;;;;;-1:-1:-1;20653:4:0;20335:330;;;;;:::o;237:181::-;295:7;;327:5;331:1;327;:5;:::i;:::-;315:17;;356:1;351;:6;;343:46;;;;-1:-1:-1;;;343:46:0;;11155:2:1;343:46:0;;;11137:21:1;11194:2;11174:18;;;11167:30;11233:29;11213:18;;;11206:57;11280:18;;343:46:0;10953:351:1;20679:427:0;20819:4;;20765:7;;;;-1:-1:-1;;;;;20819:17:0;;;:4;;:17;:36;;20849:6;;20819:36;;;20839:7;;20819:36;20795:60;-1:-1:-1;20866:17:0;20886:34;20916:3;20886:25;:6;20795:60;20886:10;:25::i;:34::-;20978:4;20960:24;;;;:9;:24;;;;;;20866:54;;-1:-1:-1;20960:39:0;;20866:54;20960:28;:39::i;:::-;20951:4;20933:24;;;;:9;:24;;;;;;;:66;;;;21015:42;;-1:-1:-1;;;;;21015:42:0;;;;;;;21047:9;160:25:1;;148:2;133:18;;14:177;21015:42:0;;;;;;;;21077:21;:6;21088:9;21077:10;:21::i;:::-;21070:28;20679:427;-1:-1:-1;;;;;;20679:427:0:o;21118:460::-;21210:16;;;21224:1;21210:16;;;;;;;;21186:21;;21210:16;;;;;;;;;;-1:-1:-1;21210:16:0;21186:40;;21255:4;21237;21242:1;21237:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;21237:23:0;;;:7;;;;;;;;;;:23;;;;21281:6;;:13;;;-1:-1:-1;;;21281:13:0;;;;:6;;;;;:11;;:13;;;;;21237:7;;21281:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21271:4;21276:1;21271:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21271:23:0;;;-1:-1:-1;;;;;21271:23:0;;;;;21307:35;21323:4;21330:11;21307:7;:35::i;:::-;-1:-1:-1;21355:6:0;;:215;;-1:-1:-1;;;21355:215:0;;-1:-1:-1;;;;;21355:6:0;;;;:57;;:215;;21427:11;;21355:6;;21497:4;;21524;;21544:15;;21355:215;;;:::i;21586:279::-;21667:6;;21808:8;;21667:190;;-1:-1:-1;;;21667:190:0;;21730:4;21667:190;;;12891:34:1;12941:18;;;12934:34;;;21667:6:0;12984:18:1;;;12977:34;;;13027:18;;;13020:34;-1:-1:-1;;;;;21808:8:0;;;13070:19:1;;;13063:44;21831:15:0;13123:19:1;;;13116:35;21667:6:0;;;:22;;21697:9;;12825:19:1;;21667:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:134;1002:20;;1031:31;1002:20;1031:31;:::i;:::-;934:134;;;:::o;1073:315::-;1141:6;1149;1202:2;1190:9;1181:7;1177:23;1173:32;1170:52;;;1218:1;1215;1208:12;1170:52;1257:9;1244:23;1276:31;1301:5;1276:31;:::i;:::-;1326:5;1378:2;1363:18;;;;1350:32;;-1:-1:-1;;;1073:315:1:o;1585:255::-;1652:6;1705:2;1693:9;1684:7;1680:23;1676:32;1673:52;;;1721:1;1718;1711:12;1673:52;1760:9;1747:23;1779:31;1804:5;1779:31;:::i;1845:456::-;1922:6;1930;1938;1991:2;1979:9;1970:7;1966:23;1962:32;1959:52;;;2007:1;2004;1997:12;1959:52;2046:9;2033:23;2065:31;2090:5;2065:31;:::i;:::-;2115:5;-1:-1:-1;2172:2:1;2157:18;;2144:32;2185:33;2144:32;2185:33;:::i;:::-;1845:456;;2237:7;;-1:-1:-1;;;2291:2:1;2276:18;;;;2263:32;;1845:456::o;2558:248::-;2626:6;2634;2687:2;2675:9;2666:7;2662:23;2658:32;2655:52;;;2703:1;2700;2693:12;2655:52;-1:-1:-1;;2726:23:1;;;2796:2;2781:18;;;2768:32;;-1:-1:-1;2558:248:1:o;2811:316::-;2888:6;2896;2904;2957:2;2945:9;2936:7;2932:23;2928:32;2925:52;;;2973:1;2970;2963:12;2925:52;-1:-1:-1;;2996:23:1;;;3066:2;3051:18;;3038:32;;-1:-1:-1;3117:2:1;3102:18;;;3089:32;;2811:316;-1:-1:-1;2811:316:1:o;3321:160::-;3386:20;;3442:13;;3435:21;3425:32;;3415:60;;3471:1;3468;3461:12;3486:248;3551:6;3559;3612:2;3600:9;3591:7;3587:23;3583:32;3580:52;;;3628:1;3625;3618:12;3580:52;3651:26;3667:9;3651:26;:::i;4187:180::-;4246:6;4299:2;4287:9;4278:7;4274:23;4270:32;4267:52;;;4315:1;4312;4305:12;4267:52;-1:-1:-1;4338:23:1;;4187:180;-1:-1:-1;4187:180:1:o;4372:315::-;4437:6;4445;4498:2;4486:9;4477:7;4473:23;4469:32;4466:52;;;4514:1;4511;4504:12;4466:52;4553:9;4540:23;4572:31;4597:5;4572:31;:::i;:::-;4622:5;-1:-1:-1;4646:35:1;4677:2;4662:18;;4646:35;:::i;:::-;4636:45;;4372:315;;;;;:::o;4692:127::-;4753:10;4748:3;4744:20;4741:1;4734:31;4784:4;4781:1;4774:15;4808:4;4805:1;4798:15;4824:1121;4908:6;4939:2;4982;4970:9;4961:7;4957:23;4953:32;4950:52;;;4998:1;4995;4988:12;4950:52;5038:9;5025:23;5067:18;5108:2;5100:6;5097:14;5094:34;;;5124:1;5121;5114:12;5094:34;5162:6;5151:9;5147:22;5137:32;;5207:7;5200:4;5196:2;5192:13;5188:27;5178:55;;5229:1;5226;5219:12;5178:55;5265:2;5252:16;5287:2;5283;5280:10;5277:36;;;5293:18;;:::i;:::-;5339:2;5336:1;5332:10;5371:2;5365:9;5434:2;5430:7;5425:2;5421;5417:11;5413:25;5405:6;5401:38;5489:6;5477:10;5474:22;5469:2;5457:10;5454:18;5451:46;5448:72;;;5500:18;;:::i;:::-;5536:2;5529:22;5586:18;;;5620:15;;;;-1:-1:-1;5662:11:1;;;5658:20;;;5690:19;;;5687:39;;;5722:1;5719;5712:12;5687:39;5746:11;;;;5766:148;5782:6;5777:3;5774:15;5766:148;;;5848:23;5867:3;5848:23;:::i;:::-;5836:36;;5799:12;;;;5892;;;;5766:148;;;5933:6;4824:1121;-1:-1:-1;;;;;;;;4824:1121:1:o;5950:388::-;6018:6;6026;6079:2;6067:9;6058:7;6054:23;6050:32;6047:52;;;6095:1;6092;6085:12;6047:52;6134:9;6121:23;6153:31;6178:5;6153:31;:::i;:::-;6203:5;-1:-1:-1;6260:2:1;6245:18;;6232:32;6273:33;6232:32;6273:33;:::i;:::-;6325:7;6315:17;;;5950:388;;;;;:::o;6569:329::-;6771:2;6753:21;;;6810:1;6790:18;;;6783:29;-1:-1:-1;;;6843:2:1;6828:18;;6821:36;6889:2;6874:18;;6569:329::o;7502:184::-;7572:6;7625:2;7613:9;7604:7;7600:23;7596:32;7593:52;;;7641:1;7638;7631:12;7593:52;-1:-1:-1;7664:16:1;;7502:184;-1:-1:-1;7502:184:1:o;7691:127::-;7752:10;7747:3;7743:20;7740:1;7733:31;7783:4;7780:1;7773:15;7807:4;7804:1;7797:15;7823:168;7863:7;7929:1;7925;7921:6;7917:14;7914:1;7911:21;7906:1;7899:9;7892:17;7888:45;7885:71;;;7936:18;;:::i;:::-;-1:-1:-1;7976:9:1;;7823:168::o;7996:217::-;8036:1;8062;8052:132;;8106:10;8101:3;8097:20;8094:1;8087:31;8141:4;8138:1;8131:15;8169:4;8166:1;8159:15;8052:132;-1:-1:-1;8198:9:1;;7996:217::o;8218:127::-;8279:10;8274:3;8270:20;8267:1;8260:31;8310:4;8307:1;8300:15;8334:4;8331:1;8324:15;8350:135;8389:3;8410:17;;;8407:43;;8430:18;;:::i;:::-;-1:-1:-1;8477:1:1;8466:13;;8350:135::o;9108:125::-;9148:4;9176:1;9173;9170:8;9167:34;;;9181:18;;:::i;:::-;-1:-1:-1;9218:9:1;;9108:125::o;10820:128::-;10860:3;10891:1;10887:6;10884:1;10881:13;10878:39;;;10897:18;;:::i;:::-;-1:-1:-1;10933:9:1;;10820:128::o;11309:251::-;11379:6;11432:2;11420:9;11411:7;11407:23;11403:32;11400:52;;;11448:1;11445;11438:12;11400:52;11480:9;11474:16;11499:31;11524:5;11499:31;:::i;11565:980::-;11827:4;11875:3;11864:9;11860:19;11906:6;11895:9;11888:25;11932:2;11970:6;11965:2;11954:9;11950:18;11943:34;12013:3;12008:2;11997:9;11993:18;11986:31;12037:6;12072;12066:13;12103:6;12095;12088:22;12141:3;12130:9;12126:19;12119:26;;12180:2;12172:6;12168:15;12154:29;;12201:1;12211:195;12225:6;12222:1;12219:13;12211:195;;;12290:13;;-1:-1:-1;;;;;12286:39:1;12274:52;;12381:15;;;;12346:12;;;;12322:1;12240:9;12211:195;;;-1:-1:-1;;;;;;;12462:32:1;;;;12457:2;12442:18;;12435:60;-1:-1:-1;;;12526:3:1;12511:19;12504:35;12423:3;11565:980;-1:-1:-1;;;11565:980:1:o;13162:306::-;13250:6;13258;13266;13319:2;13307:9;13298:7;13294:23;13290:32;13287:52;;;13335:1;13332;13325:12;13287:52;13364:9;13358:16;13348:26;;13414:2;13403:9;13399:18;13393:25;13383:35;;13458:2;13447:9;13443:18;13437:25;13427:35;;13162:306;;;;;:::o

Swarm Source

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