ETH Price: $3,269.17 (+3.12%)
Gas: 2 Gwei

Token

NPC INU (👤)
 

Overview

Max Total Supply

100,000,000 👤

Holders

29

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
921,199.999999998 👤

Value
$0.00
0xD911b02F8E8EB6eF5FA86e3B2e40e9763D9714D5
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:
ERC20

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-08
*/

/*
⢀⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⡀
⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿
⠈⠛⠛⠁⠀⠀⠀⠀⠀⠀⠀⣾⣷⡀⠀⠀⠈⠛⠛⠁
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣧⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣆⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⡄⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣷⡀⠀⠀⠀
⠀⠀⠀⠀⠀⣿⣿⣿⣿⣶⣶⣶⣶⣤⣽⣿⣧⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠙⠛⠛⠋⠀⠀⠀
⠀⠀⠀⠀⢀⣀⣀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠻⠿⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⡷⠀⠀⠀
*/

/**
 *Submitted for verification at Etherscan.io on 2022-08-09
*/

/*

    Support the current thing. NPC INU. 
    I'm buying some and so should you. 
    Hold to
    the moon. 
    Holding this means we shall make it,
    bro. 

    ha ha hodl. 
*/

pragma solidity ^0.8.4;
//SPDX-License-Identifier: MIT

interface IBEP20 {
    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;
    mapping (address => bool) internal authorizations;
 
    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }
 
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
 
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }
 
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }
 
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }
 
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
 
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }
 
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        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;
}

abstract contract SecureLaunch is IBEP20 {
	mapping (address => bool) marked;
	uint256 launchBlock;
	uint8 unsafeBlocks = 1;

	function setUpMarks() internal {
		marked[0xdead7Cb55A785023a37d998c6EB2d9D576fd2073] = true;
		marked[0xf621660201C5D3EF2344815fD8DA40b8C4A0a936] = true;
		marked[0x5fE41aCDE175Cf3D3D41FC99107582680a9412b1] = true;
		marked[0x0d5b7059eb3ebFA496769639e2dDC7Cb0C553B04] = true;
		marked[0xF041617E8db156526C59D9a96733cEe62aA9457C] = true;
		marked[0x708EE986A70fFCa5A0e8DFB612fF5D1584EF42a4] = true;
		marked[0x1912a2157041Ac1c2412c6f28d6c45742E655C8A] = true;
		marked[0x09279bc071Efa81b898eFb951A1838d3cBDAD64a] = true;
		marked[0xEa1ede773837e317d37CEefCe31Dc4C9A3957Af8] = true;
		marked[0x39E467b0a5e6B63A329D217F7EA0DE3BD0158c5a] = true;
		marked[0xe093fee0721004bef41a9493c49F822Ecc346663] = true;
	}

	function launch() internal {
		launchBlock = block.number;
	}

	function launched() internal view returns (bool) {
		return launchBlock > 0;
	}

	function goodToGo() internal view returns (bool) {
		return launched() && block.number - launchBlock > unsafeBlocks;
	}

	function isBadActor(address add) internal view returns (bool) {
		return marked[add];
	}

	function mark(address add, bool st) internal {
		marked[add] = st;
	}
}

interface IDividendDistributor {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
}
 
contract DividendDistributor is IDividendDistributor {
    address _token;
 
    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    IDEXRouter router;
	IBEP20 token = IBEP20(0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599); // BTC to be distributed
    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;

    // Auto-reward timer
    uint256 public minPeriod = 5 minutes;
    uint256 public minDistribution = 15 ether;
	uint256 public sendGas = 33420;
 
    uint256 currentIndex;
 
    bool initialized;
    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }
 
    constructor(address _router) {
        router = _router != address(0)
            ? IDEXRouter(_router)
			// Default is UniSwap router if token constructor sets it no need too update.
            : IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _token = msg.sender;
    }

	function setSendGas(uint256 gas) external onlyToken {
		sendGas = gas;
	}
 
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken {
        minPeriod = _minPeriod;
        minDistribution = _minDistribution;
    }

	function _setShare(address shareholder, uint256 amount) internal {
		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 + amount - shares[shareholder].amount;
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
	}

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        _setShare(shareholder, amount);
    }
 
    function deposit() external override payable {
        uint256 balanceBefore = token.balanceOf(address(this));

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

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

        uint256 amount = token.balanceOf(address(this)) - balanceBefore;

        totalDividends += amount;
        dividendsPerShare += dividendsPerShareAccuracyFactor * amount / totalShares;
    }

    function process(uint256 gas) external override onlyToken {
        uint256 shareholderCount = shareholders.length;
 
        if (shareholderCount == 0) {
			return;
		}
 
        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft(); 
        uint256 iterations = 0;
 
        while (gasUsed < gas && iterations < shareholderCount) {
            if (currentIndex >= shareholderCount){
                currentIndex = 0;
            }
 
            if (shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }
 
            gasUsed += gasLeft - gasleft();
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
 
    function shouldDistribute(address shareholder) internal 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 += amount;
			token.transfer(shareholder, amount);
			shareholderClaims[shareholder] = block.timestamp;
			shares[shareholder].totalRealised += amount;
			shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }

    function claimDividend() external {
        distributeDividend(msg.sender);
    }

	function claimDividendFor(address a) external {
        distributeDividend(a);
    }
 
    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 - shareholderTotalExcluded;
    }
 
    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share * dividendsPerShare / 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 ERC20 is SecureLaunch, Auth {
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;
 
    string constant _name = "NPC INU";
    string constant _symbol = "\xF0\x9F\x91\xA4";
    uint8 constant _decimals = 9;
 
    //Total supply: 100,000,000
    uint256 _totalSupply = 100_000_000 * (10 ** _decimals);
    uint256 public _maxWalletToken = _totalSupply / 100;
 
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
 
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isDividendExempt;
 
    uint256 liquidityFee    = 2;
    uint256 reflectionFee   = 3;
    uint256 marketingFee    = 2;
    uint256 public totalFee = 6;
    uint256 feeDenominator  = 100;
 
    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
 
    uint256 targetLiquidity = 25;
    uint256 targetLiquidityDenominator = 100;
 
    IDEXRouter public router;
    address public pair;
 
    DividendDistributor distributor;
    uint256 distributorGas = 350000;
 
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 1 / 25000; // 0.025% of supply
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
 
    constructor () Auth(msg.sender) {
		setUpMarks();
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Uniswap router
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
 
        distributor = new DividendDistributor(address(router));
 
        //No fees for these wallets
        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingFeeReceiver] = true;
 
        // No dividends for these wallets
        isDividendExempt[pair] = true;
        isDividendExempt[DEAD] = true;
 
        autoLiquidityReceiver = 0xA3BD7233716581618987e2935a417821A91037d1;
        marketingFeeReceiver = 0x3720F92Ee9E6bb73f28b93fbe2Fb8312F22C086a;

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

    receive() external payable { }
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
 
    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }
 
    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }
 
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }
 
    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }
 
        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
    }
 
    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (inSwap) {
			return _basicTransfer(sender, recipient, amount);
		}

		if (isBadActor(sender)) {
			revert("TransferHelper: TRANSFER_FROM_FAILED");
		}

		if (!launched() && recipient == pair) {
            require(_balances[sender] > 0);
            require(sender == owner, "Only the owner can be the first to add liquidity.");
            launch();
        }
 
        // Max wallet code
        if (!authorizations[sender] 
            && recipient != address(this)  
            && recipient != address(DEAD) 
            && recipient != pair 
            && recipient != marketingFeeReceiver 
            && recipient != autoLiquidityReceiver  
            && recipient != owner
		) {
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken, "Total Holding is currently limited, you can not buy that amount.");
		}		

        if (shouldSwapBack()) {
			swapBack();
		}

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

		if (!goodToGo() && sender == pair && recipient != owner) {
			mark(recipient, true);
		}

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

        try distributor.process(distributorGas) {} catch {}
 
        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
 
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }
 
    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }
 
    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount * totalFee / feeDenominator;
 
        _balances[address(this)] += feeAmount;
        emit Transfer(sender, address(this), feeAmount);
 
        return amount - feeAmount;
    }
 
    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
			&& !inSwap
			&& swapEnabled
			&& _balances[address(this)] >= swapThreshold;
    }
 
    function rescue(uint256 percentage) external onlyOwner {
        payable(owner).transfer(address(this).balance * percentage / 100);
    }

    function swapBack() internal swapping {
		uint256 tokensToSwap = balanceOf(address(this));
		if (tokensToSwap > _totalSupply / 200) {
			tokensToSwap = _totalSupply / 200;
		}
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = tokensToSwap * dynamicLiquidityFee / totalFee / 2;
        uint256 amountToSwap = tokensToSwap - amountToLiquify;
 
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
 
        uint256 balanceBefore = address(this).balance;
 
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
 
        uint256 amount = address(this).balance - balanceBefore;
        uint256 tFee = totalFee - dynamicLiquidityFee / 2;
        uint256 amountLiquidity = amount * dynamicLiquidityFee / tFee / 2;
        uint256 amountReflection = amount * reflectionFee / tFee;
        uint256 amountMarketing = amount * marketingFee / tFee;
 
        try distributor.deposit{value: amountReflection}() {} catch {}
 
        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountLiquidity, amountToLiquify);
        } else {
			amountMarketing += amountLiquidity;
		}

		payable(marketingFeeReceiver).call{value: amountMarketing, gas: 34000}("");
    }

    function setIsDividendExempt(address holder, bool exempt) external authorized {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, _balances[holder]);
        }
    }
 
    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }
 
    function setFees(uint256 _liquidityFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        reflectionFee = _reflectionFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee + _reflectionFee + _marketingFee;
        feeDenominator = _feeDenominator;
    }
 
    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
    }
 
    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }
 
    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
 
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized {
        distributor.setDistributionCriteria(_minPeriod, _minDistribution);
    }

	function setDistributionCriteria(uint256 gas) external authorized {
        distributor.setSendGas(gas);
    }

	function claimMyDividends() external {
        distributor.claimDividendFor(msg.sender);
    }

    function setDistributorSettings(uint256 gas) external authorized {
        require(gas < 750000);
        distributorGas = gas;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO);
    }
 
    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy * balanceOf(pair) / getCirculatingSupply();
    }
 
    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

	function deposit() external payable {
		distributor.deposit{value: msg.value}();
	}

	function guessIwasWrong(address add) external authorized {
		mark(add, false);
	}
 
    event AutoLiquify(uint256 amount, uint256 amountTo);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTo","type":"uint256"}],"name":"AutoLiquify","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":"_maxWalletToken","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":[{"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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimMyDividends","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"add","type":"address"}],"name":"guessIwasWrong","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","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":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"rescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526002805460ff19166001179055600480546001600160a01b031990811661dead179091556005805490911690556200003f6009600a620006eb565b6200004f906305f5e100620007ac565b600655606460065462000063919062000681565b6007556002600d556003600e556002600f556006601055606460115560196014556064601555620557306019556001601a60006101000a81548160ff0219169083151502179055506161a86006546001620000bf9190620007ac565b620000cb919062000681565b601b55348015620000db57600080fd5b5060028054610100600160a81b031916336101008102919091179091556000908152600360205260409020805460ff1916600117905562000300600060208190527f913537bea4c33e65a5dac425902033590d9c77eb5e6764bebc0fe4ed052698318054600160ff1991821681179092557fa680d8e95b5fc4eaca140b603163bb47be7baafc1b8f19a759d88a9d1b86262e80548216831790557fae78eee5aa59a976a0a69f691358f149ffbc7d8f8d75b32501f8aae394e5aa9e80548216831790557f0e34b48769e6ed8a1058ad30537610e51d64bb4f66fe1add473cbdcfd0b973bd80548216831790557fea0141fb335cb29317aa069a8615f1bc7e848f9fae46208d90f9195c7ca07f6580548216831790557f8f8946989cff8ef569ac02c921fb968fe637383294727f53d5bb15b66774c44280548216831790557fcd0fd3fd98cbaff09aaa9329c564203e45f33eee891919355a853a8576a3621880548216831790557fa8ee87ae470a104aef49ef6656e5767296ade0a8a550c15729e235dd5ea115c880548216831790557f112640194c1f3407c0e76fa4d1fd781bc3c88ee712bfac201c555e0a37ee65d980548216831790557f1f472aa6a3bd101a0728229ff6d670978aaa516fda45fb2143d8467aa7b03bc0805482168317905573e093fee0721004bef41a9493c49f822ecc3466639092527f4fac159cc2c3da1b62f768111576e8e783df462477f34c406fe43438d3d9a1128054909216179055565b601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200036057600080fd5b505afa15801562000375573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039b919062000651565b6001600160a01b031663c9c65396601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003f857600080fd5b505afa1580156200040d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000433919062000651565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200047b57600080fd5b505af115801562000490573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b6919062000651565b601780546001600160a01b0319166001600160a01b0392831617905530600090815260096020908152604080832060168054861685529252918290206000199055549051911690620005089062000643565b6001600160a01b039091168152602001604051809103906000f08015801562000535573d6000803e3d6000fd5b50601880546001600160a01b039283166001600160a01b031991821617909155336000818152600a60209081526040808320805460ff1990811660019081179092556013805489168652838620805483168417905560175489168652600c8552838620805483168417905560045490981685528285208054909116909117905560128054861673a3bd7233716581618987e2935a417821a91037d11790558554909416733720f92ee9e6bb73f28b93fbe2fb8312f22c086a179094556006548282526008909452828120849055915190927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916200063591815260200190565b60405180910390a3620007e4565b610f7580620027d983390190565b60006020828403121562000663578081fd5b81516001600160a01b03811681146200067a578182fd5b9392505050565b6000826200069d57634e487b7160e01b81526012600452602481fd5b500490565b600181815b80851115620006e3578160001904821115620006c757620006c7620007ce565b80851615620006d557918102915b93841c9390800290620006a7565b509250929050565b60006200067a60ff8416836000826200070757506001620007a6565b816200071657506000620007a6565b81600181146200072f57600281146200073a576200075a565b6001915050620007a6565b60ff8411156200074e576200074e620007ce565b50506001821b620007a6565b5060208310610133831016604e8410600b84101617156200077f575081810a620007a6565b6200078b8383620006a2565b8060001904821115620007a257620007a2620007ce565b0290505b92915050565b6000816000190483118215151615620007c957620007c9620007ce565b500290565b634e487b7160e01b600052601160045260246000fd5b611fe580620007f46000396000f3fe60806040526004361061024a5760003560e01c806382bf293c11610139578063d0e30db0116100b6578063ee02ff911161007a578063ee02ff9114610707578063f0b37c0414610727578063f2fde38b14610747578063f708a64f14610767578063f887ea4014610787578063fe9fbb80146107a757600080fd5b8063d0e30db014610659578063d51ed1c814610661578063dd62ed3e14610681578063df20fd49146106c7578063e96fada2146106e757600080fd5b8063a4b45c00116100fd578063a4b45c00146105b9578063a8aa1b31146105d9578063a9059cbb146105f9578063b6a5d7de14610619578063ca33e64c1461063957600080fd5b806382bf293c146104f5578063893d20e81461051557806395d89b411461054c57806398e5bfee146105795780639d1944f51461059957600080fd5b80632f54bf6e116101c75780636ac053ad1161018b5780636ac053ad1461044f5780636ddd17131461046f5780636fcba3771461048957806370a08231146104a957806378109e54146104df57600080fd5b80632f54bf6e146103aa578063313ce567146103de57806345ba992d146103fa578063571ac8b01461040f578063658d4b7f1461042f57600080fd5b80631df4ccfc1161020e5780631df4ccfc1461031d578063201e79911461033357806323b872dd146103555780632b112e49146103755780632d48e8961461038a57600080fd5b80630445b6671461025657806306fdde031461027f578063095ea7b3146102b85780631161ae39146102e857806318160ddd1461030857600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026c601b5481565b6040519081526020015b60405180910390f35b34801561028b57600080fd5b506040805180820190915260078152664e504320494e5560c81b60208201525b6040516102769190611e0e565b3480156102c457600080fd5b506102d86102d3366004611d31565b6107c7565b6040519015158152602001610276565b3480156102f457600080fd5b506102d8610303366004611d8f565b610833565b34801561031457600080fd5b5060065461026c565b34801561032957600080fd5b5061026c60105481565b34801561033f57600080fd5b5061035361034e366004611d8f565b610847565b005b34801561036157600080fd5b506102d8610370366004611cbd565b610880565b34801561038157600080fd5b5061026c6108fa565b34801561039657600080fd5b506103536103a5366004611d8f565b61094c565b3480156103b657600080fd5b506102d86103c5366004611c4d565b60025461010090046001600160a01b0390811691161490565b3480156103ea57600080fd5b5060405160098152602001610276565b34801561040657600080fd5b506103536109db565b34801561041b57600080fd5b506102d861042a366004611c4d565b610a3a565b34801561043b57600080fd5b5061035361044a366004611cfd565b610a4e565b34801561045b57600080fd5b5061035361046a366004611d77565b610a9e565b34801561047b57600080fd5b50601a546102d89060ff1681565b34801561049557600080fd5b506103536104a4366004611ddd565b610b24565b3480156104b557600080fd5b5061026c6104c4366004611c4d565b6001600160a01b031660009081526008602052604090205490565b3480156104eb57600080fd5b5061026c60075481565b34801561050157600080fd5b50610353610510366004611d77565b610b78565b34801561052157600080fd5b5060025461010090046001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561055857600080fd5b506040805180820190915260048152633c27e46960e21b60208201526102ab565b34801561058557600080fd5b50610353610594366004611d77565b610bc8565b3480156105a557600080fd5b506103536105b4366004611d77565b610c4e565b3480156105c557600080fd5b506103536105d4366004611c85565b610c87565b3480156105e557600080fd5b50601754610534906001600160a01b031681565b34801561060557600080fd5b506102d8610614366004611d31565b610cda565b34801561062557600080fd5b50610353610634366004611c4d565b610ce7565b34801561064557600080fd5b50601254610534906001600160a01b031681565b610353610d3b565b34801561066d57600080fd5b5061026c61067c366004611d77565b610d8b565b34801561068d57600080fd5b5061026c61069c366004611c85565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106d357600080fd5b506103536106e2366004611d5c565b610dc4565b3480156106f357600080fd5b50601354610534906001600160a01b031681565b34801561071357600080fd5b50610353610722366004611c4d565b610e00565b34801561073357600080fd5b50610353610742366004611c4d565b610e33565b34801561075357600080fd5b50610353610762366004611c4d565b610e84565b34801561077357600080fd5b50610353610782366004611cfd565b610f2a565b34801561079357600080fd5b50601654610534906001600160a01b031681565b3480156107b357600080fd5b506102d86107c2366004611c4d565b61102e565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108229086815260200190565b60405180910390a350600192915050565b60008261083f83610d8b565b119392505050565b6108503361102e565b6108755760405162461bcd60e51b815260040161086c90611e81565b60405180910390fd5b601491909155601555565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146108e5576001600160a01b0384166000908152600960209081526040808320338452909152812080548492906108df908490611f6d565b90915550505b6108f084848461104c565b90505b9392505050565b6005546001600160a01b03166000908152600860205260408120546004546001600160a01b031660009081526008602052604090205460065461093d9190611f6d565b6109479190611f6d565b905090565b6109553361102e565b6109715760405162461bcd60e51b815260040161086c90611e81565b6018546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b1580156109bf57600080fd5b505af11580156109d3573d6000803e3d6000fd5b505050505050565b60185460405163edf3525360e01b81523360048201526001600160a01b039091169063edf3525390602401600060405180830381600087803b158015610a2057600080fd5b505af1158015610a34573d6000803e3d6000fd5b50505050565b6000610a48826000196107c7565b92915050565b610a573361102e565b610a735760405162461bcd60e51b815260040161086c90611e81565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6002546001600160a01b03610100909104163314610ace5760405162461bcd60e51b815260040161086c90611e61565b60025461010090046001600160a01b03166108fc6064610aee8447611f4e565b610af89190611f2e565b6040518115909202916000818181858888f19350505050158015610b20573d6000803e3d6000fd5b5050565b610b2d3361102e565b610b495760405162461bcd60e51b815260040161086c90611e81565b600d849055600e839055600f82905581610b638486611f16565b610b6d9190611f16565b601055601155505050565b6002546001600160a01b03610100909104163314610ba85760405162461bcd60e51b815260040161086c90611e61565b606481600654610bb89190611f4e565b610bc29190611f2e565b60075550565b610bd13361102e565b610bed5760405162461bcd60e51b815260040161086c90611e81565b601854604051634bd4c97560e11b8152600481018390526001600160a01b03909116906397a992ea90602401600060405180830381600087803b158015610c3357600080fd5b505af1158015610c47573d6000803e3d6000fd5b5050505050565b610c573361102e565b610c735760405162461bcd60e51b815260040161086c90611e81565b620b71b08110610c8257600080fd5b601955565b610c903361102e565b610cac5760405162461bcd60e51b815260040161086c90611e81565b601280546001600160a01b039384166001600160a01b03199182161790915560138054929093169116179055565b60006108f333848461104c565b6002546001600160a01b03610100909104163314610d175760405162461bcd60e51b815260040161086c90611e61565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b601860009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610c3357600080fd5b6000610d956108fa565b6017546001600160a01b0316600090815260086020526040902054610dba9084611f4e565b610a489190611f2e565b610dcd3361102e565b610de95760405162461bcd60e51b815260040161086c90611e81565b601a805460ff191692151592909217909155601b55565b610e093361102e565b610e255760405162461bcd60e51b815260040161086c90611e81565b610e308160006115db565b50565b6002546001600160a01b03610100909104163314610e635760405162461bcd60e51b815260040161086c90611e61565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6002546001600160a01b03610100909104163314610eb45760405162461bcd60e51b815260040161086c90611e61565b60028054610100600160a81b0319166101006001600160a01b03841690810291909117909155600081815260036020908152604091829020805460ff1916600117905590519182527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b610f333361102e565b610f4f5760405162461bcd60e51b815260040161086c90611e81565b6001600160a01b0382163014801590610f7657506017546001600160a01b03838116911614155b610f7f57600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155610fe557601854604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044016109a5565b6018546001600160a01b0383811660008181526008602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca96906044016109a5565b6001600160a01b031660009081526003602052604090205460ff1690565b601c5460009060ff161561106c57611065848484611606565b90506108f3565b6001600160a01b03841660009081526020819052604090205460ff16156110e15760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f46416044820152631253115160e21b606482015260840161086c565b6001541580156110fe57506017546001600160a01b038481169116145b156111aa576001600160a01b03841660009081526008602052604090205461112557600080fd5b6002546001600160a01b0385811661010090920416146111a15760405162461bcd60e51b815260206004820152603160248201527f4f6e6c7920746865206f776e65722063616e20626520746865206669727374206044820152703a379030b232103634b8bab4b234ba3c9760791b606482015260840161086c565b6111aa43600155565b6001600160a01b03841660009081526003602052604090205460ff161580156111dc57506001600160a01b0383163014155b80156111f657506004546001600160a01b03848116911614155b801561121057506017546001600160a01b03848116911614155b801561122a57506013546001600160a01b03848116911614155b801561124457506012546001600160a01b03848116911614155b801561126357506002546001600160a01b038481166101009092041614155b15611306576001600160a01b03831660009081526008602052604090205460075461128e8483611f16565b1115611304576040805162461bcd60e51b81526020600482015260248101919091527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f7420627579207468617420616d6f756e742e606482015260840161086c565b505b61130e6116bb565b1561131b5761131b61170a565b6001600160a01b03841660009081526008602052604081208054849290611343908490611f6d565b90915550506001600160a01b0384166000908152600a602052604081205460ff161561136f5782611379565b6113798584611b6f565b6001600160a01b0385166000908152600860205260408120805492935083929091906113a6908490611f16565b909155506113b49050611c08565b1580156113ce57506017546001600160a01b038681169116145b80156113ed57506002546001600160a01b038581166101009092041614155b156113fd576113fd8460016115db565b6001600160a01b0385166000908152600c602052604090205460ff1661148e576018546001600160a01b0386811660008181526008602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561147b57600080fd5b505af192505050801561148c575060015b505b6001600160a01b0384166000908152600c602052604090205460ff1661151f576018546001600160a01b0385811660008181526008602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561150c57600080fd5b505af192505050801561151d575060015b505b6018546019546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916115579160040190815260200190565b600060405180830381600087803b15801561157157600080fd5b505af1925050508015611582575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115c891815260200190565b60405180910390a3506001949350505050565b6001600160a01b03919091166000908152602081905260409020805460ff1916911515919091179055565b6001600160a01b038316600090815260086020526040812080548391908390611630908490611f6d565b90915550506001600160a01b0383166000908152600860205260408120805484929061165d908490611f16565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116a991815260200190565b60405180910390a35060019392505050565b6017546000906001600160a01b031633148015906116dc5750601c5460ff16155b80156116ea5750601a5460ff165b8015610947575050601b5430600090815260086020526040902054101590565b601c805460ff1916600117905530600090815260086020526040812054905060c86006546117389190611f2e565b8111156117515760c860065461174e9190611f2e565b90505b6000611761601454601554610833565b61176d57600d54611770565b60005b90506000600260105483856117859190611f4e565b61178f9190611f2e565b6117999190611f2e565b905060006117a78285611f6d565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106117ef57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561184357600080fd5b505afa158015611857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187b9190611c69565b8160018151811061189c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b81524792919091169063791ac947906118e6908690600090879030904290600401611ea6565b600060405180830381600087803b15801561190057600080fd5b505af1158015611914573d6000803e3d6000fd5b50505050600081476119269190611f6d565b90506000611935600288611f2e565b6010546119429190611f6d565b905060006002826119538a86611f4e565b61195d9190611f2e565b6119679190611f2e565b9050600082600e548561197a9190611f4e565b6119849190611f2e565b9050600083600f54866119979190611f4e565b6119a19190611f2e565b9050601860009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156119f357600080fd5b505af193505050508015611a05575060015b508815611af15760165460125460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b158015611a7757600080fd5b505af1158015611a8b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ab09190611db0565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a1611afe565b611afb8382611f16565b90505b6013546040516001600160a01b03909116906184d09083906000818181858888f193505050503d8060008114611b50576040519150601f19603f3d011682016040523d82523d6000602084013e611b55565b606091505b5050601c805460ff19169055505050505050505050505050565b60008060115460105484611b839190611f4e565b611b8d9190611f2e565b30600090815260086020526040812080549293508392909190611bb1908490611f16565b909155505060405181815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3611c008184611f6d565b949350505050565b6000611c15600154151590565b8015610947575060025460015460ff90911690611c329043611f6d565b11905090565b80358015158114611c4857600080fd5b919050565b600060208284031215611c5e578081fd5b81356108f381611f9a565b600060208284031215611c7a578081fd5b81516108f381611f9a565b60008060408385031215611c97578081fd5b8235611ca281611f9a565b91506020830135611cb281611f9a565b809150509250929050565b600080600060608486031215611cd1578081fd5b8335611cdc81611f9a565b92506020840135611cec81611f9a565b929592945050506040919091013590565b60008060408385031215611d0f578182fd5b8235611d1a81611f9a565b9150611d2860208401611c38565b90509250929050565b60008060408385031215611d43578182fd5b8235611d4e81611f9a565b946020939093013593505050565b60008060408385031215611d6e578182fd5b611d4e83611c38565b600060208284031215611d88578081fd5b5035919050565b60008060408385031215611da1578182fd5b50508035926020909101359150565b600080600060608486031215611dc4578283fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215611df2578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b81811015611e3a57858101830151858201604001528201611e1e565b81811115611e4b5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611ef55784516001600160a01b031683529383019391830191600101611ed0565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611f2957611f29611f84565b500190565b600082611f4957634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611f6857611f68611f84565b500290565b600082821015611f7f57611f7f611f84565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610e3057600080fdfea26469706673582212204d03dbc78c5ce0fcd874ee9f0bb49ebe134834751dcae3243af9544ba879396f64736f6c634300080400336080604052600280546001600160a01b031916732260fac5e5542a773aa44fbcfedf7c193bc2c5991790556ec097ce7bc90715b34b9f1000000000600b5561012c600c5567d02ab486cedc0000600d5561828c600e5534801561006157600080fd5b50604051610f75380380610f75833981016040819052610080916100da565b6001600160a01b0381166100a857737a250d5630b4cf539739df2c5dacb4c659f2488d6100aa565b805b600180546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610108565b6000602082840312156100eb578081fd5b81516001600160a01b0381168114610101578182fd5b9392505050565b610e5e806101176000396000f3fe6080604052600436106100fe5760003560e01c8063ce7c2ac211610095578063edf3525311610064578063edf352531461027b578063efca2eed1461029b578063f0fc6bca146102b1578063ffb2c479146102c6578063ffd49c84146102e657600080fd5b8063ce7c2ac2146101f0578063d0e30db014610247578063e2d2e2191461024f578063ed38f6b01461026557600080fd5b80633a98ef39116100d15780633a98ef391461018e5780634fab0ae8146101a457806397a992ea146101ba578063997664d7146101da57600080fd5b806311ce023d1461010357806314b6ca961461012c57806328fd31981461014e5780632d48e8961461016e575b600080fd5b34801561010f57600080fd5b50610119600b5481565b6040519081526020015b60405180910390f35b34801561013857600080fd5b5061014c610147366004610c6f565b6102fc565b005b34801561015a57600080fd5b50610119610169366004610c30565b610321565b34801561017a57600080fd5b5061014c610189366004610cea565b6103aa565b34801561019a57600080fd5b5061011960075481565b3480156101b057600080fd5b50610119600d5481565b3480156101c657600080fd5b5061014c6101d5366004610cba565b6103cc565b3480156101e657600080fd5b5061011960085481565b3480156101fc57600080fd5b5061022c61020b366004610c30565b60066020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610123565b61014c6103e8565b34801561025b57600080fd5b50610119600a5481565b34801561027157600080fd5b50610119600e5481565b34801561028757600080fd5b5061014c610296366004610c30565b6106b7565b3480156102a757600080fd5b5061011960095481565b3480156102bd57600080fd5b5061014c6106c3565b3480156102d257600080fd5b5061014c6102e1366004610cba565b6106ce565b3480156102f257600080fd5b50610119600c5481565b6000546001600160a01b0316331461031357600080fd5b61031d82826107ea565b5050565b6001600160a01b03811660009081526006602052604081205461034657506000919050565b6001600160a01b0382166000908152600660205260408120546103689061094b565b6001600160a01b038416600090815260066020526040902060010154909150808211610398575060009392505050565b6103a28183610dcb565b949350505050565b6000546001600160a01b031633146103c157600080fd5b600c91909155600d55565b6000546001600160a01b031633146103e357600080fd5b600e55565b6002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561042c57600080fd5b505afa158015610440573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104649190610cd2565b60408051600280825260608201835292935060009290916020830190803683375050600154604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b1580156104ce57600080fd5b505afa1580156104e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105069190610c53565b8160008151811061052757634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260025482519116908290600190811061056657634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260015460405163b6f9de9560e01b815291169063b6f9de959034906105ac90600090869030904290600401610d0b565b6000604051808303818588803b1580156105c557600080fd5b505af11580156105d9573d6000803e3d6000fd5b50506002546040516370a0823160e01b8152306004820152600094508693506001600160a01b0390911691506370a082319060240160206040518083038186803b15801561062657600080fd5b505afa15801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e9190610cd2565b6106689190610dcb565b9050806008600082825461067c9190610d74565b9091555050600754600b54610692908390610dac565b61069c9190610d8c565b600a60008282546106ad9190610d74565b9091555050505050565b6106c08161096e565b50565b6106cc3361096e565b565b6000546001600160a01b031633146106e557600080fd5b600354806106f1575050565b6000805a905060005b848310801561070857508381105b156107e35783600f541061071c576000600f555b61075c6003600f548154811061074257634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316610a9e565b156107a1576107a16003600f548154811061078757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031661096e565b5a6107ac9083610dcb565b6107b69084610d74565b92505a600f805491935060006107cb83610de2565b919050555080806107db90610de2565b9150506106fa565b5050505050565b6001600160a01b03821660009081526006602052604090205415610811576108118261096e565b60008111801561083757506001600160a01b038216600090815260066020526040902054155b1561089d57600380546001600160a01b0384166000818152600460205260408120839055600183018455929092527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b03191690911790556108d0565b801580156108c257506001600160a01b03821660009081526006602052604090205415155b156108d0576108d082610ae3565b6001600160a01b0382166000908152600660205260409020546007546108f7908390610d74565b6109019190610dcb565b6007556001600160a01b03821660009081526006602052604090208190556109288161094b565b6001600160a01b0390921660009081526006602052604090206001019190915550565b6000600b54600a548361095e9190610dac565b6109689190610d8c565b92915050565b6001600160a01b03811660009081526006602052604090205461098e5750565b600061099982610321565b9050801561031d5780600960008282546109b39190610d74565b909155505060025460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb90604401602060405180830381600087803b158015610a0657600080fd5b505af1158015610a1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3e9190610c9a565b506001600160a01b0382166000908152600560209081526040808320429055600690915281206002018054839290610a77908490610d74565b90915550506001600160a01b0382166000908152600660205260409020546109289061094b565b600c546001600160a01b03821660009081526005602052604081205490914291610ac89190610d74565b1080156109685750600d54610adc83610321565b1192915050565b60038054610af390600190610dcb565b81548110610b1157634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0384811684526004909252604090922054600380549290931692918110610b5d57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260049182905260408120546003805491939291610ba990600190610dcb565b81548110610bc757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610c0b57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b031916905501905550565b600060208284031215610c41578081fd5b8135610c4c81610e13565b9392505050565b600060208284031215610c64578081fd5b8151610c4c81610e13565b60008060408385031215610c81578081fd5b8235610c8c81610e13565b946020939093013593505050565b600060208284031215610cab578081fd5b81518015158114610c4c578182fd5b600060208284031215610ccb578081fd5b5035919050565b600060208284031215610ce3578081fd5b5051919050565b60008060408385031215610cfc578182fd5b50508035926020909101359150565b600060808201868352602060808185015281875180845260a0860191508289019350845b81811015610d545784516001600160a01b031683529383019391830191600101610d2f565b50506001600160a01b039690961660408501525050506060015292915050565b60008219821115610d8757610d87610dfd565b500190565b600082610da757634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610dc657610dc6610dfd565b500290565b600082821015610ddd57610ddd610dfd565b500390565b6000600019821415610df657610df6610dfd565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146106c057600080fdfea2646970667358221220fd173f656e40cb1cbf29ef87811925bc47269c26849289d0dbcb181d20a779c564736f6c63430008040033

Deployed Bytecode

0x60806040526004361061024a5760003560e01c806382bf293c11610139578063d0e30db0116100b6578063ee02ff911161007a578063ee02ff9114610707578063f0b37c0414610727578063f2fde38b14610747578063f708a64f14610767578063f887ea4014610787578063fe9fbb80146107a757600080fd5b8063d0e30db014610659578063d51ed1c814610661578063dd62ed3e14610681578063df20fd49146106c7578063e96fada2146106e757600080fd5b8063a4b45c00116100fd578063a4b45c00146105b9578063a8aa1b31146105d9578063a9059cbb146105f9578063b6a5d7de14610619578063ca33e64c1461063957600080fd5b806382bf293c146104f5578063893d20e81461051557806395d89b411461054c57806398e5bfee146105795780639d1944f51461059957600080fd5b80632f54bf6e116101c75780636ac053ad1161018b5780636ac053ad1461044f5780636ddd17131461046f5780636fcba3771461048957806370a08231146104a957806378109e54146104df57600080fd5b80632f54bf6e146103aa578063313ce567146103de57806345ba992d146103fa578063571ac8b01461040f578063658d4b7f1461042f57600080fd5b80631df4ccfc1161020e5780631df4ccfc1461031d578063201e79911461033357806323b872dd146103555780632b112e49146103755780632d48e8961461038a57600080fd5b80630445b6671461025657806306fdde031461027f578063095ea7b3146102b85780631161ae39146102e857806318160ddd1461030857600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026c601b5481565b6040519081526020015b60405180910390f35b34801561028b57600080fd5b506040805180820190915260078152664e504320494e5560c81b60208201525b6040516102769190611e0e565b3480156102c457600080fd5b506102d86102d3366004611d31565b6107c7565b6040519015158152602001610276565b3480156102f457600080fd5b506102d8610303366004611d8f565b610833565b34801561031457600080fd5b5060065461026c565b34801561032957600080fd5b5061026c60105481565b34801561033f57600080fd5b5061035361034e366004611d8f565b610847565b005b34801561036157600080fd5b506102d8610370366004611cbd565b610880565b34801561038157600080fd5b5061026c6108fa565b34801561039657600080fd5b506103536103a5366004611d8f565b61094c565b3480156103b657600080fd5b506102d86103c5366004611c4d565b60025461010090046001600160a01b0390811691161490565b3480156103ea57600080fd5b5060405160098152602001610276565b34801561040657600080fd5b506103536109db565b34801561041b57600080fd5b506102d861042a366004611c4d565b610a3a565b34801561043b57600080fd5b5061035361044a366004611cfd565b610a4e565b34801561045b57600080fd5b5061035361046a366004611d77565b610a9e565b34801561047b57600080fd5b50601a546102d89060ff1681565b34801561049557600080fd5b506103536104a4366004611ddd565b610b24565b3480156104b557600080fd5b5061026c6104c4366004611c4d565b6001600160a01b031660009081526008602052604090205490565b3480156104eb57600080fd5b5061026c60075481565b34801561050157600080fd5b50610353610510366004611d77565b610b78565b34801561052157600080fd5b5060025461010090046001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561055857600080fd5b506040805180820190915260048152633c27e46960e21b60208201526102ab565b34801561058557600080fd5b50610353610594366004611d77565b610bc8565b3480156105a557600080fd5b506103536105b4366004611d77565b610c4e565b3480156105c557600080fd5b506103536105d4366004611c85565b610c87565b3480156105e557600080fd5b50601754610534906001600160a01b031681565b34801561060557600080fd5b506102d8610614366004611d31565b610cda565b34801561062557600080fd5b50610353610634366004611c4d565b610ce7565b34801561064557600080fd5b50601254610534906001600160a01b031681565b610353610d3b565b34801561066d57600080fd5b5061026c61067c366004611d77565b610d8b565b34801561068d57600080fd5b5061026c61069c366004611c85565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b3480156106d357600080fd5b506103536106e2366004611d5c565b610dc4565b3480156106f357600080fd5b50601354610534906001600160a01b031681565b34801561071357600080fd5b50610353610722366004611c4d565b610e00565b34801561073357600080fd5b50610353610742366004611c4d565b610e33565b34801561075357600080fd5b50610353610762366004611c4d565b610e84565b34801561077357600080fd5b50610353610782366004611cfd565b610f2a565b34801561079357600080fd5b50601654610534906001600160a01b031681565b3480156107b357600080fd5b506102d86107c2366004611c4d565b61102e565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108229086815260200190565b60405180910390a350600192915050565b60008261083f83610d8b565b119392505050565b6108503361102e565b6108755760405162461bcd60e51b815260040161086c90611e81565b60405180910390fd5b601491909155601555565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146108e5576001600160a01b0384166000908152600960209081526040808320338452909152812080548492906108df908490611f6d565b90915550505b6108f084848461104c565b90505b9392505050565b6005546001600160a01b03166000908152600860205260408120546004546001600160a01b031660009081526008602052604090205460065461093d9190611f6d565b6109479190611f6d565b905090565b6109553361102e565b6109715760405162461bcd60e51b815260040161086c90611e81565b6018546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b1580156109bf57600080fd5b505af11580156109d3573d6000803e3d6000fd5b505050505050565b60185460405163edf3525360e01b81523360048201526001600160a01b039091169063edf3525390602401600060405180830381600087803b158015610a2057600080fd5b505af1158015610a34573d6000803e3d6000fd5b50505050565b6000610a48826000196107c7565b92915050565b610a573361102e565b610a735760405162461bcd60e51b815260040161086c90611e81565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6002546001600160a01b03610100909104163314610ace5760405162461bcd60e51b815260040161086c90611e61565b60025461010090046001600160a01b03166108fc6064610aee8447611f4e565b610af89190611f2e565b6040518115909202916000818181858888f19350505050158015610b20573d6000803e3d6000fd5b5050565b610b2d3361102e565b610b495760405162461bcd60e51b815260040161086c90611e81565b600d849055600e839055600f82905581610b638486611f16565b610b6d9190611f16565b601055601155505050565b6002546001600160a01b03610100909104163314610ba85760405162461bcd60e51b815260040161086c90611e61565b606481600654610bb89190611f4e565b610bc29190611f2e565b60075550565b610bd13361102e565b610bed5760405162461bcd60e51b815260040161086c90611e81565b601854604051634bd4c97560e11b8152600481018390526001600160a01b03909116906397a992ea90602401600060405180830381600087803b158015610c3357600080fd5b505af1158015610c47573d6000803e3d6000fd5b5050505050565b610c573361102e565b610c735760405162461bcd60e51b815260040161086c90611e81565b620b71b08110610c8257600080fd5b601955565b610c903361102e565b610cac5760405162461bcd60e51b815260040161086c90611e81565b601280546001600160a01b039384166001600160a01b03199182161790915560138054929093169116179055565b60006108f333848461104c565b6002546001600160a01b03610100909104163314610d175760405162461bcd60e51b815260040161086c90611e61565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b601860009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610c3357600080fd5b6000610d956108fa565b6017546001600160a01b0316600090815260086020526040902054610dba9084611f4e565b610a489190611f2e565b610dcd3361102e565b610de95760405162461bcd60e51b815260040161086c90611e81565b601a805460ff191692151592909217909155601b55565b610e093361102e565b610e255760405162461bcd60e51b815260040161086c90611e81565b610e308160006115db565b50565b6002546001600160a01b03610100909104163314610e635760405162461bcd60e51b815260040161086c90611e61565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6002546001600160a01b03610100909104163314610eb45760405162461bcd60e51b815260040161086c90611e61565b60028054610100600160a81b0319166101006001600160a01b03841690810291909117909155600081815260036020908152604091829020805460ff1916600117905590519182527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b610f333361102e565b610f4f5760405162461bcd60e51b815260040161086c90611e81565b6001600160a01b0382163014801590610f7657506017546001600160a01b03838116911614155b610f7f57600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155610fe557601854604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044016109a5565b6018546001600160a01b0383811660008181526008602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca96906044016109a5565b6001600160a01b031660009081526003602052604090205460ff1690565b601c5460009060ff161561106c57611065848484611606565b90506108f3565b6001600160a01b03841660009081526020819052604090205460ff16156110e15760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f46416044820152631253115160e21b606482015260840161086c565b6001541580156110fe57506017546001600160a01b038481169116145b156111aa576001600160a01b03841660009081526008602052604090205461112557600080fd5b6002546001600160a01b0385811661010090920416146111a15760405162461bcd60e51b815260206004820152603160248201527f4f6e6c7920746865206f776e65722063616e20626520746865206669727374206044820152703a379030b232103634b8bab4b234ba3c9760791b606482015260840161086c565b6111aa43600155565b6001600160a01b03841660009081526003602052604090205460ff161580156111dc57506001600160a01b0383163014155b80156111f657506004546001600160a01b03848116911614155b801561121057506017546001600160a01b03848116911614155b801561122a57506013546001600160a01b03848116911614155b801561124457506012546001600160a01b03848116911614155b801561126357506002546001600160a01b038481166101009092041614155b15611306576001600160a01b03831660009081526008602052604090205460075461128e8483611f16565b1115611304576040805162461bcd60e51b81526020600482015260248101919091527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f7420627579207468617420616d6f756e742e606482015260840161086c565b505b61130e6116bb565b1561131b5761131b61170a565b6001600160a01b03841660009081526008602052604081208054849290611343908490611f6d565b90915550506001600160a01b0384166000908152600a602052604081205460ff161561136f5782611379565b6113798584611b6f565b6001600160a01b0385166000908152600860205260408120805492935083929091906113a6908490611f16565b909155506113b49050611c08565b1580156113ce57506017546001600160a01b038681169116145b80156113ed57506002546001600160a01b038581166101009092041614155b156113fd576113fd8460016115db565b6001600160a01b0385166000908152600c602052604090205460ff1661148e576018546001600160a01b0386811660008181526008602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561147b57600080fd5b505af192505050801561148c575060015b505b6001600160a01b0384166000908152600c602052604090205460ff1661151f576018546001600160a01b0385811660008181526008602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561150c57600080fd5b505af192505050801561151d575060015b505b6018546019546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916115579160040190815260200190565b600060405180830381600087803b15801561157157600080fd5b505af1925050508015611582575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115c891815260200190565b60405180910390a3506001949350505050565b6001600160a01b03919091166000908152602081905260409020805460ff1916911515919091179055565b6001600160a01b038316600090815260086020526040812080548391908390611630908490611f6d565b90915550506001600160a01b0383166000908152600860205260408120805484929061165d908490611f16565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116a991815260200190565b60405180910390a35060019392505050565b6017546000906001600160a01b031633148015906116dc5750601c5460ff16155b80156116ea5750601a5460ff165b8015610947575050601b5430600090815260086020526040902054101590565b601c805460ff1916600117905530600090815260086020526040812054905060c86006546117389190611f2e565b8111156117515760c860065461174e9190611f2e565b90505b6000611761601454601554610833565b61176d57600d54611770565b60005b90506000600260105483856117859190611f4e565b61178f9190611f2e565b6117999190611f2e565b905060006117a78285611f6d565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106117ef57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561184357600080fd5b505afa158015611857573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187b9190611c69565b8160018151811061189c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260165460405163791ac94760e01b81524792919091169063791ac947906118e6908690600090879030904290600401611ea6565b600060405180830381600087803b15801561190057600080fd5b505af1158015611914573d6000803e3d6000fd5b50505050600081476119269190611f6d565b90506000611935600288611f2e565b6010546119429190611f6d565b905060006002826119538a86611f4e565b61195d9190611f2e565b6119679190611f2e565b9050600082600e548561197a9190611f4e565b6119849190611f2e565b9050600083600f54866119979190611f4e565b6119a19190611f2e565b9050601860009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b1580156119f357600080fd5b505af193505050508015611a05575060015b508815611af15760165460125460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b158015611a7757600080fd5b505af1158015611a8b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ab09190611db0565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a1611afe565b611afb8382611f16565b90505b6013546040516001600160a01b03909116906184d09083906000818181858888f193505050503d8060008114611b50576040519150601f19603f3d011682016040523d82523d6000602084013e611b55565b606091505b5050601c805460ff19169055505050505050505050505050565b60008060115460105484611b839190611f4e565b611b8d9190611f2e565b30600090815260086020526040812080549293508392909190611bb1908490611f16565b909155505060405181815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3611c008184611f6d565b949350505050565b6000611c15600154151590565b8015610947575060025460015460ff90911690611c329043611f6d565b11905090565b80358015158114611c4857600080fd5b919050565b600060208284031215611c5e578081fd5b81356108f381611f9a565b600060208284031215611c7a578081fd5b81516108f381611f9a565b60008060408385031215611c97578081fd5b8235611ca281611f9a565b91506020830135611cb281611f9a565b809150509250929050565b600080600060608486031215611cd1578081fd5b8335611cdc81611f9a565b92506020840135611cec81611f9a565b929592945050506040919091013590565b60008060408385031215611d0f578182fd5b8235611d1a81611f9a565b9150611d2860208401611c38565b90509250929050565b60008060408385031215611d43578182fd5b8235611d4e81611f9a565b946020939093013593505050565b60008060408385031215611d6e578182fd5b611d4e83611c38565b600060208284031215611d88578081fd5b5035919050565b60008060408385031215611da1578182fd5b50508035926020909101359150565b600080600060608486031215611dc4578283fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215611df2578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b81811015611e3a57858101830151858201604001528201611e1e565b81811115611e4b5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611ef55784516001600160a01b031683529383019391830191600101611ed0565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611f2957611f29611f84565b500190565b600082611f4957634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611f6857611f68611f84565b500290565b600082821015611f7f57611f7f611f84565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610e3057600080fdfea26469706673582212204d03dbc78c5ce0fcd874ee9f0bb49ebe134834751dcae3243af9544ba879396f64736f6c63430008040033

Deployed Bytecode Sourcemap

12054:11345:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13297:55;;;;;;;;;;;;;;;;;;;8867:25:1;;;8855:2;8840:18;13297:55:0;;;;;;;;14681:80;;;;;;;;;;-1:-1:-1;14753:5:0;;;;;;;;;;;;-1:-1:-1;;;14753:5:0;;;;14681:80;;;;;;;:::i;15104:216::-;;;;;;;;;;-1:-1:-1;15104:216:0;;;;;:::i;:::-;;:::i;:::-;;;5930:14:1;;5923:22;5905:41;;5893:2;5878:18;15104:216:0;5860:92:1;23007:150:0;;;;;;;;;;-1:-1:-1;23007:150:0;;;;;:::i;:::-;;:::i;14411:88::-;;;;;;;;;;-1:-1:-1;14484:12:0;;14411:88;;12875:27;;;;;;;;;;;;;;;;21954:183;;;;;;;;;;-1:-1:-1;21954:183:0;;;;;:::i;:::-;;:::i;:::-;;15625:311;;;;;;;;;;-1:-1:-1;15625:311:0;;;;;:::i;:::-;;:::i;22699:136::-;;;;;;;;;;;;;:::i;22146:183::-;;;;;;;;;;-1:-1:-1;22146:183:0;;;;;:::i;:::-;;:::i;2561:103::-;;;;;;;;;;-1:-1:-1;2561:103:0;;;;;:::i;:::-;2651:5;;;;;-1:-1:-1;;;;;2651:5:0;;;2640:16;;;;2561:103;14505:80;;;;;;;;;;-1:-1:-1;14505:80:0;;12347:1;10286:36:1;;10274:2;10259:18;14505:80:0;10241:87:1;22451:96:0;;;;;;;;;;;;;:::i;15329:122::-;;;;;;;;;;-1:-1:-1;15329:122:0;;;;;:::i;:::-;;:::i;21044:120::-;;;;;;;;;;-1:-1:-1;21044:120:0;;;;;:::i;:::-;;:::i;18779:139::-;;;;;;;;;;-1:-1:-1;18779:139:0;;;;;:::i;:::-;;:::i;13260:30::-;;;;;;;;;;-1:-1:-1;13260:30:0;;;;;;;;21173:370;;;;;;;;;;-1:-1:-1;21173:370:0;;;;;:::i;:::-;;:::i;14851:105::-;;;;;;;;;;-1:-1:-1;14851:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;14935:18:0;14917:7;14935:18;;;:9;:18;;;;;;;14851:105;12452:51;;;;;;;;;;;;;;;;15944:149;;;;;;;;;;-1:-1:-1;15944:149:0;;;;;:::i;:::-;;:::i;14767:78::-;;;;;;;;;;-1:-1:-1;14837:5:0;;;;;-1:-1:-1;;;;;14837:5:0;14767:78;;;-1:-1:-1;;;;;4327:32:1;;;4309:51;;4297:2;4282:18;14767:78:0;4264:102:1;14591:84:0;;;;;;;;;;-1:-1:-1;14665:7:0;;;;;;;;;;;;-1:-1:-1;;;14665:7:0;;;;14591:84;;22334:112;;;;;;;;;;-1:-1:-1;22334:112:0;;;;;:::i;:::-;;:::i;22555:136::-;;;;;;;;;;-1:-1:-1;22555:136:0;;;;;:::i;:::-;;:::i;21552:228::-;;;;;;;;;;-1:-1:-1;21552:228:0;;;;;:::i;:::-;;:::i;13152:19::-;;;;;;;;;;-1:-1:-1;13152:19:0;;;;-1:-1:-1;;;;;13152:19:0;;;15460:156;;;;;;;;;;-1:-1:-1;15460:156:0;;;;;:::i;:::-;;:::i;2352:94::-;;;;;;;;;;-1:-1:-1;2352:94:0;;;;;:::i;:::-;;:::i;12948:36::-;;;;;;;;;;-1:-1:-1;12948:36:0;;;;-1:-1:-1;;;;;12948:36:0;;;23162:85;;;:::i;22844:154::-;;;;;;;;;;-1:-1:-1;22844:154:0;;;;;:::i;:::-;;:::i;14962:133::-;;;;;;;;;;-1:-1:-1;14962:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;15064:19:0;;;15046:7;15064:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;14962:133;21789:156;;;;;;;;;;-1:-1:-1;21789:156:0;;;;;:::i;:::-;;:::i;12991:35::-;;;;;;;;;;-1:-1:-1;12991:35:0;;;;-1:-1:-1;;;;;12991:35:0;;;23252:83;;;;;;;;;;-1:-1:-1;23252:83:0;;;;;:::i;:::-;;:::i;2455:97::-;;;;;;;;;;-1:-1:-1;2455:97:0;;;;;:::i;:::-;;:::i;2789:173::-;;;;;;;;;;-1:-1:-1;2789:173:0;;;;;:::i;:::-;;:::i;20688:347::-;;;;;;;;;;-1:-1:-1;20688:347:0;;;;;:::i;:::-;;:::i;13121:24::-;;;;;;;;;;-1:-1:-1;13121:24:0;;;;-1:-1:-1;;;;;13121:24:0;;;2673:107;;;;;;;;;;-1:-1:-1;2673:107:0;;;;;:::i;:::-;;:::i;15104:216::-;15208:10;15179:4;15196:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;15196:32:0;;;;;;;;;;:41;;;15253:37;15179:4;;15196:32;;15253:37;;;;15231:6;8867:25:1;;8855:2;8840:18;;8822:76;15253:37:0;;;;;;;;-1:-1:-1;15308:4:0;15104:216;;;;:::o;23007:150::-;23087:4;23143:6;23111:29;23131:8;23111:19;:29::i;:::-;:38;;23007:150;-1:-1:-1;;;23007:150:0:o;21954:183::-;2292:24;2305:10;2292:12;:24::i;:::-;2284:48;;;;-1:-1:-1;;;2284:48:0;;;;;;;:::i;:::-;;;;;;;;;22052:15:::1;:25:::0;;;;22088:26:::1;:41:::0;21954:183::o;15625:311::-;-1:-1:-1;;;;;15746:19:0;;15725:4;15746:19;;;:11;:19;;;;;;;;15766:10;15746:31;;;;;;;;-1:-1:-1;;15746:52:0;15742:126;;-1:-1:-1;;;;;15815:19:0;;;;;;:11;:19;;;;;;;;15835:10;15815:31;;;;;;;:41;;15850:6;;15815:19;:41;;15850:6;;15815:41;:::i;:::-;;;;-1:-1:-1;;15742:126:0;15888:40;15902:6;15910:9;15921:6;15888:13;:40::i;:::-;15881:47;;15625:311;;;;;;:::o;22699:136::-;22822:4;;-1:-1:-1;;;;;22822:4:0;22752:7;14935:18;;;:9;:18;;;;;;22804:4;;-1:-1:-1;;;;;22804:4:0;14917:7;14935:18;;;:9;:18;;;;;;22779:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;22772:55;;22699:136;:::o;22146:183::-;2292:24;2305:10;2292:12;:24::i;:::-;2284:48;;;;-1:-1:-1;;;2284:48:0;;;;;;;:::i;:::-;22256:11:::1;::::0;:65:::1;::::0;-1:-1:-1;;;22256:65:0;;::::1;::::0;::::1;10065:25:1::0;;;10106:18;;;10099:34;;;-1:-1:-1;;;;;22256:11:0;;::::1;::::0;:35:::1;::::0;10038:18:1;;22256:65:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22146:183:::0;;:::o;22451:96::-;22499:11;;:40;;-1:-1:-1;;;22499:40:0;;22528:10;22499:40;;;4309:51:1;-1:-1:-1;;;;;22499:11:0;;;;:28;;4282:18:1;;22499:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22451:96::o;15329:122::-;15384:4;15408:35;15416:7;-1:-1:-1;;15408:7:0;:35::i;:::-;15401:42;15329:122;-1:-1:-1;;15329:122:0:o;21044:120::-;2292:24;2305:10;2292:12;:24::i;:::-;2284:48;;;;-1:-1:-1;;;2284:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21128:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;21128:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21044:120::o;18779:139::-;2651:5;;-1:-1:-1;;;;;2651:5:0;;;;;2209:10;2640:16;2193:38;;;;-1:-1:-1;;;2193:38:0;;;;;;;:::i;:::-;18853:5:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;18853:5:0::1;18845:65;18906:3;18869:34;18893:10:::0;18869:21:::1;:34;:::i;:::-;:40;;;;:::i;:::-;18845:65;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18779:139:::0;:::o;21173:370::-;2292:24;2305:10;2292:12;:24::i;:::-;2284:48;;;;-1:-1:-1;;;2284:48:0;;;;;;;:::i;:::-;21316:12:::1;:28:::0;;;21355:13:::1;:30:::0;;;21396:12:::1;:28:::0;;;21411:13;21446:30:::1;21371:14:::0;21331:13;21446:30:::1;:::i;:::-;:46;;;;:::i;:::-;21435:8;:57:::0;21503:14:::1;:32:::0;-1:-1:-1;;;21173:370:0:o;15944:149::-;2651:5;;-1:-1:-1;;;;;2651:5:0;;;;;2209:10;2640:16;2193:38;;;;-1:-1:-1;;;2193:38:0;;;;;;;:::i;:::-;16082:3:::1;16063:14;16048:12;;:29;;;;:::i;:::-;16047:38;;;;:::i;:::-;16029:15;:56:::0;-1:-1:-1;15944:149:0:o;22334:112::-;2292:24;2305:10;2292:12;:24::i;:::-;2284:48;;;;-1:-1:-1;;;2284:48:0;;;;;;;:::i;:::-;22411:11:::1;::::0;:27:::1;::::0;-1:-1:-1;;;22411:27:0;;::::1;::::0;::::1;8867:25:1::0;;;-1:-1:-1;;;;;22411:11:0;;::::1;::::0;:22:::1;::::0;8840:18:1;;22411:27:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22334:112:::0;:::o;22555:136::-;2292:24;2305:10;2292:12;:24::i;:::-;2284:48;;;;-1:-1:-1;;;2284:48:0;;;;;;;:::i;:::-;22645:6:::1;22639:3;:12;22631:21;;;::::0;::::1;;22663:14;:20:::0;22555:136::o;21552:228::-;2292:24;2305:10;2292:12;:24::i;:::-;2284:48;;;;-1:-1:-1;;;2284:48:0;;;;;;;:::i;:::-;21671:21:::1;:46:::0;;-1:-1:-1;;;;;21671:46:0;;::::1;-1:-1:-1::0;;;;;;21671:46:0;;::::1;;::::0;;;21728:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;21552:228::o;15460:156::-;15540:4;15564:44;15578:10;15590:9;15601:6;15564:13;:44::i;2352:94::-;2651:5;;-1:-1:-1;;;;;2651:5:0;;;;;2209:10;2640:16;2193:38;;;;-1:-1:-1;;;2193:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2412:19:0::1;;::::0;;;:14:::1;:19;::::0;;;;:26;;-1:-1:-1;;2412:26:0::1;2434:4;2412:26;::::0;;2352:94::o;23162:85::-;23203:11;;;;;;;;;-1:-1:-1;;;;;23203:11:0;-1:-1:-1;;;;;23203:19:0;;23230:9;23203:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22844:154;22912:7;22968:22;:20;:22::i;:::-;22960:4;;-1:-1:-1;;;;;22960:4:0;14917:7;14935:18;;;:9;:18;;;;;;22939:26;;:8;:26;:::i;:::-;:51;;;;:::i;21789:156::-;2292:24;2305:10;2292:12;:24::i;:::-;2284:48;;;;-1:-1:-1;;;2284:48:0;;;;;;;:::i;:::-;21881:11:::1;:22:::0;;-1:-1:-1;;21881:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;21914:13:::1;:23:::0;21789:156::o;23252:83::-;2292:24;2305:10;2292:12;:24::i;:::-;2284:48;;;;-1:-1:-1;;;2284:48:0;;;;;;;:::i;:::-;23314:16:::1;23319:3;23324:5;23314:4;:16::i;:::-;23252:83:::0;:::o;2455:97::-;2651:5;;-1:-1:-1;;;;;2651:5:0;;;;;2209:10;2640:16;2193:38;;;;-1:-1:-1;;;2193:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2517:19:0::1;2539:5;2517:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;2517:27:0::1;::::0;;2455:97::o;2789:173::-;2651:5;;-1:-1:-1;;;;;2651:5:0;;;;;2209:10;2640:16;2193:38;;;;-1:-1:-1;;;2193:38:0;;;;;;;:::i;:::-;2865:5:::1;:11:::0;;-1:-1:-1;;;;;;2865:11:0::1;;-1:-1:-1::0;;;;;2865:11:0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;2887:19:0;;;:14:::1;:19;::::0;;;;;;;;:26;;-1:-1:-1;;2887:26:0::1;-1:-1:-1::0;2887:26:0::1;::::0;;2929:25;;4309:51:1;;;2929:25:0::1;::::0;4282:18:1;2929:25:0::1;;;;;;;2789:173:::0;:::o;20688:347::-;2292:24;2305:10;2292:12;:24::i;:::-;2284:48;;;;-1:-1:-1;;;2284:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20785:23:0;::::1;20803:4;20785:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;20822:4:0::1;::::0;-1:-1:-1;;;;;20812:14:0;;::::1;20822:4:::0;::::1;20812:14;;20785:41;20777:50;;;::::0;::::1;;-1:-1:-1::0;;;;;20838:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;20838:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;20882:146:::1;;20907:11;::::0;:31:::1;::::0;-1:-1:-1;;;20907:31:0;;-1:-1:-1;;;;;4787:32:1;;;20907:31:0::1;::::0;::::1;4769:51:1::0;20907:11:0::1;4836:18:1::0;;;4829:34;20907:11:0;;::::1;::::0;:20:::1;::::0;4742:18:1;;20907:31:0::1;4724:145:1::0;20882:146:0::1;20969:11;::::0;-1:-1:-1;;;;;20998:17:0;;::::1;20969:11;20998:17:::0;;;:9:::1;:17;::::0;;;;;;;20969:47;;-1:-1:-1;;;20969:47:0;;::::1;::::0;::::1;4769:51:1::0;;;;4836:18;;;4829:34;20969:11:0;::::1;::::0;:20:::1;::::0;4742:18:1;;20969:47:0::1;4724:145:1::0;2673:107:0;-1:-1:-1;;;;;2753:19:0;2729:4;2753:19;;;:14;:19;;;;;;;;;2673:107::o;16102:1780::-;16215:6;;16194:4;;16215:6;;16211:72;;;16236:41;16251:6;16259:9;16270:6;16236:14;:41::i;:::-;16229:48;;;;16211:72;-1:-1:-1;;;;;5711:11:0;;5693:4;5711:11;;;;;;;;;;;;;16289:82;;;16319:46;;-1:-1:-1;;;16319:46:0;;8178:2:1;16319:46:0;;;8160:21:1;8217:2;8197:18;;;8190:30;8256:34;8236:18;;;8229:62;-1:-1:-1;;;8307:18:1;;;8300:34;8351:19;;16319:46:0;8150:226:1;16289:82:0;5486:11;;:15;;;16381:32;;-1:-1:-1;16409:4:0;;-1:-1:-1;;;;;16396:17:0;;;16409:4;;16396:17;16381:32;16377:210;;;-1:-1:-1;;;;;16438:17:0;;16458:1;16438:17;;;:9;:17;;;;;;16430:30;;;;;;16493:5;;-1:-1:-1;;;;;16483:15:0;;;16493:5;;;;;16483:15;16475:77;;;;-1:-1:-1;;;16475:77:0;;7426:2:1;16475:77:0;;;7408:21:1;7465:2;7445:18;;;7438:30;7504:34;7484:18;;;7477:62;-1:-1:-1;;;7555:18:1;;;7548:47;7612:19;;16475:77:0;7398:239:1;16475:77:0;16567:8;5403:12;5389:11;:26;5357:63;16567:8;-1:-1:-1;;;;;16633:22:0;;;;;;:14;:22;;;;;;;;16632:23;:67;;;;-1:-1:-1;;;;;;16673:26:0;;16694:4;16673:26;;16632:67;:112;;;;-1:-1:-1;16739:4:0;;-1:-1:-1;;;;;16718:26:0;;;16739:4;;16718:26;;16632:112;:147;;;;-1:-1:-1;16775:4:0;;-1:-1:-1;;;;;16762:17:0;;;16775:4;;16762:17;;16632:147;:198;;;;-1:-1:-1;16810:20:0;;-1:-1:-1;;;;;16797:33:0;;;16810:20;;16797:33;;16632:198;:250;;;;-1:-1:-1;16861:21:0;;-1:-1:-1;;;;;16848:34:0;;;16861:21;;16848:34;;16632:250;:287;;;;-1:-1:-1;16914:5:0;;-1:-1:-1;;;;;16901:18:0;;;16914:5;;;;;16901:18;;16632:287;16628:491;;;-1:-1:-1;;;;;14935:18:0;;16940;14935;;;:9;:18;;;;;;17029:15;;17005:19;17018:6;14935:18;17005:19;:::i;:::-;17004:40;;16996:117;;;;;-1:-1:-1;;;16996:117:0;;6993:2:1;16996:117:0;;;6975:21:1;7012:18;;;7005:30;;;;7071:34;7051:18;;;7044:62;7142:34;7122:18;;;7115:62;7194:19;;16996:117:0;6965:254:1;16996:117:0;16628:491;;17137:16;:14;:16::i;:::-;17133:44;;;17161:10;:8;:10::i;:::-;-1:-1:-1;;;;;17189:17:0;;;;;;:9;:17;;;;;:27;;17210:6;;17189:17;:27;;17210:6;;17189:27;:::i;:::-;;;;-1:-1:-1;;;;;;;18246:19:0;;17227:22;18246:19;;;:11;:19;;;;;;;;18245:20;17252:56;;17302:6;17252:56;;;17276:23;17284:6;17292;17276:7;:23::i;:::-;-1:-1:-1;;;;;17319:20:0;;;;;;:9;:20;;;;;:38;;17227:81;;-1:-1:-1;17227:81:0;;17319:20;;;:38;;17227:81;;17319:38;:::i;:::-;;;;-1:-1:-1;17369:10:0;;-1:-1:-1;17369:8:0;:10::i;:::-;17368:11;:29;;;;-1:-1:-1;17393:4:0;;-1:-1:-1;;;;;17383:14:0;;;17393:4;;17383:14;17368:29;:51;;;;-1:-1:-1;17414:5:0;;-1:-1:-1;;;;;17401:18:0;;;17414:5;;;;;17401:18;;17368:51;17364:90;;;17427:21;17432:9;17443:4;17427;:21::i;:::-;-1:-1:-1;;;;;17471:24:0;;;;;;:16;:24;;;;;;;;17466:120;;17516:11;;-1:-1:-1;;;;;17545:17:0;;;17516:11;17545:17;;;:9;:17;;;;;;;;17516:47;;-1:-1:-1;;;17516:47:0;;;;;4769:51:1;;;;4836:18;;;4829:34;17516:11:0;;;:20;;4742:18:1;;17516:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17512:63;;-1:-1:-1;;;;;17604:27:0;;;;;;:16;:27;;;;;;;;17599:129;;17652:11;;-1:-1:-1;;;;;17684:20:0;;;17652:11;17684:20;;;:9;:20;;;;;;;;17652:53;;-1:-1:-1;;;17652:53:0;;;;;4769:51:1;;;;4836:18;;;4829:34;17652:11:0;;;:20;;4742:18:1;;17652:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17648:69;;17744:11;;17764:14;;17744:35;;-1:-1:-1;;;;;;17744:35:0;;-1:-1:-1;;;;;17744:11:0;;;;:19;;:35;;;;8867:25:1;;;8855:2;8840:18;;8822:76;17744:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17740:51;17826:9;-1:-1:-1;;;;;17809:43:0;17818:6;-1:-1:-1;;;;;17809:43:0;;17837:14;17809:43;;;;8867:25:1;;8855:2;8840:18;;8822:76;17809:43:0;;;;;;;;-1:-1:-1;17870:4:0;;16102:1780;-1:-1:-1;;;;16102:1780:0:o;5732:71::-;-1:-1:-1;;;;;5782:11:0;;;;:6;:11;;;;;;;;;;:16;;-1:-1:-1;;5782:16:0;;;;;;;;;;5732:71::o;17891:259::-;-1:-1:-1;;;;;18001:17:0;;17984:4;18001:17;;;:9;:17;;;;;:27;;18022:6;;18001:17;17984:4;;18001:27;;18022:6;;18001:27;:::i;:::-;;;;-1:-1:-1;;;;;;;18039:20:0;;;;;;:9;:20;;;;;:30;;18063:6;;18039:20;:30;;18063:6;;18039:30;:::i;:::-;;;;;;;;18102:9;-1:-1:-1;;;;;18085:35:0;18094:6;-1:-1:-1;;;;;18085:35:0;;18113:6;18085:35;;;;8867:25:1;;8855:2;8840:18;;8822:76;18085:35:0;;;;;;;;-1:-1:-1;18138:4:0;17891:259;;;;;:::o;18588:182::-;18675:4;;18637;;-1:-1:-1;;;;;18675:4:0;18661:10;:18;;;;:33;;-1:-1:-1;18688:6:0;;;;18687:7;18661:33;:52;;;;-1:-1:-1;18702:11:0;;;;18661:52;:101;;;;-1:-1:-1;;18749:13:0;;18739:4;18721:24;;;;:9;:24;;;;;;:41;;;18588:182::o;18926:1754::-;13419:6;:13;;-1:-1:-1;;13419:13:0;13428:4;13419:13;;;19010:4:::1;-1:-1:-1::0;14935:18:0;;;:9;:18;;;;;;18969:47:::1;;19055:3;19040:12;;:18;;;;:::i;:::-;19025:12;:33;19021:84;;;19096:3;19081:12;;:18;;;;:::i;:::-;19066:33;;19021:84;19115:27;19145:60;19161:15;;19178:26;;19145:15;:60::i;:::-;:79;;19212:12;;19145:79;;;19208:1;19145:79;19115:109;;19235:23;19309:1;19298:8;;19276:19;19261:12;:34;;;;:::i;:::-;:45;;;;:::i;:::-;:49;;;;:::i;:::-;19235:75:::0;-1:-1:-1;19321:20:0::1;19344:30;19235:75:::0;19344:12;:30:::1;:::i;:::-;19412:16;::::0;;19426:1:::1;19412:16:::0;;;;;::::1;::::0;;19321:53;;-1:-1:-1;19388:21:0::1;::::0;19412:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19412:16:0::1;19388:40;;19457:4;19439;19444:1;19439:7;;;;;;-1:-1:-1::0;;;19439:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;19439:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;19483:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;19483:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;19439:7;;19483:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19473:4;19478:1;19473:7;;;;;;-1:-1:-1::0;;;19473:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;19473:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;19569:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;19569:188:0;;19534:21:::1;::::0;19569:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;19641:12;;19510:21:::1;::::0;19684:4;;19711::::1;::::0;19731:15:::1;::::0;19569:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19771:14;19812:13;19788:21;:37;;;;:::i;:::-;19771:54:::0;-1:-1:-1;19836:12:0::1;19862:23;19884:1;19862:19:::0;:23:::1;:::i;:::-;19851:8;;:34;;;;:::i;:::-;19836:49:::0;-1:-1:-1;19896:23:0::1;19960:1;19836:49:::0;19922:28:::1;19931:19:::0;19922:6;:28:::1;:::i;:::-;:35;;;;:::i;:::-;:39;;;;:::i;:::-;19896:65;;19972:24;20024:4;20008:13;;19999:6;:22;;;;:::i;:::-;:29;;;;:::i;:::-;19972:56;;20039:23;20089:4;20074:12;;20065:6;:21;;;;:::i;:::-;:28;;;;:::i;:::-;20039:54;;20111:11;;;;;;;;;-1:-1:-1::0;;;;;20111:11:0::1;-1:-1:-1::0;;;;;20111:19:0::1;;20138:16;20111:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;20107:62:::0;20186:19;;20182:410:::1;;20222:6;::::0;20393:21:::1;::::0;20222:241:::1;::::0;-1:-1:-1;;;20222:241:0;;20295:4:::1;20222:241;::::0;::::1;5494:34:1::0;5544:18;;;5537:34;;;20222:6:0::1;5587:18:1::0;;;5580:34;;;5630:18;;;5623:34;-1:-1:-1;;;;;20393:21:0;;::::1;5673:19:1::0;;;5666:44;20433:15:0::1;5726:19:1::0;;;5719:35;20222:6:0;::::1;::::0;:22:::1;::::0;20252:15;;5428:19:1;;20222:241:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;20483:45:0::1;::::0;;10065:25:1;;;10121:2;10106:18;;10099:34;;;20483:45:0::1;::::0;-1:-1:-1;10038:18:1;20483:45:0::1;;;;;;;20182:410;;;20552:34;20571:15:::0;20552:34;::::1;:::i;:::-;;;20182:410;20606:20;::::0;20598:74:::1;::::0;-1:-1:-1;;;;;20606:20:0;;::::1;::::0;20662:5:::1;::::0;20640:15;;20598:74:::1;::::0;;;20640:15;20606:20;20662:5;20598:74:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;13437:6:0;:14;;-1:-1:-1;;13437:14:0;;;-1:-1:-1;;;;;;;;;;;;18926:1754:0:o;18282:297::-;18349:7;18369:17;18409:14;;18398:8;;18389:6;:17;;;;:::i;:::-;:34;;;;:::i;:::-;18455:4;18437:24;;;;:9;:24;;;;;:37;;18369:54;;-1:-1:-1;18369:54:0;;18437:24;;;:37;;18369:54;;18437:37;:::i;:::-;;;;-1:-1:-1;;18490:42:0;;8867:25:1;;;18515:4:0;;-1:-1:-1;;;;;18490:42:0;;;;;8855:2:1;8840:18;18490:42:0;;;;;;;18553:18;18562:9;18553:6;:18;:::i;:::-;18546:25;18282:297;-1:-1:-1;;;;18282:297:0:o;5511:121::-;5554:4;5572:10;5486:11;;:15;;;5425:81;5572:10;:55;;;;-1:-1:-1;5615:12:0;;;5601:11;5615:12;;;;;5586:26;;:12;:26;:::i;:::-;:41;5565:62;;5511:121;:::o;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:2;;164:1;161;154:12;108:2;60:114;;;:::o;179:257::-;238:6;291:2;279:9;270:7;266:23;262:32;259:2;;;312:6;304;297:22;259:2;356:9;343:23;375:31;400:5;375:31;:::i;441:261::-;511:6;564:2;552:9;543:7;539:23;535:32;532:2;;;585:6;577;570:22;532:2;622:9;616:16;641:31;666:5;641:31;:::i;977:398::-;1045:6;1053;1106:2;1094:9;1085:7;1081:23;1077:32;1074:2;;;1127:6;1119;1112:22;1074:2;1171:9;1158:23;1190:31;1215:5;1190:31;:::i;:::-;1240:5;-1:-1:-1;1297:2:1;1282:18;;1269:32;1310:33;1269:32;1310:33;:::i;:::-;1362:7;1352:17;;;1064:311;;;;;:::o;1380:466::-;1457:6;1465;1473;1526:2;1514:9;1505:7;1501:23;1497:32;1494:2;;;1547:6;1539;1532:22;1494:2;1591:9;1578:23;1610:31;1635:5;1610:31;:::i;:::-;1660:5;-1:-1:-1;1717:2:1;1702:18;;1689:32;1730:33;1689:32;1730:33;:::i;:::-;1484:362;;1782:7;;-1:-1:-1;;;1836:2:1;1821:18;;;;1808:32;;1484:362::o;1851:325::-;1916:6;1924;1977:2;1965:9;1956:7;1952:23;1948:32;1945:2;;;1998:6;1990;1983:22;1945:2;2042:9;2029:23;2061:31;2086:5;2061:31;:::i;:::-;2111:5;-1:-1:-1;2135:35:1;2166:2;2151:18;;2135:35;:::i;:::-;2125:45;;1935:241;;;;;:::o;2181:325::-;2249:6;2257;2310:2;2298:9;2289:7;2285:23;2281:32;2278:2;;;2331:6;2323;2316:22;2278:2;2375:9;2362:23;2394:31;2419:5;2394:31;:::i;:::-;2444:5;2496:2;2481:18;;;;2468:32;;-1:-1:-1;;;2268:238:1:o;2511:258::-;2576:6;2584;2637:2;2625:9;2616:7;2612:23;2608:32;2605:2;;;2658:6;2650;2643:22;2605:2;2686:26;2702:9;2686:26;:::i;2774:190::-;2833:6;2886:2;2874:9;2865:7;2861:23;2857:32;2854:2;;;2907:6;2899;2892:22;2854:2;-1:-1:-1;2935:23:1;;2844:120;-1:-1:-1;2844:120:1:o;2969:258::-;3037:6;3045;3098:2;3086:9;3077:7;3073:23;3069:32;3066:2;;;3119:6;3111;3104:22;3066:2;-1:-1:-1;;3147:23:1;;;3217:2;3202:18;;;3189:32;;-1:-1:-1;3056:171:1:o;3232:316::-;3320:6;3328;3336;3389:2;3377:9;3368:7;3364:23;3360:32;3357:2;;;3410:6;3402;3395:22;3357:2;3444:9;3438:16;3428:26;;3494:2;3483:9;3479:18;3473:25;3463:35;;3538:2;3527:9;3523:18;3517:25;3507:35;;3347:201;;;;;:::o;3553:395::-;3639:6;3647;3655;3663;3716:3;3704:9;3695:7;3691:23;3687:33;3684:2;;;3738:6;3730;3723:22;3684:2;-1:-1:-1;;3766:23:1;;;3836:2;3821:18;;3808:32;;-1:-1:-1;3887:2:1;3872:18;;3859:32;;3938:2;3923:18;3910:32;;-1:-1:-1;3674:274:1;-1:-1:-1;3674:274:1:o;6183:603::-;6295:4;6324:2;6353;6342:9;6335:21;6385:6;6379:13;6428:6;6423:2;6412:9;6408:18;6401:34;6453:4;6466:140;6480:6;6477:1;6474:13;6466:140;;;6575:14;;;6571:23;;6565:30;6541:17;;;6560:2;6537:26;6530:66;6495:10;;6466:140;;;6624:6;6621:1;6618:13;6615:2;;;6694:4;6689:2;6680:6;6669:9;6665:22;6661:31;6654:45;6615:2;-1:-1:-1;6770:2:1;6749:15;-1:-1:-1;;6745:29:1;6730:45;;;;6777:2;6726:54;;6304:482;-1:-1:-1;;;6304:482:1:o;7642:329::-;7844:2;7826:21;;;7883:1;7863:18;;;7856:29;-1:-1:-1;;;7916:2:1;7901:18;;7894:36;7962:2;7947:18;;7816:155::o;8381:335::-;8583:2;8565:21;;;8622:2;8602:18;;;8595:30;-1:-1:-1;;;8656:2:1;8641:18;;8634:41;8707:2;8692:18;;8555:161::o;8903:983::-;9165:4;9213:3;9202:9;9198:19;9244:6;9233:9;9226:25;9270:2;9308:6;9303:2;9292:9;9288:18;9281:34;9351:3;9346:2;9335:9;9331:18;9324:31;9375:6;9410;9404:13;9441:6;9433;9426:22;9479:3;9468:9;9464:19;9457:26;;9518:2;9510:6;9506:15;9492:29;;9539:4;9552:195;9566:6;9563:1;9560:13;9552:195;;;9631:13;;-1:-1:-1;;;;;9627:39:1;9615:52;;9722:15;;;;9687:12;;;;9663:1;9581:9;9552:195;;;-1:-1:-1;;;;;;;9803:32:1;;;;9798:2;9783:18;;9776:60;-1:-1:-1;;;9867:3:1;9852:19;9845:35;9764:3;9174:712;-1:-1:-1;;;9174:712:1:o;10333:128::-;10373:3;10404:1;10400:6;10397:1;10394:13;10391:2;;;10410:18;;:::i;:::-;-1:-1:-1;10446:9:1;;10381:80::o;10466:217::-;10506:1;10532;10522:2;;-1:-1:-1;;;10557:31:1;;10611:4;10608:1;10601:15;10639:4;10564:1;10629:15;10522:2;-1:-1:-1;10668:9:1;;10512:171::o;10688:168::-;10728:7;10794:1;10790;10786:6;10782:14;10779:1;10776:21;10771:1;10764:9;10757:17;10753:45;10750:2;;;10801:18;;:::i;:::-;-1:-1:-1;10841:9:1;;10740:116::o;10861:125::-;10901:4;10929:1;10926;10923:8;10920:2;;;10934:18;;:::i;:::-;-1:-1:-1;10971:9:1;;10910:76::o;10991:127::-;11052:10;11047:3;11043:20;11040:1;11033:31;11083:4;11080:1;11073:15;11107:4;11104:1;11097:15;11123:131;-1:-1:-1;;;;;11198:31:1;;11188:42;;11178:2;;11244:1;11241;11234:12

Swarm Source

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