ETH Price: $2,485.18 (+2.80%)

Token

ChartIQ (ChartIQ)
 

Overview

Max Total Supply

1,000,000 ChartIQ

Holders

175

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$121.77

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
68.875855946584973497 ChartIQ

Value
$0.01 ( ~4.02385048411234E-06 Eth) [0.0069%]
0xdc48484678306c2ca359874dbab33ee186730e31
Loading...
Loading
Loading...
Loading
Loading...
Loading

Market

Volume (24H):$0.00
Market Capitalization:$0.00
Circulating Supply:0.00 ChartIQ
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ChartIQ

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-01
*/

// SPDX-License-Identifier: UNLICENSED

/*

TELEGRAM: 
https://t.me/ChartIQGlobal

X: 
https://X.com/ChartIQGlobal

WEBSITE:
https://www.chartiq.ai/

*/


pragma solidity 0.8.26;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

abstract contract Auth {
    address internal owner;

    mapping (address => bool) internal authorizations;

    event Authorize_Wallet(address Wallet, bool Status);

    event OwnershipRenounced(address indexed previousOwner);

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


    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

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

    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    function authorize(address adr) external onlyOwner {
        authorizations[adr] = true;
        emit Authorize_Wallet(adr,true);
    }

    function unauthorize(address adr) external onlyOwner {
        require(adr != owner, "OWNER cant be unauthorized");
        authorizations[adr] = false;
        emit Authorize_Wallet(adr,false);
    }

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

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function renounceOwnership() public onlyOwner {
        emit OwnershipRenounced(owner);
        owner = address(0);
    }

    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

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

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

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

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

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

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

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

interface InterfaceLP {
    function sync() external;
}

contract ChartIQ is BEP20, Auth {
    using SafeMath for uint256;

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

    string constant _name = "ChartIQ";
    string constant _symbol = "ChartIQ";
    uint8 constant _decimals = 18;

    uint256 public _totalSupply = 1 * 10**6 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply ; // 
    uint256 public _maxWalletToken = _totalSupply ; // 

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isWalletLimitExempt;

    uint256 public liquidityFee = 0;
    uint256 public marketingFee = 0;
    uint256 public buybackFee = 0;
    uint256 public burnFee = 0;
    uint256 public totalFee = marketingFee + liquidityFee + buybackFee + burnFee;
    uint256 public constant feeDenominator = 1000;

    uint256 sellMultiplier = 100;
    uint256 buyMultiplier = 100;
    uint256 transferMultiplier = 25;

    address public marketingFeeReceiver;
    address public buybackFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    InterfaceLP public pairContract;
    uint256 public lastSync;

    bool public tradingOpen = false;
    uint256 public launchedAt;

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

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

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

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

        marketingFeeReceiver = msg.sender;
        buybackFeeReceiver = msg.sender;

        isFeeExempt[msg.sender] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[ZERO] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;

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

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
        }

        if (!authorizations[sender] && !isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }
    
        // Checks max transaction limit
        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded");

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

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

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

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);


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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

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

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);
        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        if(contractTokens > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(contractTokens);
            emit Transfer(sender, address(this), contractTokens);
        }
        
        if(burnTokens > 0){
            _totalSupply = _totalSupply.sub(burnTokens);
            emit Transfer(sender, ZERO, burnTokens);  
        }

        return amount.sub(feeAmount);
    }

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

    function clearStuckToken(address tokenAddress, uint256 tokens) external authorized returns (bool success) {
        require(tokenAddress != address(this),"Cannot withdraw native token");
        if(tokenAddress == pair){
            require(block.timestamp > launchedAt + 500 days,"Locked for 1 year");
        }

        if(tokens == 0){
            tokens = BEP20(tokenAddress).balanceOf(address(this));
        }

        emit clearToken(tokenAddress, tokens);

        return BEP20(tokenAddress).transfer(msg.sender, tokens);
    }

    // switch Trading
    function tradingEnable() external onlyOwner {
        require(!tradingOpen,"Trading already open");
        tradingOpen = true;
        launchedAt = block.timestamp;
        emit config_TradingStatus(tradingOpen);
    }

    function swapBack() internal swapping {

        uint256 totalETHFee = totalFee - burnFee;

        if(totalETHFee == 0) {
            totalETHFee = 1;
        }

        uint256 amountToLiquify = (swapThreshold * liquidityFee)/(totalETHFee * 2);
        uint256 amountToSwap = swapThreshold - amountToLiquify;

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

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

        uint256 amountETH = address(this).balance;

         totalETHFee = totalETHFee - (liquidityFee / 2);

         if(totalETHFee == 0) {
            totalETHFee = 1;
        }

        uint256 amountETHLiquidity = (amountETH * liquidityFee) / (totalETHFee * 2);
        uint256 amountETHMarketing = (amountETH * marketingFee) / totalETHFee;
        uint256 amountETHbuyback = (amountETH * buybackFee) / totalETHFee;

        payable(marketingFeeReceiver).transfer(amountETHMarketing);
        payable(buybackFeeReceiver).transfer(amountETHbuyback);

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                address(this),
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function manage_FeeExempt(address[] calldata addresses, bool status) external authorized {
        require(addresses.length < 501,"GAS Error: max limit is 500 addresses");
        for (uint256 i=0; i < addresses.length; ++i) {
            isFeeExempt[addresses[i]] = status;
            emit Wallet_feeExempt(addresses[i], status);
        }
    }

    function update_fees() internal {
        require(totalFee.mul(buyMultiplier).div(100) <= 400, "Buy tax cannot be more than 40%");
        require(totalFee.mul(sellMultiplier).div(100) <= 400, "Sell tax cannot be more than 40%");
        require(totalFee.mul(sellMultiplier + buyMultiplier).div(100) <= 400, "Buy+Sell tax cannot be more than 40%");
        require(totalFee.mul(transferMultiplier).div(100) <= 100, "Transfer Tax cannot be more than 10%");

        emit UpdateFee( uint8(totalFee.mul(buyMultiplier).div(100)),
            uint8(totalFee.mul(sellMultiplier).div(100)),
            uint8(totalFee.mul(transferMultiplier).div(100))
            );
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external authorized {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;

        update_fees();
    }

    function setFees_base1000(uint256 _liquidityFee,  uint256 _marketingFee, uint256 _buybackFee, uint256 _burnFee) external onlyOwner {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        buybackFee = _buybackFee;
        burnFee = _burnFee;
        totalFee = _liquidityFee + _marketingFee + _buybackFee + _burnFee;
        
        update_fees();
    }

    function setFeeReceivers(address _marketingFeeReceiver, address _buybackFeeReceiver) external onlyOwner {
        require(_marketingFeeReceiver != address(0),"Marketing fee address cannot be zero address");
        require(_buybackFeeReceiver != address(0),"buyback fee address cannot be zero address");

        marketingFeeReceiver = _marketingFeeReceiver;
        buybackFeeReceiver = _buybackFeeReceiver;

        emit Set_Wallets(marketingFeeReceiver, buybackFeeReceiver);
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        require(_amount >= 1 * 10**_decimals, "Amount is less than one token");
        require(_amount < (_totalSupply/10), "Amount too high");

        swapEnabled = _enabled;
        swapThreshold = _amount;

        emit config_SwapSettings(swapThreshold, swapEnabled);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return (_totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }

event AutoLiquify(uint256 amountETH, uint256 amountTokens);
event UpdateFee(uint8 Buy, uint8 Sell, uint8 Transfer);
event Wallet_feeExempt(address Wallet, bool Status);
event Wallet_txExempt(address Wallet, bool Status);
event Wallet_holdingExempt(address Wallet, bool Status);
event Wallet_blacklist(address Wallet, bool Status);

event BalanceClear(uint256 amount);
event clearToken(address TokenAddressCleared, uint256 Amount);

event Set_Wallets(address MarketingWallet, address buybackWallet);

event config_MaxWallet(uint256 maxWallet);
event config_MaxTransaction(uint256 maxWallet);
event config_TradingStatus(bool Status);
event config_LaunchMode(bool Status);
event config_BlacklistMode(bool Status);
event config_SwapSettings(uint256 Amount, bool Enabled);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Authorize_Wallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BalanceClear","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","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":false,"internalType":"address","name":"MarketingWallet","type":"address"},{"indexed":false,"internalType":"address","name":"buybackWallet","type":"address"}],"name":"Set_Wallets","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"Buy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Sell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"Transfer","type":"uint8"}],"name":"UpdateFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_blacklist","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_feeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_holdingExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"Wallet_txExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"clearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"config_BlacklistMode","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"config_LaunchMode","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"config_MaxTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"config_MaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"Enabled","type":"bool"}],"name":"config_SwapSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"Status","type":"bool"}],"name":"config_TradingStatus","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastSync","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_FeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_buybackFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"setFees_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526100106012600a610497565b61001d90620f42406104ac565b600281905560038190556004555f600a819055600b819055600c819055600d8190558061004a81806104c3565b61005491906104c3565b61005e91906104c3565b600e556064600f819055601055601960118190556017805460ff199081169091558154166001179055600254610097906103e8906104d6565b601a553480156100a5575f80fd5b505f8054336001600160a01b031991821681178355825260016020818152604093849020805460ff191690921790915560148054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa158015610128573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061014c91906104f5565b6001600160a01b039081166080526014546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801561019a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101be91906104f5565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af115801561020c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023091906104f5565b6001600160a01b0390811660a0819052601580546001600160a01b0319908116909217905542601655305f81815260066020908152604080832060145490961683529481528482205f1990556012805433908616811790915560138054909516811790945583825260078152848220805460ff1990811660019081179092556008835286842080548216831790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548216831790557f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7805482168317905560098352868420805482168317905593835285832080548516821790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb19307500378580549094161790925560025483825260058352848220819055935193845291927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361051b565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156103ed578085048111156103d1576103d161039e565b60018416156103df57908102905b60019390931c9280026103b6565b935093915050565b5f8261040357506001610491565b8161040f57505f610491565b8160018114610425576002811461042f5761044b565b6001915050610491565b60ff8411156104405761044061039e565b50506001821b610491565b5060208310610133831016604e8410600b841016171561046e575081810a610491565b61047a5f1984846103b2565b805f190482111561048d5761048d61039e565b0290505b92915050565b5f6104a560ff8416836103f5565b9392505050565b80820281158282048414176104915761049161039e565b808201808211156104915761049161039e565b5f826104f057634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610505575f80fd5b81516001600160a01b03811681146104a5575f80fd5b60805160a0516126e461055f5f395f818161064d01528181610d600152818161150101528181611b3201528181611ef20152611f2601525f611c4c01526126e45ff3fe608060405260043610610282575f3560e01c806377b54bad11610155578063bf56b371116100be578063f0b37c0411610078578063f0b37c0414610791578063f2fde38b146107b0578063f887ea40146107cf578063fce589d8146107ee578063fe9fbb8014610803578063ffb54a991461083a575f80fd5b8063bf56b371146106ad578063c867d60b146106c2578063dd62ed3e146106f0578063df20fd4914610734578063e96fada214610753578063efa5e34714610772575f80fd5b806395d89b411161010f57806395d89b41146102d657806398118cb414610608578063a4b45c001461061d578063a8aa1b311461063c578063a9059cbb1461066f578063b6a5d7de1461068e575f80fd5b806377b54bad1461055657806378109e54146105755780637d1db4a51461058a57806384b1d1ef1461059f578063893d20e8146105be5780638b42507f146105da575f80fd5b8063313ce567116101f75780636917516b116101b15780636917516b146104b55780636b67c4df146104ca5780636ce46bc3146104df5780636ddd1713146104fe57806370a0823114610517578063715018a614610542575f80fd5b8063313ce567146103ec5780633b2d081c146104075780633eaaf86b1461041c5780633f4218e0146104315780634d709adf1461045f578063571ac8b014610496575f80fd5b8063180b0d7e11610248578063180b0d7e1461034e57806318160ddd146103635780631df4ccfc1461037757806323b872dd1461038c5780632b112e49146103ab5780632f54bf6e146103bf575f80fd5b8062bff4461461028d5780630445b667146102ae57806306fdde03146102d6578063095ea7b31461030b5780631693e8d41461033a575f80fd5b3661028957005b5f80fd5b348015610298575f80fd5b506102ac6102a7366004612215565b610853565b005b3480156102b9575f80fd5b506102c3601a5481565b6040519081526020015b60405180910390f35b3480156102e1575f80fd5b5060408051808201825260078152664368617274495160c81b602082015290516102cd9190612297565b348015610316575f80fd5b5061032a6103253660046122e7565b6109bd565b60405190151581526020016102cd565b348015610345575f80fd5b506102ac610a29565b348015610359575f80fd5b506102c36103e881565b34801561036e575f80fd5b506002546102c3565b348015610382575f80fd5b506102c3600e5481565b348015610397575f80fd5b5061032a6103a636600461230f565b610ae6565b3480156103b6575f80fd5b506102c3610ba4565b3480156103ca575f80fd5b5061032a6103d9366004612349565b5f546001600160a01b0391821691161490565b3480156103f7575f80fd5b50604051601281526020016102cd565b348015610412575f80fd5b506102c3600c5481565b348015610427575f80fd5b506102c360025481565b34801561043c575f80fd5b5061032a61044b366004612349565b60076020525f908152604090205460ff1681565b34801561046a575f80fd5b5060155461047e906001600160a01b031681565b6040516001600160a01b0390911681526020016102cd565b3480156104a1575f80fd5b5061032a6104b0366004612349565b610c13565b3480156104c0575f80fd5b506102c360165481565b3480156104d5575f80fd5b506102c3600b5481565b3480156104ea575f80fd5b506102ac6104f9366004612362565b610c1f565b348015610509575f80fd5b5060195461032a9060ff1681565b348015610522575f80fd5b506102c3610531366004612349565b60056020525f908152604090205481565b34801561054d575f80fd5b506102ac610c69565b348015610561575f80fd5b5061032a6105703660046122e7565b610cd8565b348015610580575f80fd5b506102c360045481565b348015610595575f80fd5b506102c360035481565b3480156105aa575f80fd5b5060135461047e906001600160a01b031681565b3480156105c9575f80fd5b505f546001600160a01b031661047e565b3480156105e5575f80fd5b5061032a6105f4366004612349565b60086020525f908152604090205460ff1681565b348015610613575f80fd5b506102c3600a5481565b348015610628575f80fd5b506102ac61063736600461238b565b610f0a565b348015610647575f80fd5b5061047e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561067a575f80fd5b5061032a6106893660046122e7565b611076565b348015610699575f80fd5b506102ac6106a8366004612349565b611082565b3480156106b8575f80fd5b506102c360185481565b3480156106cd575f80fd5b5061032a6106dc366004612349565b60096020525f908152604090205460ff1681565b3480156106fb575f80fd5b506102c361070a36600461238b565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b34801561073f575f80fd5b506102ac61074e3660046123bc565b611107565b34801561075e575f80fd5b5060125461047e906001600160a01b031681565b34801561077d575f80fd5b506102ac61078c3660046123d8565b611236565b34801561079c575f80fd5b506102ac6107ab366004612349565b61129e565b3480156107bb575f80fd5b506102ac6107ca366004612349565b61137a565b3480156107da575f80fd5b5060145461047e906001600160a01b031681565b3480156107f9575f80fd5b506102c3600d5481565b34801561080e575f80fd5b5061032a61081d366004612349565b6001600160a01b03165f9081526001602052604090205460ff1690565b348015610845575f80fd5b5060175461032a9060ff1681565b335f9081526001602052604090205460ff1661088a5760405162461bcd60e51b815260040161088190612407565b60405180910390fd5b6101f582106108e95760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b6064820152608401610881565b5f5b828110156109b7578160075f8686858181106109095761090961242c565b905060200201602081019061091e9190612349565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f9fbd25f95d342f2efc070b56d2fadd2341d264ef8c915dc268609b2ca1bb25de8484838181106109785761097861242c565b905060200201602081019061098d9190612349565b604080516001600160a01b03909216825284151560208301520160405180910390a16001016108eb565b50505050565b335f8181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a179086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b03163314610a525760405162461bcd60e51b815260040161088190612440565b60175460ff1615610a9c5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b7339030b63932b0b23c9037b832b760611b6044820152606401610881565b6017805460ff19166001908117909155426018556040519081527ff865819dcfd8250cfaa23e1ab7129c1ec65c617bae1e716699dfe07dd7c489ee906020015b60405180910390a1565b6001600160a01b0383165f9081526006602090815260408083203384529091528120545f1914610b8f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600682528381203382529091529190912054610b6b9184906113af565b6001600160a01b0385165f9081526006602090815260408083203384529091529020555b610b9a8484846113e7565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead5f9081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54600254919291610c049190612474565b610c0e9190612474565b905090565b5f610a23825f196109bd565b335f9081526001602052604090205460ff16610c4d5760405162461bcd60e51b815260040161088190612407565b600f82905560108390556011819055610c6461177c565b505050565b5f546001600160a01b03163314610c925760405162461bcd60e51b815260040161088190612440565b5f80546040516001600160a01b03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a25f80546001600160a01b0319169055565b335f9081526001602052604081205460ff16610d065760405162461bcd60e51b815260040161088190612407565b306001600160a01b03841603610d5e5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74207769746864726177206e617469766520746f6b656e000000006044820152606401610881565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031603610dea57601854610da8906302932e00612487565b4211610dea5760405162461bcd60e51b81526020600482015260116024820152702637b1b5b2b2103337b91018903cb2b0b960791b6044820152606401610881565b815f03610e5a576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610e33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e57919061249a565b91505b604080516001600160a01b0385168152602081018490527f960427a4fde284dcc8da2c51a43d210cfd7ed6f4328a24ba33eee49910db564b910160405180910390a160405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610ee6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9d91906124b1565b5f546001600160a01b03163314610f335760405162461bcd60e51b815260040161088190612440565b6001600160a01b038216610f9e5760405162461bcd60e51b815260206004820152602c60248201527f4d61726b6574696e672066656520616464726573732063616e6e6f742062652060448201526b7a65726f206164647265737360a01b6064820152608401610881565b6001600160a01b0381166110075760405162461bcd60e51b815260206004820152602a60248201527f6275796261636b2066656520616464726573732063616e6e6f74206265207a65604482015269726f206164647265737360b01b6064820152608401610881565b601280546001600160a01b038481166001600160a01b03199283168117909355601380549185169190921681179091556040805192835260208301919091527ff3b718cd51f62e3836535bffd8f429a3f80d9d4442d89b72beee94069ed1fa3891015b60405180910390a15050565b5f610b9d3384846113e7565b5f546001600160a01b031633146110ab5760405162461bcd60e51b815260040161088190612440565b6001600160a01b0381165f81815260016020818152604092839020805460ff19168317905582519384528301527fb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b950591015b60405180910390a150565b5f546001600160a01b031633146111305760405162461bcd60e51b815260040161088190612440565b61113c6012600a6125af565b6111479060016125bd565b8110156111965760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206973206c657373207468616e206f6e6520746f6b656e0000006044820152606401610881565b600a6002546111a591906125d4565b81106111e55760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610881565b6019805460ff1916831515908117909155601a8290556040805183815260ff909216151560208301527f34c2d4c263b6f41223c6d30ae2e7bcb18629892587e0a4138f57ba2c523953d0910161106a565b5f546001600160a01b0316331461125f5760405162461bcd60e51b815260040161088190612440565b600a849055600b839055600c829055600d819055808261127f8587612487565b6112899190612487565b6112939190612487565b600e556109b761177c565b5f546001600160a01b031633146112c75760405162461bcd60e51b815260040161088190612440565b5f546001600160a01b03908116908216036113245760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610881565b6001600160a01b0381165f818152600160209081526040808320805460ff191690558051938452908301919091527fb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b950591016110fc565b5f546001600160a01b031633146113a35760405162461bcd60e51b815260040161088190612440565b6113ac816119eb565b50565b5f81848411156113d25760405162461bcd60e51b81526004016108819190612297565b505f6113de8486612474565b95945050505050565b601b545f9060ff1615611406576113ff848484611a56565b9050610b9d565b6001600160a01b0384165f9081526001602052604090205460ff1615801561144657506001600160a01b0383165f9081526001602052604090205460ff16155b156114945760175460ff166114945760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610881565b6001600160a01b0384165f9081526001602052604090205460ff161580156114d457506001600160a01b0384165f9081526009602052604090205460ff16155b80156114f857506001600160a01b0383165f9081526009602052604090205460ff16155b801561153657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b156115af576004546001600160a01b0384165f90815260056020526040902054611561908490612487565b11156115af5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610881565b600354821115806115d757506001600160a01b0384165f9081526008602052604090205460ff165b806115f957506001600160a01b0383165f9081526008602052604090205460ff165b61163d5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610881565b611645611b26565b1561165257611652611b90565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600590915291909120546116a39184906113af565b6001600160a01b0385165f90815260056020908152604080832093909355600790529081205460ff16806116ee57506001600160a01b0384165f9081526007602052604090205460ff165b611702576116fd858486611ecb565b611704565b825b6001600160a01b0385165f90815260056020526040902054909150611729908261207e565b6001600160a01b038086165f8181526005602052604090819020939093559151908716905f8051602061268f833981519152906117699085815260200190565b60405180910390a3506001949350505050565b6101906117a1606461179b601054600e546120dc90919063ffffffff16565b9061215a565b11156117ef5760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20343025006044820152606401610881565b61019061180e606461179b600f54600e546120dc90919063ffffffff16565b111561185c5760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203430256044820152606401610881565b610190611880606461179b601054600f546118779190612487565b600e54906120dc565b11156118da5760405162461bcd60e51b8152602060048201526024808201527f4275792b53656c6c207461782063616e6e6f74206265206d6f7265207468616e6044820152632034302560e01b6064820152608401610881565b60646118f8606461179b601154600e546120dc90919063ffffffff16565b11156119525760405162461bcd60e51b8152602060048201526024808201527f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e6044820152632031302560e01b6064820152608401610881565b7f375884ed7f92283ee74d8884b39a803f4aee832b15766fe016b74fc791fc2ada61198f606461179b601054600e546120dc90919063ffffffff16565b6119ab606461179b600f54600e546120dc90919063ffffffff16565b6119c7606461179b601154600e546120dc90919063ffffffff16565b6040805160ff94851681529284166020840152921691810191909152606001610adc565b6001600160a01b0381166119fd575f80fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600590915291822054611aa69184906113af565b6001600160a01b038086165f908152600560205260408082209390935590851681522054611ad4908361207e565b6001600160a01b038085165f8181526005602052604090819020939093559151908616905f8051602061268f83398151915290611b149086815260200190565b60405180910390a35060019392505050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611b635750601b5460ff16155b8015611b71575060195460ff165b8015610c0e575050601a54305f90815260056020526040902054101590565b601b805460ff19166001179055600d54600e545f91611bae91612474565b9050805f03611bbb575060015b5f611bc78260026125bd565b600a54601a54611bd791906125bd565b611be191906125d4565b90505f81601a54611bf29190612474565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110611c2a57611c2a61242c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611c7e57611c7e61242c565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac94790611cc39085905f908690309042906004016125f3565b5f604051808303815f87803b158015611cda575f80fd5b505af1158015611cec573d5f803e3d5ffd5b5050600a54479250611d0191506002906125d4565b611d0b9086612474565b9450845f03611d1957600194505b5f611d258660026125bd565b600a54611d3290846125bd565b611d3c91906125d4565b90505f86600b5484611d4e91906125bd565b611d5891906125d4565b90505f87600c5485611d6a91906125bd565b611d7491906125d4565b6012546040519192506001600160a01b03169083156108fc029084905f818181858888f19350505050158015611dac573d5f803e3d5ffd5b506013546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611de4573d5f803e3d5ffd5b508615611eb75760145460405163f305d71960e01b81523060048201819052602482018a90525f60448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990859060c40160606040518083038185885af1158015611e55573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611e7a9190612663565b505060408051858152602081018a90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff19169055505050505050565b5f821580611ed95750600e54155b15611ee5575081610b9d565b6011546001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690841603611f245750600f54611f62565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603611f6257506010545b5f611f92611f736103e860646125bd565b61179b84611f8c600e548a6120dc90919063ffffffff16565b906120dc565b90505f611fb0600e5461179b600d54856120dc90919063ffffffff16565b90505f611fbd838361219b565b9050801561202457305f90815260056020526040902054611fde908261207e565b305f81815260056020526040908190209290925590516001600160a01b038a16905f8051602061268f8339815191529061201b9085815260200190565b60405180910390a35b811561206857600254612037908361219b565b6002556040518281525f906001600160a01b038a16905f8051602061268f8339815191529060200160405180910390a35b612072878461219b565b98975050505050505050565b5f8061208a8385612487565b905083811015610b9d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610881565b5f825f036120eb57505f610a23565b5f6120f683856125bd565b90508261210385836125d4565b14610b9d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610881565b5f610b9d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121dc565b5f610b9d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113af565b5f81836121fc5760405162461bcd60e51b81526004016108819190612297565b505f6113de84866125d4565b80151581146113ac575f80fd5b5f805f60408486031215612227575f80fd5b833567ffffffffffffffff81111561223d575f80fd5b8401601f8101861361224d575f80fd5b803567ffffffffffffffff811115612263575f80fd5b8660208260051b8401011115612277575f80fd5b60209182019450925084013561228c81612208565b809150509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146122e2575f80fd5b919050565b5f80604083850312156122f8575f80fd5b612301836122cc565b946020939093013593505050565b5f805f60608486031215612321575f80fd5b61232a846122cc565b9250612338602085016122cc565b929592945050506040919091013590565b5f60208284031215612359575f80fd5b610b9d826122cc565b5f805f60608486031215612374575f80fd5b505081359360208301359350604090920135919050565b5f806040838503121561239c575f80fd5b6123a5836122cc565b91506123b3602084016122cc565b90509250929050565b5f80604083850312156123cd575f80fd5b823561230181612208565b5f805f80608085870312156123eb575f80fd5b5050823594602084013594506040840135936060013592509050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a2357610a23612460565b80820180821115610a2357610a23612460565b5f602082840312156124aa575f80fd5b5051919050565b5f602082840312156124c1575f80fd5b8151610b9d81612208565b6001815b6001841115612507578085048111156124eb576124eb612460565b60018416156124f957908102905b60019390931c9280026124d0565b935093915050565b5f8261251d57506001610a23565b8161252957505f610a23565b816001811461253f576002811461254957612565565b6001915050610a23565b60ff84111561255a5761255a612460565b50506001821b610a23565b5060208310610133831016604e8410600b8410161715612588575081810a610a23565b6125945f1984846124cc565b805f19048211156125a7576125a7612460565b029392505050565b5f610b9d60ff84168361250f565b8082028115828204841417610a2357610a23612460565b5f826125ee57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156126435783516001600160a01b031683526020938401939092019160010161261c565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f60608486031215612675575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b65cec4575644dc1a9d683be3bdaaa508820eab02abb7637bc63c231648aa60064736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610282575f3560e01c806377b54bad11610155578063bf56b371116100be578063f0b37c0411610078578063f0b37c0414610791578063f2fde38b146107b0578063f887ea40146107cf578063fce589d8146107ee578063fe9fbb8014610803578063ffb54a991461083a575f80fd5b8063bf56b371146106ad578063c867d60b146106c2578063dd62ed3e146106f0578063df20fd4914610734578063e96fada214610753578063efa5e34714610772575f80fd5b806395d89b411161010f57806395d89b41146102d657806398118cb414610608578063a4b45c001461061d578063a8aa1b311461063c578063a9059cbb1461066f578063b6a5d7de1461068e575f80fd5b806377b54bad1461055657806378109e54146105755780637d1db4a51461058a57806384b1d1ef1461059f578063893d20e8146105be5780638b42507f146105da575f80fd5b8063313ce567116101f75780636917516b116101b15780636917516b146104b55780636b67c4df146104ca5780636ce46bc3146104df5780636ddd1713146104fe57806370a0823114610517578063715018a614610542575f80fd5b8063313ce567146103ec5780633b2d081c146104075780633eaaf86b1461041c5780633f4218e0146104315780634d709adf1461045f578063571ac8b014610496575f80fd5b8063180b0d7e11610248578063180b0d7e1461034e57806318160ddd146103635780631df4ccfc1461037757806323b872dd1461038c5780632b112e49146103ab5780632f54bf6e146103bf575f80fd5b8062bff4461461028d5780630445b667146102ae57806306fdde03146102d6578063095ea7b31461030b5780631693e8d41461033a575f80fd5b3661028957005b5f80fd5b348015610298575f80fd5b506102ac6102a7366004612215565b610853565b005b3480156102b9575f80fd5b506102c3601a5481565b6040519081526020015b60405180910390f35b3480156102e1575f80fd5b5060408051808201825260078152664368617274495160c81b602082015290516102cd9190612297565b348015610316575f80fd5b5061032a6103253660046122e7565b6109bd565b60405190151581526020016102cd565b348015610345575f80fd5b506102ac610a29565b348015610359575f80fd5b506102c36103e881565b34801561036e575f80fd5b506002546102c3565b348015610382575f80fd5b506102c3600e5481565b348015610397575f80fd5b5061032a6103a636600461230f565b610ae6565b3480156103b6575f80fd5b506102c3610ba4565b3480156103ca575f80fd5b5061032a6103d9366004612349565b5f546001600160a01b0391821691161490565b3480156103f7575f80fd5b50604051601281526020016102cd565b348015610412575f80fd5b506102c3600c5481565b348015610427575f80fd5b506102c360025481565b34801561043c575f80fd5b5061032a61044b366004612349565b60076020525f908152604090205460ff1681565b34801561046a575f80fd5b5060155461047e906001600160a01b031681565b6040516001600160a01b0390911681526020016102cd565b3480156104a1575f80fd5b5061032a6104b0366004612349565b610c13565b3480156104c0575f80fd5b506102c360165481565b3480156104d5575f80fd5b506102c3600b5481565b3480156104ea575f80fd5b506102ac6104f9366004612362565b610c1f565b348015610509575f80fd5b5060195461032a9060ff1681565b348015610522575f80fd5b506102c3610531366004612349565b60056020525f908152604090205481565b34801561054d575f80fd5b506102ac610c69565b348015610561575f80fd5b5061032a6105703660046122e7565b610cd8565b348015610580575f80fd5b506102c360045481565b348015610595575f80fd5b506102c360035481565b3480156105aa575f80fd5b5060135461047e906001600160a01b031681565b3480156105c9575f80fd5b505f546001600160a01b031661047e565b3480156105e5575f80fd5b5061032a6105f4366004612349565b60086020525f908152604090205460ff1681565b348015610613575f80fd5b506102c3600a5481565b348015610628575f80fd5b506102ac61063736600461238b565b610f0a565b348015610647575f80fd5b5061047e7f0000000000000000000000003d05909449cc1646d1dc62be9276ca9e1d87a1a481565b34801561067a575f80fd5b5061032a6106893660046122e7565b611076565b348015610699575f80fd5b506102ac6106a8366004612349565b611082565b3480156106b8575f80fd5b506102c360185481565b3480156106cd575f80fd5b5061032a6106dc366004612349565b60096020525f908152604090205460ff1681565b3480156106fb575f80fd5b506102c361070a36600461238b565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b34801561073f575f80fd5b506102ac61074e3660046123bc565b611107565b34801561075e575f80fd5b5060125461047e906001600160a01b031681565b34801561077d575f80fd5b506102ac61078c3660046123d8565b611236565b34801561079c575f80fd5b506102ac6107ab366004612349565b61129e565b3480156107bb575f80fd5b506102ac6107ca366004612349565b61137a565b3480156107da575f80fd5b5060145461047e906001600160a01b031681565b3480156107f9575f80fd5b506102c3600d5481565b34801561080e575f80fd5b5061032a61081d366004612349565b6001600160a01b03165f9081526001602052604090205460ff1690565b348015610845575f80fd5b5060175461032a9060ff1681565b335f9081526001602052604090205460ff1661088a5760405162461bcd60e51b815260040161088190612407565b60405180910390fd5b6101f582106108e95760405162461bcd60e51b815260206004820152602560248201527f474153204572726f723a206d6178206c696d6974206973203530302061646472604482015264657373657360d81b6064820152608401610881565b5f5b828110156109b7578160075f8686858181106109095761090961242c565b905060200201602081019061091e9190612349565b6001600160a01b0316815260208101919091526040015f20805460ff19169115159190911790557f9fbd25f95d342f2efc070b56d2fadd2341d264ef8c915dc268609b2ca1bb25de8484838181106109785761097861242c565b905060200201602081019061098d9190612349565b604080516001600160a01b03909216825284151560208301520160405180910390a16001016108eb565b50505050565b335f8181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a179086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b03163314610a525760405162461bcd60e51b815260040161088190612440565b60175460ff1615610a9c5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b7339030b63932b0b23c9037b832b760611b6044820152606401610881565b6017805460ff19166001908117909155426018556040519081527ff865819dcfd8250cfaa23e1ab7129c1ec65c617bae1e716699dfe07dd7c489ee906020015b60405180910390a1565b6001600160a01b0383165f9081526006602090815260408083203384529091528120545f1914610b8f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600682528381203382529091529190912054610b6b9184906113af565b6001600160a01b0385165f9081526006602090815260408083203384529091529020555b610b9a8484846113e7565b90505b9392505050565b60056020527f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc5461dead5f9081527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54600254919291610c049190612474565b610c0e9190612474565b905090565b5f610a23825f196109bd565b335f9081526001602052604090205460ff16610c4d5760405162461bcd60e51b815260040161088190612407565b600f82905560108390556011819055610c6461177c565b505050565b5f546001600160a01b03163314610c925760405162461bcd60e51b815260040161088190612440565b5f80546040516001600160a01b03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a25f80546001600160a01b0319169055565b335f9081526001602052604081205460ff16610d065760405162461bcd60e51b815260040161088190612407565b306001600160a01b03841603610d5e5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74207769746864726177206e617469766520746f6b656e000000006044820152606401610881565b7f0000000000000000000000003d05909449cc1646d1dc62be9276ca9e1d87a1a46001600160a01b0316836001600160a01b031603610dea57601854610da8906302932e00612487565b4211610dea5760405162461bcd60e51b81526020600482015260116024820152702637b1b5b2b2103337b91018903cb2b0b960791b6044820152606401610881565b815f03610e5a576040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610e33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e57919061249a565b91505b604080516001600160a01b0385168152602081018490527f960427a4fde284dcc8da2c51a43d210cfd7ed6f4328a24ba33eee49910db564b910160405180910390a160405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af1158015610ee6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9d91906124b1565b5f546001600160a01b03163314610f335760405162461bcd60e51b815260040161088190612440565b6001600160a01b038216610f9e5760405162461bcd60e51b815260206004820152602c60248201527f4d61726b6574696e672066656520616464726573732063616e6e6f742062652060448201526b7a65726f206164647265737360a01b6064820152608401610881565b6001600160a01b0381166110075760405162461bcd60e51b815260206004820152602a60248201527f6275796261636b2066656520616464726573732063616e6e6f74206265207a65604482015269726f206164647265737360b01b6064820152608401610881565b601280546001600160a01b038481166001600160a01b03199283168117909355601380549185169190921681179091556040805192835260208301919091527ff3b718cd51f62e3836535bffd8f429a3f80d9d4442d89b72beee94069ed1fa3891015b60405180910390a15050565b5f610b9d3384846113e7565b5f546001600160a01b031633146110ab5760405162461bcd60e51b815260040161088190612440565b6001600160a01b0381165f81815260016020818152604092839020805460ff19168317905582519384528301527fb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b950591015b60405180910390a150565b5f546001600160a01b031633146111305760405162461bcd60e51b815260040161088190612440565b61113c6012600a6125af565b6111479060016125bd565b8110156111965760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206973206c657373207468616e206f6e6520746f6b656e0000006044820152606401610881565b600a6002546111a591906125d4565b81106111e55760405162461bcd60e51b815260206004820152600f60248201526e082dadeeadce840e8dede40d0d2ced608b1b6044820152606401610881565b6019805460ff1916831515908117909155601a8290556040805183815260ff909216151560208301527f34c2d4c263b6f41223c6d30ae2e7bcb18629892587e0a4138f57ba2c523953d0910161106a565b5f546001600160a01b0316331461125f5760405162461bcd60e51b815260040161088190612440565b600a849055600b839055600c829055600d819055808261127f8587612487565b6112899190612487565b6112939190612487565b600e556109b761177c565b5f546001600160a01b031633146112c75760405162461bcd60e51b815260040161088190612440565b5f546001600160a01b03908116908216036113245760405162461bcd60e51b815260206004820152601a60248201527f4f574e45522063616e7420626520756e617574686f72697a65640000000000006044820152606401610881565b6001600160a01b0381165f818152600160209081526040808320805460ff191690558051938452908301919091527fb6a1709218b158ea8591fc9269b88652f1c908dc68a79faa865c745a770b950591016110fc565b5f546001600160a01b031633146113a35760405162461bcd60e51b815260040161088190612440565b6113ac816119eb565b50565b5f81848411156113d25760405162461bcd60e51b81526004016108819190612297565b505f6113de8486612474565b95945050505050565b601b545f9060ff1615611406576113ff848484611a56565b9050610b9d565b6001600160a01b0384165f9081526001602052604090205460ff1615801561144657506001600160a01b0383165f9081526001602052604090205460ff16155b156114945760175460ff166114945760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610881565b6001600160a01b0384165f9081526001602052604090205460ff161580156114d457506001600160a01b0384165f9081526009602052604090205460ff16155b80156114f857506001600160a01b0383165f9081526009602052604090205460ff16155b801561153657507f0000000000000000000000003d05909449cc1646d1dc62be9276ca9e1d87a1a46001600160a01b0316836001600160a01b031614155b156115af576004546001600160a01b0384165f90815260056020526040902054611561908490612487565b11156115af5760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610881565b600354821115806115d757506001600160a01b0384165f9081526008602052604090205460ff165b806115f957506001600160a01b0383165f9081526008602052604090205460ff165b61163d5760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b6044820152606401610881565b611645611b26565b1561165257611652611b90565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600590915291909120546116a39184906113af565b6001600160a01b0385165f90815260056020908152604080832093909355600790529081205460ff16806116ee57506001600160a01b0384165f9081526007602052604090205460ff165b611702576116fd858486611ecb565b611704565b825b6001600160a01b0385165f90815260056020526040902054909150611729908261207e565b6001600160a01b038086165f8181526005602052604090819020939093559151908716905f8051602061268f833981519152906117699085815260200190565b60405180910390a3506001949350505050565b6101906117a1606461179b601054600e546120dc90919063ffffffff16565b9061215a565b11156117ef5760405162461bcd60e51b815260206004820152601f60248201527f427579207461782063616e6e6f74206265206d6f7265207468616e20343025006044820152606401610881565b61019061180e606461179b600f54600e546120dc90919063ffffffff16565b111561185c5760405162461bcd60e51b815260206004820181905260248201527f53656c6c207461782063616e6e6f74206265206d6f7265207468616e203430256044820152606401610881565b610190611880606461179b601054600f546118779190612487565b600e54906120dc565b11156118da5760405162461bcd60e51b8152602060048201526024808201527f4275792b53656c6c207461782063616e6e6f74206265206d6f7265207468616e6044820152632034302560e01b6064820152608401610881565b60646118f8606461179b601154600e546120dc90919063ffffffff16565b11156119525760405162461bcd60e51b8152602060048201526024808201527f5472616e73666572205461782063616e6e6f74206265206d6f7265207468616e6044820152632031302560e01b6064820152608401610881565b7f375884ed7f92283ee74d8884b39a803f4aee832b15766fe016b74fc791fc2ada61198f606461179b601054600e546120dc90919063ffffffff16565b6119ab606461179b600f54600e546120dc90919063ffffffff16565b6119c7606461179b601154600e546120dc90919063ffffffff16565b6040805160ff94851681529284166020840152921691810191909152606001610adc565b6001600160a01b0381166119fd575f80fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600590915291822054611aa69184906113af565b6001600160a01b038086165f908152600560205260408082209390935590851681522054611ad4908361207e565b6001600160a01b038085165f8181526005602052604090819020939093559151908616905f8051602061268f83398151915290611b149086815260200190565b60405180910390a35060019392505050565b5f336001600160a01b037f0000000000000000000000003d05909449cc1646d1dc62be9276ca9e1d87a1a41614801590611b635750601b5460ff16155b8015611b71575060195460ff165b8015610c0e575050601a54305f90815260056020526040902054101590565b601b805460ff19166001179055600d54600e545f91611bae91612474565b9050805f03611bbb575060015b5f611bc78260026125bd565b600a54601a54611bd791906125bd565b611be191906125d4565b90505f81601a54611bf29190612474565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f81518110611c2a57611c2a61242c565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611c7e57611c7e61242c565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac94790611cc39085905f908690309042906004016125f3565b5f604051808303815f87803b158015611cda575f80fd5b505af1158015611cec573d5f803e3d5ffd5b5050600a54479250611d0191506002906125d4565b611d0b9086612474565b9450845f03611d1957600194505b5f611d258660026125bd565b600a54611d3290846125bd565b611d3c91906125d4565b90505f86600b5484611d4e91906125bd565b611d5891906125d4565b90505f87600c5485611d6a91906125bd565b611d7491906125d4565b6012546040519192506001600160a01b03169083156108fc029084905f818181858888f19350505050158015611dac573d5f803e3d5ffd5b506013546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611de4573d5f803e3d5ffd5b508615611eb75760145460405163f305d71960e01b81523060048201819052602482018a90525f60448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990859060c40160606040518083038185885af1158015611e55573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611e7a9190612663565b505060408051858152602081018a90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601b805460ff19169055505050505050565b5f821580611ed95750600e54155b15611ee5575081610b9d565b6011546001600160a01b037f0000000000000000000000003d05909449cc1646d1dc62be9276ca9e1d87a1a4811690841603611f245750600f54611f62565b7f0000000000000000000000003d05909449cc1646d1dc62be9276ca9e1d87a1a46001600160a01b0316856001600160a01b031603611f6257506010545b5f611f92611f736103e860646125bd565b61179b84611f8c600e548a6120dc90919063ffffffff16565b906120dc565b90505f611fb0600e5461179b600d54856120dc90919063ffffffff16565b90505f611fbd838361219b565b9050801561202457305f90815260056020526040902054611fde908261207e565b305f81815260056020526040908190209290925590516001600160a01b038a16905f8051602061268f8339815191529061201b9085815260200190565b60405180910390a35b811561206857600254612037908361219b565b6002556040518281525f906001600160a01b038a16905f8051602061268f8339815191529060200160405180910390a35b612072878461219b565b98975050505050505050565b5f8061208a8385612487565b905083811015610b9d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610881565b5f825f036120eb57505f610a23565b5f6120f683856125bd565b90508261210385836125d4565b14610b9d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610881565b5f610b9d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121dc565b5f610b9d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113af565b5f81836121fc5760405162461bcd60e51b81526004016108819190612297565b505f6113de84866125d4565b80151581146113ac575f80fd5b5f805f60408486031215612227575f80fd5b833567ffffffffffffffff81111561223d575f80fd5b8401601f8101861361224d575f80fd5b803567ffffffffffffffff811115612263575f80fd5b8660208260051b8401011115612277575f80fd5b60209182019450925084013561228c81612208565b809150509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146122e2575f80fd5b919050565b5f80604083850312156122f8575f80fd5b612301836122cc565b946020939093013593505050565b5f805f60608486031215612321575f80fd5b61232a846122cc565b9250612338602085016122cc565b929592945050506040919091013590565b5f60208284031215612359575f80fd5b610b9d826122cc565b5f805f60608486031215612374575f80fd5b505081359360208301359350604090920135919050565b5f806040838503121561239c575f80fd5b6123a5836122cc565b91506123b3602084016122cc565b90509250929050565b5f80604083850312156123cd575f80fd5b823561230181612208565b5f805f80608085870312156123eb575f80fd5b5050823594602084013594506040840135936060013592509050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610a2357610a23612460565b80820180821115610a2357610a23612460565b5f602082840312156124aa575f80fd5b5051919050565b5f602082840312156124c1575f80fd5b8151610b9d81612208565b6001815b6001841115612507578085048111156124eb576124eb612460565b60018416156124f957908102905b60019390931c9280026124d0565b935093915050565b5f8261251d57506001610a23565b8161252957505f610a23565b816001811461253f576002811461254957612565565b6001915050610a23565b60ff84111561255a5761255a612460565b50506001821b610a23565b5060208310610133831016604e8410600b8410161715612588575081810a610a23565b6125945f1984846124cc565b805f19048211156125a7576125a7612460565b029392505050565b5f610b9d60ff84168361250f565b8082028115828204841417610a2357610a23612460565b5f826125ee57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156126435783516001600160a01b031683526020938401939092019160010161261c565b50506001600160a01b039590951660608401525050608001529392505050565b5f805f60608486031215612675575f80fd5b505081516020830151604090930151909492935091905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b65cec4575644dc1a9d683be3bdaaa508820eab02abb7637bc63c231648aa60064736f6c634300081a0033

Deployed Bytecode Sourcemap

5471:12748:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14732:353;;;;;;;;;;-1:-1:-1;14732:353:0;;;;;:::i;:::-;;:::i;:::-;;7031:50;;;;;;;;;;;;;;;;;;;1033:25:1;;;1021:2;1006:18;7031:50:0;;;;;;;;8382:80;;;;;;;;;;-1:-1:-1;8454:5:0;;;;;;;;;;;-1:-1:-1;;;8454:5:0;;;;8382:80;;;;8454:5;8382:80;:::i;8690:216::-;;;;;;;;;;-1:-1:-1;8690:216:0;;;;;:::i;:::-;;:::i;:::-;;;2140:14:1;;2133:22;2115:41;;2103:2;2088:18;8690:216:0;1975:187:1;12917:224:0;;;;;;;;;;;;;:::i;6536:45::-;;;;;;;;;;;;6577:4;6536:45;;8112:88;;;;;;;;;;-1:-1:-1;8185:12:0;;8112:88;;6453:76;;;;;;;;;;;;;;;;9208:370;;;;;;;;;;-1:-1:-1;9208:370:0;;;;;:::i;:::-;;:::i;17288:138::-;;;;;;;;;;;;;:::i;3268:103::-;;;;;;;;;;-1:-1:-1;3268:103:0;;;;;:::i;:::-;3323:4;3358:5;-1:-1:-1;;;;;3347:16:0;;;3358:5;;3347:16;;3268:103;8206:80;;;;;;;;;;-1:-1:-1;8206:80:0;;5831:2;2879:36:1;;2867:2;2852:18;8206:80:0;2737:184:1;6384:29:0;;;;;;;;;;;;;;;;5842:55;;;;;;;;;;;;;;;;6141:44;;;;;;;;;;-1:-1:-1;6141:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6852:31;;;;;;;;;;-1:-1:-1;6852:31:0;;;;-1:-1:-1;;;;;6852:31:0;;;;;;-1:-1:-1;;;;;3109:32:1;;;3091:51;;3079:2;3064:18;6852:31:0;2926:222:1;8914:122:0;;;;;;;;;;-1:-1:-1;8914:122:0;;;;;:::i;:::-;;:::i;6890:23::-;;;;;;;;;;;;;;;;6346:31;;;;;;;;;;;;;;;;15776:225;;;;;;;;;;-1:-1:-1;15776:225:0;;;;;:::i;:::-;;:::i;6994:30::-;;;;;;;;;;-1:-1:-1;6994:30:0;;;;;;;;6019:45;;;;;;;;;;-1:-1:-1;6019:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;3494:124;;;;;;;;;;;;;:::i;12338:548::-;;;;;;;;;;-1:-1:-1;12338:548:0;;;;;:::i;:::-;;:::i;5960:45::-;;;;;;;;;;;;;;;;5906:42;;;;;;;;;;;;;;;;6741:33;;;;;;;;;;-1:-1:-1;6741:33:0;;;;-1:-1:-1;;;;;6741:33:0;;;8465:78;;;;;;;;;;-1:-1:-1;8517:7:0;8535:5;-1:-1:-1;;;;;8535:5:0;8465:78;;6192:48;;;;;;;;;;-1:-1:-1;6192:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6308:31;;;;;;;;;;;;;;;;16408:491;;;;;;;;;;-1:-1:-1;16408:491:0;;;;;:::i;:::-;;:::i;6814:29::-;;;;;;;;;;;;;;;9044:156;;;;;;;;;;-1:-1:-1;9044:156:0;;;;;:::i;:::-;;:::i;2910:138::-;;;;;;;;;;-1:-1:-1;2910:138:0;;;;;:::i;:::-;;:::i;6960:25::-;;;;;;;;;;;;;;;;6247:52;;;;;;;;;;-1:-1:-1;6247:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8549:133;;;;;;;;;;-1:-1:-1;8549:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8651:19:0;;;8633:7;8651:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8549:133;16907:369;;;;;;;;;;-1:-1:-1;16907:369:0;;;;;:::i;:::-;;:::i;6699:35::-;;;;;;;;;;-1:-1:-1;6699:35:0;;;;-1:-1:-1;;;;;6699:35:0;;;16009:391;;;;;;;;;;-1:-1:-1;16009:391:0;;;;;:::i;:::-;;:::i;3056:204::-;;;;;;;;;;-1:-1:-1;3056:204:0;;;;;:::i;:::-;;:::i;3626:109::-;;;;;;;;;;-1:-1:-1;3626:109:0;;;;;:::i;:::-;;:::i;6783:24::-;;;;;;;;;;-1:-1:-1;6783:24:0;;;;-1:-1:-1;;;;;6783:24:0;;;6420:26;;;;;;;;;;;;;;;;3379:107;;;;;;;;;;-1:-1:-1;3379:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;3459:19:0;3435:4;3459:19;;;:14;:19;;;;;;;;;3379:107;6922:31;;;;;;;;;;-1:-1:-1;6922:31:0;;;;;;;;14732:353;2864:10;3435:4;3459:19;;;:14;:19;;;;;;;;2843:48;;;;-1:-1:-1;;;2843:48:0;;;;;;;:::i;:::-;;;;;;;;;14859:3:::1;14840:22:::0;::::1;14832:71;;;::::0;-1:-1:-1;;;14832:71:0;;5823:2:1;14832:71:0::1;::::0;::::1;5805:21:1::0;5862:2;5842:18;;;5835:30;5901:34;5881:18;;;5874:62;-1:-1:-1;;;5952:18:1;;;5945:35;5997:19;;14832:71:0::1;5621:401:1::0;14832:71:0::1;14919:9;14914:164;14932:20:::0;;::::1;14914:164;;;15002:6;14974:11;:25;14986:9;;14996:1;14986:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14974:25:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14974:25:0;:34;;-1:-1:-1;;14974:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15028:38:::1;15045:9:::0;;15055:1;15045:12;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;15028:38;::::0;;-1:-1:-1;;;;;6345:32:1;;;6327:51;;6421:14;;6414:22;6409:2;6394:18;;6387:50;6300:18;15028:38:0::1;;;;;;;14954:3;;14914:164;;;;14732:353:::0;;;:::o;8690:216::-;8794:10;8765:4;8782:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8782:32:0;;;;;;;;;;:41;;;8839:37;8765:4;;8782:32;;8839:37;;;;8817:6;1033:25:1;;1021:2;1006:18;;887:177;8839:37:0;;;;;;;;-1:-1:-1;8894:4:0;8690:216;;;;;:::o;12917:224::-;3323:4;3358:5;-1:-1:-1;;;;;3358:5:0;2769:10;3347:16;2753:38;;;;-1:-1:-1;;;2753:38:0;;;;;;;:::i;:::-;12981:11:::1;::::0;::::1;;12980:12;12972:44;;;::::0;-1:-1:-1;;;12972:44:0;;6984:2:1;12972:44:0::1;::::0;::::1;6966:21:1::0;7023:2;7003:18;;;6996:30;-1:-1:-1;;;7042:18:1;;;7035:50;7102:18;;12972:44:0::1;6782:344:1::0;12972:44:0::1;13027:11;:18:::0;;-1:-1:-1;;13027:18:0::1;13041:4;13027:18:::0;;::::1;::::0;;;13069:15:::1;13056:10;:28:::0;13100:33:::1;::::0;2115:41:1;;;13100:33:0::1;::::0;2103:2:1;2088:18;13100:33:0::1;;;;;;;;12917:224::o:0;9208:370::-;-1:-1:-1;;;;;9328:19:0;;9308:4;9328:19;;;:11;:19;;;;;;;;9348:10;9328:31;;;;;;;;-1:-1:-1;;9328:52:0;9325:186;;9430:69;;;;;;;;;;;-1:-1:-1;;;9430:69:0;;;;;;;;-1:-1:-1;;;;;9430:19:0;;-1:-1:-1;9430:19:0;;;:11;:19;;;;;9450:10;9430:31;;;;;;;;;;:69;;9466:6;;9430:35;:69::i;:::-;-1:-1:-1;;;;;9396:19:0;;;;;;:11;:19;;;;;;;;9416:10;9396:31;;;;;;;:103;9325:186;9530:40;9544:6;9552:9;9563:6;9530:13;:40::i;:::-;9523:47;;9208:370;;;;;;:::o;17288:138::-;17402:9;:15;;;;5598:42;17341:7;17384:15;;;;;17369:12;;17341:7;;17402:15;17369:30;;17384:15;17369:30;:::i;:::-;:48;;;;:::i;:::-;17361:57;;17288:138;:::o;8914:122::-;8969:4;8993:35;9001:7;-1:-1:-1;;8993:7:0;:35::i;15776:225::-;2864:10;3435:4;3459:19;;;:14;:19;;;;;;;;2843:48;;;;-1:-1:-1;;;2843:48:0;;;;;;;:::i;:::-;15876:14:::1;:22:::0;;;15909:13:::1;:20:::0;;;15940:18:::1;:27:::0;;;15980:13:::1;:11;:13::i;:::-;15776:225:::0;;;:::o;3494:124::-;3323:4;3358:5;-1:-1:-1;;;;;3358:5:0;2769:10;3347:16;2753:38;;;;-1:-1:-1;;;2753:38:0;;;;;;;:::i;:::-;3575:5:::1;::::0;;3556:25:::1;::::0;-1:-1:-1;;;;;3575:5:0;;::::1;::::0;3556:25:::1;::::0;::::1;3608:1;3592:18:::0;;-1:-1:-1;;;;;;3592:18:0::1;::::0;;3494:124::o;12338:548::-;2864:10;12430:12;3459:19;;;:14;:19;;;;;;;;2843:48;;;;-1:-1:-1;;;2843:48:0;;;;;;;:::i;:::-;12487:4:::1;-1:-1:-1::0;;;;;12463:29:0;::::1;::::0;12455:69:::1;;;::::0;-1:-1:-1;;;12455:69:0;;7598:2:1;12455:69:0::1;::::0;::::1;7580:21:1::0;7637:2;7617:18;;;7610:30;7676;7656:18;;;7649:58;7724:18;;12455:69:0::1;7396:352:1::0;12455:69:0::1;12554:4;-1:-1:-1::0;;;;;12538:20:0::1;:12;-1:-1:-1::0;;;;;12538:20:0::1;::::0;12535:119:::1;;12600:10;::::0;:21:::1;::::0;12613:8:::1;12600:21;:::i;:::-;12582:15;:39;12574:68;;;::::0;-1:-1:-1;;;12574:68:0;;8085:2:1;12574:68:0::1;::::0;::::1;8067:21:1::0;8124:2;8104:18;;;8097:30;-1:-1:-1;;;8143:18:1;;;8136:47;8200:18;;12574:68:0::1;7883:341:1::0;12574:68:0::1;12669:6;12679:1;12669:11:::0;12666:95:::1;;12705:44;::::0;-1:-1:-1;;;12705:44:0;;12743:4:::1;12705:44;::::0;::::1;3091:51:1::0;-1:-1:-1;;;;;12705:29:0;::::1;::::0;::::1;::::0;3064:18:1;;12705:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12696:53;;12666:95;12778:32;::::0;;-1:-1:-1;;;;;8656:32:1;;8638:51;;8720:2;8705:18;;8698:34;;;12778:32:0::1;::::0;8611:18:1;12778:32:0::1;;;;;;;12830:48;::::0;-1:-1:-1;;;12830:48:0;;12859:10:::1;12830:48;::::0;::::1;8638:51:1::0;8705:18;;;8698:34;;;-1:-1:-1;;;;;12830:28:0;::::1;::::0;::::1;::::0;8611:18:1;;12830:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16408:491::-:0;3323:4;3358:5;-1:-1:-1;;;;;3358:5:0;2769:10;3347:16;2753:38;;;;-1:-1:-1;;;2753:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16531:35:0;::::1;16523:91;;;::::0;-1:-1:-1;;;16523:91:0;;9195:2:1;16523:91:0::1;::::0;::::1;9177:21:1::0;9234:2;9214:18;;;9207:30;9273:34;9253:18;;;9246:62;-1:-1:-1;;;9324:18:1;;;9317:42;9376:19;;16523:91:0::1;8993:408:1::0;16523:91:0::1;-1:-1:-1::0;;;;;16633:33:0;::::1;16625:87;;;::::0;-1:-1:-1;;;16625:87:0;;9608:2:1;16625:87:0::1;::::0;::::1;9590:21:1::0;9647:2;9627:18;;;9620:30;9686:34;9666:18;;;9659:62;-1:-1:-1;;;9737:18:1;;;9730:40;9787:19;;16625:87:0::1;9406:406:1::0;16625:87:0::1;16725:20;:44:::0;;-1:-1:-1;;;;;16725:44:0;;::::1;-1:-1:-1::0;;;;;;16725:44:0;;::::1;::::0;::::1;::::0;;;16780:18:::1;:40:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;16838:53:::1;::::0;;9991:51:1;;;10073:2;10058:18;;10051:60;;;;16838:53:0::1;::::0;9964:18:1;16838:53:0::1;;;;;;;;16408:491:::0;;:::o;9044:156::-;9124:4;9148:44;9162:10;9174:9;9185:6;9148:13;:44::i;2910:138::-;3323:4;3358:5;-1:-1:-1;;;;;3358:5:0;2769:10;3347:16;2753:38;;;;-1:-1:-1;;;2753:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2972:19:0;::::1;;::::0;;;2994:4:::1;2972:19;::::0;;;;;;;;:26;;-1:-1:-1;;2972:26:0::1;::::0;::::1;::::0;;3014;;6327:51:1;;;6394:18;;6387:50;3014:26:0::1;::::0;6300:18:1;3014:26:0::1;;;;;;;;2910:138:::0;:::o;16907:369::-;3323:4;3358:5;-1:-1:-1;;;;;3358:5:0;2769:10;3347:16;2753:38;;;;-1:-1:-1;;;2753:38:0;;;;;;;:::i;:::-;17021:13:::1;5831:2;17021;:13;:::i;:::-;17017:17;::::0;:1:::1;:17;:::i;:::-;17006:7;:28;;16998:70;;;::::0;-1:-1:-1;;;16998:70:0;;11929:2:1;16998:70:0::1;::::0;::::1;11911:21:1::0;11968:2;11948:18;;;11941:30;12007:31;11987:18;;;11980:59;12056:18;;16998:70:0::1;11727:353:1::0;16998:70:0::1;17111:2;17098:12;;:15;;;;:::i;:::-;17087:7;:27;17079:55;;;::::0;-1:-1:-1;;;17079:55:0;;12509:2:1;17079:55:0::1;::::0;::::1;12491:21:1::0;12548:2;12528:18;;;12521:30;-1:-1:-1;;;12567:18:1;;;12560:45;12622:18;;17079:55:0::1;12307:339:1::0;17079:55:0::1;17147:11;:22:::0;;-1:-1:-1;;17147:22:0::1;::::0;::::1;;::::0;;::::1;::::0;;;17180:13:::1;:23:::0;;;17221:47:::1;::::0;;12819:25:1;;;17147:22:0::1;17256:11:::0;;;12887:14:1;12880:22;12875:2;12860:18;;12853:50;17221:47:0::1;::::0;12792:18:1;17221:47:0::1;12651:258:1::0;16009:391:0;3323:4;3358:5;-1:-1:-1;;;;;3358:5:0;2769:10;3347:16;2753:38;;;;-1:-1:-1;;;2753:38:0;;;;;;;:::i;:::-;16151:12:::1;:28:::0;;;16190:12:::1;:28:::0;;;16229:10:::1;:24:::0;;;16264:7:::1;:18:::0;;;16274:8;16242:11;16304:29:::1;16205:13:::0;16166;16304:29:::1;:::i;:::-;:43;;;;:::i;:::-;:54;;;;:::i;:::-;16293:8;:65:::0;16379:13:::1;:11;:13::i;3056:204::-:0;3323:4;3358:5;-1:-1:-1;;;;;3358:5:0;2769:10;3347:16;2753:38;;;;-1:-1:-1;;;2753:38:0;;;;;;;:::i;:::-;3135:5:::1;::::0;-1:-1:-1;;;;;3135:5:0;;::::1;3128:12:::0;;::::1;::::0;3120:51:::1;;;::::0;-1:-1:-1;;;3120:51:0;;13116:2:1;3120:51:0::1;::::0;::::1;13098:21:1::0;13155:2;13135:18;;;13128:30;13194:28;13174:18;;;13167:56;13240:18;;3120:51:0::1;12914:350:1::0;3120:51:0::1;-1:-1:-1::0;;;;;3182:19:0;::::1;3204:5;3182:19:::0;;;:14:::1;:19;::::0;;;;;;;:27;;-1:-1:-1;;3182:27:0::1;::::0;;3225;;6327:51:1;;;6394:18;;;6387:50;;;;3225:27:0::1;::::0;6300:18:1;3225:27:0::1;6159:284:1::0;3626:109:0;3323:4;3358:5;-1:-1:-1;;;;;3358:5:0;2769:10;3347:16;2753:38;;;;-1:-1:-1;;;2753:38:0;;;;;;;:::i;:::-;3699:28:::1;3718:8;3699:18;:28::i;:::-;3626:109:::0;:::o;551:192::-;637:7;673:12;665:6;;;;657:29;;;;-1:-1:-1;;;657:29:0;;;;;;;;:::i;:::-;-1:-1:-1;697:9:0;709:5;713:1;709;:5;:::i;:::-;697:17;551:192;-1:-1:-1;;;;;551:192:0:o;9586:1158::-;9698:6;;9678:4;;9698:6;;9695:63;;;9714:41;9729:6;9737:9;9748:6;9714:14;:41::i;:::-;9707:48;;;;9695:63;-1:-1:-1;;;;;9774:22:0;;;;;;:14;:22;;;;;;;;9773:23;:53;;;;-1:-1:-1;;;;;;9801:25:0;;;;;;:14;:25;;;;;;;;9800:26;9773:53;9770:127;;;9850:11;;;;9842:43;;;;-1:-1:-1;;;9842:43:0;;13471:2:1;9842:43:0;;;13453:21:1;13510:2;13490:18;;;13483:30;-1:-1:-1;;;13529:18:1;;;13522:50;13589:18;;9842:43:0;13269:344:1;9842:43:0;-1:-1:-1;;;;;9914:22:0;;;;;;:14;:22;;;;;;;;9913:23;:55;;;;-1:-1:-1;;;;;;9941:27:0;;;;;;:19;:27;;;;;;;;9940:28;9913:55;:90;;;;-1:-1:-1;;;;;;9973:30:0;;;;;;:19;:30;;;;;;;;9972:31;9913:90;:111;;;;;10020:4;-1:-1:-1;;;;;10007:17:0;:9;-1:-1:-1;;;;;10007:17:0;;;9913:111;9909:230;;;10084:15;;-1:-1:-1;;;;;10050:20:0;;;;;;:9;:20;;;;;;:29;;10073:6;;10050:29;:::i;:::-;10049:50;;10041:86;;;;-1:-1:-1;;;10041:86:0;;13820:2:1;10041:86:0;;;13802:21:1;13859:2;13839:18;;;13832:30;13898:26;13878:18;;;13871:54;13942:18;;10041:86:0;13618:348:1;10041:86:0;10215:12;;10205:6;:22;;10204:51;;;-1:-1:-1;;;;;;10232:23:0;;;;;;:15;:23;;;;;;;;10204:51;:81;;;-1:-1:-1;;;;;;10259:26:0;;;;;;:15;:26;;;;;;;;10204:81;10196:115;;;;-1:-1:-1;;;10196:115:0;;14173:2:1;10196:115:0;;;14155:21:1;14212:2;14192:18;;;14185:30;-1:-1:-1;;;14231:18:1;;;14224:51;14292:18;;10196:115:0;13971:345:1;10196:115:0;10327:16;:14;:16::i;:::-;10324:35;;;10346:10;:8;:10::i;:::-;10391:53;;;;;;;;;;;-1:-1:-1;;;10391:53:0;;;;;;;;-1:-1:-1;;;;;10391:17:0;;-1:-1:-1;10391:17:0;;;:9;:17;;;;;;;;:53;;10413:6;;10391:21;:53::i;:::-;-1:-1:-1;;;;;10371:17:0;;;;;;:9;:17;;;;;;;;:73;;;;10483:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;10506:22:0;;;;;;:11;:22;;;;;;;;10483:45;10482:93;;10541:34;10549:6;10557;10565:9;10541:7;:34::i;:::-;10482:93;;;10532:6;10482:93;-1:-1:-1;;;;;10611:20:0;;;;;;:9;:20;;;;;;10457:118;;-1:-1:-1;10611:40:0;;10457:118;10611:24;:40::i;:::-;-1:-1:-1;;;;;10588:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10671:43;;;;;;-1:-1:-1;;;;;;;;;;;10671:43:0;;;10699:14;1033:25:1;;1021:2;1006:18;;887:177;10671:43:0;;;;;;;;-1:-1:-1;10732:4:0;;9586:1158;-1:-1:-1;;;;9586:1158:0:o;15093:675::-;15184:3;15144:36;15176:3;15144:27;15157:13;;15144:8;;:12;;:27;;;;:::i;:::-;:31;;:36::i;:::-;:43;;15136:87;;;;-1:-1:-1;;;15136:87:0;;14523:2:1;15136:87:0;;;14505:21:1;14562:2;14542:18;;;14535:30;14601:33;14581:18;;;14574:61;14652:18;;15136:87:0;14321:355:1;15136:87:0;15283:3;15242:37;15275:3;15242:28;15255:14;;15242:8;;:12;;:28;;;;:::i;:37::-;:44;;15234:89;;;;-1:-1:-1;;;15234:89:0;;14883:2:1;15234:89:0;;;14865:21:1;;;14902:18;;;14895:30;14961:34;14941:18;;;14934:62;15013:18;;15234:89:0;14681:356:1;15234:89:0;15399:3;15342:53;15391:3;15342:44;15372:13;;15355:14;;:30;;;;:::i;:::-;15342:8;;;:12;:44::i;:53::-;:60;;15334:109;;;;-1:-1:-1;;;15334:109:0;;15244:2:1;15334:109:0;;;15226:21:1;15283:2;15263:18;;;15256:30;15322:34;15302:18;;;15295:62;-1:-1:-1;;;15373:18:1;;;15366:34;15417:19;;15334:109:0;15042:400:1;15334:109:0;15507:3;15462:41;15499:3;15462:32;15475:18;;15462:8;;:12;;:32;;;;:::i;:41::-;:48;;15454:97;;;;-1:-1:-1;;;15454:97:0;;15649:2:1;15454:97:0;;;15631:21:1;15688:2;15668:18;;;15661:30;15727:34;15707:18;;;15700:62;-1:-1:-1;;;15778:18:1;;;15771:34;15822:19;;15454:97:0;15447:400:1;15454:97:0;15569:191;15586:36;15618:3;15586:27;15599:13;;15586:8;;:12;;:27;;;;:::i;:36::-;15644:37;15677:3;15644:28;15657:14;;15644:8;;:12;;:28;;;;:::i;:37::-;15703:41;15740:3;15703:32;15716:18;;15703:8;;:12;;:32;;;;:::i;:41::-;15569:191;;;16072:4:1;16060:17;;;16042:36;;16114:17;;;16109:2;16094:18;;16087:45;16168:17;;16148:18;;;16141:45;;;;16030:2;16015:18;15569:191:0;15852:340:1;3743:185:0;-1:-1:-1;;;;;3817:22:0;;3809:31;;;;;;3877:5;;;3856:37;;-1:-1:-1;;;;;3856:37:0;;;;3877:5;;;3856:37;;;3904:5;:16;;-1:-1:-1;;;;;;3904:16:0;-1:-1:-1;;;;;3904:16:0;;;;;;;;;;3743:185::o;10756:330::-;10886:53;;;;;;;;;;;-1:-1:-1;;;10886:53:0;;;;;;;;-1:-1:-1;;;;;10886:17:0;;10849:4;10886:17;;;:9;:17;;;;;;;:53;;10908:6;;10886:21;:53::i;:::-;-1:-1:-1;;;;;10866:17:0;;;;;;;:9;:17;;;;;;:73;;;;10973:20;;;;;;;:32;;10998:6;10973:24;:32::i;:::-;-1:-1:-1;;;;;10950:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11021:35;;;;;;-1:-1:-1;;;;;;;;;;;11021:35:0;;;11049:6;1033:25:1;;1021:2;1006:18;;887:177;11021:35:0;;;;;;;;-1:-1:-1;11074:4:0;10756:330;;;;;:::o;12133:197::-;12182:4;12206:10;-1:-1:-1;;;;;12220:4:0;12206:18;;;;;:38;;-1:-1:-1;12238:6:0;;;;12237:7;12206:38;:62;;;;-1:-1:-1;12257:11:0;;;;12206:62;:116;;;;-1:-1:-1;;12309:13:0;;12299:4;12281:24;;;;:9;:24;;;;;;:41;;;12133:197::o;13149:1575::-;7128:6;:13;;-1:-1:-1;;7128:13:0;7137:4;7128:13;;;13233:7:::1;::::0;13222:8:::1;::::0;7128:6;;13222:18:::1;::::0;::::1;:::i;:::-;13200:40;;13256:11;13271:1;13256:16:::0;13253:63:::1;;-1:-1:-1::0;13303:1:0::1;13253:63;13328:23;13386:15;:11:::0;13400:1:::1;13386:15;:::i;:::-;13371:12;;13355:13;;:28;;;;:::i;:::-;13354:48;;;;:::i;:::-;13328:74;;13413:20;13452:15;13436:13;;:31;;;;:::i;:::-;13504:16;::::0;;13518:1:::1;13504:16:::0;;;;;::::1;::::0;;13413:54;;-1:-1:-1;13480:21:0::1;::::0;13504:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13504:16:0::1;13480:40;;13549:4;13531;13536:1;13531:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;13531:23:0::1;;;-1:-1:-1::0;;;;;13531:23:0::1;;;::::0;::::1;13575:4;13565;13570:1;13565:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13565:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;13592:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13592:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13664:12;;13592:6:::1;::::0;13707:4;;13734::::1;::::0;13754:15:::1;::::0;13592:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13877:12:0::1;::::0;13813:21:::1;::::0;-1:-1:-1;13877:16:0::1;::::0;-1:-1:-1;13892:1:0::1;::::0;13877:16:::1;:::i;:::-;13862:32;::::0;:11;:32:::1;:::i;:::-;13848:46;;13911:11;13926:1;13911:16:::0;13908:63:::1;;13958:1;13944:15;;13908:63;13983:26;14042:15;:11:::0;14056:1:::1;14042:15;:::i;:::-;14025:12;::::0;14013:24:::1;::::0;:9;:24:::1;:::i;:::-;14012:46;;;;:::i;:::-;13983:75;;14069:26;14127:11;14111:12;;14099:9;:24;;;;:::i;:::-;14098:40;;;;:::i;:::-;14069:69;;14149:24;14203:11;14189:10;;14177:9;:22;;;;:::i;:::-;14176:38;;;;:::i;:::-;14235:20;::::0;14227:58:::1;::::0;14149:65;;-1:-1:-1;;;;;;14235:20:0::1;::::0;14227:58;::::1;;;::::0;14266:18;;14235:20:::1;14227:58:::0;14235:20;14227:58;14266:18;14235:20;14227:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14304:18:0::1;::::0;14296:54:::1;::::0;-1:-1:-1;;;;;14304:18:0;;::::1;::::0;14296:54;::::1;;;::::0;14333:16;;14304:18:::1;14296:54:::0;14304:18;14296:54;14333:16;14304:18;14296:54;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;14366:19:0;;14363:354:::1;;14401:6;::::0;:236:::1;::::0;-1:-1:-1;;;14401:236:0;;14477:4:::1;14401:236;::::0;::::1;17596:51:1::0;;;17663:18;;;17656:34;;;14401:6:0::1;17706:18:1::0;;;17699:34;;;17749:18;;;17742:34;17792:19;;;17785:61;14607:15:0::1;17862:19:1::0;;;17855:35;-1:-1:-1;;;;;14401:6:0;;::::1;::::0;:22:::1;::::0;14431:18;;17568:19:1;;14401:236:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14657:48:0::1;::::0;;18536:25:1;;;18592:2;18577:18;;18570:34;;;14657:48:0::1;::::0;-1:-1:-1;18509:18:1;14657:48:0::1;;;;;;;14363:354;-1:-1:-1::0;;7146:6:0;:14;;-1:-1:-1;;7146:14:0;;;-1:-1:-1;;;;;;13149:1575:0:o;11094:1031::-;11180:7;11203:11;;;:28;;-1:-1:-1;11218:8:0;;:13;11203:28;11200:72;;;-1:-1:-1;11254:6:0;11247:13;;11200:72;11305:18;;-1:-1:-1;;;;;11352:4:0;11339:17;;;;;;11336:154;;-1:-1:-1;11386:14:0;;11336:154;;;11431:4;-1:-1:-1;;;;;11421:14:0;:6;-1:-1:-1;;;;;11421:14:0;;11418:72;;-1:-1:-1;11465:13:0;;11418:72;11502:17;11522:62;11563:20;6577:4;11580:3;11563:20;:::i;:::-;11522:36;11547:10;11522:20;11533:8;;11522:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:62::-;11502:82;;11595:18;11616:36;11643:8;;11616:22;11630:7;;11616:9;:13;;:22;;;;:::i;:36::-;11595:57;-1:-1:-1;11663:22:0;11688:25;:9;11595:57;11688:13;:25::i;:::-;11663:50;-1:-1:-1;11729:18:0;;11726:187;;11808:4;11790:24;;;;:9;:24;;;;;;:44;;11819:14;11790:28;:44::i;:::-;11781:4;11763:24;;;;:9;:24;;;;;;;:71;;;;11854:47;;-1:-1:-1;;;;;11854:47:0;;;-1:-1:-1;;;;;;;;;;;11854:47:0;;;11886:14;1033:25:1;;1021:2;1006:18;;887:177;11854:47:0;;;;;;;;11726:187;11936:14;;11933:144;;11981:12;;:28;;11998:10;11981:16;:28::i;:::-;11966:12;:43;12029:34;;1033:25:1;;;5671:42:0;;-1:-1:-1;;;;;12029:34:0;;;-1:-1:-1;;;;;;;;;;;12029:34:0;1021:2:1;1006:18;12029:34:0;;;;;;;11933:144;12096:21;:6;12107:9;12096:10;:21::i;:::-;12089:28;11094:1031;-1:-1:-1;;;;;;;;11094:1031:0:o;222:181::-;280:7;;312:5;316:1;312;:5;:::i;:::-;300:17;;341:1;336;:6;;328:46;;;;-1:-1:-1;;;328:46:0;;18817:2:1;328:46:0;;;18799:21:1;18856:2;18836:18;;;18829:30;18895:29;18875:18;;;18868:57;18942:18;;328:46:0;18615:351:1;749:250:0;807:7;831:1;836;831:6;827:47;;-1:-1:-1;861:1:0;854:8;;827:47;886:9;898:5;902:1;898;:5;:::i;:::-;886:17;-1:-1:-1;931:1:0;922:5;926:1;886:17;922:5;:::i;:::-;:10;914:56;;;;-1:-1:-1;;;914:56:0;;19173:2:1;914:56:0;;;19155:21:1;19212:2;19192:18;;;19185:30;19251:34;19231:18;;;19224:62;-1:-1:-1;;;19302:18:1;;;19295:31;19343:19;;914:56:0;18971:397:1;1005:132:0;1063:7;1090:39;1094:1;1097;1090:39;;;;;;;;;;;;;;;;;:3;:39::i;409:136::-;467:7;494:43;498:1;501;494:43;;;;;;;;;;;;;;;;;:3;:43::i;1143:189::-;1229:7;1264:12;1257:5;1249:28;;;;-1:-1:-1;;;1249:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1288:9:0;1300:5;1304:1;1300;:5;:::i;14:118:1:-;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;137:745;229:6;237;245;298:2;286:9;277:7;273:23;269:32;266:52;;;314:1;311;304:12;266:52;354:9;341:23;387:18;379:6;376:30;373:50;;;419:1;416;409:12;373:50;442:22;;495:4;487:13;;483:27;-1:-1:-1;473:55:1;;524:1;521;514:12;473:55;564:2;551:16;590:18;582:6;579:30;576:50;;;622:1;619;612:12;576:50;677:7;670:4;660:6;657:1;653:14;649:2;645:23;641:34;638:47;635:67;;;698:1;695;688:12;635:67;729:4;721:13;;;;-1:-1:-1;753:6:1;-1:-1:-1;794:20:1;;781:34;824:28;781:34;824:28;:::i;:::-;871:5;861:15;;;137:745;;;;;:::o;1069:418::-;1218:2;1207:9;1200:21;1181:4;1250:6;1244:13;1293:6;1288:2;1277:9;1273:18;1266:34;1352:6;1347:2;1339:6;1335:15;1330:2;1319:9;1315:18;1309:50;1408:1;1403:2;1394:6;1383:9;1379:22;1375:31;1368:42;1478:2;1471;1467:7;1462:2;1454:6;1450:15;1446:29;1435:9;1431:45;1427:54;1419:62;;;1069:418;;;;:::o;1492:173::-;1560:20;;-1:-1:-1;;;;;1609:31:1;;1599:42;;1589:70;;1655:1;1652;1645:12;1589:70;1492:173;;;:::o;1670:300::-;1738:6;1746;1799:2;1787:9;1778:7;1774:23;1770:32;1767:52;;;1815:1;1812;1805:12;1767:52;1838:29;1857:9;1838:29;:::i;:::-;1828:39;1936:2;1921:18;;;;1908:32;;-1:-1:-1;;;1670:300:1:o;2167:374::-;2244:6;2252;2260;2313:2;2301:9;2292:7;2288:23;2284:32;2281:52;;;2329:1;2326;2319:12;2281:52;2352:29;2371:9;2352:29;:::i;:::-;2342:39;;2400:38;2434:2;2423:9;2419:18;2400:38;:::i;:::-;2167:374;;2390:48;;-1:-1:-1;;;2507:2:1;2492:18;;;;2479:32;;2167:374::o;2546:186::-;2605:6;2658:2;2646:9;2637:7;2633:23;2629:32;2626:52;;;2674:1;2671;2664:12;2626:52;2697:29;2716:9;2697:29;:::i;3153:466::-;3230:6;3238;3246;3299:2;3287:9;3278:7;3274:23;3270:32;3267:52;;;3315:1;3312;3305:12;3267:52;-1:-1:-1;;3360:23:1;;;3480:2;3465:18;;3452:32;;-1:-1:-1;3583:2:1;3568:18;;;3555:32;;3153:466;-1:-1:-1;3153:466:1:o;3832:260::-;3900:6;3908;3961:2;3949:9;3940:7;3936:23;3932:32;3929:52;;;3977:1;3974;3967:12;3929:52;4000:29;4019:9;4000:29;:::i;:::-;3990:39;;4048:38;4082:2;4071:9;4067:18;4048:38;:::i;:::-;4038:48;;3832:260;;;;;:::o;4097:361::-;4162:6;4170;4223:2;4211:9;4202:7;4198:23;4194:32;4191:52;;;4239:1;4236;4229:12;4191:52;4278:9;4265:23;4297:28;4319:5;4297:28;:::i;4463:587::-;4549:6;4557;4565;4573;4626:3;4614:9;4605:7;4601:23;4597:33;4594:53;;;4643:1;4640;4633:12;4594:53;-1:-1:-1;;4688:23:1;;;4808:2;4793:18;;4780:32;;-1:-1:-1;4911:2:1;4896:18;;4883:32;;5014:2;4999:18;4986:32;;-1:-1:-1;4463:587:1;-1:-1:-1;4463:587:1:o;5281:335::-;5483:2;5465:21;;;5522:2;5502:18;;;5495:30;-1:-1:-1;;;5556:2:1;5541:18;;5534:41;5607:2;5592:18;;5281:335::o;6027:127::-;6088:10;6083:3;6079:20;6076:1;6069:31;6119:4;6116:1;6109:15;6143:4;6140:1;6133:15;6448:329;6650:2;6632:21;;;6689:1;6669:18;;;6662:29;-1:-1:-1;;;6722:2:1;6707:18;;6700:36;6768:2;6753:18;;6448:329::o;7131:127::-;7192:10;7187:3;7183:20;7180:1;7173:31;7223:4;7220:1;7213:15;7247:4;7244:1;7237:15;7263:128;7330:9;;;7351:11;;;7348:37;;;7365:18;;:::i;7753:125::-;7818:9;;;7839:10;;;7836:36;;;7852:18;;:::i;8229:230::-;8299:6;8352:2;8340:9;8331:7;8327:23;8323:32;8320:52;;;8368:1;8365;8358:12;8320:52;-1:-1:-1;8413:16:1;;8229:230;-1:-1:-1;8229:230:1:o;8743:245::-;8810:6;8863:2;8851:9;8842:7;8838:23;8834:32;8831:52;;;8879:1;8876;8869:12;8831:52;8911:9;8905:16;8930:28;8952:5;8930:28;:::i;10122:375::-;10210:1;10228:5;10242:249;10263:1;10253:8;10250:15;10242:249;;;10313:4;10308:3;10304:14;10298:4;10295:24;10292:50;;;10322:18;;:::i;:::-;10372:1;10362:8;10358:16;10355:49;;;10386:16;;;;10355:49;10469:1;10465:16;;;;;10425:15;;10242:249;;;10122:375;;;;;;:::o;10502:902::-;10551:5;10581:8;10571:80;;-1:-1:-1;10622:1:1;10636:5;;10571:80;10670:4;10660:76;;-1:-1:-1;10707:1:1;10721:5;;10660:76;10752:4;10770:1;10765:59;;;;10838:1;10833:174;;;;10745:262;;10765:59;10795:1;10786:10;;10809:5;;;10833:174;10870:3;10860:8;10857:17;10854:43;;;10877:18;;:::i;:::-;-1:-1:-1;;10933:1:1;10919:16;;10992:5;;10745:262;;11091:2;11081:8;11078:16;11072:3;11066:4;11063:13;11059:36;11053:2;11043:8;11040:16;11035:2;11029:4;11026:12;11022:35;11019:77;11016:203;;;-1:-1:-1;11128:19:1;;;11204:5;;11016:203;11251:42;-1:-1:-1;;11276:8:1;11270:4;11251:42;:::i;:::-;11329:6;11325:1;11321:6;11317:19;11308:7;11305:32;11302:58;;;11340:18;;:::i;:::-;11378:20;;10502:902;-1:-1:-1;;;10502:902:1:o;11409:140::-;11467:5;11496:47;11537:4;11527:8;11523:19;11517:4;11496:47;:::i;11554:168::-;11627:9;;;11658;;11675:15;;;11669:22;;11655:37;11645:71;;11696:18;;:::i;12085:217::-;12125:1;12151;12141:132;;12195:10;12190:3;12186:20;12183:1;12176:31;12230:4;12227:1;12220:15;12258:4;12255:1;12248:15;12141:132;-1:-1:-1;12287:9:1;;12085:217::o;16329:959::-;16591:4;16639:3;16628:9;16624:19;16670:6;16659:9;16652:25;16713:6;16708:2;16697:9;16693:18;16686:34;16756:3;16751:2;16740:9;16736:18;16729:31;16780:6;16815;16809:13;16846:6;16838;16831:22;16884:3;16873:9;16869:19;16862:26;;16923:2;16915:6;16911:15;16897:29;;16944:1;16954:195;16968:6;16965:1;16962:13;16954:195;;;17033:13;;-1:-1:-1;;;;;17029:39:1;17017:52;;17098:2;17124:15;;;;17089:12;;;;17065:1;16983:9;16954:195;;;-1:-1:-1;;;;;;;17205:32:1;;;;17200:2;17185:18;;17178:60;-1:-1:-1;;17269:3:1;17254:19;17247:35;17166:3;16329:959;-1:-1:-1;;;16329:959:1:o;17901:456::-;17989:6;17997;18005;18058:2;18046:9;18037:7;18033:23;18029:32;18026:52;;;18074:1;18071;18064:12;18026:52;-1:-1:-1;;18119:16:1;;18225:2;18210:18;;18204:25;18321:2;18306:18;;;18300:25;18119:16;;18204:25;;-1:-1:-1;18300:25:1;17901:456;-1:-1:-1;17901:456:1:o

Swarm Source

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