ETH Price: $2,476.87 (+1.07%)

Token

Betverse ($BET)
 

Overview

Max Total Supply

10,000,000 $BET

Holders

137

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
somealphadude.eth
Balance
62,021.920096088 $BET

Value
$0.00
0xd40bbf5bf4fba8f320a3de5455851ad0b883e8a9
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Betverse

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-13
*/

// SPDX-License-Identifier: MIT

/*                                               

            ▄▄███▄▄·██████╗ ███████╗████████╗
            ██╔════╝██╔══██╗██╔════╝╚══██╔══╝
            ███████╗██████╔╝█████╗     ██║   
            ╚════██║██╔══██╗██╔══╝     ██║   
            ███████║██████╔╝███████╗   ██║   
            ╚═▀▀▀══╝╚═════╝ ╚══════╝   ╚═╝   
                                                                                                   
                    Official Contract

    Website=> https://betverse.live/
    Telegram=> https://t.me/betverse_live
    Twitter=> https://twitter.com/BetverseGaming

*/

pragma solidity >=0.6.0 <0.9.0;

abstract contract Context {
    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {
  /**
   * @dev Returns the amount of tokens in existence.
   */
  function totalSupply() external view returns (uint256);

  /**
   * @dev Returns the token decimals.
   */
  function decimals() external view returns (uint8);

  /**
   * @dev Returns the token symbol.
   */
  function symbol() external view returns (string memory);

  /**
  * @dev Returns the token name.
  */
  function name() external view returns (string memory);

  /**
   * @dev Returns the bep token owner.
   */
  function getOwner() external view returns (address);

  /**
   * @dev Returns the amount of tokens owned by `account`.
   */
  function balanceOf(address account) external view returns (uint256);

  /**
   * @dev Moves `amount` tokens from the caller's account to `recipient`.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * Emits a {Transfer} event.
   */
  function transfer(address recipient, uint256 amount) external returns (bool);

  /**
   * @dev Returns the remaining number of tokens that `spender` will be
   * allowed to spend on behalf of `owner` through {transferFrom}. This is
   * zero by default.
   *
   * This value changes when {approve} or {transferFrom} are called.
   */
  function allowance(address _owner, address spender) external view returns (uint256);

  /**
   * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * IMPORTANT: Beware that changing an allowance with this method brings the risk
   * that someone may use both the old and the new allowance by unfortunate
   * transaction ordering. One possible solution to mitigate this race
   * condition is to first reduce the spender's allowance to 0 and set the
   * desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   *
   * Emits an {Approval} event.
   */
  function approve(address spender, uint256 amount) external returns (bool);

  /**
   * @dev Moves `amount` tokens from `sender` to `recipient` using the
   * allowance mechanism. `amount` is then deducted from the caller's
   * allowance.
   *
   * Returns a boolean value indicating whether the operation succeeded.
   *
   * Emits a {Transfer} event.
   */
  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

  /**
   * @dev Emitted when `value` tokens are moved from one account (`from`) to
   * another (`to`).
   *
   * Note that `value` may be zero.
   */
  event Transfer(address indexed from, address indexed to, uint256 value);

  /**
   * @dev Emitted when the allowance of a `spender` for an `owner` is set by
   * a call to {approve}. `value` is the new allowance.
   */
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
}

interface IRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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;
}


contract Betverse is Context, IERC20 {
    // Ownership moved to in-contract for customizability.
    address private _owner;

    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping(address=>bool) public isBot;
    IERC20 token;

    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) private _isExcluded;
    address[] private _excluded;

    mapping (address => bool) private presaleAddresses;
    bool private allowedPresaleExclusion = true;
    mapping (address => bool) private _liquidityHolders;
   
    uint256 private startingSupply = 10_000_000;

    //Anti Sniper params
    int private snipeTime;
    int public totalSnipeEpoch;
    address devWallet=0xABC7FBfdA7ca63C6EDd86c85d6B5a2D97d46f586;

    string constant private _name = "Betverse";
    string constant private _symbol = "$BET";
    uint8 private _decimals = 9;

    uint256 private _tTotal = startingSupply * 10**_decimals;

    struct Fees {
        uint16 buyFee;
        uint16 sellFee;
        uint16 transferFee;
    }

    struct StaticValuesStruct {
        uint16 maxBuyTaxes;
        uint16 maxSellTaxes;
        uint16 maxTaxes;
        uint16 masterTaxDivisor;
    }

    struct Ratios {        
        uint16 development;
        uint16 total;
    }

    Fees public _taxRates = Fees({
        buyFee: 300,
        sellFee: 300,
        transferFee: 0
        });

    Ratios public _ratios = Ratios({                
        development: 3,
        total: 3
        });

    StaticValuesStruct public staticVals = StaticValuesStruct({
        maxBuyTaxes: 1500,
        maxSellTaxes: 1500,
        maxTaxes: 10000,
        masterTaxDivisor: 10000
        });

    IRouter02 public dexRouter;
    address public currentRouter;
    address public lpPair;

    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;

    struct TaxWallets {        
        address payable development;        
    }


    TaxWallets public _taxWallets = TaxWallets({        
        development: payable(0xD53403022EAfcC7fc5F7330308ec1e1C426F22eF)        
        });
    
    bool inSwap;
    bool public contractSwapEnabled = true;
    
    uint256 public swapThreshold = (_tTotal * 50) / 10000;
    uint256 public swapAmount = (_tTotal * 50) / 10000;
    uint256 public swapInterval = 0;
    uint256 public lastSwap;

    bool public tradingEnabled = false;
    bool public _hasLiqBeenAdded = false;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event ContractSwapEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Caller =/= owner.");
        _;
    }

    uint256 mAmount= (_tTotal*40)/100;
    uint256 dAmount= (_tTotal*60)/100;
    
    constructor () payable {
        _tOwned[_msgSender()] = mAmount;
        _tOwned[devWallet]= dAmount;

        // Set the owner.
        _owner = msg.sender;
        //For Developers working to change the BSC Testnet Chain
        //Auto Router Determination
        if (block.chainid == 56) {
            currentRouter = 0x10ED43C718714eb63d5aA57B78B54704E256024E;
        } else if (block.chainid == 97) {
            currentRouter = 0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3;
        } else if (block.chainid == 1 || block.chainid == 5) {
            currentRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        }
        else if(block.chainid == 11155111)
        {
            currentRouter= 0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008;
        }
        else if(block.chainid == 137)
        {
            currentRouter= 0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff;
        }
         else {
            revert();
        }

        dexRouter = IRouter02(currentRouter);
        lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WETH(), address(this));
        lpPairs[lpPair] = true;
        _approve(msg.sender, currentRouter, type(uint256).max);
        _approve(address(this), currentRouter, type(uint256).max);
        snipeTime=60;
        totalSnipeEpoch=0;
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[devWallet] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[DEAD] = true;
        _liquidityHolders[owner()] = true;
        _liquidityHolders[devWallet] = true;

        _isExcluded[lpPair] = true;

        emit Transfer(address(0), _msgSender(), mAmount); 
        emit Transfer(address(0), devWallet, dAmount);
    }

    receive() external payable {}

    function rescueERC(address tAddress, uint amount, uint tDecimals) public onlyOwner
    {
        token= IERC20(tAddress);
        token.transfer(msg.sender,amount*10**tDecimals);
    }
    
//===============================================================================================================
    // Ownable removed as a lib and added here to allow for custom transfers and renouncements.
    // This allows for removal of ownership privileges from the owner once renounced or transferred.
    function owner() public view returns (address) {
        return _owner;
    }

    function transferOwner(address newOwner) external onlyOwner() {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        
        if(balanceOf(_owner) > 0) {
            _transfer(_owner, newOwner, balanceOf(_owner));
        }
        
        _owner = newOwner;
        emit OwnershipTransferred(_owner, newOwner);        
    }

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

    function totalSupply() external view override returns (uint256) { return _tTotal; }
    function decimals() external view 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 balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) private {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

    function approveContractContingency() public onlyOwner returns (bool) {
        _approve(address(this), address(dexRouter), type(uint256).max);
        return true;
    }

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

        return _transfer(sender, recipient, amount);
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }
    //Set up a New Router.
    function setNewRouter(address newRouter) public onlyOwner() {
        IRouter02 _newRouter = IRouter02(newRouter);
        address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH());
        if (get_pair == address(0)) {
            lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH());
        }
        else {
            lpPair = get_pair;
        }
        dexRouter = _newRouter;
        _approve(address(this), address(dexRouter), type(uint256).max);
    }
    //Setting up Liquidity Pair.
    function setLpPair(address pair, bool enabled) external onlyOwner {
        if (enabled == false) {
            lpPairs[pair] = false;
        } else {
            if (timeSinceLastPair != 0) {
                require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown.!");
            }
            lpPairs[pair] = true;
            timeSinceLastPair = block.timestamp;
        }
    }

    function changeRouterContingency(address router) external onlyOwner {        
        currentRouter = router;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0))));
    }

    function setTaxes(uint16 buyFee, uint16 sellFee, uint16 dFee) external onlyOwner {
        require(buyFee <= staticVals.maxBuyTaxes
                && sellFee <=staticVals. maxSellTaxes
                && dFee <= staticVals.maxTaxes,
                "Cannot exceed maximums of 15%.");
        _taxRates.buyFee = buyFee;
        _taxRates.sellFee = sellFee;
        _taxRates.transferFee = dFee;
    }
    
    function setRatios(uint16 development) external onlyOwner {        
        _ratios.development = development;
        _ratios.total =development;
    }

    function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor, uint256 intervalInSeconds) external onlyOwner {
        swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor;
        swapAmount = (_tTotal * amountPercent) / amountDivisor;
        swapInterval = intervalInSeconds;
    }

    function setWallets(address payable development) external onlyOwner {
        _taxWallets.development = payable(development);
    }

    function setContractSwapEnabled(bool _enabled) public onlyOwner {
        contractSwapEnabled = _enabled;
        emit ContractSwapEnabledUpdated(_enabled);
    }

    function _hasLimits(address from, address to) private view returns (bool) {
        return from != owner()
            && to != owner()
            && tx.origin != owner()
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this);
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(!isBot[from], "This is a bot address");        
        require(amount > 0, "Transfer amount must be greater than zero");
        if(_hasLimits(from, to)) {
            if(!tradingEnabled) {
                revert("Trading not yet enabled!");
            }            
        }

        bool takeFee = true;
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            takeFee = false;
        }

        //Contract Swap code
        if (lpPairs[to]) { //At the time of sell. Tokens transferred to the liquidity pool.
            if (!inSwap
                && contractSwapEnabled
                && !presaleAddresses[to]
                && !presaleAddresses[from]
            ) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if (contractTokenBalance >= swapThreshold && lastSwap + swapInterval < block.timestamp) {
                    if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; }
                    contractSwap(contractTokenBalance);
                    lastSwap = block.timestamp;
                }
            }      
        } 
        return _finalizeTransfer(from, to, amount, takeFee);
    }

    function contractSwap(uint256 contractTokenBalance) private lockTheSwap {
        if (_ratios.total == 0)
            return;

        if(_allowances[address(this)][address(dexRouter)] != type(uint256).max) {
            _allowances[address(this)][address(dexRouter)] = type(uint256).max;
        }

        uint256 toSwapForEth = contractTokenBalance;        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            toSwapForEth,
            0,
            path,
            address(this),
            block.timestamp
        );
        
        if (address(this).balance > 0) {
            uint256 amountBNB = address(this).balance;
            _taxWallets.development.transfer(amountBNB);            
        }
    }

    //Enable Trading
    function enableTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        totalSnipeEpoch=int(block.timestamp)+snipeTime; //Anti-Snipe activated
        tradingEnabled = true;
    }

    function addBot(address add) public onlyOwner
    {
        isBot[add]=true;
    }

    function removeBot(address add) public onlyOwner
    {
        isBot[add]=false;
    }

    function sweepContingency() external onlyOwner {        
        payable(owner()).transfer(address(this).balance);
    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        uint256 currentFee;
        if (from == lpPair) {
            currentFee = _taxRates.buyFee;
        } else if (to == lpPair) {
            currentFee = _taxRates.sellFee;
        } else {
            currentFee = _taxRates.transferFee;
        }

        uint256 feeAmount = amount * currentFee / staticVals.masterTaxDivisor;

        if(totalSnipeEpoch+10>int(block.timestamp))
        {  
            if(amount>=3000000000000)
            {
            if(from==lpPair)
            {
                isBot[to]=true;
            }
            else if(to==lpPair)
            {
                isBot[from]=true;
            }
            _tOwned[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);            
            }
            else 
            {         
            _tOwned[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
            }
                        
            return amount - feeAmount;      
        }
        else
        {
            _tOwned[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
            return amount - feeAmount;            
        }
    }

    //Finalise the transfers.
     function _finalizeTransfer(address from, address to, uint256 amount, bool takeFee) private returns (bool) {
        _tOwned[from] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(from, to, amount) : amount;
        _tOwned[to] += amountReceived;

        emit Transfer(from, to, amountReceived);
        return true;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","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":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ratios","outputs":[{"internalType":"uint16","name":"development","type":"uint16"},{"internalType":"uint16","name":"total","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallets","outputs":[{"internalType":"address payable","name":"development","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"add","type":"address"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":[],"name":"approveContractContingency","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"changeRouterContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"add","type":"address"}],"name":"removeBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"tDecimals","type":"uint256"}],"name":"rescueERC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setContractSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"development","type":"uint16"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"},{"internalType":"uint256","name":"intervalInSeconds","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"dFee","type":"uint16"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"development","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"staticVals","outputs":[{"internalType":"uint16","name":"maxBuyTaxes","type":"uint16"},{"internalType":"uint16","name":"maxSellTaxes","type":"uint16"},{"internalType":"uint16","name":"maxTaxes","type":"uint16"},{"internalType":"uint16","name":"masterTaxDivisor","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSnipeEpoch","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","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":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600355600b805460ff1916600117905562989680600d55601080547409abc7fbfda7ca63c6edd86c85d6b5a2d97d46f5866001600160a81b031990911617908190556200005f90600160a01b900460ff16600a62000857565b600d546200006e91906200086f565b6011819055604080516060808201835261012c8083526020808401919091526000928401929092526012805463012c012c65ffffffffffff19909116179055825180840184526003808252908301526013805463ffffffff19166203000317905582516080810184526105dc808252818401526127108185018190529101819052601480546001600160401b031916672710271005dc05dc179055825191820190925273d53403022eafcc7fc5f7330308ec1e1c426f22ef90819052601880546001600160a01b03191690911790556019805461010061ff0019909116179055906200015c9060326200086f565b62000168919062000889565b601a5561271060115460326200017f91906200086f565b6200018b919062000889565b601b556000601c55601e805461ffff19169055601154606490620001b19060286200086f565b620001bd919062000889565b601f556064601154603c620001d391906200086f565b620001df919062000889565b6020908155601f543360008181526001845260408082209390935592546010546001600160a01b031684529183209190915581546001600160a01b031916179055466038036200025557601680546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e1790556200033d565b466061036200028a57601680546001600160a01b031916739ac64cc6e4415144c455bd8e4837fea55603e5c31790556200033d565b46600114806200029a5750466005145b15620002cc57601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556200033d565b4662aa36a7036200030357601680546001600160a01b03191673c532a74256d3db42d0bf7a0400fefdbad76940081790556200033d565b466089036200033857601680546001600160a01b03191673a5e0829caced8ffdd4de3c43696c57f7d7a678ff1790556200033d565b600080fd5b601654601580546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200039a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c09190620008ac565b6001600160a01b031663c9c65396601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000422573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004489190620008ac565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000495573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004bb9190620008ac565b601780546001600160a01b0319166001600160a01b039283169081179091556000908152600260205260409020805460ff19166001179055601654620005079133911660001962000641565b601654620005239030906001600160a01b031660001962000641565b603c600e556000600f81905580546001600160a01b0390811682526007602090815260408084208054600160ff1991821681179092556010805486168752838720805483168417905530875283872080548316841790557fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d8054831684179055865486168752600c8552838720805483168417905554851686528286208054821683179055601754909416855260088352818520805490941617909255601f54915191825233929160008051602062002e0c833981519152910160405180910390a3601054602080546040519081526001600160a01b039092169160009160008051602062002e0c833981519152910160405180910390a3620008d7565b6001600160a01b038316620006935760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064015b60405180910390fd5b6001600160a01b038216620006e15760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b60448201526064016200068a565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007995781600019048211156200077d576200077d62000742565b808516156200078b57918102915b93841c93908002906200075d565b509250929050565b600082620007b25750600162000851565b81620007c15750600062000851565b8160018114620007da5760028114620007e55762000805565b600191505062000851565b60ff841115620007f957620007f962000742565b50506001821b62000851565b5060208310610133831016604e8410600b84101617156200082a575081810a62000851565b62000836838362000758565b80600019048211156200084d576200084d62000742565b0290505b92915050565b60006200086860ff841683620007a1565b9392505050565b808202811582820484141762000851576200085162000742565b600082620008a757634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620008bf57600080fd5b81516001600160a01b03811681146200086857600080fd5b61252580620008e76000396000f3fe60806040526004361061028b5760003560e01c806350a8e0161161015a578063ac4d12d3116100c1578063eafb5a3c1161007a578063eafb5a3c14610878578063eb50e70e14610898578063ee5d9c2d146108b8578063f94aa1b4146108cd578063fdb78c0e146108ed578063ffecf5161461090c57600080fd5b8063ac4d12d314610786578063b1283c1c1461079c578063cab5ebea146107b2578063cf847706146107d2578063dd62ed3e14610812578063e5397ca61461085857600080fd5b80638a63bd9b116101135780638a63bd9b146106ef5780638a8c523c146107045780638da5cb5b146106d157806395d89b4114610719578063a457c2d714610746578063a9059cbb1461076657600080fd5b806350a8e016146106275780635fecd9261461064657806370a0823114610666578063715018a61461069c57806380c581d1146106b1578063893d20e8146106d157600080fd5b80632b112e49116101fe57806339509351116101b7578063395093511461055d5780633bbac5791461057d578063452ed4f1146105ad57806348c670b9146105cd5780634ada218b146105ed5780634fb2e45d1461060757600080fd5b80632b112e49146104a45780632e8fa821146104b9578063313ce567146104cf57806332cde664146104fb57806334cd82601461051d578063384f36b61461053d57600080fd5b80630758d924116102505780630758d92414610394578063095ea7b3146103b4578063122fea3b146103e457806318160ddd146104045780631b6afa2d1461041957806323b872dd1461048457600080fd5b8062ff2d441461029757806303fd2a45146102c05780630445b667146102ee578063069d955f1461030457806306fdde031461035a57600080fd5b3661029257005b600080fd5b3480156102a357600080fd5b506102ad601d5481565b6040519081526020015b60405180910390f35b3480156102cc57600080fd5b506102d661dead81565b6040516001600160a01b0390911681526020016102b7565b3480156102fa57600080fd5b506102ad601a5481565b34801561031057600080fd5b506012546103359061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016102b7565b34801561036657600080fd5b50604080518082019091526008815267426574766572736560c01b60208201525b6040516102b79190611fb5565b3480156103a057600080fd5b506015546102d6906001600160a01b031681565b3480156103c057600080fd5b506103d46103cf366004612018565b61092c565b60405190151581526020016102b7565b3480156103f057600080fd5b506016546102d6906001600160a01b031681565b34801561041057600080fd5b506011546102ad565b34801561042557600080fd5b506014546104569061ffff808216916201000081048216916401000000008204811691660100000000000090041684565b6040805161ffff958616815293851660208501529184169183019190915290911660608201526080016102b7565b34801561049057600080fd5b506103d461049f366004612044565b610943565b3480156104b057600080fd5b506102ad6109bd565b3480156104c557600080fd5b506102ad601b5481565b3480156104db57600080fd5b50601054600160a01b900460ff1660405160ff90911681526020016102b7565b34801561050757600080fd5b5061051b61051636600461209c565b610a2b565b005b34801561052957600080fd5b5061051b6105383660046120df565b610b31565b34801561054957600080fd5b5061051b61055836600461211a565b610b9d565b34801561056957600080fd5b506103d4610578366004612018565b610be9565b34801561058957600080fd5b506103d461059836600461211a565b60056020526000908152604090205460ff1681565b3480156105b957600080fd5b506017546102d6906001600160a01b031681565b3480156105d957600080fd5b5061051b6105e8366004612137565b610c25565b3480156105f957600080fd5b50601e546103d49060ff1681565b34801561061357600080fd5b5061051b61062236600461211a565b610c74565b34801561063357600080fd5b50601e546103d490610100900460ff1681565b34801561065257600080fd5b5061051b61066136600461211a565b610d81565b34801561067257600080fd5b506102ad61068136600461211a565b6001600160a01b031660009081526001602052604090205490565b3480156106a857600080fd5b5061051b610dcc565b3480156106bd57600080fd5b5061051b6106cc366004612160565b610e32565b3480156106dd57600080fd5b506000546001600160a01b03166102d6565b3480156106fb57600080fd5b506103d4610f0d565b34801561071057600080fd5b5061051b610f58565b34801561072557600080fd5b506040805180820190915260048152630910915560e21b6020820152610387565b34801561075257600080fd5b506103d4610761366004612018565b610ff4565b34801561077257600080fd5b506103d4610781366004612018565b61102b565b34801561079257600080fd5b506102ad600f5481565b3480156107a857600080fd5b506102ad601c5481565b3480156107be57600080fd5b5061051b6107cd366004612199565b611042565b3480156107de57600080fd5b506013546107f79061ffff808216916201000090041682565b6040805161ffff9384168152929091166020830152016102b7565b34801561081e57600080fd5b506102ad61082d3660046121b6565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561086457600080fd5b5061051b6108733660046121e4565b6110c0565b34801561088457600080fd5b5061051b61089336600461211a565b611198565b3480156108a457600080fd5b5061051b6108b336600461211a565b6114d1565b3480156108c457600080fd5b5061051b61151d565b3480156108d957600080fd5b506018546102d6906001600160a01b031681565b3480156108f957600080fd5b506019546103d490610100900460ff1681565b34801561091857600080fd5b5061051b61092736600461211a565b611584565b60006109393384846115d2565b5060015b92915050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146109a8576001600160a01b0384166000908152600460209081526040808320338452909152812080548492906109a290849061222f565b90915550505b6109b38484846116cb565b90505b9392505050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead60009081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d549091610a1991612242565b601154610a26919061222f565b905090565b6000546001600160a01b03163314610a5e5760405162461bcd60e51b8152600401610a5590612255565b60405180910390fd5b60145461ffff90811690841611801590610a88575060145461ffff62010000909104811690831611155b8015610aa6575060145461ffff640100000000909104811690821611155b610af25760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f7420657863656564206d6178696d756d73206f66203135252e00006044820152606401610a55565b6012805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6000546001600160a01b03163314610b5b5760405162461bcd60e51b8152600401610a5590612255565b8385601154610b6a9190612280565b610b749190612297565b601a556011548290610b87908590612280565b610b919190612297565b601b55601c5550505050565b6000546001600160a01b03163314610bc75760405162461bcd60e51b8152600401610a5590612255565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610939918590610c20908690612242565b6115d2565b6000546001600160a01b03163314610c4f5760405162461bcd60e51b8152600401610a5590612255565b601380546201000061ffff90931692830263ffffffff19909116909217919091179055565b6000546001600160a01b03163314610c9e5760405162461bcd60e51b8152600401610a5590612255565b6001600160a01b038116610cc45760405162461bcd60e51b8152600401610a55906122b9565b61deac196001600160a01b03821601610cef5760405162461bcd60e51b8152600401610a55906122b9565b600080546001600160a01b031681526001602052604090205415610d3657600080546001600160a01b03168082526001602052604090912054610d34919083906116cb565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000546001600160a01b03163314610dab5760405162461bcd60e51b8152600401610a5590612255565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b03163314610df65760405162461bcd60e51b8152600401610a5590612255565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314610e5c5760405162461bcd60e51b8152600401610a5590612255565b801515600003610e8857506001600160a01b03166000908152600260205260409020805460ff19169055565b60035415610ee2576203f48060035442610ea2919061222f565b11610ee25760405162461bcd60e51b815260206004820152601060248201526f332044617920636f6f6c646f776e2e2160801b6044820152606401610a55565b6001600160a01b0382166000908152600260205260409020805460ff19166001179055426003555050565b600080546001600160a01b03163314610f385760405162461bcd60e51b8152600401610a5590612255565b601554610f529030906001600160a01b03166000196115d2565b50600190565b6000546001600160a01b03163314610f825760405162461bcd60e51b8152600401610a5590612255565b601e5460ff1615610fd55760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610a55565b600e54610fe29042612316565b600f55601e805460ff19166001179055565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610939918590610c2090869061222f565b60006110383384846116cb565b5060019392505050565b6000546001600160a01b0316331461106c5760405162461bcd60e51b8152600401610a5590612255565b601980548215156101000261ff00199091161790556040517f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906110b590831515815260200190565b60405180910390a150565b6000546001600160a01b031633146110ea5760405162461bcd60e51b8152600401610a5590612255565b600680546001600160a01b0319166001600160a01b03851690811790915563a9059cbb3361111984600a612422565b6111239086612280565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561116e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611192919061242e565b50505050565b6000546001600160a01b031633146111c25760405162461bcd60e51b8152600401610a5590612255565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611207573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122b919061244b565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129c919061244b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156112e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130b919061244b565b90506001600160a01b03811661148457816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611359573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137d919061244b565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ee919061244b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561143b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145f919061244b565b601780546001600160a01b0319166001600160a01b03929092169190911790556114a0565b601780546001600160a01b0319166001600160a01b0383161790555b601580546001600160a01b0319166001600160a01b0384169081179091556114cc9030906000196115d2565b505050565b6000546001600160a01b031633146114fb5760405162461bcd60e51b8152600401610a5590612255565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146115475760405162461bcd60e51b8152600401610a5590612255565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015611581573d6000803e3d6000fd5b50565b6000546001600160a01b031633146115ae5760405162461bcd60e51b8152600401610a5590612255565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6001600160a01b03831661161e5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a55565b6001600160a01b03821661166a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a55565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166117315760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a55565b6001600160a01b0383166117935760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a55565b6001600160a01b03841660009081526005602052604090205460ff16156117f45760405162461bcd60e51b815260206004820152601560248201527454686973206973206120626f74206164647265737360581b6044820152606401610a55565b600082116118565760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a55565b61186084846119f4565b156118b757601e5460ff166118b75760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610a55565b6001600160a01b03841660009081526007602052604090205460019060ff16806118f957506001600160a01b03841660009081526007602052604090205460ff165b15611902575060005b6001600160a01b03841660009081526002602052604090205460ff16156119df5760195460ff1615801561193d5750601954610100900460ff165b801561196257506001600160a01b0384166000908152600a602052604090205460ff16155b801561198757506001600160a01b0385166000908152600a602052604090205460ff16155b156119df5730600090815260016020526040902054601a5481108015906119bc575042601c54601d546119ba9190612242565b105b156119dd57601b5481106119cf5750601b545b6119d881611ac8565b42601d555b505b6119eb85858584611cd8565b95945050505050565b600080546001600160a01b03848116911614801590611a2157506000546001600160a01b03838116911614155b8015611a3857506000546001600160a01b03163214155b8015611a5d57506001600160a01b0382166000908152600c602052604090205460ff16155b8015611a8257506001600160a01b0383166000908152600c602052604090205460ff16155b8015611a9957506001600160a01b03821661dead14155b8015611aad57506001600160a01b03821615155b80156109b657506001600160a01b0383163014159392505050565b6019805460ff1916600117905560135461ffff620100009091041615611ccb573060009081526004602090815260408083206015546001600160a01b0316845290915290205460001914611b41573060009081526004602090815260408083206015546001600160a01b03168452909152902060001990555b604080516002808252606082018352839260009291906020830190803683370190505090503081600081518110611b7a57611b7a612468565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf7919061244b565b81600181518110611c0a57611c0a612468565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b815291169063791ac94790611c5090859060009086903090429060040161247e565b600060405180830381600087803b158015611c6a57600080fd5b505af1158015611c7e573d6000803e3d6000fd5b505050506000471115611cc85760185460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015611cc5573d6000803e3d6000fd5b50505b50505b506019805460ff19169055565b6001600160a01b038416600090815260016020526040812080548491908390611d0290849061222f565b909155506000905082611d155783611d20565b611d20868686611dad565b6001600160a01b038616600090815260016020526040812080549293508392909190611d4d908490612242565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d9991815260200190565b60405180910390a350600195945050505050565b60175460009081906001600160a01b0390811690861603611dd5575060125461ffff16611e0f565b6017546001600160a01b0390811690851603611dfe575060125462010000900461ffff16611e0f565b50601254640100000000900461ffff165b6014546000906601000000000000900461ffff16611e2d8386612280565b611e379190612297565b905042600f54600a611e499190612316565b1315611f3d576502ba7def30008410611f3d576017546001600160a01b0390811690871603611e9a576001600160a01b0385166000908152600560205260409020805460ff19166001179055611ed4565b6017546001600160a01b0390811690861603611ed4576001600160a01b0386166000908152600560205260409020805460ff191660011790555b3060009081526001602052604081208054839290611ef3908490612242565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3611fa2565b3060009081526001602052604081208054839290611f5c908490612242565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b611fac818561222f565b925050506109b6565b600060208083528351808285015260005b81811015611fe257858101830151858201604001528201611fc6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461158157600080fd5b6000806040838503121561202b57600080fd5b823561203681612003565b946020939093013593505050565b60008060006060848603121561205957600080fd5b833561206481612003565b9250602084013561207481612003565b929592945050506040919091013590565b803561ffff8116811461209757600080fd5b919050565b6000806000606084860312156120b157600080fd5b6120ba84612085565b92506120c860208501612085565b91506120d660408501612085565b90509250925092565b600080600080600060a086880312156120f757600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561212c57600080fd5b81356109b681612003565b60006020828403121561214957600080fd5b6109b682612085565b801515811461158157600080fd5b6000806040838503121561217357600080fd5b823561217e81612003565b9150602083013561218e81612152565b809150509250929050565b6000602082840312156121ab57600080fd5b81356109b681612152565b600080604083850312156121c957600080fd5b82356121d481612003565b9150602083013561218e81612003565b6000806000606084860312156121f957600080fd5b833561220481612003565b95602085013595506040909401359392505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561093d5761093d612219565b8082018082111561093d5761093d612219565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b808202811582820484141761093d5761093d612219565b6000826122b457634e487b7160e01b600052601260045260246000fd5b500490565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b808201828112600083128015821682158216171561233657612336612219565b505092915050565b600181815b8085111561237957816000190482111561235f5761235f612219565b8085161561236c57918102915b93841c9390800290612343565b509250929050565b6000826123905750600161093d565b8161239d5750600061093d565b81600181146123b357600281146123bd576123d9565b600191505061093d565b60ff8411156123ce576123ce612219565b50506001821b61093d565b5060208310610133831016604e8410600b84101617156123fc575081810a61093d565b612406838361233e565b806000190482111561241a5761241a612219565b029392505050565b60006109b68383612381565b60006020828403121561244057600080fd5b81516109b681612152565b60006020828403121561245d57600080fd5b81516109b681612003565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124ce5784516001600160a01b0316835293830193918301916001016124a9565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a5ced331e2365c5701850ff76b2a0bf330516c57c536b3f57fc0cb5932f58b9b64736f6c63430008120033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x60806040526004361061028b5760003560e01c806350a8e0161161015a578063ac4d12d3116100c1578063eafb5a3c1161007a578063eafb5a3c14610878578063eb50e70e14610898578063ee5d9c2d146108b8578063f94aa1b4146108cd578063fdb78c0e146108ed578063ffecf5161461090c57600080fd5b8063ac4d12d314610786578063b1283c1c1461079c578063cab5ebea146107b2578063cf847706146107d2578063dd62ed3e14610812578063e5397ca61461085857600080fd5b80638a63bd9b116101135780638a63bd9b146106ef5780638a8c523c146107045780638da5cb5b146106d157806395d89b4114610719578063a457c2d714610746578063a9059cbb1461076657600080fd5b806350a8e016146106275780635fecd9261461064657806370a0823114610666578063715018a61461069c57806380c581d1146106b1578063893d20e8146106d157600080fd5b80632b112e49116101fe57806339509351116101b7578063395093511461055d5780633bbac5791461057d578063452ed4f1146105ad57806348c670b9146105cd5780634ada218b146105ed5780634fb2e45d1461060757600080fd5b80632b112e49146104a45780632e8fa821146104b9578063313ce567146104cf57806332cde664146104fb57806334cd82601461051d578063384f36b61461053d57600080fd5b80630758d924116102505780630758d92414610394578063095ea7b3146103b4578063122fea3b146103e457806318160ddd146104045780631b6afa2d1461041957806323b872dd1461048457600080fd5b8062ff2d441461029757806303fd2a45146102c05780630445b667146102ee578063069d955f1461030457806306fdde031461035a57600080fd5b3661029257005b600080fd5b3480156102a357600080fd5b506102ad601d5481565b6040519081526020015b60405180910390f35b3480156102cc57600080fd5b506102d661dead81565b6040516001600160a01b0390911681526020016102b7565b3480156102fa57600080fd5b506102ad601a5481565b34801561031057600080fd5b506012546103359061ffff808216916201000081048216916401000000009091041683565b6040805161ffff948516815292841660208401529216918101919091526060016102b7565b34801561036657600080fd5b50604080518082019091526008815267426574766572736560c01b60208201525b6040516102b79190611fb5565b3480156103a057600080fd5b506015546102d6906001600160a01b031681565b3480156103c057600080fd5b506103d46103cf366004612018565b61092c565b60405190151581526020016102b7565b3480156103f057600080fd5b506016546102d6906001600160a01b031681565b34801561041057600080fd5b506011546102ad565b34801561042557600080fd5b506014546104569061ffff808216916201000081048216916401000000008204811691660100000000000090041684565b6040805161ffff958616815293851660208501529184169183019190915290911660608201526080016102b7565b34801561049057600080fd5b506103d461049f366004612044565b610943565b3480156104b057600080fd5b506102ad6109bd565b3480156104c557600080fd5b506102ad601b5481565b3480156104db57600080fd5b50601054600160a01b900460ff1660405160ff90911681526020016102b7565b34801561050757600080fd5b5061051b61051636600461209c565b610a2b565b005b34801561052957600080fd5b5061051b6105383660046120df565b610b31565b34801561054957600080fd5b5061051b61055836600461211a565b610b9d565b34801561056957600080fd5b506103d4610578366004612018565b610be9565b34801561058957600080fd5b506103d461059836600461211a565b60056020526000908152604090205460ff1681565b3480156105b957600080fd5b506017546102d6906001600160a01b031681565b3480156105d957600080fd5b5061051b6105e8366004612137565b610c25565b3480156105f957600080fd5b50601e546103d49060ff1681565b34801561061357600080fd5b5061051b61062236600461211a565b610c74565b34801561063357600080fd5b50601e546103d490610100900460ff1681565b34801561065257600080fd5b5061051b61066136600461211a565b610d81565b34801561067257600080fd5b506102ad61068136600461211a565b6001600160a01b031660009081526001602052604090205490565b3480156106a857600080fd5b5061051b610dcc565b3480156106bd57600080fd5b5061051b6106cc366004612160565b610e32565b3480156106dd57600080fd5b506000546001600160a01b03166102d6565b3480156106fb57600080fd5b506103d4610f0d565b34801561071057600080fd5b5061051b610f58565b34801561072557600080fd5b506040805180820190915260048152630910915560e21b6020820152610387565b34801561075257600080fd5b506103d4610761366004612018565b610ff4565b34801561077257600080fd5b506103d4610781366004612018565b61102b565b34801561079257600080fd5b506102ad600f5481565b3480156107a857600080fd5b506102ad601c5481565b3480156107be57600080fd5b5061051b6107cd366004612199565b611042565b3480156107de57600080fd5b506013546107f79061ffff808216916201000090041682565b6040805161ffff9384168152929091166020830152016102b7565b34801561081e57600080fd5b506102ad61082d3660046121b6565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561086457600080fd5b5061051b6108733660046121e4565b6110c0565b34801561088457600080fd5b5061051b61089336600461211a565b611198565b3480156108a457600080fd5b5061051b6108b336600461211a565b6114d1565b3480156108c457600080fd5b5061051b61151d565b3480156108d957600080fd5b506018546102d6906001600160a01b031681565b3480156108f957600080fd5b506019546103d490610100900460ff1681565b34801561091857600080fd5b5061051b61092736600461211a565b611584565b60006109393384846115d2565b5060015b92915050565b6001600160a01b0383166000908152600460209081526040808320338452909152812054600019146109a8576001600160a01b0384166000908152600460209081526040808320338452909152812080548492906109a290849061222f565b90915550505b6109b38484846116cb565b90505b9392505050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead60009081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d549091610a1991612242565b601154610a26919061222f565b905090565b6000546001600160a01b03163314610a5e5760405162461bcd60e51b8152600401610a5590612255565b60405180910390fd5b60145461ffff90811690841611801590610a88575060145461ffff62010000909104811690831611155b8015610aa6575060145461ffff640100000000909104811690821611155b610af25760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f7420657863656564206d6178696d756d73206f66203135252e00006044820152606401610a55565b6012805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6000546001600160a01b03163314610b5b5760405162461bcd60e51b8152600401610a5590612255565b8385601154610b6a9190612280565b610b749190612297565b601a556011548290610b87908590612280565b610b919190612297565b601b55601c5550505050565b6000546001600160a01b03163314610bc75760405162461bcd60e51b8152600401610a5590612255565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610939918590610c20908690612242565b6115d2565b6000546001600160a01b03163314610c4f5760405162461bcd60e51b8152600401610a5590612255565b601380546201000061ffff90931692830263ffffffff19909116909217919091179055565b6000546001600160a01b03163314610c9e5760405162461bcd60e51b8152600401610a5590612255565b6001600160a01b038116610cc45760405162461bcd60e51b8152600401610a55906122b9565b61deac196001600160a01b03821601610cef5760405162461bcd60e51b8152600401610a55906122b9565b600080546001600160a01b031681526001602052604090205415610d3657600080546001600160a01b03168082526001602052604090912054610d34919083906116cb565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000546001600160a01b03163314610dab5760405162461bcd60e51b8152600401610a5590612255565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b03163314610df65760405162461bcd60e51b8152600401610a5590612255565b600080546001600160a01b031916815560405181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b03163314610e5c5760405162461bcd60e51b8152600401610a5590612255565b801515600003610e8857506001600160a01b03166000908152600260205260409020805460ff19169055565b60035415610ee2576203f48060035442610ea2919061222f565b11610ee25760405162461bcd60e51b815260206004820152601060248201526f332044617920636f6f6c646f776e2e2160801b6044820152606401610a55565b6001600160a01b0382166000908152600260205260409020805460ff19166001179055426003555050565b600080546001600160a01b03163314610f385760405162461bcd60e51b8152600401610a5590612255565b601554610f529030906001600160a01b03166000196115d2565b50600190565b6000546001600160a01b03163314610f825760405162461bcd60e51b8152600401610a5590612255565b601e5460ff1615610fd55760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610a55565b600e54610fe29042612316565b600f55601e805460ff19166001179055565b3360008181526004602090815260408083206001600160a01b03871684529091528120549091610939918590610c2090869061222f565b60006110383384846116cb565b5060019392505050565b6000546001600160a01b0316331461106c5760405162461bcd60e51b8152600401610a5590612255565b601980548215156101000261ff00199091161790556040517f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906110b590831515815260200190565b60405180910390a150565b6000546001600160a01b031633146110ea5760405162461bcd60e51b8152600401610a5590612255565b600680546001600160a01b0319166001600160a01b03851690811790915563a9059cbb3361111984600a612422565b6111239086612280565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561116e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611192919061242e565b50505050565b6000546001600160a01b031633146111c25760405162461bcd60e51b8152600401610a5590612255565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611207573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122b919061244b565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129c919061244b565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156112e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130b919061244b565b90506001600160a01b03811661148457816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611359573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137d919061244b565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ee919061244b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561143b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145f919061244b565b601780546001600160a01b0319166001600160a01b03929092169190911790556114a0565b601780546001600160a01b0319166001600160a01b0383161790555b601580546001600160a01b0319166001600160a01b0384169081179091556114cc9030906000196115d2565b505050565b6000546001600160a01b031633146114fb5760405162461bcd60e51b8152600401610a5590612255565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146115475760405162461bcd60e51b8152600401610a5590612255565b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015611581573d6000803e3d6000fd5b50565b6000546001600160a01b031633146115ae5760405162461bcd60e51b8152600401610a5590612255565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6001600160a01b03831661161e5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a55565b6001600160a01b03821661166a5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a55565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166117315760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a55565b6001600160a01b0383166117935760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a55565b6001600160a01b03841660009081526005602052604090205460ff16156117f45760405162461bcd60e51b815260206004820152601560248201527454686973206973206120626f74206164647265737360581b6044820152606401610a55565b600082116118565760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a55565b61186084846119f4565b156118b757601e5460ff166118b75760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610a55565b6001600160a01b03841660009081526007602052604090205460019060ff16806118f957506001600160a01b03841660009081526007602052604090205460ff165b15611902575060005b6001600160a01b03841660009081526002602052604090205460ff16156119df5760195460ff1615801561193d5750601954610100900460ff165b801561196257506001600160a01b0384166000908152600a602052604090205460ff16155b801561198757506001600160a01b0385166000908152600a602052604090205460ff16155b156119df5730600090815260016020526040902054601a5481108015906119bc575042601c54601d546119ba9190612242565b105b156119dd57601b5481106119cf5750601b545b6119d881611ac8565b42601d555b505b6119eb85858584611cd8565b95945050505050565b600080546001600160a01b03848116911614801590611a2157506000546001600160a01b03838116911614155b8015611a3857506000546001600160a01b03163214155b8015611a5d57506001600160a01b0382166000908152600c602052604090205460ff16155b8015611a8257506001600160a01b0383166000908152600c602052604090205460ff16155b8015611a9957506001600160a01b03821661dead14155b8015611aad57506001600160a01b03821615155b80156109b657506001600160a01b0383163014159392505050565b6019805460ff1916600117905560135461ffff620100009091041615611ccb573060009081526004602090815260408083206015546001600160a01b0316845290915290205460001914611b41573060009081526004602090815260408083206015546001600160a01b03168452909152902060001990555b604080516002808252606082018352839260009291906020830190803683370190505090503081600081518110611b7a57611b7a612468565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf7919061244b565b81600181518110611c0a57611c0a612468565b6001600160a01b03928316602091820292909201015260155460405163791ac94760e01b815291169063791ac94790611c5090859060009086903090429060040161247e565b600060405180830381600087803b158015611c6a57600080fd5b505af1158015611c7e573d6000803e3d6000fd5b505050506000471115611cc85760185460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015611cc5573d6000803e3d6000fd5b50505b50505b506019805460ff19169055565b6001600160a01b038416600090815260016020526040812080548491908390611d0290849061222f565b909155506000905082611d155783611d20565b611d20868686611dad565b6001600160a01b038616600090815260016020526040812080549293508392909190611d4d908490612242565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d9991815260200190565b60405180910390a350600195945050505050565b60175460009081906001600160a01b0390811690861603611dd5575060125461ffff16611e0f565b6017546001600160a01b0390811690851603611dfe575060125462010000900461ffff16611e0f565b50601254640100000000900461ffff165b6014546000906601000000000000900461ffff16611e2d8386612280565b611e379190612297565b905042600f54600a611e499190612316565b1315611f3d576502ba7def30008410611f3d576017546001600160a01b0390811690871603611e9a576001600160a01b0385166000908152600560205260409020805460ff19166001179055611ed4565b6017546001600160a01b0390811690861603611ed4576001600160a01b0386166000908152600560205260409020805460ff191660011790555b3060009081526001602052604081208054839290611ef3908490612242565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3611fa2565b3060009081526001602052604081208054839290611f5c908490612242565b909155505060405181815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b611fac818561222f565b925050506109b6565b600060208083528351808285015260005b81811015611fe257858101830151858201604001528201611fc6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461158157600080fd5b6000806040838503121561202b57600080fd5b823561203681612003565b946020939093013593505050565b60008060006060848603121561205957600080fd5b833561206481612003565b9250602084013561207481612003565b929592945050506040919091013590565b803561ffff8116811461209757600080fd5b919050565b6000806000606084860312156120b157600080fd5b6120ba84612085565b92506120c860208501612085565b91506120d660408501612085565b90509250925092565b600080600080600060a086880312156120f757600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60006020828403121561212c57600080fd5b81356109b681612003565b60006020828403121561214957600080fd5b6109b682612085565b801515811461158157600080fd5b6000806040838503121561217357600080fd5b823561217e81612003565b9150602083013561218e81612152565b809150509250929050565b6000602082840312156121ab57600080fd5b81356109b681612152565b600080604083850312156121c957600080fd5b82356121d481612003565b9150602083013561218e81612003565b6000806000606084860312156121f957600080fd5b833561220481612003565b95602085013595506040909401359392505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561093d5761093d612219565b8082018082111561093d5761093d612219565b60208082526011908201527021b0b63632b9101e979e9037bbb732b91760791b604082015260600190565b808202811582820484141761093d5761093d612219565b6000826122b457634e487b7160e01b600052601260045260246000fd5b500490565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b808201828112600083128015821682158216171561233657612336612219565b505092915050565b600181815b8085111561237957816000190482111561235f5761235f612219565b8085161561236c57918102915b93841c9390800290612343565b509250929050565b6000826123905750600161093d565b8161239d5750600061093d565b81600181146123b357600281146123bd576123d9565b600191505061093d565b60ff8411156123ce576123ce612219565b50506001821b61093d565b5060208310610133831016604e8410600b84101617156123fc575081810a61093d565b612406838361233e565b806000190482111561241a5761241a612219565b029392505050565b60006109b68383612381565b60006020828403121561244057600080fd5b81516109b681612152565b60006020828403121561245d57600080fd5b81516109b681612003565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156124ce5784516001600160a01b0316835293830193918301916001016124a9565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a5ced331e2365c5701850ff76b2a0bf330516c57c536b3f57fc0cb5932f58b9b64736f6c63430008120033

Deployed Bytecode Sourcemap

6295:16284:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8865:23;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8865:23:0;;;;;;;;8310:73;;;;;;;;;;;;8341:42;8310:73;;;;;-1:-1:-1;;;;;360:32:1;;;342:51;;330:2;315:18;8310:73:0;196:203:1;8710:53:0;;;;;;;;;;;;;;;;7784:111;;;;;;;;;;-1:-1:-1;7784:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;610:6:1;643:15;;;625:34;;695:15;;;690:2;675:18;;668:43;747:15;;727:18;;;720:43;;;;588:2;573:18;7784:111:0;404:365:1;12906:80:0;;;;;;;;;;-1:-1:-1;12978:5:0;;;;;;;;;;;;-1:-1:-1;;;12978:5:0;;;;12906:80;;;;;;;:::i;8212:26::-;;;;;;;;;;-1:-1:-1;8212:26:0;;;;-1:-1:-1;;;;;8212:26:0;;;13519:161;;;;;;;;;;-1:-1:-1;13519:161:0;;;;;:::i;:::-;;:::i;:::-;;;2173:14:1;;2166:22;2148:41;;2136:2;2121:18;13519:161:0;2008:187:1;8245:28:0;;;;;;;;;;-1:-1:-1;8245:28:0;;;;-1:-1:-1;;;;;8245:28:0;;;12641:83;;;;;;;;;;-1:-1:-1;12714:7:0;;12641:83;;8016:187;;;;;;;;;;-1:-1:-1;8016:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2433:6:1;2466:15;;;2448:34;;2518:15;;;2513:2;2498:18;;2491:43;2570:15;;;2550:18;;;2543:43;;;;2622:15;;;2617:2;2602:18;;2595:43;2410:3;2395:19;8016:187:0;2200:444:1;14186:306:0;;;;;;;;;;-1:-1:-1;14186:306:0;;;;;:::i;:::-;;:::i;16104:141::-;;;;;;;;;;;;;:::i;8770:50::-;;;;;;;;;;;;;;;;12730:80;;;;;;;;;;-1:-1:-1;12798:9:0;;-1:-1:-1;;;12798:9:0;;;;12730:80;;3282:4:1;3270:17;;;3252:36;;3240:2;3225:18;12730:80:0;3110:184:1;16253:408:0;;;;;;;;;;-1:-1:-1;16253:408:0;;;;;:::i;:::-;;:::i;:::-;;16836:359;;;;;;;;;;-1:-1:-1;16836:359:0;;;;;:::i;:::-;;:::i;15979:117::-;;;;;;;;;;-1:-1:-1;15979:117:0;;;;;:::i;:::-;;:::i;14500:215::-;;;;;;;;;;-1:-1:-1;14500:215:0;;;;;:::i;:::-;;:::i;6641:35::-;;;;;;;;;;-1:-1:-1;6641:35:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8280:21;;;;;;;;;;-1:-1:-1;8280:21:0;;;;-1:-1:-1;;;;;8280:21:0;;;16673:155;;;;;;;;;;-1:-1:-1;16673:155:0;;;;;:::i;:::-;;:::i;8897:34::-;;;;;;;;;;-1:-1:-1;8897:34:0;;;;;;;;11970:497;;;;;;;;;;-1:-1:-1;11970:497:0;;;;;:::i;:::-;;:::i;8938:36::-;;;;;;;;;;-1:-1:-1;8938:36:0;;;;;;;;;;;20621:89;;;;;;;;;;-1:-1:-1;20621:89:0;;;;;:::i;:::-;;:::i;13219:117::-;;;;;;;;;;-1:-1:-1;13219:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;13312:16:0;13285:7;13312:16;;;:7;:16;;;;;;;13219:117;12475:158;;;;;;;;;;;;;:::i;15564:407::-;;;;;;;;;;-1:-1:-1;15564:407:0;;;;;:::i;:::-;;:::i;12992:80::-;;;;;;;;;;-1:-1:-1;13044:7:0;11948:6;-1:-1:-1;;;;;11948:6:0;12992:80;16104:141;14005:173;;;;;;;;;;;;;:::i;20295:225::-;;;;;;;;;;;;;:::i;12816:84::-;;;;;;;;;;-1:-1:-1;12890:7:0;;;;;;;;;;;;-1:-1:-1;;;12890:7:0;;;;12816:84;;14723:225;;;;;;;;;;-1:-1:-1;14723:225:0;;;;;:::i;:::-;;:::i;13344:167::-;;;;;;;;;;-1:-1:-1;13344:167:0;;;;;:::i;:::-;;:::i;7128:26::-;;;;;;;;;;;;;;;;8827:31;;;;;;;;;;;;;;;;17344:165;;;;;;;;;;-1:-1:-1;17344:165:0;;;;;:::i;:::-;;:::i;7904:103::-;;;;;;;;;;-1:-1:-1;7904:103:0;;;;;;;;;;;;;;;;;;;5812:6:1;5845:15;;;5827:34;;5897:15;;;;5892:2;5877:18;;5870:43;5775:18;7904:103:0;5632:287:1;13078:133:0;;;;;;;;;;-1:-1:-1;13078:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;13180:19:0;;;13162:7;13180:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;13078:133;11369:188;;;;;;;;;;-1:-1:-1;11369:188:0;;;;;:::i;:::-;;:::i;14982:542::-;;;;;;;;;;-1:-1:-1;14982:542:0;;;;;:::i;:::-;;:::i;17203:133::-;;;;;;;;;;-1:-1:-1;17203:133:0;;;;;:::i;:::-;;:::i;20718:122::-;;;;;;;;;;;;;:::i;8482:146::-;;;;;;;;;;-1:-1:-1;8482:146:0;;;;-1:-1:-1;;;;;8482:146:0;;;8659:38;;;;;;;;;;-1:-1:-1;8659:38:0;;;;;;;;;;;20528:85;;;;;;;;;;-1:-1:-1;20528:85:0;;;;;:::i;:::-;;:::i;13519:161::-;13594:4;13611:39;1142:10;13634:7;13643:6;13611:8;:39::i;:::-;-1:-1:-1;13668:4:0;13519:161;;;;;:::o;14186:306::-;-1:-1:-1;;;;;14307:19:0;;14286:4;14307:19;;;:11;:19;;;;;;;;14327:10;14307:31;;;;;;;;-1:-1:-1;;14307:52:0;14303:126;;-1:-1:-1;;;;;14376:19:0;;;;;;:11;:19;;;;;;;;14396:10;14376:31;;;;;;;:41;;14411:6;;14376:19;:41;;14411:6;;14376:41;:::i;:::-;;;;-1:-1:-1;;14303:126:0;14448:36;14458:6;14466:9;14477:6;14448:9;:36::i;:::-;14441:43;;14186:306;;;;;;:::o;16104:141::-;13312:7;:16;;;;8341:42;16157:7;13312:16;;;;;16157:7;;16196:39;;;:::i;:::-;16185:7;;:51;;;;:::i;:::-;16177:60;;16104:141;:::o;16253:408::-;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;;;;;;;;;16363:10:::1;:22:::0;::::1;::::0;;::::1;16353:32:::0;;::::1;;::::0;::::1;::::0;:87:::1;;-1:-1:-1::0;16416:10:0::1;:24:::0;::::1;::::0;;;::::1;::::0;::::1;16406:34:::0;;::::1;;;16353:87;:135;;;;-1:-1:-1::0;16469:10:0::1;:19:::0;::::1;::::0;;;::::1;::::0;::::1;16461:27:::0;;::::1;;;16353:135;16345:195;;;::::0;-1:-1:-1;;;16345:195:0;;8132:2:1;16345:195:0::1;::::0;::::1;8114:21:1::0;8171:2;8151:18;;;8144:30;8210:32;8190:18;;;8183:60;8260:18;;16345:195:0::1;7930:354:1::0;16345:195:0::1;16551:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;16587:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;16625:28:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;16253:408::o;16836:359::-;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;17063:16:::1;17043;17033:7;;:26;;;;:::i;:::-;17032:47;;;;:::i;:::-;17016:13;:63:::0;17104:7:::1;::::0;17131:13;;17104:23:::1;::::0;17114:13;;17104:23:::1;:::i;:::-;17103:41;;;;:::i;:::-;17090:10;:54:::0;17155:12:::1;:32:::0;-1:-1:-1;;;;16836:359:0:o;15979:117::-;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;16066:13:::1;:22:::0;;-1:-1:-1;;;;;;16066:22:0::1;-1:-1:-1::0;;;;;16066:22:0;;;::::1;::::0;;;::::1;::::0;;15979:117::o;14500:215::-;1142:10;14588:4;14637:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14637:34:0;;;;;;;;;;14588:4;;14605:80;;14628:7;;14637:47;;14674:10;;14637:47;:::i;:::-;14605:8;:80::i;16673:155::-;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;16750:7:::1;:33:::0;;16794:26;16750:33:::1;::::0;;::::1;16794:26:::0;;::::1;-1:-1:-1::0;;16794:26:0;;;;;;;;;::::1;::::0;;16673:155::o;11970:497::-;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12051:22:0;::::1;12043:96;;;;-1:-1:-1::0;;;12043:96:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;;12158:16:0;::::1;::::0;12150:90:::1;;;;-1:-1:-1::0;;;12150:90:0::1;;;;;;;:::i;:::-;12284:1;12274:6:::0;;-1:-1:-1;;;;;12274:6:0::1;13312:16:::0;;:7;:16;;;;;;12264:21;12261:99:::1;;12312:6;::::0;;-1:-1:-1;;;;;12312:6:0::1;13312:16:::0;;;:7;:16;;;;;;;12302:46:::1;::::0;12312:6;12320:8;;12302:9:::1;:46::i;:::-;;12261:99;12380:6;:17:::0;;-1:-1:-1;;;;;;12380:17:0::1;-1:-1:-1::0;;;;;12380:17:0;::::1;::::0;;::::1;::::0;;12413:38:::1;::::0;12380:17;;;;12413:38:::1;::::0;12380:6;12413:38:::1;11970:497:::0;:::o;20621:89::-;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20686:10:0::1;20697:5;20686:10:::0;;;:5:::1;:10;::::0;;;;:16;;-1:-1:-1;;20686:16:0::1;::::0;;20621:89::o;12475:158::-;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;12567:1:::1;12550:19:::0;;-1:-1:-1;;;;;;12550:19:0::1;::::0;;12585:40:::1;::::0;12567:1;;12585:40:::1;::::0;12567:1;;12585:40:::1;12475:158::o:0;15564:407::-;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;15645:16;::::1;;15656:5;15645:16:::0;15641:323:::1;;-1:-1:-1::0;;;;;;15678:13:0::1;15694:5;15678:13:::0;;;:7:::1;:13;::::0;;;;:21;;-1:-1:-1;;15678:21:0::1;::::0;;15564:407::o;15641:323::-:1;15736:17;::::0;:22;15732:136:::1;;15825:6;15805:17;;15787:15;:35;;;;:::i;:::-;:44;15779:73;;;::::0;-1:-1:-1;;;15779:73:0;;9316:2:1;15779:73:0::1;::::0;::::1;9298:21:1::0;9355:2;9335:18;;;9328:30;-1:-1:-1;;;9374:18:1;;;9367:46;9430:18;;15779:73:0::1;9114:340:1::0;15779:73:0::1;-1:-1:-1::0;;;;;15882:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;:20;;-1:-1:-1;;15882:20:0::1;15898:4;15882:20;::::0;;15937:15:::1;15917:17;:35:::0;15564:407;;:::o;14005:173::-;14069:4;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;14118:9:::1;::::0;14086:62:::1;::::0;14103:4:::1;::::0;-1:-1:-1;;;;;14118:9:0::1;-1:-1:-1::0;;14086:8:0::1;:62::i;:::-;-1:-1:-1::0;14166:4:0::1;14005:173:::0;:::o;20295:225::-;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;20357:14:::1;::::0;::::1;;20356:15;20348:52;;;::::0;-1:-1:-1;;;20348:52:0;;9661:2:1;20348:52:0::1;::::0;::::1;9643:21:1::0;9700:2;9680:18;;;9673:30;9739:26;9719:18;;;9712:54;9783:18;;20348:52:0::1;9459:348:1::0;20348:52:0::1;20448:9;::::0;20427:30:::1;::::0;20431:15:::1;20427:30;:::i;:::-;20411:15;:46:::0;20491:14:::1;:21:::0;;-1:-1:-1;;20491:21:0::1;20508:4;20491:21;::::0;;20295:225::o;14723:::-;1142:10;14816:4;14865:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14865:34:0;;;;;;;;;;14816:4;;14833:85;;14856:7;;14865:52;;14902:15;;14865:52;:::i;13344:167::-;13422:4;13439:42;1142:10;13463:9;13474:6;13439:9;:42::i;:::-;-1:-1:-1;13499:4:0;;13344:167;-1:-1:-1;;;13344:167:0:o;17344:165::-;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;17419:19:::1;:30:::0;;;::::1;;;;-1:-1:-1::0;;17419:30:0;;::::1;;::::0;;17465:36:::1;::::0;::::1;::::0;::::1;::::0;17441:8;2173:14:1;2166:22;2148:41;;2136:2;2121:18;;2008:187;17465:36:0::1;;;;;;;;17344:165:::0;:::o;11369:188::-;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;11468:5:::1;:23:::0;;-1:-1:-1;;;;;;11468:23:0::1;-1:-1:-1::0;;;;;11468:23:0;::::1;::::0;;::::1;::::0;;;11502:14:::1;11517:10;11535:13;11539:9:::0;11535:2:::1;:13;:::i;:::-;11528:20;::::0;:6;:20:::1;:::i;:::-;11502:47;::::0;-1:-1:-1;;;;;;11502:47:0::1;::::0;;;;;;-1:-1:-1;;;;;11599:32:1;;;11502:47:0::1;::::0;::::1;11581:51:1::0;11648:18;;;11641:34;11554:18;;11502:47:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11369:188:::0;;;:::o;14982:542::-;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;15053:20:::1;15086:9;15053:43;;15107:16;15137:10;-1:-1:-1::0;;;;;15137:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15126:40:0::1;;15175:4;15182:10;-1:-1:-1::0;;;;;15182:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15126:74;::::0;-1:-1:-1;;;;;;15126:74:0::1;::::0;;;;;;-1:-1:-1;;;;;12422:15:1;;;15126:74:0::1;::::0;::::1;12404:34:1::0;12474:15;;12454:18;;;12447:43;12339:18;;15126:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15107:93:::0;-1:-1:-1;;;;;;15215:22:0;::::1;15211:200;;15274:10;-1:-1:-1::0;;;;;15274:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15263:43:0::1;;15315:4;15322:10;-1:-1:-1::0;;;;;15322:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15263:77;::::0;-1:-1:-1;;;;;;15263:77:0::1;::::0;;;;;;-1:-1:-1;;;;;12422:15:1;;;15263:77:0::1;::::0;::::1;12404:34:1::0;12474:15;;12454:18;;;12447:43;12339:18;;15263:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15254:6;:86:::0;;-1:-1:-1;;;;;;15254:86:0::1;-1:-1:-1::0;;;;;15254:86:0;;;::::1;::::0;;;::::1;::::0;;15211:200:::1;;;15382:6;:17:::0;;-1:-1:-1;;;;;;15382:17:0::1;-1:-1:-1::0;;;;;15382:17:0;::::1;;::::0;;15211:200:::1;15421:9;:22:::0;;-1:-1:-1;;;;;;15421:22:0::1;-1:-1:-1::0;;;;;15421:22:0;::::1;::::0;;::::1;::::0;;;15454:62:::1;::::0;15471:4:::1;::::0;-1:-1:-1;;15454:8:0::1;:62::i;:::-;15042:482;;14982:542:::0;:::o;17203:133::-;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;17282:11:::1;:46:::0;;-1:-1:-1;;;;;;17282:46:0::1;-1:-1:-1::0;;;;;17282:46:0;;;::::1;::::0;;;::::1;::::0;;17203:133::o;20718:122::-;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;11921:7;11948:6;;20784:48:::1;::::0;-1:-1:-1;;;;;11948:6:0;;;;20810:21:::1;20784:48:::0;::::1;;;::::0;20810:21;;20784:48;11921:7;20784:48;20810:21;11948:6;20784:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20718:122::o:0;20528:85::-;9401:6;;-1:-1:-1;;;;;9401:6:0;1142:10;9401:22;9393:52;;;;-1:-1:-1;;;9393:52:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20590:10:0::1;;::::0;;;:5:::1;:10;::::0;;;;:15;;-1:-1:-1;;20590:15:0::1;20601:4;20590:15;::::0;;20528:85::o;13688:309::-;-1:-1:-1;;;;;13782:20:0;;13774:52;;;;-1:-1:-1;;;13774:52:0;;12703:2:1;13774:52:0;;;12685:21:1;12742:2;12722:18;;;12715:30;-1:-1:-1;;;12761:18:1;;;12754:49;12820:18;;13774:52:0;12501:343:1;13774:52:0;-1:-1:-1;;;;;13845:21:0;;13837:53;;;;-1:-1:-1;;;13837:53:0;;12703:2:1;13837:53:0;;;12685:21:1;12742:2;12722:18;;;12715:30;-1:-1:-1;;;12761:18:1;;;12754:49;12820:18;;13837:53:0;12501:343:1;13837:53:0;-1:-1:-1;;;;;13903:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;13956:33;;160:25:1;;;13956:33:0;;133:18:1;13956:33:0;;;;;;;13688:309;;;:::o;17885:1482::-;17964:4;-1:-1:-1;;;;;17989:18:0;;17981:68;;;;-1:-1:-1;;;17981:68:0;;13051:2:1;17981:68:0;;;13033:21:1;13090:2;13070:18;;;13063:30;13129:34;13109:18;;;13102:62;-1:-1:-1;;;13180:18:1;;;13173:35;13225:19;;17981:68:0;12849:401:1;17981:68:0;-1:-1:-1;;;;;18068:16:0;;18060:64;;;;-1:-1:-1;;;18060:64:0;;13457:2:1;18060:64:0;;;13439:21:1;13496:2;13476:18;;;13469:30;13535:34;13515:18;;;13508:62;-1:-1:-1;;;13586:18:1;;;13579:33;13629:19;;18060:64:0;13255:399:1;18060:64:0;-1:-1:-1;;;;;18144:11:0;;;;;;:5;:11;;;;;;;;18143:12;18135:46;;;;-1:-1:-1;;;18135:46:0;;13861:2:1;18135:46:0;;;13843:21:1;13900:2;13880:18;;;13873:30;-1:-1:-1;;;13919:18:1;;;13912:51;13980:18;;18135:46:0;13659:345:1;18135:46:0;18217:1;18208:6;:10;18200:64;;;;-1:-1:-1;;;18200:64:0;;14211:2:1;18200:64:0;;;14193:21:1;14250:2;14230:18;;;14223:30;14289:34;14269:18;;;14262:62;-1:-1:-1;;;14340:18:1;;;14333:39;14389:19;;18200:64:0;14009:405:1;18200:64:0;18278:20;18289:4;18295:2;18278:10;:20::i;:::-;18275:152;;;18319:14;;;;18315:89;;18354:34;;-1:-1:-1;;;18354:34:0;;14621:2:1;18354:34:0;;;14603:21:1;14660:2;14640:18;;;14633:30;14699:26;14679:18;;;14672:54;14743:18;;18354:34:0;14419:348:1;18315:89:0;-1:-1:-1;;;;;18472:25:0;;18439:12;18472:25;;;:19;:25;;;;;;18454:4;;18472:25;;;:52;;-1:-1:-1;;;;;;18501:23:0;;;;;;:19;:23;;;;;;;;18472:52;18469:98;;;-1:-1:-1;18550:5:0;18469:98;-1:-1:-1;;;;;18613:11:0;;;;;;:7;:11;;;;;;;;18609:688;;;18711:6;;;;18710:7;:47;;;;-1:-1:-1;18738:19:0;;;;;;;18710:47;:89;;;;-1:-1:-1;;;;;;18779:20:0;;;;;;:16;:20;;;;;;;;18778:21;18710:89;:133;;;;-1:-1:-1;;;;;;18821:22:0;;;;;;:16;:22;;;;;;;;18820:23;18710:133;18706:574;;;18927:4;18878:28;13312:16;;;:7;:16;;;;;;18980:13;;18956:37;;;;;:82;;;19023:15;19008:12;;18997:8;;:23;;;;:::i;:::-;:41;18956:82;18952:313;;;19090:10;;19066:20;:34;19063:77;;-1:-1:-1;19127:10:0;;19063:77;19162:34;19175:20;19162:12;:34::i;:::-;19230:15;19219:8;:26;18952:313;18859:421;18706:574;19315:44;19333:4;19339:2;19343:6;19351:7;19315:17;:44::i;:::-;19308:51;17885:1482;-1:-1:-1;;;;;17885:1482:0:o;17517:360::-;17585:4;11948:6;;-1:-1:-1;;;;;17609:15:0;;;11948:6;;17609:15;;;;:45;;-1:-1:-1;11921:7:0;11948:6;-1:-1:-1;;;;;17641:13:0;;;11948:6;;17641:13;;17609:45;:82;;;;-1:-1:-1;11921:7:0;11948:6;-1:-1:-1;;;;;11948:6:0;17671:9;:20;;17609:82;:121;;;;-1:-1:-1;;;;;;17709:21:0;;;;;;:17;:21;;;;;;;;17708:22;17609:121;:162;;;;-1:-1:-1;;;;;;17748:23:0;;;;;;:17;:23;;;;;;;;17747:24;17609:162;:189;;;;-1:-1:-1;;;;;;17788:10:0;;8341:42;17788:10;;17609:189;:222;;;;-1:-1:-1;;;;;;17815:16:0;;;;17609:222;:260;;;;-1:-1:-1;;;;;;17848:21:0;;17864:4;17848:21;;17602:267;17517:360;-1:-1:-1;;;17517:360:0:o;19375:890::-;9295:6;:13;;-1:-1:-1;;9295:13:0;9304:4;9295:13;;;19462:7:::1;:13:::0;::::1;::::0;;;::::1;;19458:44:::0;19495:7:::1;19458:44;19537:4;19517:26;::::0;;;:11:::1;:26;::::0;;;;;;;19552:9:::1;::::0;-1:-1:-1;;;;;19552:9:0::1;19517:46:::0;;;;;;;;-1:-1:-1;;19517:67:0::1;19514:165;;19621:4;19601:26;::::0;;;:11:::1;:26;::::0;;;;;;;19636:9:::1;::::0;-1:-1:-1;;;;;19636:9:0::1;19601:46:::0;;;;;;;-1:-1:-1;;19601:66:0;;19514:165:::1;19777:16;::::0;;19791:1:::1;19777:16:::0;;;;;::::1;::::0;;19714:20;;19691::::1;::::0;19777:16;19791:1;19777:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19777:16:0::1;19753:40;;19822:4;19804;19809:1;19804:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19804:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;19848:9:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;19848:16:0;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;19804:7;;19848:16;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19838:4;19843:1;19838:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19838:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;19877:9:::1;::::0;:191:::1;::::0;-1:-1:-1;;;19877:191:0;;:9;::::1;::::0;:60:::1;::::0;:191:::1;::::0;19952:12;;19877:9:::1;::::0;19995:4;;20022::::1;::::0;20042:15:::1;::::0;19877:191:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20117:1;20093:21;:25;20089:169;;;20191:11;:23:::0;:43:::1;::::0;20155:21:::1;::::0;-1:-1:-1;;;;;20191:23:0::1;::::0;:43;::::1;;;::::0;20155:21;;20135:17:::1;20191:43:::0;20135:17;20191:43;20155:21;20191:23;:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20120:138;20089:169;19447:818;;9319:1;-1:-1:-1::0;9331:6:0;:14;;-1:-1:-1;;9331:14:0;;;19375:890::o;22228:346::-;-1:-1:-1;;;;;22345:13:0;;22328:4;22345:13;;;:7;:13;;;;;:23;;22362:6;;22345:13;22328:4;;22345:23;;22362:6;;22345:23;:::i;:::-;;;;-1:-1:-1;22379:22:0;;-1:-1:-1;22405:7:0;22404:48;;22446:6;22404:48;;;22416:27;22426:4;22432:2;22436:6;22416:9;:27::i;:::-;-1:-1:-1;;;;;22463:11:0;;;;;;:7;:11;;;;;:29;;22379:73;;-1:-1:-1;22379:73:0;;22463:11;;;:29;;22379:73;;22463:29;:::i;:::-;;;;;;;;22525:2;-1:-1:-1;;;;;22510:34:0;22519:4;-1:-1:-1;;;;;22510:34:0;;22529:14;22510:34;;;;160:25:1;;148:2;133:18;;14:177;22510:34:0;;;;;;;;-1:-1:-1;22562:4:0;;22228:346;-1:-1:-1;;;;;22228:346:0:o;20848:1340::-;20988:6;;20927:7;;;;-1:-1:-1;;;;;20988:6:0;;;20980:14;;;;20976:224;;-1:-1:-1;21024:9:0;:16;;;20976:224;;;21068:6;;-1:-1:-1;;;;;21068:6:0;;;21062:12;;;;21058:142;;-1:-1:-1;21104:9:0;:17;;;;;;21058:142;;;-1:-1:-1;21167:9:0;:21;;;;;;21058:142;21254:10;:27;21212:17;;21254:27;;;;;21232:19;21241:10;21232:6;:19;:::i;:::-;:49;;;;:::i;:::-;21212:69;;21320:15;21297;;21313:2;21297:18;;;;:::i;:::-;:39;21294:887;;;21375:13;21367:6;:21;21364:536;;21427:6;;-1:-1:-1;;;;;21427:6:0;;;21421:12;;;;21418:177;;-1:-1:-1;;;;;21467:9:0;;;;;;:5;:9;;;;;:14;;-1:-1:-1;;21467:14:0;21477:4;21467:14;;;21418:177;;;21523:6;;-1:-1:-1;;;;;21523:6:0;;;21519:10;;;;21516:79;;-1:-1:-1;;;;;21563:11:0;;;;;;:5;:11;;;;;:16;;-1:-1:-1;;21563:16:0;21575:4;21563:16;;;21516:79;21625:4;21609:22;;;;:7;:22;;;;;:35;;21635:9;;21609:22;:35;;21635:9;;21609:35;:::i;:::-;;;;-1:-1:-1;;21664:40:0;;160:25:1;;;21687:4:0;;-1:-1:-1;;;;;21664:40:0;;;;;148:2:1;133:18;21664:40:0;;;;;;;21364:536;;;21805:4;21789:22;;;;:7;:22;;;;;:35;;21815:9;;21789:22;:35;;21815:9;;21789:35;:::i;:::-;;;;-1:-1:-1;;21844:40:0;;160:25:1;;;21867:4:0;;-1:-1:-1;;;;;21844:40:0;;;;;148:2:1;133:18;21844:40:0;;;;;;;21364:536;21947:18;21956:9;21947:6;:18;:::i;:::-;21940:25;;;;;;774:548:1;886:4;915:2;944;933:9;926:21;976:6;970:13;1019:6;1014:2;1003:9;999:18;992:34;1044:1;1054:140;1068:6;1065:1;1062:13;1054:140;;;1163:14;;;1159:23;;1153:30;1129:17;;;1148:2;1125:26;1118:66;1083:10;;1054:140;;;1058:3;1243:1;1238:2;1229:6;1218:9;1214:22;1210:31;1203:42;1313:2;1306;1302:7;1297:2;1289:6;1285:15;1281:29;1270:9;1266:45;1262:54;1254:62;;;;774:548;;;;:::o;1552:131::-;-1:-1:-1;;;;;1627:31:1;;1617:42;;1607:70;;1673:1;1670;1663:12;1688:315;1756:6;1764;1817:2;1805:9;1796:7;1792:23;1788:32;1785:52;;;1833:1;1830;1823:12;1785:52;1872:9;1859:23;1891:31;1916:5;1891:31;:::i;:::-;1941:5;1993:2;1978:18;;;;1965:32;;-1:-1:-1;;;1688:315:1:o;2649:456::-;2726:6;2734;2742;2795:2;2783:9;2774:7;2770:23;2766:32;2763:52;;;2811:1;2808;2801:12;2763:52;2850:9;2837:23;2869:31;2894:5;2869:31;:::i;:::-;2919:5;-1:-1:-1;2976:2:1;2961:18;;2948:32;2989:33;2948:32;2989:33;:::i;:::-;2649:456;;3041:7;;-1:-1:-1;;;3095:2:1;3080:18;;;;3067:32;;2649:456::o;3299:159::-;3366:20;;3426:6;3415:18;;3405:29;;3395:57;;3448:1;3445;3438:12;3395:57;3299:159;;;:::o;3463:328::-;3537:6;3545;3553;3606:2;3594:9;3585:7;3581:23;3577:32;3574:52;;;3622:1;3619;3612:12;3574:52;3645:28;3663:9;3645:28;:::i;:::-;3635:38;;3692:37;3725:2;3714:9;3710:18;3692:37;:::i;:::-;3682:47;;3748:37;3781:2;3770:9;3766:18;3748:37;:::i;:::-;3738:47;;3463:328;;;;;:::o;3796:454::-;3891:6;3899;3907;3915;3923;3976:3;3964:9;3955:7;3951:23;3947:33;3944:53;;;3993:1;3990;3983:12;3944:53;-1:-1:-1;;4016:23:1;;;4086:2;4071:18;;4058:32;;-1:-1:-1;4137:2:1;4122:18;;4109:32;;4188:2;4173:18;;4160:32;;-1:-1:-1;4239:3:1;4224:19;4211:33;;-1:-1:-1;3796:454:1;-1:-1:-1;3796:454:1:o;4255:247::-;4314:6;4367:2;4355:9;4346:7;4342:23;4338:32;4335:52;;;4383:1;4380;4373:12;4335:52;4422:9;4409:23;4441:31;4466:5;4441:31;:::i;4507:184::-;4565:6;4618:2;4606:9;4597:7;4593:23;4589:32;4586:52;;;4634:1;4631;4624:12;4586:52;4657:28;4675:9;4657:28;:::i;4696:118::-;4782:5;4775:13;4768:21;4761:5;4758:32;4748:60;;4804:1;4801;4794:12;4819:382;4884:6;4892;4945:2;4933:9;4924:7;4920:23;4916:32;4913:52;;;4961:1;4958;4951:12;4913:52;5000:9;4987:23;5019:31;5044:5;5019:31;:::i;:::-;5069:5;-1:-1:-1;5126:2:1;5111:18;;5098:32;5139:30;5098:32;5139:30;:::i;:::-;5188:7;5178:17;;;4819:382;;;;;:::o;5386:241::-;5442:6;5495:2;5483:9;5474:7;5470:23;5466:32;5463:52;;;5511:1;5508;5501:12;5463:52;5550:9;5537:23;5569:28;5591:5;5569:28;:::i;5924:388::-;5992:6;6000;6053:2;6041:9;6032:7;6028:23;6024:32;6021:52;;;6069:1;6066;6059:12;6021:52;6108:9;6095:23;6127:31;6152:5;6127:31;:::i;:::-;6177:5;-1:-1:-1;6234:2:1;6219:18;;6206:32;6247:33;6206:32;6247:33;:::i;6317:383::-;6394:6;6402;6410;6463:2;6451:9;6442:7;6438:23;6434:32;6431:52;;;6479:1;6476;6469:12;6431:52;6518:9;6505:23;6537:31;6562:5;6537:31;:::i;:::-;6587:5;6639:2;6624:18;;6611:32;;-1:-1:-1;6690:2:1;6675:18;;;6662:32;;6317:383;-1:-1:-1;;;6317:383:1:o;7189:127::-;7250:10;7245:3;7241:20;7238:1;7231:31;7281:4;7278:1;7271:15;7305:4;7302:1;7295:15;7321:128;7388:9;;;7409:11;;;7406:37;;;7423:18;;:::i;7454:125::-;7519:9;;;7540:10;;;7537:36;;;7553:18;;:::i;7584:341::-;7786:2;7768:21;;;7825:2;7805:18;;;7798:30;-1:-1:-1;;;7859:2:1;7844:18;;7837:47;7916:2;7901:18;;7584:341::o;8289:168::-;8362:9;;;8393;;8410:15;;;8404:22;;8390:37;8380:71;;8431:18;;:::i;8462:217::-;8502:1;8528;8518:132;;8572:10;8567:3;8563:20;8560:1;8553:31;8607:4;8604:1;8597:15;8635:4;8632:1;8625:15;8518:132;-1:-1:-1;8664:9:1;;8462:217::o;8684:425::-;8886:2;8868:21;;;8925:2;8905:18;;;8898:30;8964:34;8959:2;8944:18;;8937:62;9035:31;9030:2;9015:18;;9008:59;9099:3;9084:19;;8684:425::o;9812:216::-;9876:9;;;9904:11;;;9851:3;9934:9;;9962:10;;9958:19;;9987:10;;9979:19;;9955:44;9952:70;;;10002:18;;:::i;:::-;9952:70;;9812:216;;;;:::o;10033:422::-;10122:1;10165:5;10122:1;10179:270;10200:7;10190:8;10187:21;10179:270;;;10259:4;10255:1;10251:6;10247:17;10241:4;10238:27;10235:53;;;10268:18;;:::i;:::-;10318:7;10308:8;10304:22;10301:55;;;10338:16;;;;10301:55;10417:22;;;;10377:15;;;;10179:270;;;10183:3;10033:422;;;;;:::o;10460:806::-;10509:5;10539:8;10529:80;;-1:-1:-1;10580:1:1;10594:5;;10529:80;10628:4;10618:76;;-1:-1:-1;10665:1:1;10679:5;;10618:76;10710:4;10728:1;10723:59;;;;10796:1;10791:130;;;;10703:218;;10723:59;10753:1;10744:10;;10767:5;;;10791:130;10828:3;10818:8;10815:17;10812:43;;;10835:18;;:::i;:::-;-1:-1:-1;;10891:1:1;10877:16;;10906:5;;10703:218;;11005:2;10995:8;10992:16;10986:3;10980:4;10977:13;10973:36;10967:2;10957:8;10954:16;10949:2;10943:4;10940:12;10936:35;10933:77;10930:159;;;-1:-1:-1;11042:19:1;;;11074:5;;10930:159;11121:34;11146:8;11140:4;11121:34;:::i;:::-;11191:6;11187:1;11183:6;11179:19;11170:7;11167:32;11164:58;;;11202:18;;:::i;:::-;11240:20;;10460:806;-1:-1:-1;;;10460:806:1:o;11271:131::-;11331:5;11360:36;11387:8;11381:4;11360:36;:::i;11686:245::-;11753:6;11806:2;11794:9;11785:7;11781:23;11777:32;11774:52;;;11822:1;11819;11812:12;11774:52;11854:9;11848:16;11873:28;11895:5;11873:28;:::i;11936:251::-;12006:6;12059:2;12047:9;12038:7;12034:23;12030:32;12027:52;;;12075:1;12072;12065:12;12027:52;12107:9;12101:16;12126:31;12151:5;12126:31;:::i;14904:127::-;14965:10;14960:3;14956:20;14953:1;14946:31;14996:4;14993:1;14986:15;15020:4;15017:1;15010:15;15036:980;15298:4;15346:3;15335:9;15331:19;15377:6;15366:9;15359:25;15403:2;15441:6;15436:2;15425:9;15421:18;15414:34;15484:3;15479:2;15468:9;15464:18;15457:31;15508:6;15543;15537:13;15574:6;15566;15559:22;15612:3;15601:9;15597:19;15590:26;;15651:2;15643:6;15639:15;15625:29;;15672:1;15682:195;15696:6;15693:1;15690:13;15682:195;;;15761:13;;-1:-1:-1;;;;;15757:39:1;15745:52;;15852:15;;;;15817:12;;;;15793:1;15711:9;15682:195;;;-1:-1:-1;;;;;;;15933:32:1;;;;15928:2;15913:18;;15906:60;-1:-1:-1;;;15997:3:1;15982:19;15975:35;15894:3;15036:980;-1:-1:-1;;;15036:980:1:o

Swarm Source

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