ETH Price: $2,488.08 (+1.99%)

Token

Hope Protocol ($HOPE)
 

Overview

Max Total Supply

100,000,000 $HOPE

Holders

43

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
21,329.915136566829837738 $HOPE

Value
$0.00
0x79ead86b38fc5ad4259951830b5aeb026431bc56
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:
HOPE

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
 HOPE - $333 - Charity Token 
 https://t.me/HopeEntryPortal
 https://twitter.com/hope_erc20
 https://hopeerc20.medium.com/
 https://www.reddit.com/r/HopeERC20/
 http://hope-333.com/

 A project for the world and for Families suffering from addiction!
*/

// Contract Developer: @MrAjax_dev


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

/**
 * ERC20 standard interface
 */

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * Basic access control mechanism
 */

abstract contract Ownable {
    address internal owner;
    address private _previousOwner;

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

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!YOU ARE NOT THE OWNER"); _;
    }

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

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

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

/**
 * Router Interfaces
 */

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

/**
 * Token Contract Code
 */

contract HOPE is ERC20, Ownable {
    // -- Mappings --
    mapping(address => bool) public _blacklisted;
    mapping(address => bool) private _whitelisted;
    mapping(address => bool) public _automatedMarketMakers;
    mapping(address => bool) private _isLimitless;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    // -- Basic Token Information --
    string constant _name = "Hope Protocol";
    string constant _symbol = "$HOPE";
    uint8 constant _decimals = 18;
    uint256 private _totalSupply = 100_000_000 * 10 ** _decimals;


    // -- Transaction & Wallet Limits --
    uint256 public maxBuyPercentage;
    uint256 public maxSellPercentage;
    uint256 public maxWalletPercentage;

    uint256 private maxBuyAmount;
    uint256 private maxSellAmount;
    uint256 private maxWalletAmount;

    // -- Contract Variables --
    address[] private sniperList;
    uint256 tokenTax;
    uint256 transferFee;
    uint256 private targetLiquidity = 50;

    // -- Fee Structs --
    struct BuyFee {
        uint256 liquidityFee;
        uint256 treasuryFee;
        uint256 ventureCapitalFee;
        uint256 total;
    }

    struct SellFee {
        uint256 liquidityFee;
        uint256 treasuryFee;
        uint256 ventureCapitalFee;
        uint256 total;
    }

    BuyFee public buyFee;
    SellFee public sellFee;

    // -- Addresses --
    address public _exchangeRouterAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    
    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;

    address public treasuryReceiver = 0xbc690598d58ccD9662f67B8e3e7f4BBBe28A876E;
    address public ventureCapitalReceiver = 0x5018aC9C1ec6b2259510758b5e2F5A7e245A7c17;

    IDEXRouter public router;
    address public pair;

    // -- Misc Variables --
    bool public antiSniperMode = true;  // AntiSniper active at launch by default
    bool private _addingLP;
    bool private inSwap;
    bool private _initialDistributionFinished;

    // -- Swap Variables --
    bool public swapEnabled = true;
    uint256 private swapThreshold = _totalSupply / 1000;
    
    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () Ownable(msg.sender) {

        // Initialize Pancake Pair
        router = IDEXRouter(_exchangeRouterAddress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        _automatedMarketMakers[pair]=true;
        
        // Set Initial Buy Fees -- Base 1000 Set 10 for 1%
        buyFee.liquidityFee = 0; buyFee.treasuryFee = 60; buyFee.ventureCapitalFee = 30;
        buyFee.total = buyFee.liquidityFee + buyFee.treasuryFee + buyFee.ventureCapitalFee;

        // Set Initial Sell Fees -- Base 1000 Set 10 for 1%
        sellFee.liquidityFee = 30; sellFee.treasuryFee = 60; sellFee.ventureCapitalFee = 30;
        sellFee.total = sellFee.liquidityFee + sellFee.treasuryFee + sellFee.ventureCapitalFee;

        // Set Initial Buy, Sell & Wallet Limits -- Base 1000 Set 10 for 1%
        maxBuyPercentage = 10; maxBuyAmount = _totalSupply /1000 * maxBuyPercentage;
        maxSellPercentage = 10; maxSellAmount = _totalSupply /1000 * maxSellPercentage;
        maxWalletPercentage = 15; maxWalletAmount = _totalSupply /1000 * maxWalletPercentage;

        // Exclude from fees & limits
        _isLimitless[owner] = _isLimitless[address(this)] = true;

        // Mint _totalSupply to owner address
        _balances[owner] = _totalSupply;
        emit Transfer(address(0x0), owner, _totalSupply);
    }


    ///////////////////////////////////////// -- Setter Functions -- /////////////////////////////////////////

        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerSetLimits(uint256 _maxBuyPercentage, uint256 _maxSellPercentage, uint256 _maxWalletPercentage) external onlyOwner {
        maxBuyAmount = _totalSupply /1000 * _maxBuyPercentage;
        maxSellAmount = _totalSupply /1000 * _maxSellPercentage;
        maxWalletAmount = _totalSupply /1000 * _maxWalletPercentage;
    }

    function ownerSetInitialDistributionFinished() external onlyOwner {
        _initialDistributionFinished = true;
    }

    function ownerSetLimitlessAddress(address _addr, bool _status) external onlyOwner {
        _isLimitless[_addr] = _status;
    }

    function ownerSetSwapBackSettings(bool _enabled, uint256 _percentageBase1000) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _totalSupply / 1000 * _percentageBase1000;
    }

    function ownerSetTargetLiquidity(uint256 target) external onlyOwner {
        targetLiquidity = target;
    }
       // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateBuyFees (uint256 _liquidityFee, uint256 _treasuryFee, uint256 _ventureCapitalFee) external onlyOwner {
        buyFee.liquidityFee = _liquidityFee;
        buyFee.treasuryFee = _treasuryFee;
        buyFee.ventureCapitalFee = _ventureCapitalFee;
        buyFee.total = buyFee.liquidityFee + buyFee.treasuryFee + buyFee.ventureCapitalFee;
    }
        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateSellFees (uint256 _liquidityFee, uint256 _treasuryFee, uint256 _ventureCapitalFee) external onlyOwner {
        sellFee.liquidityFee = _liquidityFee;
        sellFee.treasuryFee = _treasuryFee;
        sellFee.ventureCapitalFee = _ventureCapitalFee;
        sellFee.total = sellFee.liquidityFee + sellFee.treasuryFee + sellFee.ventureCapitalFee;
    }
        // Use 10 to set 1% -- Base 1000 for easier fine adjust
    function ownerUpdateTransferFee (uint256 _transferFee) external onlyOwner {
        transferFee = _transferFee;
    }

    function ownerSetReceivers (address _treasury, address _ventureCapital) external onlyOwner {
        treasuryReceiver = _treasury;
        ventureCapitalReceiver = _ventureCapital;
    }

    function ownerAirDropWallets(address[] memory airdropWallets, uint256[] memory amounts) external onlyOwner{
        require(airdropWallets.length < 100, "Can only airdrop 100 wallets per txn due to gas limits");
        for(uint256 i = 0; i < airdropWallets.length; i++){
            address wallet = airdropWallets[i];
            uint256 amount = (amounts[i] * 10**_decimals);
            _transfer(msg.sender, wallet, amount);
        }
    }

    function reverseSniper(address sniper) external onlyOwner {
        _blacklisted[sniper] = false;
    }

    function addNewMarketMaker(address newAMM) external onlyOwner {
        _automatedMarketMakers[newAMM]=true;
        _isLimitless[newAMM]=true;
    }

    function controlAntiSniperMode(bool value) external onlyOwner {
        antiSniperMode = value;
    }

    function clearStuckBalance() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(owner).transfer(contractETHBalance);
    }

    function clearStuckToken(address _token) public onlyOwner {
        uint256 _contractBalance = ERC20(_token).balanceOf(address(this));
        payable(treasuryReceiver).transfer(_contractBalance);
    }
    ///////////////////////////////////////// -- Getter Functions -- /////////////////////////////////////////

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

    function showSniperList() public view returns(address[] memory){
        return sniperList;
    }

    function showSniperListLength() public view returns(uint256){
        return sniperList.length;
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy * (balanceOf(pair) * (2)) / (getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

    ///////////////////////////////////////// -- Internal Functions -- /////////////////////////////////////////

    function _transfer(address sender,address recipient,uint256 amount) private {
        require(sender!=address(0)&&recipient!=address(0),"Cannot be address(0).");
        bool isBuy=_automatedMarketMakers[sender];
        bool isSell=_automatedMarketMakers[recipient];
        bool isExcluded=_isLimitless[sender]||_isLimitless[recipient]||_addingLP;

        if(isExcluded)_transferExcluded(sender,recipient,amount);
        else { require(_initialDistributionFinished);
            // Punish for Snipers
            if(antiSniperMode)_punishSnipers(sender,recipient,amount);
            // Buy Tokens
            else if(isBuy)_buyTokens(sender,recipient,amount);
            // Sell Tokens
            else if(isSell) {
                // Swap & Liquify
                if (shouldSwapBack()) {swapBack();}
                _sellTokens(sender,recipient,amount);
            } else {
                // P2P Transfer
                require(!_blacklisted[sender]&&!_blacklisted[recipient]);
                require(balanceOf(recipient)+amount<=maxWalletAmount);
                _P2PTransfer(sender,recipient,amount);
            }
        }
    }

    function _punishSnipers(address sender,address recipient,uint256 amount) private {
        require(!_blacklisted[recipient]);
        require(amount <= maxBuyAmount, "Buy exceeds limit");
        tokenTax = amount*90/100;
        _blacklisted[recipient]=true;
        sniperList.push(address(recipient));
        _transferIncluded(sender,recipient,amount,tokenTax);
    }

    function _buyTokens(address sender,address recipient,uint256 amount) private {
        require(!_blacklisted[recipient]);
        require(amount <= maxBuyAmount, "Buy exceeds limit");
        if(!_whitelisted[recipient]){
        tokenTax = amount*buyFee.total/1000;}
        else tokenTax = 0;
        _transferIncluded(sender,recipient,amount,tokenTax);
    }
    function _sellTokens(address sender,address recipient,uint256 amount) private {
        require(!_blacklisted[sender]);
        require(amount <= maxSellAmount);
        if(!_whitelisted[sender]){
        tokenTax = amount*sellFee.total/1000;}
        else tokenTax = 0;
        _transferIncluded(sender,recipient,amount,tokenTax);
    }

    function _P2PTransfer(address sender,address recipient,uint256 amount) private {
        tokenTax = amount * transferFee/1000;
        if( tokenTax > 0) {_transferIncluded(sender,recipient,amount,tokenTax);}
        else {_transferExcluded(sender,recipient,amount);}
    }

    function _transferExcluded(address sender,address recipient,uint256 amount) private {
        _updateBalance(sender,_balances[sender]-amount);
        _updateBalance(recipient,_balances[recipient]+amount);
        emit Transfer(sender,recipient,amount);
    }

    function _transferIncluded(address sender,address recipient,uint256 amount,uint256 taxAmount) private {
        uint256 newAmount = amount-tokenTax;
        _updateBalance(sender,_balances[sender]-amount);
        _updateBalance(address(this),_balances[address(this)]+taxAmount);
        _updateBalance(recipient,_balances[recipient]+newAmount);
        emit Transfer(sender,recipient,newAmount);
        emit Transfer(sender,address(this),taxAmount);
    }

    function _updateBalance(address account,uint256 newBalance) private {
        _balances[account] = newBalance;
    }

    function shouldSwapBack() private view returns (bool) {
        return
            !inSwap &&
            swapEnabled &&
            _balances[address(this)] >= swapThreshold;
    }   

    function swapBack() private swapping {
        uint256 toSwap = balanceOf(address(this));

        uint256 totalLPTokens=toSwap*(sellFee.liquidityFee + buyFee.liquidityFee)/(sellFee.total + buyFee.total);
        uint256 tokensLeft=toSwap-totalLPTokens;
        uint256 LPTokens=totalLPTokens/2;
        uint256 LPBNBTokens=totalLPTokens-LPTokens;
        toSwap=tokensLeft+LPBNBTokens;
        uint256 oldBNB=address(this).balance;
        _swapTokensForBNB(toSwap);
        uint256 newBNB=address(this).balance-oldBNB;
        uint256 LPBNB=(newBNB*LPBNBTokens)/toSwap;
        _addLiquidity(LPTokens,LPBNB);
        uint256 remainingBNB=address(this).balance-oldBNB;
        _distributeBNB(remainingBNB);
    }

    function _distributeBNB(uint256 remainingBNB) private {
        uint256 ventureCapitalFee = (buyFee.ventureCapitalFee + sellFee.ventureCapitalFee);
        uint256 treasuryFee = (buyFee.treasuryFee + sellFee.treasuryFee);
        uint256 totalFee = (ventureCapitalFee + treasuryFee);

        uint256 amountBNBventureCapital = remainingBNB * (ventureCapitalFee) / (totalFee);
        uint256 amountBNBtreasury = remainingBNB * (treasuryFee) / (totalFee);

        if(amountBNBtreasury > 0){
        (bool treasurySuccess, /* bytes memory data */) = payable(treasuryReceiver).call{value: amountBNBtreasury, gas: 30000}("");
        require(treasurySuccess, "receiver rejected ETH transfer"); }
        
        if(amountBNBventureCapital > 0){
        (bool ventureCapitalSuccess, /* bytes memory data */) = payable(ventureCapitalReceiver).call{value: amountBNBventureCapital, gas: 30000}("");
        require(ventureCapitalSuccess, "receiver rejected ETH transfer"); }
    }

    function _swapTokensForBNB(uint256 amount) private {
        address[] memory path=new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function _addLiquidity(uint256 amountTokens,uint256 amountBNB) private {
        _addingLP=true;
        router.addLiquidityETH{value: amountBNB}(
            address(this),
            amountTokens,
            0,
            0,
            treasuryReceiver,
            block.timestamp
        );
        _addingLP=false;
    }

/**
 * IERC20
 */

    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 transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        uint256 allowance_ = _allowances[sender][msg.sender];
        require(allowance_ >= amount);
        
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        _transfer(sender, recipient, amount);
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_automatedMarketMakers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_exchangeRouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAMM","type":"address"}],"name":"addNewMarketMaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiSniperMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"uint256","name":"ventureCapitalFee","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"controlAntiSniperMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"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":"maxBuyPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"airdropWallets","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"ownerAirDropWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ownerSetInitialDistributionFinished","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ownerSetLimitlessAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyPercentage","type":"uint256"},{"internalType":"uint256","name":"_maxSellPercentage","type":"uint256"},{"internalType":"uint256","name":"_maxWalletPercentage","type":"uint256"}],"name":"ownerSetLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"},{"internalType":"address","name":"_ventureCapital","type":"address"}],"name":"ownerSetReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_percentageBase1000","type":"uint256"}],"name":"ownerSetSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"}],"name":"ownerSetTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_ventureCapitalFee","type":"uint256"}],"name":"ownerUpdateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_ventureCapitalFee","type":"uint256"}],"name":"ownerUpdateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"ownerUpdateTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"reverseSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"uint256","name":"ventureCapitalFee","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSniperList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSniperListLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ventureCapitalReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a6200053a565b62000022906305f5e10062000552565b60088190556032601255601b80546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17909155601c8054821673bc690598d58ccd9662f67b8e3e7f4bbbe28a876e179055601d8054909116735018ac9c1ec6b2259510758b5e2f5a7e245a7c17179055601f8054780100000001000000000000000000000000000000000000000064ff000000ff60a01b19909116179055620000cf906103e89062000574565b602055348015620000df57600080fd5b5060008054336001600160a01b031991821617909155601b54601e80546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200014c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000172919062000597565b6001600160a01b031663c9c65396601e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fa919062000597565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000247573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026d919062000597565b601f80546001600160a01b0319166001600160a01b03928316178155306000908152600760209081526040808320601e80548716855290835281842060001990559354909416825260049052918220805460ff191660011790556013829055603c601481905560158290559091620002e69190620005c2565b620002f29190620005c2565b601655601e6017819055603c60188190556019829055620003149082620005c2565b620003209190620005c2565b601a55600a60098190556008546200033c906103e89062000574565b62000348919062000552565b600c55600a80805560085462000362906103e89062000574565b6200036e919062000552565b600d55600f600b8190556008546200038a906103e89062000574565b62000396919062000552565b600e553060009081526005602090815260408083208054600160ff19918216811790925584546001600160a01b039081168652838620805490921690921790556008548454821685526006845282852081905584549251908152911692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620005dd565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200047c57816000190482111562000460576200046062000425565b808516156200046e57918102915b93841c939080029062000440565b509250929050565b600082620004955750600162000534565b81620004a45750600062000534565b8160018114620004bd5760028114620004c857620004e8565b600191505062000534565b60ff841115620004dc57620004dc62000425565b50506001821b62000534565b5060208310610133831016604e8410600b84101617156200050d575081810a62000534565b6200051983836200043b565b806000190482111562000530576200053062000425565b0290505b92915050565b60006200054b60ff84168362000484565b9392505050565b60008160001904831182151516156200056f576200056f62000425565b500290565b6000826200059257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620005aa57600080fd5b81516001600160a01b03811681146200054b57600080fd5b60008219821115620005d857620005d862000425565b500190565b61251c80620005ed6000396000f3fe60806040526004361061028c5760003560e01c80636390aeeb1161015a5780639be953b3116100c1578063dca3cef11161007a578063dca3cef114610835578063dd62ed3e14610855578063e06509971461089b578063e5a772d2146108b1578063f2fde38b146108d1578063f887ea40146108f157600080fd5b80639be953b31461077f578063a8aa1b311461079f578063a9059cbb146107bf578063b46ba24b146107df578063b704a9f6146107ff578063d51ed1c81461081557600080fd5b806387cfc4931161011357806387cfc493146106b3578063893d20e8146106d35780638ca42e4e146106f15780638ee41ca81461071157806395d89b41146107315780639b0ad05c1461075f57600080fd5b80636390aeeb146105e25780636ddd1713146105f757806370a0823114610618578063715018a61461064e5780637a6d69b41461066357806383bd84851461069357600080fd5b80632b14ca56116101fe57806347375a37116101b757806347375a37146105365780634c5d87101461054b57806352aae9dd1461056b57806353cd62101461058b578063599ca397146105ac57806359d3cac2146105c257600080fd5b80632b14ca56146104505780632d3b4047146104935780632f54bf6e146104b3578063313ce567146104e2578063364333f4146104fe578063470624021461051357600080fd5b80631161ae39116102505780631161ae391461039a578063144389d9146103ba57806318160ddd146103da5780631ca0b1d0146103f957806323b872dd1461041b5780632b112e491461043b57600080fd5b806306fdde031461029857806308b1fd8f146102e0578063095ea7b3146103185780630c5b1d93146103485780630cb23d861461036a57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b5060408051808201909152600d81526c121bdc1948141c9bdd1bd8dbdb609a1b60208201525b6040516102d79190611e60565b60405180910390f35b3480156102ec57600080fd5b50601c54610300906001600160a01b031681565b6040516001600160a01b0390911681526020016102d7565b34801561032457600080fd5b50610338610333366004611ecd565b610911565b60405190151581526020016102d7565b34801561035457600080fd5b50610368610363366004611f0e565b61097e565b005b34801561037657600080fd5b50610338610385366004611f43565b60046020526000908152604090205460ff1681565b3480156103a657600080fd5b506103386103b5366004611f67565b6109dc565b3480156103c657600080fd5b50601d54610300906001600160a01b031681565b3480156103e657600080fd5b506008545b6040519081526020016102d7565b34801561040557600080fd5b5061040e6109f0565b6040516102d79190611fcd565b34801561042757600080fd5b50610338610436366004611fe0565b610a52565b34801561044757600080fd5b506103eb610b19565b34801561045c57600080fd5b50601754601854601954601a546104739392919084565b6040805194855260208501939093529183015260608201526080016102d7565b34801561049f57600080fd5b50601b54610300906001600160a01b031681565b3480156104bf57600080fd5b506103386104ce366004611f43565b6000546001600160a01b0391821691161490565b3480156104ee57600080fd5b50604051601281526020016102d7565b34801561050a57600080fd5b50610368610b89565b34801561051f57600080fd5b506013546014546015546016546104739392919084565b34801561054257600080fd5b50610368610bf2565b34801561055757600080fd5b50610368610566366004612021565b610c31565b34801561057757600080fd5b5061036861058636600461204d565b610cbc565b34801561059757600080fd5b50601f5461033890600160a01b900460ff1681565b3480156105b857600080fd5b506103eb600b5481565b3480156105ce57600080fd5b506103686105dd366004612021565b610ceb565b3480156105ee57600080fd5b50600f546103eb565b34801561060357600080fd5b50601f5461033890600160c01b900460ff1681565b34801561062457600080fd5b506103eb610633366004611f43565b6001600160a01b031660009081526006602052604090205490565b34801561065a57600080fd5b50610368610d41565b34801561066f57600080fd5b5061033861067e366004611f43565b60026020526000908152604090205460ff1681565b34801561069f57600080fd5b506103686106ae366004612066565b610db5565b3480156106bf57600080fd5b506103686106ce366004611f43565b610dfd565b3480156106df57600080fd5b506000546001600160a01b0316610300565b3480156106fd57600080fd5b5061036861070c36600461204d565b610e48565b34801561071d57600080fd5b5061036861072c366004612081565b610e77565b34801561073d57600080fd5b5060408051808201909152600581526424484f504560d81b60208201526102ca565b34801561076b57600080fd5b5061036861077a366004612173565b610edb565b34801561078b57600080fd5b5061036861079a366004611f43565b610ffa565b3480156107ab57600080fd5b50601f54610300906001600160a01b031681565b3480156107cb57600080fd5b506103386107da366004611ecd565b6110ca565b3480156107eb57600080fd5b506103686107fa366004612021565b6110e0565b34801561080b57600080fd5b506103eb600a5481565b34801561082157600080fd5b506103eb61083036600461204d565b611136565b34801561084157600080fd5b50610368610850366004612235565b61117a565b34801561086157600080fd5b506103eb610870366004612235565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156108a757600080fd5b506103eb60095481565b3480156108bd57600080fd5b506103686108cc366004611f43565b6111d2565b3480156108dd57600080fd5b506103686108ec366004611f43565b611238565b3480156108fd57600080fd5b50601e54610300906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061096c9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146109b15760405162461bcd60e51b81526004016109a89061226e565b60405180910390fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000826109e883611136565b119392505050565b6060600f805480602002602001604051908101604052809291908181526020018280548015610a4857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a2a575b5050505050905090565b6001600160a01b038316600090815260076020908152604080832033845290915281205482811015610a8357600080fd5b6001600160a01b038516600090815260076020908152604080832033845290915290205460001914610b03576001600160a01b0385166000908152600760209081526040808320338452909152902054610ade9084906122b4565b6001600160a01b03861660009081526007602090815260408083203384529091529020555b610b0e858585611322565b506001949350505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600854919291610b7a91906122b4565b610b8491906122b4565b905090565b6000546001600160a01b03163314610bb35760405162461bcd60e51b81526004016109a89061226e565b6000805460405147926001600160a01b039092169183156108fc02918491818181858888f19350505050158015610bee573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610c1c5760405162461bcd60e51b81526004016109a89061226e565b601f805460ff60b81b1916600160b81b179055565b6000546001600160a01b03163314610c5b5760405162461bcd60e51b81526004016109a89061226e565b826103e8600854610c6c91906122cb565b610c7691906122ed565b600c556008548290610c8b906103e8906122cb565b610c9591906122ed565b600d556008548190610caa906103e8906122cb565b610cb491906122ed565b600e55505050565b6000546001600160a01b03163314610ce65760405162461bcd60e51b81526004016109a89061226e565b601255565b6000546001600160a01b03163314610d155760405162461bcd60e51b81526004016109a89061226e565b60178390556018829055601981905580610d2f838561230c565b610d39919061230c565b601a55505050565b6000546001600160a01b03163314610d6b5760405162461bcd60e51b81526004016109a89061226e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610ddf5760405162461bcd60e51b81526004016109a89061226e565b601f8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610e275760405162461bcd60e51b81526004016109a89061226e565b6001600160a01b03166000908152600260205260409020805460ff19169055565b6000546001600160a01b03163314610e725760405162461bcd60e51b81526004016109a89061226e565b601155565b6000546001600160a01b03163314610ea15760405162461bcd60e51b81526004016109a89061226e565b601f805460ff60c01b1916600160c01b841515021790556008548190610eca906103e8906122cb565b610ed491906122ed565b6020555050565b6000546001600160a01b03163314610f055760405162461bcd60e51b81526004016109a89061226e565b6064825110610f755760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203130302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b60648201526084016109a8565b60005b8251811015610ff5576000838281518110610f9557610f95612324565b6020026020010151905060006012600a610faf919061241e565b848481518110610fc157610fc1612324565b6020026020010151610fd391906122ed565b9050610fe0338383611322565b50508080610fed9061242d565b915050610f78565b505050565b6000546001600160a01b031633146110245760405162461bcd60e51b81526004016109a89061226e565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561106b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108f9190612446565b601c546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ff5573d6000803e3d6000fd5b60006110d7338484611322565b50600192915050565b6000546001600160a01b0316331461110a5760405162461bcd60e51b81526004016109a89061226e565b60138390556014829055601581905580611124838561230c565b61112e919061230c565b601655505050565b6000611140610b19565b601f546001600160a01b03166000908152600660205260409020546111669060026122ed565b61117090846122ed565b61097891906122cb565b6000546001600160a01b031633146111a45760405162461bcd60e51b81526004016109a89061226e565b601c80546001600160a01b039384166001600160a01b031991821617909155601d8054929093169116179055565b6000546001600160a01b031633146111fc5760405162461bcd60e51b81526004016109a89061226e565b6001600160a01b031660009081526004602090815260408083208054600160ff1991821681179092556005909352922080549091169091179055565b6000546001600160a01b031633146112625760405162461bcd60e51b81526004016109a89061226e565b6001600160a01b0381166112c75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109a8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061134257506001600160a01b03821615155b6113865760405162461bcd60e51b815260206004820152601560248201527421b0b73737ba1031329030b2323932b9b99418149760591b60448201526064016109a8565b6001600160a01b03808416600081815260046020908152604080832054948716835280832054938352600590915281205460ff938416939283169216806113e557506001600160a01b03851660009081526005602052604090205460ff165b806113f95750601f54600160a81b900460ff165b905080156114115761140c868686611511565b611509565b601f54600160b81b900460ff1661142757600080fd5b601f54600160a01b900460ff16156114445761140c8686866115d3565b82156114555761140c8686866116d0565b811561147b57611463611793565b15611470576114706117db565b61140c8686866118db565b6001600160a01b03861660009081526002602052604090205460ff161580156114bd57506001600160a01b03851660009081526002602052604090205460ff16155b6114c657600080fd5b600e54846114e9876001600160a01b031660009081526006602052604090205490565b6114f3919061230c565b11156114fe57600080fd5b611509868686611941565b505050505050565b6001600160a01b03831660009081526006602052604090205461155790849061153b9084906122b4565b6001600160a01b03909116600090815260066020526040902055565b6001600160a01b03821660009081526006602052604090205461158190839061153b90849061230c565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115c691815260200190565b60405180910390a3505050565b6001600160a01b03821660009081526002602052604090205460ff16156115f957600080fd5b600c5481111561163f5760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b60448201526064016109a8565b606461164c82605a6122ed565b61165691906122cb565b60109081556001600160a01b0383166000818152600260205260408120805460ff19166001908117909155600f805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b031916909117905554610ff59084908490849061197f565b6001600160a01b03821660009081526002602052604090205460ff16156116f657600080fd5b600c5481111561173c5760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b60448201526064016109a8565b6001600160a01b03821660009081526003602052604090205460ff1661177f576016546103e89061176d90836122ed565b61177791906122cb565b601055611785565b60006010555b610ff583838360105461197f565b601f54600090600160b01b900460ff161580156117b95750601f54600160c01b900460ff165b8015610b84575050602080543060009081526006909252604090912054101590565b601f805460ff60b01b1916600160b01b17905530600090815260066020526040812054601654601a54919250600091611814919061230c565b601354601754611824919061230c565b61182e90846122ed565b61183891906122cb565b9050600061184682846122b4565b905060006118556002846122cb565b9050600061186382856122b4565b905061186f818461230c565b94504761187b86611a9a565b600061188782476122b4565b905060008761189685846122ed565b6118a091906122cb565b90506118ac8582611bd3565b60006118b884476122b4565b90506118c381611c8f565b5050601f805460ff60b01b1916905550505050505050565b6001600160a01b03831660009081526002602052604090205460ff161561190157600080fd5b600d5481111561191057600080fd5b6001600160a01b03831660009081526003602052604090205460ff1661177f57601a546103e89061176d90836122ed565b6103e86011548261195291906122ed565b61195c91906122cb565b60108190551561197457610ff583838360105461197f565b610ff5838383611511565b60006010548361198f91906122b4565b6001600160a01b0386166000908152600660205260409020549091506119bc90869061153b9086906122b4565b306000818152600660205260409020546119dc919061153b90859061230c565b6001600160a01b038416600090815260066020526040902054611a0690859061153b90849061230c565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a4b91815260200190565b60405180910390a360405182815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611acf57611acf612324565b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4c919061245f565b81600181518110611b5f57611b5f612324565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815291169063791ac94790611ba590859060009086903090429060040161247c565b600060405180830381600087803b158015611bbf57600080fd5b505af1158015611509573d6000803e3d6000fd5b601f805460ff60a81b1916600160a81b179055601e54601c5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611c56573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c7b91906124b8565b5050601f805460ff60a81b19169055505050565b601954601554600091611ca19161230c565b601854601454919250600091611cb7919061230c565b90506000611cc5828461230c565b9050600081611cd485876122ed565b611cde91906122cb565b9050600082611ced85886122ed565b611cf791906122cb565b90508015611da957601c546040516000916001600160a01b03169061753090849084818181858888f193505050503d8060008114611d51576040519150601f19603f3d011682016040523d82523d6000602084013e611d56565b606091505b5050905080611da75760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016109a8565b505b811561150957601d546040516000916001600160a01b03169061753090859084818181858888f193505050503d8060008114611e01576040519150601f19603f3d011682016040523d82523d6000602084013e611e06565b606091505b5050905080611e575760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016109a8565b50505050505050565b600060208083528351808285015260005b81811015611e8d57858101830151858201604001528201611e71565b81811115611e9f576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611eca57600080fd5b50565b60008060408385031215611ee057600080fd5b8235611eeb81611eb5565b946020939093013593505050565b80358015158114611f0957600080fd5b919050565b60008060408385031215611f2157600080fd5b8235611f2c81611eb5565b9150611f3a60208401611ef9565b90509250929050565b600060208284031215611f5557600080fd5b8135611f6081611eb5565b9392505050565b60008060408385031215611f7a57600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015611fc25781516001600160a01b031687529582019590820190600101611f9d565b509495945050505050565b602081526000611f606020830184611f89565b600080600060608486031215611ff557600080fd5b833561200081611eb5565b9250602084013561201081611eb5565b929592945050506040919091013590565b60008060006060848603121561203657600080fd5b505081359360208301359350604090920135919050565b60006020828403121561205f57600080fd5b5035919050565b60006020828403121561207857600080fd5b611f6082611ef9565b6000806040838503121561209457600080fd5b611eeb83611ef9565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156120dc576120dc61209d565b604052919050565b600067ffffffffffffffff8211156120fe576120fe61209d565b5060051b60200190565b600082601f83011261211957600080fd5b8135602061212e612129836120e4565b6120b3565b82815260059290921b8401810191818101908684111561214d57600080fd5b8286015b848110156121685780358352918301918301612151565b509695505050505050565b6000806040838503121561218657600080fd5b823567ffffffffffffffff8082111561219e57600080fd5b818501915085601f8301126121b257600080fd5b813560206121c2612129836120e4565b82815260059290921b840181019181810190898411156121e157600080fd5b948201945b838610156122085785356121f981611eb5565b825294820194908201906121e6565b9650508601359250508082111561221e57600080fd5b5061222b85828601612108565b9150509250929050565b6000806040838503121561224857600080fd5b823561225381611eb5565b9150602083013561226381611eb5565b809150509250929050565b60208082526016908201527510aca7aa9020a922902727aa102a24229027aba722a960511b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000828210156122c6576122c661229e565b500390565b6000826122e857634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156123075761230761229e565b500290565b6000821982111561231f5761231f61229e565b500190565b634e487b7160e01b600052603260045260246000fd5b600181815b8085111561237557816000190482111561235b5761235b61229e565b8085161561236857918102915b93841c939080029061233f565b509250929050565b60008261238c57506001610978565b8161239957506000610978565b81600181146123af57600281146123b9576123d5565b6001915050610978565b60ff8411156123ca576123ca61229e565b50506001821b610978565b5060208310610133831016604e8410600b84101617156123f8575081810a610978565b612402838361233a565b80600019048211156124165761241661229e565b029392505050565b6000611f6060ff84168361237d565b60006001820161243f5761243f61229e565b5060010190565b60006020828403121561245857600080fd5b5051919050565b60006020828403121561247157600080fd5b8151611f6081611eb5565b85815284602082015260a06040820152600061249b60a0830186611f89565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156124cd57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220877fb053a4bc72cf6a4eab033c351a9cd105c307ea4ad1447515dc2ae6fd71ac64736f6c634300080d0033

Deployed Bytecode

0x60806040526004361061028c5760003560e01c80636390aeeb1161015a5780639be953b3116100c1578063dca3cef11161007a578063dca3cef114610835578063dd62ed3e14610855578063e06509971461089b578063e5a772d2146108b1578063f2fde38b146108d1578063f887ea40146108f157600080fd5b80639be953b31461077f578063a8aa1b311461079f578063a9059cbb146107bf578063b46ba24b146107df578063b704a9f6146107ff578063d51ed1c81461081557600080fd5b806387cfc4931161011357806387cfc493146106b3578063893d20e8146106d35780638ca42e4e146106f15780638ee41ca81461071157806395d89b41146107315780639b0ad05c1461075f57600080fd5b80636390aeeb146105e25780636ddd1713146105f757806370a0823114610618578063715018a61461064e5780637a6d69b41461066357806383bd84851461069357600080fd5b80632b14ca56116101fe57806347375a37116101b757806347375a37146105365780634c5d87101461054b57806352aae9dd1461056b57806353cd62101461058b578063599ca397146105ac57806359d3cac2146105c257600080fd5b80632b14ca56146104505780632d3b4047146104935780632f54bf6e146104b3578063313ce567146104e2578063364333f4146104fe578063470624021461051357600080fd5b80631161ae39116102505780631161ae391461039a578063144389d9146103ba57806318160ddd146103da5780631ca0b1d0146103f957806323b872dd1461041b5780632b112e491461043b57600080fd5b806306fdde031461029857806308b1fd8f146102e0578063095ea7b3146103185780630c5b1d93146103485780630cb23d861461036a57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b5060408051808201909152600d81526c121bdc1948141c9bdd1bd8dbdb609a1b60208201525b6040516102d79190611e60565b60405180910390f35b3480156102ec57600080fd5b50601c54610300906001600160a01b031681565b6040516001600160a01b0390911681526020016102d7565b34801561032457600080fd5b50610338610333366004611ecd565b610911565b60405190151581526020016102d7565b34801561035457600080fd5b50610368610363366004611f0e565b61097e565b005b34801561037657600080fd5b50610338610385366004611f43565b60046020526000908152604090205460ff1681565b3480156103a657600080fd5b506103386103b5366004611f67565b6109dc565b3480156103c657600080fd5b50601d54610300906001600160a01b031681565b3480156103e657600080fd5b506008545b6040519081526020016102d7565b34801561040557600080fd5b5061040e6109f0565b6040516102d79190611fcd565b34801561042757600080fd5b50610338610436366004611fe0565b610a52565b34801561044757600080fd5b506103eb610b19565b34801561045c57600080fd5b50601754601854601954601a546104739392919084565b6040805194855260208501939093529183015260608201526080016102d7565b34801561049f57600080fd5b50601b54610300906001600160a01b031681565b3480156104bf57600080fd5b506103386104ce366004611f43565b6000546001600160a01b0391821691161490565b3480156104ee57600080fd5b50604051601281526020016102d7565b34801561050a57600080fd5b50610368610b89565b34801561051f57600080fd5b506013546014546015546016546104739392919084565b34801561054257600080fd5b50610368610bf2565b34801561055757600080fd5b50610368610566366004612021565b610c31565b34801561057757600080fd5b5061036861058636600461204d565b610cbc565b34801561059757600080fd5b50601f5461033890600160a01b900460ff1681565b3480156105b857600080fd5b506103eb600b5481565b3480156105ce57600080fd5b506103686105dd366004612021565b610ceb565b3480156105ee57600080fd5b50600f546103eb565b34801561060357600080fd5b50601f5461033890600160c01b900460ff1681565b34801561062457600080fd5b506103eb610633366004611f43565b6001600160a01b031660009081526006602052604090205490565b34801561065a57600080fd5b50610368610d41565b34801561066f57600080fd5b5061033861067e366004611f43565b60026020526000908152604090205460ff1681565b34801561069f57600080fd5b506103686106ae366004612066565b610db5565b3480156106bf57600080fd5b506103686106ce366004611f43565b610dfd565b3480156106df57600080fd5b506000546001600160a01b0316610300565b3480156106fd57600080fd5b5061036861070c36600461204d565b610e48565b34801561071d57600080fd5b5061036861072c366004612081565b610e77565b34801561073d57600080fd5b5060408051808201909152600581526424484f504560d81b60208201526102ca565b34801561076b57600080fd5b5061036861077a366004612173565b610edb565b34801561078b57600080fd5b5061036861079a366004611f43565b610ffa565b3480156107ab57600080fd5b50601f54610300906001600160a01b031681565b3480156107cb57600080fd5b506103386107da366004611ecd565b6110ca565b3480156107eb57600080fd5b506103686107fa366004612021565b6110e0565b34801561080b57600080fd5b506103eb600a5481565b34801561082157600080fd5b506103eb61083036600461204d565b611136565b34801561084157600080fd5b50610368610850366004612235565b61117a565b34801561086157600080fd5b506103eb610870366004612235565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156108a757600080fd5b506103eb60095481565b3480156108bd57600080fd5b506103686108cc366004611f43565b6111d2565b3480156108dd57600080fd5b506103686108ec366004611f43565b611238565b3480156108fd57600080fd5b50601e54610300906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061096c9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146109b15760405162461bcd60e51b81526004016109a89061226e565b60405180910390fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000826109e883611136565b119392505050565b6060600f805480602002602001604051908101604052809291908181526020018280548015610a4857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a2a575b5050505050905090565b6001600160a01b038316600090815260076020908152604080832033845290915281205482811015610a8357600080fd5b6001600160a01b038516600090815260076020908152604080832033845290915290205460001914610b03576001600160a01b0385166000908152600760209081526040808320338452909152902054610ade9084906122b4565b6001600160a01b03861660009081526007602090815260408083203384529091529020555b610b0e858585611322565b506001949350505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2254600854919291610b7a91906122b4565b610b8491906122b4565b905090565b6000546001600160a01b03163314610bb35760405162461bcd60e51b81526004016109a89061226e565b6000805460405147926001600160a01b039092169183156108fc02918491818181858888f19350505050158015610bee573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610c1c5760405162461bcd60e51b81526004016109a89061226e565b601f805460ff60b81b1916600160b81b179055565b6000546001600160a01b03163314610c5b5760405162461bcd60e51b81526004016109a89061226e565b826103e8600854610c6c91906122cb565b610c7691906122ed565b600c556008548290610c8b906103e8906122cb565b610c9591906122ed565b600d556008548190610caa906103e8906122cb565b610cb491906122ed565b600e55505050565b6000546001600160a01b03163314610ce65760405162461bcd60e51b81526004016109a89061226e565b601255565b6000546001600160a01b03163314610d155760405162461bcd60e51b81526004016109a89061226e565b60178390556018829055601981905580610d2f838561230c565b610d39919061230c565b601a55505050565b6000546001600160a01b03163314610d6b5760405162461bcd60e51b81526004016109a89061226e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610ddf5760405162461bcd60e51b81526004016109a89061226e565b601f8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610e275760405162461bcd60e51b81526004016109a89061226e565b6001600160a01b03166000908152600260205260409020805460ff19169055565b6000546001600160a01b03163314610e725760405162461bcd60e51b81526004016109a89061226e565b601155565b6000546001600160a01b03163314610ea15760405162461bcd60e51b81526004016109a89061226e565b601f805460ff60c01b1916600160c01b841515021790556008548190610eca906103e8906122cb565b610ed491906122ed565b6020555050565b6000546001600160a01b03163314610f055760405162461bcd60e51b81526004016109a89061226e565b6064825110610f755760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203130302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b60648201526084016109a8565b60005b8251811015610ff5576000838281518110610f9557610f95612324565b6020026020010151905060006012600a610faf919061241e565b848481518110610fc157610fc1612324565b6020026020010151610fd391906122ed565b9050610fe0338383611322565b50508080610fed9061242d565b915050610f78565b505050565b6000546001600160a01b031633146110245760405162461bcd60e51b81526004016109a89061226e565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561106b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108f9190612446565b601c546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ff5573d6000803e3d6000fd5b60006110d7338484611322565b50600192915050565b6000546001600160a01b0316331461110a5760405162461bcd60e51b81526004016109a89061226e565b60138390556014829055601581905580611124838561230c565b61112e919061230c565b601655505050565b6000611140610b19565b601f546001600160a01b03166000908152600660205260409020546111669060026122ed565b61117090846122ed565b61097891906122cb565b6000546001600160a01b031633146111a45760405162461bcd60e51b81526004016109a89061226e565b601c80546001600160a01b039384166001600160a01b031991821617909155601d8054929093169116179055565b6000546001600160a01b031633146111fc5760405162461bcd60e51b81526004016109a89061226e565b6001600160a01b031660009081526004602090815260408083208054600160ff1991821681179092556005909352922080549091169091179055565b6000546001600160a01b031633146112625760405162461bcd60e51b81526004016109a89061226e565b6001600160a01b0381166112c75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109a8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061134257506001600160a01b03821615155b6113865760405162461bcd60e51b815260206004820152601560248201527421b0b73737ba1031329030b2323932b9b99418149760591b60448201526064016109a8565b6001600160a01b03808416600081815260046020908152604080832054948716835280832054938352600590915281205460ff938416939283169216806113e557506001600160a01b03851660009081526005602052604090205460ff165b806113f95750601f54600160a81b900460ff165b905080156114115761140c868686611511565b611509565b601f54600160b81b900460ff1661142757600080fd5b601f54600160a01b900460ff16156114445761140c8686866115d3565b82156114555761140c8686866116d0565b811561147b57611463611793565b15611470576114706117db565b61140c8686866118db565b6001600160a01b03861660009081526002602052604090205460ff161580156114bd57506001600160a01b03851660009081526002602052604090205460ff16155b6114c657600080fd5b600e54846114e9876001600160a01b031660009081526006602052604090205490565b6114f3919061230c565b11156114fe57600080fd5b611509868686611941565b505050505050565b6001600160a01b03831660009081526006602052604090205461155790849061153b9084906122b4565b6001600160a01b03909116600090815260066020526040902055565b6001600160a01b03821660009081526006602052604090205461158190839061153b90849061230c565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115c691815260200190565b60405180910390a3505050565b6001600160a01b03821660009081526002602052604090205460ff16156115f957600080fd5b600c5481111561163f5760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b60448201526064016109a8565b606461164c82605a6122ed565b61165691906122cb565b60109081556001600160a01b0383166000818152600260205260408120805460ff19166001908117909155600f805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b031916909117905554610ff59084908490849061197f565b6001600160a01b03821660009081526002602052604090205460ff16156116f657600080fd5b600c5481111561173c5760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b60448201526064016109a8565b6001600160a01b03821660009081526003602052604090205460ff1661177f576016546103e89061176d90836122ed565b61177791906122cb565b601055611785565b60006010555b610ff583838360105461197f565b601f54600090600160b01b900460ff161580156117b95750601f54600160c01b900460ff165b8015610b84575050602080543060009081526006909252604090912054101590565b601f805460ff60b01b1916600160b01b17905530600090815260066020526040812054601654601a54919250600091611814919061230c565b601354601754611824919061230c565b61182e90846122ed565b61183891906122cb565b9050600061184682846122b4565b905060006118556002846122cb565b9050600061186382856122b4565b905061186f818461230c565b94504761187b86611a9a565b600061188782476122b4565b905060008761189685846122ed565b6118a091906122cb565b90506118ac8582611bd3565b60006118b884476122b4565b90506118c381611c8f565b5050601f805460ff60b01b1916905550505050505050565b6001600160a01b03831660009081526002602052604090205460ff161561190157600080fd5b600d5481111561191057600080fd5b6001600160a01b03831660009081526003602052604090205460ff1661177f57601a546103e89061176d90836122ed565b6103e86011548261195291906122ed565b61195c91906122cb565b60108190551561197457610ff583838360105461197f565b610ff5838383611511565b60006010548361198f91906122b4565b6001600160a01b0386166000908152600660205260409020549091506119bc90869061153b9086906122b4565b306000818152600660205260409020546119dc919061153b90859061230c565b6001600160a01b038416600090815260066020526040902054611a0690859061153b90849061230c565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a4b91815260200190565b60405180910390a360405182815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611acf57611acf612324565b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4c919061245f565b81600181518110611b5f57611b5f612324565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815291169063791ac94790611ba590859060009086903090429060040161247c565b600060405180830381600087803b158015611bbf57600080fd5b505af1158015611509573d6000803e3d6000fd5b601f805460ff60a81b1916600160a81b179055601e54601c5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611c56573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611c7b91906124b8565b5050601f805460ff60a81b19169055505050565b601954601554600091611ca19161230c565b601854601454919250600091611cb7919061230c565b90506000611cc5828461230c565b9050600081611cd485876122ed565b611cde91906122cb565b9050600082611ced85886122ed565b611cf791906122cb565b90508015611da957601c546040516000916001600160a01b03169061753090849084818181858888f193505050503d8060008114611d51576040519150601f19603f3d011682016040523d82523d6000602084013e611d56565b606091505b5050905080611da75760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016109a8565b505b811561150957601d546040516000916001600160a01b03169061753090859084818181858888f193505050503d8060008114611e01576040519150601f19603f3d011682016040523d82523d6000602084013e611e06565b606091505b5050905080611e575760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e73666572000060448201526064016109a8565b50505050505050565b600060208083528351808285015260005b81811015611e8d57858101830151858201604001528201611e71565b81811115611e9f576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611eca57600080fd5b50565b60008060408385031215611ee057600080fd5b8235611eeb81611eb5565b946020939093013593505050565b80358015158114611f0957600080fd5b919050565b60008060408385031215611f2157600080fd5b8235611f2c81611eb5565b9150611f3a60208401611ef9565b90509250929050565b600060208284031215611f5557600080fd5b8135611f6081611eb5565b9392505050565b60008060408385031215611f7a57600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b83811015611fc25781516001600160a01b031687529582019590820190600101611f9d565b509495945050505050565b602081526000611f606020830184611f89565b600080600060608486031215611ff557600080fd5b833561200081611eb5565b9250602084013561201081611eb5565b929592945050506040919091013590565b60008060006060848603121561203657600080fd5b505081359360208301359350604090920135919050565b60006020828403121561205f57600080fd5b5035919050565b60006020828403121561207857600080fd5b611f6082611ef9565b6000806040838503121561209457600080fd5b611eeb83611ef9565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156120dc576120dc61209d565b604052919050565b600067ffffffffffffffff8211156120fe576120fe61209d565b5060051b60200190565b600082601f83011261211957600080fd5b8135602061212e612129836120e4565b6120b3565b82815260059290921b8401810191818101908684111561214d57600080fd5b8286015b848110156121685780358352918301918301612151565b509695505050505050565b6000806040838503121561218657600080fd5b823567ffffffffffffffff8082111561219e57600080fd5b818501915085601f8301126121b257600080fd5b813560206121c2612129836120e4565b82815260059290921b840181019181810190898411156121e157600080fd5b948201945b838610156122085785356121f981611eb5565b825294820194908201906121e6565b9650508601359250508082111561221e57600080fd5b5061222b85828601612108565b9150509250929050565b6000806040838503121561224857600080fd5b823561225381611eb5565b9150602083013561226381611eb5565b809150509250929050565b60208082526016908201527510aca7aa9020a922902727aa102a24229027aba722a960511b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000828210156122c6576122c661229e565b500390565b6000826122e857634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156123075761230761229e565b500290565b6000821982111561231f5761231f61229e565b500190565b634e487b7160e01b600052603260045260246000fd5b600181815b8085111561237557816000190482111561235b5761235b61229e565b8085161561236857918102915b93841c939080029061233f565b509250929050565b60008261238c57506001610978565b8161239957506000610978565b81600181146123af57600281146123b9576123d5565b6001915050610978565b60ff8411156123ca576123ca61229e565b50506001821b610978565b5060208310610133831016604e8410600b84101617156123f8575081810a610978565b612402838361233a565b80600019048211156124165761241661229e565b029392505050565b6000611f6060ff84168361237d565b60006001820161243f5761243f61229e565b5060010190565b60006020828403121561245857600080fd5b5051919050565b60006020828403121561247157600080fd5b8151611f6081611eb5565b85815284602082015260a06040820152600061249b60a0830186611f89565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156124cd57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220877fb053a4bc72cf6a4eab033c351a9cd105c307ea4ad1447515dc2ae6fd71ac64736f6c634300080d0033

Deployed Bytecode Sourcemap

3798:16144:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18659:80;;;;;;;;;;-1:-1:-1;18731:5:0;;;;;;;;;;;;-1:-1:-1;;;18731:5:0;;;;18659:80;;;;;;;:::i;:::-;;;;;;;;5540:76;;;;;;;;;;-1:-1:-1;5540:76:0;;;;-1:-1:-1;;;;;5540:76:0;;;;;;-1:-1:-1;;;;;780:32:1;;;762:51;;750:2;735:18;5540:76:0;616:203:1;19079:216:0;;;;;;;;;;-1:-1:-1;19079:216:0;;;;;:::i;:::-;;:::i;:::-;;;1445:14:1;;1438:22;1420:41;;1408:2;1393:18;19079:216:0;1280:187:1;8333:130:0;;;;;;;;;;-1:-1:-1;8333:130:0;;;;;:::i;:::-;;:::i;:::-;;3963:54;;;;;;;;;;-1:-1:-1;3963:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11958:150;;;;;;;;;;-1:-1:-1;11958:150:0;;;;;:::i;:::-;;:::i;5623:82::-;;;;;;;;;;-1:-1:-1;5623:82:0;;;;-1:-1:-1;;;;;5623:82:0;;;18389:88;;;;;;;;;;-1:-1:-1;18462:12:0;;18389:88;;;2608:25:1;;;2596:2;2581:18;18389:88:0;2462:177:1;11568:99:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;19476:463::-;;;;;;;;;;-1:-1:-1;19476:463:0;;;;;:::i;:::-;;:::i;11424:136::-;;;;;;;;;;;;;:::i;5226:22::-;;;;;;;;;;-1:-1:-1;5226:22:0;;;;;;;;;;;;;;;;;;;4068:25:1;;;4124:2;4109:18;;4102:34;;;;4152:18;;;4145:34;4210:2;4195:18;;4188:34;4055:3;4040:19;5226:22:0;3837:391:1;5281:82:0;;;;;;;;;;-1:-1:-1;5281:82:0;;;;-1:-1:-1;;;;;5281:82:0;;;1739:103;;;;;;;;;;-1:-1:-1;1739:103:0;;;;;:::i;:::-;1794:4;1829:5;-1:-1:-1;;;;;1818:16:0;;;1829:5;;1818:16;;1739:103;18483:80;;;;;;;;;;-1:-1:-1;18483:80:0;;4355:2;4375:36:1;;4363:2;4348:18;18483:80:0;4233:184:1;10920:171:0;;;;;;;;;;;;;:::i;5199:20::-;;;;;;;;;;-1:-1:-1;5199:20:0;;;;;;;;;;;;;;;8205:120;;;;;;;;;;;;;:::i;7861:336::-;;;;;;;;;;-1:-1:-1;7861:336:0;;;;;:::i;:::-;;:::i;8685:111::-;;;;;;;;;;-1:-1:-1;8685:111:0;;;;;:::i;:::-;;:::i;5802:33::-;;;;;;;;;;-1:-1:-1;5802:33:0;;;;-1:-1:-1;;;5802:33:0;;;;;;4554:34;;;;;;;;;;;;;;;;9305:376;;;;;;;;;;-1:-1:-1;9305:376:0;;;;;:::i;:::-;;:::i;11675:103::-;;;;;;;;;;-1:-1:-1;11753:10:0;:17;11675:103;;6019:30;;;;;;;;;;-1:-1:-1;6019:30:0;;;;-1:-1:-1;;;6019:30:0;;;;;;18829:104;;;;;;;;;;-1:-1:-1;18829:104:0;;;;;:::i;:::-;-1:-1:-1;;;;;18913:18:0;18895:7;18913:18;;;:9;:18;;;;;;;18829:104;2100:146;;;;;;;;;;;;;:::i;3860:44::-;;;;;;;;;;-1:-1:-1;3860:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10809:103;;;;;;;;;;-1:-1:-1;10809:103:0;;;;;:::i;:::-;;:::i;10536:105::-;;;;;;;;;;-1:-1:-1;10536:105:0;;;;;:::i;:::-;;:::i;18745:78::-;;;;;;;;;;-1:-1:-1;18797:7:0;18815:5;-1:-1:-1;;;;;18815:5:0;18745:78;;9752:119;;;;;;;;;;-1:-1:-1;9752:119:0;;;;;:::i;:::-;;:::i;8471:206::-;;;;;;;;;;-1:-1:-1;8471:206:0;;;;;:::i;:::-;;:::i;18569:84::-;;;;;;;;;;-1:-1:-1;18643:7:0;;;;;;;;;;;;-1:-1:-1;;;18643:7:0;;;;18569:84;;10076:452;;;;;;;;;;-1:-1:-1;10076:452:0;;;;;:::i;:::-;;:::i;11099:205::-;;;;;;;;;;-1:-1:-1;11099:205:0;;;;;:::i;:::-;;:::i;5745:19::-;;;;;;;;;;-1:-1:-1;5745:19:0;;;;-1:-1:-1;;;;;5745:19:0;;;19303:165;;;;;;;;;;-1:-1:-1;19303:165:0;;;;;:::i;:::-;;:::i;8866:368::-;;;;;;;;;;-1:-1:-1;8866:368:0;;;;;:::i;:::-;;:::i;4515:32::-;;;;;;;;;;;;;;;;11786:164;;;;;;;;;;-1:-1:-1;11786:164:0;;;;;:::i;:::-;;:::i;9879:189::-;;;;;;;;;;-1:-1:-1;9879:189:0;;;;;:::i;:::-;;:::i;18939:132::-;;;;;;;;;;-1:-1:-1;18939:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;19041:19:0;;;19023:7;19041:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;18939:132;4477:31;;;;;;;;;;;;;;;;10649:152;;;;;;;;;;-1:-1:-1;10649:152:0;;;;;:::i;:::-;;:::i;1850:242::-;;;;;;;;;;-1:-1:-1;1850:242:0;;;;;:::i;:::-;;:::i;5714:24::-;;;;;;;;;;-1:-1:-1;5714:24:0;;;;-1:-1:-1;;;;;5714:24:0;;;19079:216;19183:10;19154:4;19171:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;19171:32:0;;;;;;;;;;:41;;;19228:37;19154:4;;19171:32;;19228:37;;;;19206:6;2608:25:1;;2596:2;2581:18;;2462:177;19228:37:0;;;;;;;;-1:-1:-1;19283:4:0;19079:216;;;;;:::o;8333:130::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;8426:19:0;;;::::1;;::::0;;;:12:::1;:19;::::0;;;;:29;;-1:-1:-1;;8426:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8333:130::o;11958:150::-;12038:4;12094:6;12062:29;12082:8;12062:19;:29::i;:::-;:38;;11958:150;-1:-1:-1;;;11958:150:0:o;11568:99::-;11614:16;11649:10;11642:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11642:17:0;;;;;;;;;;;;;;;;;;;;;;;11568:99;:::o;19476:463::-;-1:-1:-1;;;;;19612:19:0;;19574:4;19612:19;;;:11;:19;;;;;;;;19632:10;19612:31;;;;;;;;19662:20;;;;19654:29;;;;;;-1:-1:-1;;;;;19708:19:0;;;;;;:11;:19;;;;;;;;19728:10;19708:31;;;;;;;;-1:-1:-1;;19708:52:0;19704:159;;-1:-1:-1;;;;;19811:19:0;;;;;;:11;:19;;;;;;;;19831:10;19811:31;;;;;;;;:40;;19845:6;;19811:40;:::i;:::-;-1:-1:-1;;;;;19777:19:0;;;;;;:11;:19;;;;;;;;19797:10;19777:31;;;;;;;:74;19704:159;19873:36;19883:6;19891:9;19902:6;19873:9;:36::i;:::-;-1:-1:-1;19927:4:0;;19476:463;-1:-1:-1;;;;19476:463:0:o;11424:136::-;18913:9;:18;;;;5408:42;11477:7;18913:18;;;;;11504:12;;11477:7;;18913:18;11504:30;;18913:18;11504:30;:::i;:::-;:48;;;;:::i;:::-;11497:55;;11424:136;:::o;10920:171::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;10979:26:::1;11048:5:::0;;11040:43:::1;::::0;11008:21:::1;::::0;-1:-1:-1;;;;;11048:5:0;;::::1;::::0;11040:43;::::1;;;::::0;11008:21;;11040:43;10979:26;11040:43;11008:21;11048:5;11040:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10968:123;10920:171::o:0;8205:120::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;8282:28:::1;:35:::0;;-1:-1:-1;;;;8282:35:0::1;-1:-1:-1::0;;;8282:35:0::1;::::0;;8205:120::o;7861:336::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;8036:17:::1;8029:4;8015:12;;:18;;;;:::i;:::-;:38;;;;:::i;:::-;8000:12;:53:::0;8080:12:::1;::::0;8101:18;;8080::::1;::::0;8094:4:::1;::::0;8080:18:::1;:::i;:::-;:39;;;;:::i;:::-;8064:13;:55:::0;8148:12:::1;::::0;8169:20;;8148:18:::1;::::0;8162:4:::1;::::0;8148:18:::1;:::i;:::-;:41;;;;:::i;:::-;8130:15;:59:::0;-1:-1:-1;;;7861:336:0:o;8685:111::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;8764:15:::1;:24:::0;8685:111::o;9305:376::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;9438:7:::1;:36:::0;;;9485:19;:34;;;9530:25;:46;;;9558:18;9603:42:::1;9507:12:::0;9461:13;9603:42:::1;:::i;:::-;:70;;;;:::i;:::-;9587:13:::0;:86;-1:-1:-1;;;9305:376:0:o;2100:146::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;2206:1:::1;2191:5:::0;;2170:39:::1;::::0;-1:-1:-1;;;;;2191:5:0;;::::1;::::0;2170:39:::1;::::0;2206:1;;2170:39:::1;2236:1;2220:18:::0;;-1:-1:-1;;;;;;2220:18:0::1;::::0;;2100:146::o;10809:103::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;10882:14:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;10882:22:0::1;-1:-1:-1::0;;;;10882:22:0;;::::1;::::0;;;::::1;::::0;;10809:103::o;10536:105::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10605:20:0::1;10628:5;10605:20:::0;;;:12:::1;:20;::::0;;;;:28;;-1:-1:-1;;10605:28:0::1;::::0;;10536:105::o;9752:119::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;9837:11:::1;:26:::0;9752:119::o;8471:206::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;8579:11:::1;:22:::0;;-1:-1:-1;;;;8579:22:0::1;-1:-1:-1::0;;;8579:22:0;::::1;;;;::::0;;8628:12:::1;::::0;8650:19;;8628::::1;::::0;8643:4:::1;::::0;8628:19:::1;:::i;:::-;:41;;;;:::i;:::-;8612:13;:57:::0;-1:-1:-1;;8471:206:0:o;10076:452::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;10225:3:::1;10201:14;:21;:27;10193:94;;;::::0;-1:-1:-1;;;10193:94:0;;9815:2:1;10193:94:0::1;::::0;::::1;9797:21:1::0;9854:2;9834:18;;;9827:30;9893:34;9873:18;;;9866:62;-1:-1:-1;;;9944:18:1;;;9937:52;10006:19;;10193:94:0::1;9613:418:1::0;10193:94:0::1;10302:9;10298:223;10321:14;:21;10317:1;:25;10298:223;;;10363:14;10380;10395:1;10380:17;;;;;;;;:::i;:::-;;;;;;;10363:34;;10412:14;4355:2;10443;:13;;;;:::i;:::-;10430:7;10438:1;10430:10;;;;;;;;:::i;:::-;;;;;;;:26;;;;:::i;:::-;10412:45;;10472:37;10482:10;10494:6;10502;10472:9;:37::i;:::-;10348:173;;10344:3;;;;;:::i;:::-;;;;10298:223;;;;10076:452:::0;;:::o;11099:205::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;11195:38:::1;::::0;-1:-1:-1;;;11195:38:0;;11227:4:::1;11195:38;::::0;::::1;762:51:1::0;11168:24:0::1;::::0;-1:-1:-1;;;;;11195:23:0;::::1;::::0;::::1;::::0;735:18:1;;11195:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11252:16;::::0;11244:52:::1;::::0;11168:65;;-1:-1:-1;;;;;;11252:16:0::1;::::0;11244:52;::::1;;;::::0;11168:65;;11252:16:::1;11244:52:::0;11252:16;11244:52;11168:65;11252:16;11244:52;::::1;;;;;;;;;;;;;::::0;::::1;;;;19303:165:::0;19381:4;19398:40;19408:10;19420:9;19431:6;19398:9;:40::i;:::-;-1:-1:-1;19456:4:0;19303:165;;;;:::o;8866:368::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;8998:6:::1;:35:::0;;;9044:18;:33;;;9088:24;:45;;;9115:18;9159:40:::1;9065:12:::0;9020:13;9159:40:::1;:::i;:::-;:67;;;;:::i;:::-;9144:12:::0;:82;-1:-1:-1;;;8866:368:0:o;11786:164::-;11854:7;11919:22;:20;:22::i;:::-;11903:4;;-1:-1:-1;;;;;11903:4:0;18895:7;18913:18;;;:9;:18;;;;;;11893:21;;11912:1;11893:21;:::i;:::-;11881:34;;:8;:34;:::i;:::-;:61;;;;:::i;9879:189::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;9981:16:::1;:28:::0;;-1:-1:-1;;;;;9981:28:0;;::::1;-1:-1:-1::0;;;;;;9981:28:0;;::::1;;::::0;;;10020:22:::1;:40:::0;;;;;::::1;::::0;::::1;;::::0;;9879:189::o;10649:152::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10722:30:0::1;;::::0;;;:22:::1;:30;::::0;;;;;;;:35;;10753:4:::1;-1:-1:-1::0;;10722:35:0;;::::1;::::0;::::1;::::0;;;10768:12:::1;:20:::0;;;;;:25;;;;::::1;::::0;;::::1;::::0;;10649:152::o;1850:242::-;1794:4;1829:5;-1:-1:-1;;;;;1829:5:0;1682:10;1818:16;1666:54;;;;-1:-1:-1;;;1666:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1939:22:0;::::1;1931:73;;;::::0;-1:-1:-1;;;1931:73:0;;12082:2:1;1931:73:0::1;::::0;::::1;12064:21:1::0;12121:2;12101:18;;;12094:30;12160:34;12140:18;;;12133:62;-1:-1:-1;;;12211:18:1;;;12204:36;12257:19;;1931:73:0::1;11880:402:1::0;1931:73:0::1;2041:5;::::0;;2020:37:::1;::::0;-1:-1:-1;;;;;2020:37:0;;::::1;::::0;2041:5;::::1;::::0;2020:37:::1;::::0;::::1;2068:5;:16:::0;;-1:-1:-1;;;;;;2068:16:0::1;-1:-1:-1::0;;;;;2068:16:0;;;::::1;::::0;;;::::1;::::0;;1850:242::o;12232:1168::-;-1:-1:-1;;;;;12327:18:0;;;;;;:41;;-1:-1:-1;;;;;;12347:21:0;;;;12327:41;12319:74;;;;-1:-1:-1;;;12319:74:0;;12489:2:1;12319:74:0;;;12471:21:1;12528:2;12508:18;;;12501:30;-1:-1:-1;;;12547:18:1;;;12540:51;12608:18;;12319:74:0;12287:345:1;12319:74:0;-1:-1:-1;;;;;12415:30:0;;;12404:10;12415:30;;;:22;:30;;;;;;;;;12468:33;;;;;;;;;12528:20;;;:12;:20;;;;;;12415:30;;;;;12468:33;;;;12528:20;;:45;;-1:-1:-1;;;;;;12550:23:0;;;;;;:12;:23;;;;;;;;12528:45;:56;;;-1:-1:-1;12575:9:0;;-1:-1:-1;;;12575:9:0;;;;12528:56;12512:72;;12600:10;12597:796;;;12611:42;12629:6;12636:9;12646:6;12611:17;:42::i;:::-;12597:796;;;12679:28;;-1:-1:-1;;;12679:28:0;;;;12671:37;;;;;;12761:14;;-1:-1:-1;;;12761:14:0;;;;12758:624;;;12776:39;12791:6;12798:9;12808:6;12776:14;:39::i;12758:624::-;12865:5;12862:520;;;12871:35;12882:6;12889:9;12899:6;12871:10;:35::i;12862:520::-;12957:6;12954:428;;;13023:16;:14;:16::i;:::-;13019:35;;;13042:10;:8;:10::i;:::-;13072:36;13084:6;13091:9;13101:6;13072:11;:36::i;12954:428::-;-1:-1:-1;;;;;13191:20:0;;;;;;:12;:20;;;;;;;;13190:21;:47;;;;-1:-1:-1;;;;;;13214:23:0;;;;;;:12;:23;;;;;;;;13213:24;13190:47;13182:56;;;;;;13294:15;;13286:6;13265:20;13275:9;-1:-1:-1;;;;;18913:18:0;18895:7;18913:18;;;:9;:18;;;;;;;18829:104;13265:20;:27;;;;:::i;:::-;:44;;13257:53;;;;;;13329:37;13342:6;13349:9;13359:6;13329:12;:37::i;:::-;12308:1092;;;12232:1168;;;:::o;14804:263::-;-1:-1:-1;;;;;14921:17:0;;;;;;:9;:17;;;;;;14899:47;;14914:6;;14921:24;;14939:6;;14921:24;:::i;:::-;-1:-1:-1;;;;;15626:18:0;;;;;;;:9;:18;;;;;:31;15547:118;14899:47;-1:-1:-1;;;;;14982:20:0;;;;;;:9;:20;;;;;;14957:53;;14972:9;;14982:27;;15003:6;;14982:27;:::i;14957:53::-;15042:9;-1:-1:-1;;;;;15026:33:0;15035:6;-1:-1:-1;;;;;15026:33:0;;15052:6;15026:33;;;;2608:25:1;;2596:2;2581:18;;2462:177;15026:33:0;;;;;;;;14804:263;;;:::o;13408:378::-;-1:-1:-1;;;;;13509:23:0;;;;;;:12;:23;;;;;;;;13508:24;13500:33;;;;;;13562:12;;13552:6;:22;;13544:52;;;;-1:-1:-1;;;13544:52:0;;12839:2:1;13544:52:0;;;12821:21:1;12878:2;12858:18;;;12851:30;-1:-1:-1;;;12897:18:1;;;12890:47;12954:18;;13544:52:0;12637:341:1;13544:52:0;13628:3;13618:9;:6;13625:2;13618:9;:::i;:::-;:13;;;;:::i;:::-;13607:8;:24;;;-1:-1:-1;;;;;13642:23:0;;;;;;:12;:23;;;;;:28;;-1:-1:-1;;13642:28:0;13666:4;13642:28;;;;;;13681:10;:35;;;;;;;;;;;;;;-1:-1:-1;;;;;;13681:35:0;;;;;;13769:8;13727:51;;13745:6;;13655:9;;13762:6;;13727:17;:51::i;13794:368::-;-1:-1:-1;;;;;13891:23:0;;;;;;:12;:23;;;;;;;;13890:24;13882:33;;;;;;13944:12;;13934:6;:22;;13926:52;;;;-1:-1:-1;;;13926:52:0;;12839:2:1;13926:52:0;;;12821:21:1;12878:2;12858:18;;;12851:30;-1:-1:-1;;;12897:18:1;;;12890:47;12954:18;;13926:52:0;12637:341:1;13926:52:0;-1:-1:-1;;;;;13993:23:0;;;;;;:12;:23;;;;;;;;13989:103;;14046:12;;14059:4;;14039:19;;:6;:19;:::i;:::-;:24;;;;:::i;:::-;14028:8;:35;13989:103;;;14091:1;14080:8;:12;13989:103;14103:51;14121:6;14128:9;14138:6;14145:8;;14103:17;:51::i;15673:186::-;15759:6;;15721:4;;-1:-1:-1;;;15759:6:0;;;;15758:7;:35;;;;-1:-1:-1;15782:11:0;;-1:-1:-1;;;15782:11:0;;;;15758:35;:93;;;;-1:-1:-1;;15838:13:0;;;15828:4;15810:24;;;;:9;:24;;;;;;;;:41;;;15673:186::o;15870:728::-;6151:6;:13;;-1:-1:-1;;;;6151:13:0;-1:-1:-1;;;6151:13:0;;;15953:4:::1;-1:-1:-1::0;18913:18:0;;;:9;:18;;;;;;16063:12;;16047:13;;15918:41;;-1:-1:-1;15972:21:0::1;::::0;16047:28:::1;::::0;16063:12;16047:28:::1;:::i;:::-;16025:6;:19:::0;16002:7:::1;:20:::0;:42:::1;::::0;16025:19;16002:42:::1;:::i;:::-;15994:51;::::0;:6;:51:::1;:::i;:::-;:82;;;;:::i;:::-;15972:104:::0;-1:-1:-1;16087:18:0::1;16106:20;15972:104:::0;16106:6;:20:::1;:::i;:::-;16087:39:::0;-1:-1:-1;16137:16:0::1;16154:15;16168:1;16154:13:::0;:15:::1;:::i;:::-;16137:32:::0;-1:-1:-1;16180:19:0::1;16200:22;16137:32:::0;16200:13;:22:::1;:::i;:::-;16180:42:::0;-1:-1:-1;16240:22:0::1;16180:42:::0;16240:10;:22:::1;:::i;:::-;16233:29:::0;-1:-1:-1;16288:21:0::1;16320:25;16233:29:::0;16320:17:::1;:25::i;:::-;16356:14;16371:28;16393:6:::0;16371:21:::1;:28;:::i;:::-;16356:43:::0;-1:-1:-1;16410:13:0::1;16445:6:::0;16425:18:::1;16432:11:::0;16356:43;16425:18:::1;:::i;:::-;16424:27;;;;:::i;:::-;16410:41;;16462:29;16476:8;16485:5;16462:13;:29::i;:::-;16502:20;16523:28;16545:6:::0;16523:21:::1;:28;:::i;:::-;16502:49;;16562:28;16577:12;16562:14;:28::i;:::-;-1:-1:-1::0;;6187:6:0;:14;;-1:-1:-1;;;;6187:14:0;;;-1:-1:-1;;;;;;;15870:728:0:o;14168:344::-;-1:-1:-1;;;;;14266:20:0;;;;;;:12;:20;;;;;;;;14265:21;14257:30;;;;;;14316:13;;14306:6;:23;;14298:32;;;;;;-1:-1:-1;;;;;14345:20:0;;;;;;:12;:20;;;;;;;;14341:101;;14395:13;;14409:4;;14388:20;;:6;:20;:::i;14520:276::-;14642:4;14630:11;;14621:6;:20;;;;:::i;:::-;:25;;;;:::i;:::-;14610:8;:36;;;14661:12;14657:132;;14676:51;14694:6;14701:9;14711:6;14718:8;;14676:17;:51::i;14657:132::-;14745:42;14763:6;14770:9;14780:6;14745:17;:42::i;15075:464::-;15188:17;15215:8;;15208:6;:15;;;;:::i;:::-;-1:-1:-1;;;;;15256:17:0;;;;;;:9;:17;;;;;;15188:35;;-1:-1:-1;15234:47:0;;15249:6;;15256:24;;15274:6;;15256:24;:::i;15234:47::-;15315:4;15321:24;;;;:9;:24;;;;;;15292:64;;15315:4;15321:34;;15346:9;;15321:34;:::i;15292:64::-;-1:-1:-1;;;;;15392:20:0;;;;;;:9;:20;;;;;;15367:56;;15382:9;;15392:30;;15413:9;;15392:30;:::i;15367:56::-;15455:9;-1:-1:-1;;;;;15439:36:0;15448:6;-1:-1:-1;;;;;15439:36:0;;15465:9;15439:36;;;;2608:25:1;;2596:2;2581:18;;2462:177;15439:36:0;;;;;;;;15491:40;;2608:25:1;;;15515:4:0;;-1:-1:-1;;;;;15491:40:0;;;;;2596:2:1;2581:18;15491:40:0;;;;;;;15177:362;15075:464;;;;:::o;17603:369::-;17687:16;;;17701:1;17687:16;;;;;;;;17665:21;;17687:16;;;;;;;;;;-1:-1:-1;17687:16:0;17665:38;;17732:4;17714;17719:1;17714:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17714:23:0;;;:7;;;;;;;;;;:23;;;;17758:6;;:13;;;-1:-1:-1;;;17758:13:0;;;;:6;;;;;:11;;:13;;;;;17714:7;;17758:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17748:4;17753:1;17748:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17748:23:0;;;:7;;;;;;;;;:23;17782:6;;:182;;-1:-1:-1;;;17782:182:0;;:6;;;:57;;:182;;17854:6;;17782;;17891:4;;17918;;17938:15;;17782:182;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17980:340;18062:9;:14;;-1:-1:-1;;;;18062:14:0;-1:-1:-1;;;18062:14:0;;;18087:6;;18229:16;;18087:199;;-1:-1:-1;;;18087:199:0;;18150:4;18087:199;;;14167:34:1;14217:18;;;14210:34;;;-1:-1:-1;14260:18:1;;;14253:34;;;14303:18;;;14296:34;-1:-1:-1;;;;;18229:16:0;;;14346:19:1;;;14339:44;18260:15:0;14399:19:1;;;14392:35;18087:6:0;;;:22;;18117:9;;14101:19:1;;18087:199:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;18297:9:0;:15;;-1:-1:-1;;;;18297:15:0;;;-1:-1:-1;;;17980:340:0:o;16606:989::-;16727:25;;16700:24;;16671:25;;16700:52;;;:::i;:::-;16808:19;;16787:18;;16671:82;;-1:-1:-1;16764:19:0;;16787:40;;16808:19;16787:40;:::i;:::-;16764:64;-1:-1:-1;16839:16:0;16859:31;16764:64;16859:17;:31;:::i;:::-;16839:52;-1:-1:-1;16904:31:0;16839:52;16938:34;16954:17;16938:12;:34;:::i;:::-;:47;;;;:::i;:::-;16904:81;-1:-1:-1;16996:25:0;17056:8;17024:28;17040:11;17024:12;:28;:::i;:::-;:41;;;;:::i;:::-;16996:69;-1:-1:-1;17081:21:0;;17078:230;;17172:16;;17164:72;;17115:20;;-1:-1:-1;;;;;17172:16:0;;17226:5;;17202:17;;17115:20;17164:72;17115:20;17164:72;17202:17;17172:16;17226:5;17164:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17114:122;;;17255:15;17247:58;;;;-1:-1:-1;;;17247:58:0;;15161:2:1;17247:58:0;;;15143:21:1;15200:2;15180:18;;;15173:30;15239:32;15219:18;;;15212:60;15289:18;;17247:58:0;14959:354:1;17247:58:0;17103:205;17078:230;17331:27;;17328:260;;17434:22;;17426:84;;17371:26;;-1:-1:-1;;;;;17434:22:0;;17500:5;;17470:23;;17371:26;17426:84;17371:26;17426:84;17470:23;17434:22;17500:5;17426:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17370:140;;;17529:21;17521:64;;;;-1:-1:-1;;;17521:64:0;;15161:2:1;17521:64:0;;;15143:21:1;15200:2;15180:18;;;15173:30;15239:32;15219:18;;;15212:60;15289:18;;17521:64:0;14959:354:1;17521:64:0;17359:229;16660:935;;;;;16606:989;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;824:131::-;-1:-1:-1;;;;;899:31:1;;889:42;;879:70;;945:1;942;935:12;879:70;824:131;:::o;960:315::-;1028:6;1036;1089:2;1077:9;1068:7;1064:23;1060:32;1057:52;;;1105:1;1102;1095:12;1057:52;1144:9;1131:23;1163:31;1188:5;1163:31;:::i;:::-;1213:5;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;960:315:1:o;1472:160::-;1537:20;;1593:13;;1586:21;1576:32;;1566:60;;1622:1;1619;1612:12;1566:60;1472:160;;;:::o;1637:315::-;1702:6;1710;1763:2;1751:9;1742:7;1738:23;1734:32;1731:52;;;1779:1;1776;1769:12;1731:52;1818:9;1805:23;1837:31;1862:5;1837:31;:::i;:::-;1887:5;-1:-1:-1;1911:35:1;1942:2;1927:18;;1911:35;:::i;:::-;1901:45;;1637:315;;;;;:::o;1957:247::-;2016:6;2069:2;2057:9;2048:7;2044:23;2040:32;2037:52;;;2085:1;2082;2075:12;2037:52;2124:9;2111:23;2143:31;2168:5;2143:31;:::i;:::-;2193:5;1957:247;-1:-1:-1;;;1957:247:1:o;2209:248::-;2277:6;2285;2338:2;2326:9;2317:7;2313:23;2309:32;2306:52;;;2354:1;2351;2344:12;2306:52;-1:-1:-1;;2377:23:1;;;2447:2;2432:18;;;2419:32;;-1:-1:-1;2209:248:1:o;2644:461::-;2697:3;2735:5;2729:12;2762:6;2757:3;2750:19;2788:4;2817:2;2812:3;2808:12;2801:19;;2854:2;2847:5;2843:14;2875:1;2885:195;2899:6;2896:1;2893:13;2885:195;;;2964:13;;-1:-1:-1;;;;;2960:39:1;2948:52;;3020:12;;;;3055:15;;;;2996:1;2914:9;2885:195;;;-1:-1:-1;3096:3:1;;2644:461;-1:-1:-1;;;;;2644:461:1:o;3110:261::-;3289:2;3278:9;3271:21;3252:4;3309:56;3361:2;3350:9;3346:18;3338:6;3309:56;:::i;3376:456::-;3453:6;3461;3469;3522:2;3510:9;3501:7;3497:23;3493:32;3490:52;;;3538:1;3535;3528:12;3490:52;3577:9;3564:23;3596:31;3621:5;3596:31;:::i;:::-;3646:5;-1:-1:-1;3703:2:1;3688:18;;3675:32;3716:33;3675:32;3716:33;:::i;:::-;3376:456;;3768:7;;-1:-1:-1;;;3822:2:1;3807:18;;;;3794:32;;3376:456::o;4422:316::-;4499:6;4507;4515;4568:2;4556:9;4547:7;4543:23;4539:32;4536:52;;;4584:1;4581;4574:12;4536:52;-1:-1:-1;;4607:23:1;;;4677:2;4662:18;;4649:32;;-1:-1:-1;4728:2:1;4713:18;;;4700:32;;4422:316;-1:-1:-1;4422:316:1:o;4743:180::-;4802:6;4855:2;4843:9;4834:7;4830:23;4826:32;4823:52;;;4871:1;4868;4861:12;4823:52;-1:-1:-1;4894:23:1;;4743:180;-1:-1:-1;4743:180:1:o;4928:::-;4984:6;5037:2;5025:9;5016:7;5012:23;5008:32;5005:52;;;5053:1;5050;5043:12;5005:52;5076:26;5092:9;5076:26;:::i;5113:248::-;5178:6;5186;5239:2;5227:9;5218:7;5214:23;5210:32;5207:52;;;5255:1;5252;5245:12;5207:52;5278:26;5294:9;5278:26;:::i;5366:127::-;5427:10;5422:3;5418:20;5415:1;5408:31;5458:4;5455:1;5448:15;5482:4;5479:1;5472:15;5498:275;5569:2;5563:9;5634:2;5615:13;;-1:-1:-1;;5611:27:1;5599:40;;5669:18;5654:34;;5690:22;;;5651:62;5648:88;;;5716:18;;:::i;:::-;5752:2;5745:22;5498:275;;-1:-1:-1;5498:275:1:o;5778:183::-;5838:4;5871:18;5863:6;5860:30;5857:56;;;5893:18;;:::i;:::-;-1:-1:-1;5938:1:1;5934:14;5950:4;5930:25;;5778:183::o;5966:662::-;6020:5;6073:3;6066:4;6058:6;6054:17;6050:27;6040:55;;6091:1;6088;6081:12;6040:55;6127:6;6114:20;6153:4;6177:60;6193:43;6233:2;6193:43;:::i;:::-;6177:60;:::i;:::-;6271:15;;;6357:1;6353:10;;;;6341:23;;6337:32;;;6302:12;;;;6381:15;;;6378:35;;;6409:1;6406;6399:12;6378:35;6445:2;6437:6;6433:15;6457:142;6473:6;6468:3;6465:15;6457:142;;;6539:17;;6527:30;;6577:12;;;;6490;;6457:142;;;-1:-1:-1;6617:5:1;5966:662;-1:-1:-1;;;;;;5966:662:1:o;6633:1215::-;6751:6;6759;6812:2;6800:9;6791:7;6787:23;6783:32;6780:52;;;6828:1;6825;6818:12;6780:52;6868:9;6855:23;6897:18;6938:2;6930:6;6927:14;6924:34;;;6954:1;6951;6944:12;6924:34;6992:6;6981:9;6977:22;6967:32;;7037:7;7030:4;7026:2;7022:13;7018:27;7008:55;;7059:1;7056;7049:12;7008:55;7095:2;7082:16;7117:4;7141:60;7157:43;7197:2;7157:43;:::i;7141:60::-;7235:15;;;7317:1;7313:10;;;;7305:19;;7301:28;;;7266:12;;;;7341:19;;;7338:39;;;7373:1;7370;7363:12;7338:39;7397:11;;;;7417:217;7433:6;7428:3;7425:15;7417:217;;;7513:3;7500:17;7530:31;7555:5;7530:31;:::i;:::-;7574:18;;7450:12;;;;7612;;;;7417:217;;;7653:5;-1:-1:-1;;7696:18:1;;7683:32;;-1:-1:-1;;7727:16:1;;;7724:36;;;7756:1;7753;7746:12;7724:36;;7779:63;7834:7;7823:8;7812:9;7808:24;7779:63;:::i;:::-;7769:73;;;6633:1215;;;;;:::o;7853:388::-;7921:6;7929;7982:2;7970:9;7961:7;7957:23;7953:32;7950:52;;;7998:1;7995;7988:12;7950:52;8037:9;8024:23;8056:31;8081:5;8056:31;:::i;:::-;8106:5;-1:-1:-1;8163:2:1;8148:18;;8135:32;8176:33;8135:32;8176:33;:::i;:::-;8228:7;8218:17;;;7853:388;;;;;:::o;8472:346::-;8674:2;8656:21;;;8713:2;8693:18;;;8686:30;-1:-1:-1;;;8747:2:1;8732:18;;8725:52;8809:2;8794:18;;8472:346::o;8823:127::-;8884:10;8879:3;8875:20;8872:1;8865:31;8915:4;8912:1;8905:15;8939:4;8936:1;8929:15;8955:125;8995:4;9023:1;9020;9017:8;9014:34;;;9028:18;;:::i;:::-;-1:-1:-1;9065:9:1;;8955:125::o;9085:217::-;9125:1;9151;9141:132;;9195:10;9190:3;9186:20;9183:1;9176:31;9230:4;9227:1;9220:15;9258:4;9255:1;9248:15;9141:132;-1:-1:-1;9287:9:1;;9085:217::o;9307:168::-;9347:7;9413:1;9409;9405:6;9401:14;9398:1;9395:21;9390:1;9383:9;9376:17;9372:45;9369:71;;;9420:18;;:::i;:::-;-1:-1:-1;9460:9:1;;9307:168::o;9480:128::-;9520:3;9551:1;9547:6;9544:1;9541:13;9538:39;;;9557:18;;:::i;:::-;-1:-1:-1;9593:9:1;;9480:128::o;10036:127::-;10097:10;10092:3;10088:20;10085:1;10078:31;10128:4;10125:1;10118:15;10152:4;10149:1;10142:15;10168:422;10257:1;10300:5;10257:1;10314:270;10335:7;10325:8;10322:21;10314:270;;;10394:4;10390:1;10386:6;10382:17;10376:4;10373:27;10370:53;;;10403:18;;:::i;:::-;10453:7;10443:8;10439:22;10436:55;;;10473:16;;;;10436:55;10552:22;;;;10512:15;;;;10314:270;;;10318:3;10168:422;;;;;:::o;10595:806::-;10644:5;10674:8;10664:80;;-1:-1:-1;10715:1:1;10729:5;;10664:80;10763:4;10753:76;;-1:-1:-1;10800:1:1;10814:5;;10753:76;10845:4;10863:1;10858:59;;;;10931:1;10926:130;;;;10838:218;;10858:59;10888:1;10879:10;;10902:5;;;10926:130;10963:3;10953:8;10950:17;10947:43;;;10970:18;;:::i;:::-;-1:-1:-1;;11026:1:1;11012:16;;11041:5;;10838:218;;11140:2;11130:8;11127:16;11121:3;11115:4;11112:13;11108:36;11102:2;11092:8;11089:16;11084:2;11078:4;11075:12;11071:35;11068:77;11065:159;;;-1:-1:-1;11177:19:1;;;11209:5;;11065:159;11256:34;11281:8;11275:4;11256:34;:::i;:::-;11326:6;11322:1;11318:6;11314:19;11305:7;11302:32;11299:58;;;11337:18;;:::i;:::-;11375:20;;10595:806;-1:-1:-1;;;10595:806:1:o;11406:140::-;11464:5;11493:47;11534:4;11524:8;11520:19;11514:4;11493:47;:::i;11551:135::-;11590:3;11611:17;;;11608:43;;11631:18;;:::i;:::-;-1:-1:-1;11678:1:1;11667:13;;11551:135::o;11691:184::-;11761:6;11814:2;11802:9;11793:7;11789:23;11785:32;11782:52;;;11830:1;11827;11820:12;11782:52;-1:-1:-1;11853:16:1;;11691:184;-1:-1:-1;11691:184:1:o;12983:251::-;13053:6;13106:2;13094:9;13085:7;13081:23;13077:32;13074:52;;;13122:1;13119;13112:12;13074:52;13154:9;13148:16;13173:31;13198:5;13173:31;:::i;13239:582::-;13538:6;13527:9;13520:25;13581:6;13576:2;13565:9;13561:18;13554:34;13624:3;13619:2;13608:9;13604:18;13597:31;13501:4;13645:57;13697:3;13686:9;13682:19;13674:6;13645:57;:::i;:::-;-1:-1:-1;;;;;13738:32:1;;;;13733:2;13718:18;;13711:60;-1:-1:-1;13802:3:1;13787:19;13780:35;13637:65;13239:582;-1:-1:-1;;;13239:582:1:o;14438:306::-;14526:6;14534;14542;14595:2;14583:9;14574:7;14570:23;14566:32;14563:52;;;14611:1;14608;14601:12;14563:52;14640:9;14634:16;14624:26;;14690:2;14679:9;14675:18;14669:25;14659:35;;14734:2;14723:9;14719:18;14713:25;14703:35;;14438:306;;;;;:::o

Swarm Source

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