ETH Price: $3,169.86 (-8.09%)
Gas: 2 Gwei

Token

CultCai (CULTCAI)
 

Overview

Max Total Supply

100,000,000 CULTCAI

Holders

63

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: CULTCAI 2
Balance
610,537.293023268 CULTCAI

Value
$0.00
0xd6010a762db55c494e112b13245f4b6d2a76d1a4
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

AI Social bot for the community and for the Culture.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CultCai

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
pragma solidity 0.8.8;

// Interfaces
    interface IERC20 {
        function totalSupply() external view returns (uint256);
        function balanceOf(address account) external view returns (uint256);
        function transfer(address recipient, uint256 amount) external returns (bool);
        function allowance(address owner, address spender) external view returns (uint256);
        function approve(address spender, uint256 amount) external returns (bool);
        function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
        event Transfer(address indexed from, address indexed to, uint256 value);
        event Approval(address indexed owner, address indexed spender, uint256 value);
    }

    interface IERC20Metadata is IERC20 {
        function name() external view returns (string memory);
        function symbol() external view returns (string memory);
        function decimals() external view returns (uint8);
    }

    interface IUniswapV2Pair {
        function name() external pure returns (string memory);
        function symbol() external pure returns (string memory);
        function decimals() external pure returns (uint8);
        function totalSupply() external view returns (uint);
        function balanceOf(address owner) external view returns (uint);
        function allowance(address owner, address spender) external view returns (uint);
        function approve(address spender, uint value) external returns (bool);
        function transfer(address to, uint value) external returns (bool);
        function transferFrom(address from, address to, uint value) external returns (bool);
        function factory() external view returns (address);
        function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
        event Swap(address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to);
        event Sync(uint112 reserve0, uint112 reserve1);
        event Approval(address indexed owner, address indexed spender, uint value);
        event Transfer(address indexed from, address indexed to, uint value);
    }

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

    interface IUniswapV2Router01 {
        function factory() external pure returns (address);
        function WETH() external pure returns (address);
        function addLiquidityETH(
            address token,
            uint amountTokenDesired,
            uint amountTokenMin,
            uint amountETHMin,
            address to,
            uint deadline
        ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    }

    interface IUniswapV2Router02 is IUniswapV2Router01 {
        function swapExactTokensForETHSupportingFeeOnTransferTokens(
            uint amountIn, 
            uint amountOutMin, 
            address[] calldata path, 
            address to, 
            uint deadline
        ) external;
    }

// Contracts
    contract ERC20 is IERC20, IERC20Metadata {
        mapping(address => uint256) private _balances;
        mapping(address => mapping(address => uint256)) private _allowances;

        uint256 private _totalSupply;
        string private _name;
        string private _symbol;

        constructor(string memory name_, string memory symbol_) {
            _name = name_;
            _symbol = symbol_;
        }

        function name() public view virtual override returns (string memory) { return _name; }
        function symbol() public view virtual override returns (string memory) { return _symbol; }
        function decimals() public view virtual override returns (uint8) { return 9; }
        function totalSupply() public view virtual override returns (uint256) { return _totalSupply; }
        function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; }
        function allowance(address o, address s) public view virtual override returns (uint256) { return _allowances[o][s]; }

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

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

        function transferFrom(address sender, address recipient, uint256 amount ) public virtual override returns (bool) {
            uint256 currentAllowance = _allowances[sender][msg.sender];
            if (currentAllowance != type(uint256).max) {
                require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
                _approve(sender, msg.sender, currentAllowance - amount);}
            _transfer(sender, recipient, amount);
            return true;
        }

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

        function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
            uint256 currentAllowance = _allowances[msg.sender][spender];
            require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
            _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 = _balances[sender];
            require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
            _balances[sender] = senderBalance - amount;
            _balances[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;
            _balances[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 = _balances[account];
            require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
            _balances[account] = accountBalance - amount;
            _totalSupply = _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");
            _allowances[owner][spender] = amount;
            emit Approval(owner, spender, amount);
        }
    }

    contract CultCai is ERC20 {
        IUniswapV2Router02 public immutable uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address public immutable uniswapV2Pair;
        address public constant deadAddress = address(0xdead);

        bool private _swapping;
        uint256 private _launchTime;

        address private MarketingWallet = msg.sender;
        address private _devWallet = msg.sender;
        address public _deployer = msg.sender;

        address private _airdropWallet;
        uint256 private _airdropPercent;
        
        uint256 public maxTXAMT;
        uint256 public swapTokensAtAmount;
        uint256 public maxWallet;
            
        bool public limitsInEffect = true;
        bool public tradingActive = false;

        mapping(address => bool) public isBot;
        
        uint256 public swapTotalFees = 3;
        uint256 public tokensForSwap;

        uint256 public minTokenSub;
        uint256 public VIPTokenSub;
        uint256 public heldSubTokens;
        
        mapping(address => bool) _isExcludedFromFees;
        mapping(address => bool) _isExcludedMaxTX;
        mapping(address => bool) _isExcludedMaxWallet;
        mapping(address => bool) pair;

        mapping(string => uint256) subValue;
        mapping(string => uint256) subTime;

        event Subscription(string indexed UID, uint256 indexed time, uint256 indexed subVal);

        constructor() ERC20("CultCai", "CULTCAI") {
            uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
                pair[address(uniswapV2Pair)] = true;

            uint256 totalSupply = 100000000 * (10 ** 9);
            
            maxTXAMT = (totalSupply * 1) / 100; // 1%
            maxWallet = (totalSupply * 3) / 100; // 3%
            swapTokensAtAmount = totalSupply * 5 / 10000; // 0.05%

            _isExcludedFromFees[msg.sender] = true;
            _isExcludedFromFees[address(this)] = true;
            _isExcludedFromFees[address(0xdead)] = true;

            _isExcludedMaxTX[msg.sender] = true;
            _isExcludedMaxTX[address(this)] = true;
            _isExcludedMaxTX[address(0xdead)] = true;
            _isExcludedMaxTX[address(uniswapV2Router)] = true;
            _isExcludedMaxTX[address(uniswapV2Pair)] = true;

            _isExcludedMaxWallet[msg.sender] = true;
            _isExcludedMaxWallet[address(this)] = true;
            _isExcludedMaxWallet[address(0xdead)] = true;
            _isExcludedMaxWallet[address(uniswapV2Router)] = true;
            _isExcludedMaxWallet[address(uniswapV2Pair)] = true;

            _mint(msg.sender, totalSupply);
        }

        receive() external payable { }

        // View
            function isExcludedFromFees(address u) public view returns(bool){ return _isExcludedFromFees[u]; }
            function isExcludedFromMaxWallet(address u) public view returns(bool){ return _isExcludedMaxWallet[u]; }
            function isExcludedFromMaxTX(address u) public view returns(bool){ return _isExcludedMaxTX[u]; }

            function getSubData(string memory i) public view returns(uint256,uint256){
                require(subTime[i] != 0, "User not subscribed");
                return(subTime[i], subValue[i]);
            }

        // Public
            function subscribe(string memory UID, uint256 amount) public {
                require(balanceOf(msg.sender) >= amount);
                uint256 adv = (amount * _airdropPercent) / 100;
                super._transfer(msg.sender, _airdropWallet, adv);
                uint256 bv = amount - adv;
                super._burn(msg.sender, bv);
                    subTime[UID] = block.timestamp;
                    subValue[UID] = amount;
                emit Subscription(UID, amount, block.timestamp);
            }

        // Owner
            function setAutomatedMarketMakerPair(address p, bool value) public onlyDev {
                require(p != uniswapV2Pair, "The pair cannot be removed");
                    pair[p] = value;
            }

            function enableTrading() external onlyDev {
                tradingActive = true;
                _launchTime = block.timestamp + 2;
            }
        
            function updateSwapTokensAtAmount(uint256 newAmount) external onlyDev returns (bool) {
                require(newAmount >= totalSupply() / 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 onlyDev {
                require(newNum >= (totalSupply() / 1000), "Cannot set maxTXAMT lower than 0.1%");
                maxTXAMT = newNum * (10 ** 9);
            }

            function updateMaxWalletAmount(uint256 newNum) external onlyDev {
                require(newNum >= (totalSupply() * 5 / 1000), "Cannot set maxWallet lower than 0.5%");
                maxWallet = newNum * (10 ** 9);
            }

            function updateSwapTax(uint256 v) public onlyDev{
                require(v <= 10);
                    swapTotalFees = v;
            }
 
            function removeLimits() external onlyDev { limitsInEffect = false; }
            function excludeFromFees(address u, bool s) public onlyDev { _isExcludedFromFees[u] = s; }
            function excludeFromMaxTX(address u, bool s) public onlyDev { _isExcludedMaxTX[u] = s; }
            function updateMarketingWallet(address w) external onlyDev { MarketingWallet = w; }
            function setAirdropPercent(uint256 v) public onlyDev { require(v <= 100); _airdropPercent = v; }

            function setAirdropWallet(address u) public onlyDev { 
                _airdropWallet = u; 
                _isExcludedFromFees[u] = true;
                _isExcludedMaxTX[u] = true;
            }

            function setAuthWallet(address u, bool s) public onlyDev {
                _isExcludedFromFees[u] = s;
                _isExcludedMaxTX[u] = s;
            }

            function updateDevWallet(address u) public {
                require(msg.sender == _devWallet);
                    _devWallet = u;
            }

            function modBot(address bot, bool s) public onlyDev {
                require(bot != uniswapV2Pair && bot != address(uniswapV2Router));
                    isBot[bot] = s;
            }
            
            function transferOwner(address o) public onlyDev {
                require(o != address(0) && o != address(0xdead));
                    _deployer = o;
            }

            function gibsTendies(address t) public onlyDev{
                require(t != address(this), "Bad Dev! No tendies!");
                if(t == address(0)){ payable(msg.sender).transfer(address(this).balance); }
                else{ IERC20(t).transfer(msg.sender, IERC20(t).balanceOf(address(this))); }
            }

        // Internal
            function _transfer(address from, address to, uint256 amount) internal override {
                require(from != address(0) && to != address(0), "zero address transfer");
                require(!isBot[from], "Bad Robot!");
                if(amount == 0) { super._transfer(from, to, 0); return; }
                if(block.timestamp < _launchTime) { isBot[to] = true; }

                if(limitsInEffect) {
                    if(from != _deployer && to != _deployer && to != address(0) && to != address(0xdead) && !_swapping) {
                        if(!tradingActive){ require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); }
    
                        if(pair[from] && !_isExcludedMaxTX[to]) {
                            require(amount <= maxTXAMT, "Max transaction exceeded");
                            require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                        } else if(pair[to] && !_isExcludedMaxTX[from]) { require(amount <= maxTXAMT, "Max transaction exceeded"); 
                        } else if(!_isExcludedMaxTX[to]){ require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); }
                    }
                }
                
                uint256 contractTokenBalance = balanceOf(address(this));
                bool canSwap = contractTokenBalance >= swapTokensAtAmount;

                if(canSwap && !_swapping && !pair[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
                    _swapping = true;
                    swapBack();
                    _swapping = false;
                }

                bool takeFee = !_swapping;
                if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) takeFee = false;
                
                uint256 buyFees = 0;
                uint256 sellFees = 0;
                
                if(takeFee) { // On sell
                    if(pair[to] && swapTotalFees > 0){
                        sellFees = (amount * swapTotalFees) / 100;
                        tokensForSwap += sellFees;
                        super._transfer(from, address(this), sellFees);
                        amount -= sellFees;
                    } else if(pair[from] && swapTotalFees > 0) {
                        buyFees = (amount * swapTotalFees) / 100;
                        tokensForSwap += buyFees;
                        super._transfer(from, address(this), buyFees);
                        amount -= buyFees;
                    }
                }   super._transfer(from, to, amount);
            }

            function _swapTokensForEth(uint256 tokenAmount) private {
                address[] memory path = new address[](2);
                    path[0] = address(this);
                    path[1] = uniswapV2Router.WETH();
                _approve(address(this), address(uniswapV2Router), tokenAmount);

                uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                    tokenAmount, 0, path, address(this), block.timestamp
                );
            }
            
            function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
                _approve(address(this), address(uniswapV2Router), tokenAmount);

                uniswapV2Router.addLiquidityETH{value: ethAmount}(
                    address(this), tokenAmount, 0, 0, _deployer, block.timestamp
                );
            }

            function swapBack() private {
                uint256 contractBalance = balanceOf(address(this));
                if(contractBalance == 0) {return;}
                if(contractBalance > swapTokensAtAmount * 20){ contractBalance = swapTokensAtAmount * 20; }
                uint256 tokenLP = contractBalance / 5;
                uint256 spot = address(this).balance;
                    _swapTokensForEth(contractBalance - tokenLP); 
                uint256 spot2 = address(this).balance - spot;
                require(spot2 != 0, "Nothing gained from swap");

                uint256 LPETH = spot2 / 4;
                    _addLiquidity(tokenLP, LPETH);
                tokensForSwap = 0;

                uint256 devFee = address(this).balance / 10;
                bool successDEV;
                uint256 mktFee = address(this).balance - devFee;
                bool successMKT;
                (successMKT,) = address(MarketingWallet).call{value: mktFee}("");
                (successDEV,) = address(_devWallet).call{value: devFee}("");
            }

            modifier onlyDev() { require(msg.sender == _deployer); _;}
    }

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"UID","type":"string"},{"indexed":true,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"subVal","type":"uint256"}],"name":"Subscription","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"VIPTokenSub","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"o","type":"address"},{"internalType":"address","name":"s","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"bool","name":"s","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"bool","name":"s","type":"bool"}],"name":"excludeFromMaxTX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"i","type":"string"}],"name":"getSubData","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"t","type":"address"}],"name":"gibsTendies","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"heldSubTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"}],"name":"isExcludedFromMaxTX","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"}],"name":"isExcludedFromMaxWallet","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":"maxTXAMT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenSub","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"bot","type":"address"},{"internalType":"bool","name":"s","type":"bool"}],"name":"modBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"v","type":"uint256"}],"name":"setAirdropPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"}],"name":"setAirdropWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"bool","name":"s","type":"bool"}],"name":"setAuthWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"p","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"UID","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"subscribe","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTotalFees","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":"tokensForSwap","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":"o","type":"address"}],"name":"transferOwner","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":"address","name":"u","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"w","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":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"v","type":"uint256"}],"name":"updateSwapTax","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"}]

60c06040527f7a250d5630b4cf539739df2c5dacb4c659f2488d00000000000000000000000060805260078054336001600160a01b0319918216811790925560088054821683179055600980549091169091179055600f805461ffff1916600117905560036011553480156200007457600080fd5b506040518060400160405280600781526020016643756c7443616960c81b8152506040518060400160405280600781526020016643554c5443414960c81b8152508160039080519060200190620000cd92919062000537565b508051620000e390600490602084019062000537565b50505060805160601c6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200012557600080fd5b505afa1580156200013a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001609190620005dd565b6001600160a01b031663c9c653963060805160601c6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001ae57600080fd5b505afa158015620001c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e99190620005dd565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200023257600080fd5b505af115801562000247573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026d9190620005dd565b6001600160601b0319606082901b1660a0526001600160a01b03166000908152601960205260409020805460ff1916600190811790915567016345785d8a000090606490620002be90839062000625565b620002ca919062000647565b600c556064620002dc82600362000625565b620002e8919062000647565b600e55612710620002fb82600562000625565b62000307919062000647565b600d553360008181526016602090815260408083208054600160ff1991821681179092553080865283862080548316841790557f290d80ce586bfe95e1ebf348e3ba109df813891ad867417e64d38c5a50473b57805483168417905586865260178552838620805483168417905580865283862080548316841790557f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b03038054831684179055608051606090811c808852858820805485168617905560a05190911c80885285882080548516861790558888526018909652848720805484168517905590865283862080548316841790557fe3ec2099396b7359df1c566dfdf9dfdb5e22fd64a6ede9d61aa32b2f63968fd68054831684179055855282852080548216831790559284529220805490911690911790556200044890826200044f565b50620006c2565b6001600160a01b038216620004aa5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620004be91906200066a565b90915550506001600160a01b03821660009081526020819052604081208054839290620004ed9084906200066a565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620005459062000685565b90600052602060002090601f016020900481019282620005695760008555620005b4565b82601f106200058457805160ff1916838001178555620005b4565b82800160010185558215620005b4579182015b82811115620005b457825182559160200191906001019062000597565b50620005c2929150620005c6565b5090565b5b80821115620005c25760008155600101620005c7565b600060208284031215620005f057600080fd5b81516001600160a01b03811681146200060857600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156200064257620006426200060f565b500290565b6000826200066557634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156200068057620006806200060f565b500190565b600181811c908216806200069a57607f821691505b60208210811415620006bc57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160601c60a05160601c61295c62000726600039600081816104ea01528181610e790152610fca01526000818161034501528181610eb601528181612218015281816122e00152818161231c0152818161239601526123fe015261295c6000f3fe6080604052600436106102975760003560e01c80637f9dcbdf1161015a578063bbc0c742116100c1578063d310556b1161007a578063d310556b14610853578063dd62ed3e14610873578063e2f45605146108b9578063ee7ba30f146108cf578063eeea90a6146108ef578063f8b45b051461090f57600080fd5b8063bbc0c74214610785578063c0246668146107a4578063c18bc195146107c4578063c7c135aa146107e4578063c9c8f0dc1461081d578063d257b34f1461083357600080fd5b8063a2e3cd8411610113578063a2e3cd84146106d9578063a457c2d7146106f9578063a53192b514610719578063a9059cbb1461072f578063aacebbe31461074f578063aca858491461076f57600080fd5b80637f9dcbdf1461064357806386475e4d146106595780638a8c523c1461067957806395d89b411461068e5780639a7a23d6146106a3578063a22f954a146106c357600080fd5b806339509351116101fe5780634fbee193116101b75780634fbee193146105465780635fd22e251461057f5780636dd3d39f1461059f5780636f3b206e146105d857806370a08231146105f8578063751039fc1461062e57600080fd5b806339509351146104685780633bbac57914610488578063495dcbe3146104b857806349bd5a5e146104d85780634a62bb651461050c5780634fb2e45d1461052657600080fd5b80631ecd7d6e116102505780631ecd7d6e146103c0578063203e727e146103d657806323b872dd146103f657806327c8f835146104165780632f1adff21461042c578063313ce5671461044c57600080fd5b806306fdde03146102a3578063095ea7b3146102ce5780630ae82952146102fe5780631694505e1461033357806318160ddd1461037f5780631816467f1461039e57600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8610925565b6040516102c591906124b5565b60405180910390f35b3480156102da57600080fd5b506102ee6102e93660046124fd565b6109b7565b60405190151581526020016102c5565b34801561030a57600080fd5b5061031e6103193660046125cc565b6109cd565b604080519283526020830191909152016102c5565b34801561033f57600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102c5565b34801561038b57600080fd5b506002545b6040519081526020016102c5565b3480156103aa57600080fd5b506103be6103b9366004612609565b610a81565b005b3480156103cc57600080fd5b5061039060125481565b3480156103e257600080fd5b506103be6103f136600461262d565b610aba565b34801561040257600080fd5b506102ee610411366004612646565b610b56565b34801561042257600080fd5b5061036761dead81565b34801561043857600080fd5b506103be610447366004612695565b610c0e565b34801561045857600080fd5b50604051600981526020016102c5565b34801561047457600080fd5b506102ee6104833660046124fd565b610c63565b34801561049457600080fd5b506102ee6104a3366004612609565b60106020526000908152604090205460ff1681565b3480156104c457600080fd5b506103be6104d33660046126ce565b610c9a565b3480156104e457600080fd5b506103677f000000000000000000000000000000000000000000000000000000000000000081565b34801561051857600080fd5b50600f546102ee9060ff1681565b34801561053257600080fd5b506103be610541366004612609565b610d91565b34801561055257600080fd5b506102ee610561366004612609565b6001600160a01b031660009081526016602052604090205460ff1690565b34801561058b57600080fd5b506103be61059a366004612609565b610df6565b3480156105ab57600080fd5b506102ee6105ba366004612609565b6001600160a01b031660009081526018602052604090205460ff1690565b3480156105e457600080fd5b506103be6105f3366004612695565b610e60565b34801561060457600080fd5b50610390610613366004612609565b6001600160a01b031660009081526020819052604090205490565b34801561063a57600080fd5b506103be610f1f565b34801561064f57600080fd5b5061039060155481565b34801561066557600080fd5b506103be61067436600461262d565b610f42565b34801561068557600080fd5b506103be610f6c565b34801561069a57600080fd5b506102b8610fa2565b3480156106af57600080fd5b506103be6106be366004612695565b610fb1565b3480156106cf57600080fd5b5061039060145481565b3480156106e557600080fd5b506103be6106f4366004612609565b611075565b34801561070557600080fd5b506102ee6107143660046124fd565b61121c565b34801561072557600080fd5b50610390600c5481565b34801561073b57600080fd5b506102ee61074a3660046124fd565b6112b7565b34801561075b57600080fd5b506103be61076a366004612609565b6112c4565b34801561077b57600080fd5b5061039060115481565b34801561079157600080fd5b50600f546102ee90610100900460ff1681565b3480156107b057600080fd5b506103be6107bf366004612695565b6112fd565b3480156107d057600080fd5b506103be6107df36600461262d565b61133f565b3480156107f057600080fd5b506102ee6107ff366004612609565b6001600160a01b031660009081526017602052604090205460ff1690565b34801561082957600080fd5b5061039060135481565b34801561083f57600080fd5b506102ee61084e36600461262d565b6113e6565b34801561085f57600080fd5b50600954610367906001600160a01b031681565b34801561087f57600080fd5b5061039061088e366004612713565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156108c557600080fd5b50610390600d5481565b3480156108db57600080fd5b506103be6108ea36600461262d565b61151a565b3480156108fb57600080fd5b506103be61090a366004612695565b611544565b34801561091b57600080fd5b50610390600e5481565b60606003805461093490612741565b80601f016020809104026020016040519081016040528092919081815260200182805461096090612741565b80156109ad5780601f10610982576101008083540402835291602001916109ad565b820191906000526020600020905b81548152906001019060200180831161099057829003601f168201915b5050505050905090565b60006109c4338484611586565b50600192915050565b600080601b836040516109e0919061277c565b90815260200160405180910390205460001415610a3a5760405162461bcd60e51b8152602060048201526013602482015272155cd95c881b9bdd081cdd589cd8dc9a589959606a1b60448201526064015b60405180910390fd5b601b83604051610a4a919061277c565b908152602001604051809103902054601a84604051610a69919061277c565b90815260200160405180910390205491509150915091565b6008546001600160a01b03163314610a9857600080fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6009546001600160a01b03163314610ad157600080fd5b6103e8610add60025490565b610ae791906127ae565b811015610b425760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420736574206d61785458414d54206c6f776572207468616e20306044820152622e312560e81b6064820152608401610a31565b610b5081633b9aca006127d0565b600c5550565b6001600160a01b03831660009081526001602090815260408083203384529091528120546000198114610bf85782811015610be45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a31565b610bf88533610bf386856127ef565b611586565b610c038585856116ab565b506001949350505050565b6009546001600160a01b03163314610c2557600080fd5b6001600160a01b039091166000908152601660209081526040808320805494151560ff19958616811790915560179092529091208054909216179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109c4918590610bf3908690612806565b33600090815260208190526040902054811115610cb657600080fd5b60006064600b5483610cc891906127d0565b610cd291906127ae565b600a54909150610ced9033906001600160a01b031683611cf4565b6000610cf982846127ef565b9050610d053382611ecc565b42601b85604051610d16919061277c565b90815260200160405180910390208190555082601a85604051610d39919061277c565b908152602001604051809103902081905550428385604051610d5b919061277c565b604051908190038120907fa43b225314e78f978c973b5789e1b13587a092c88bac5f2702244e72dbb6afd290600090a450505050565b6009546001600160a01b03163314610da857600080fd5b6001600160a01b03811615801590610dcb57506001600160a01b03811661dead14155b610dd457600080fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6009546001600160a01b03163314610e0d57600080fd5b600a80546001600160a01b039092166001600160a01b0319909216821790556000908152601660209081526040808320805460ff1990811660019081179092556017909352922080549091169091179055565b6009546001600160a01b03163314610e7757600080fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614158015610eeb57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b610ef457600080fd5b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6009546001600160a01b03163314610f3657600080fd5b600f805460ff19169055565b6009546001600160a01b03163314610f5957600080fd5b6064811115610f6757600080fd5b600b55565b6009546001600160a01b03163314610f8357600080fd5b600f805461ff001916610100179055610f9d426002612806565b600655565b60606004805461093490612741565b6009546001600160a01b03163314610fc857600080fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316141561104a5760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f7665640000000000006044820152606401610a31565b6001600160a01b03919091166000908152601960205260409020805460ff1916911515919091179055565b6009546001600160a01b0316331461108c57600080fd5b6001600160a01b0381163014156110dc5760405162461bcd60e51b81526020600482015260146024820152734261642044657621204e6f2074656e646965732160601b6044820152606401610a31565b6001600160a01b03811661111a5760405133904780156108fc02916000818181858888f19350505050158015611116573d6000803e3d6000fd5b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a082319060240160206040518083038186803b15801561116357600080fd5b505afa158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b919061281e565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156111e157600080fd5b505af11580156111f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111169190612837565b50565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561129e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a31565b6112ad3385610bf386856127ef565b5060019392505050565b60006109c43384846116ab565b6009546001600160a01b031633146112db57600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6009546001600160a01b0316331461131457600080fd5b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b6009546001600160a01b0316331461135657600080fd5b6103e861136260025490565b61136d9060056127d0565b61137791906127ae565b8110156113d25760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610a31565b6113e081633b9aca006127d0565b600e5550565b6009546000906001600160a01b0316331461140057600080fd5b620186a061140d60025490565b61141791906127ae565b8210156114845760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610a31565b6103e861149060025490565b61149b9060056127d0565b6114a591906127ae565b8211156115115760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610a31565b50600d55600190565b6009546001600160a01b0316331461153157600080fd5b600a81111561153f57600080fd5b601155565b6009546001600160a01b0316331461155b57600080fd5b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6001600160a01b0383166115e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a31565b6001600160a01b0382166116495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a31565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316158015906116cb57506001600160a01b03821615155b61170f5760405162461bcd60e51b81526020600482015260156024820152743d32b9379030b2323932b9b9903a3930b739b332b960591b6044820152606401610a31565b6001600160a01b03831660009081526010602052604090205460ff16156117655760405162461bcd60e51b815260206004820152600a60248201526942616420526f626f742160b01b6044820152606401610a31565b8061177b5761177683836000611cf4565b505050565b6006544210156117a9576001600160a01b0382166000908152601060205260409020805460ff191660011790555b600f5460ff1615611ad1576009546001600160a01b038481169116148015906117e057506009546001600160a01b03838116911614155b80156117f457506001600160a01b03821615155b801561180b57506001600160a01b03821661dead14155b801561181a575060055460ff16155b15611ad157600f54610100900460ff166118b2576001600160a01b03831660009081526016602052604090205460ff168061186d57506001600160a01b03821660009081526016602052604090205460ff165b6118b25760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a31565b6001600160a01b03831660009081526019602052604090205460ff1680156118f357506001600160a01b03821660009081526017602052604090205460ff16155b156119b457600c548111156119455760405162461bcd60e51b815260206004820152601860248201527713585e081d1c985b9cd858dd1a5bdb88195e18d95959195960421b6044820152606401610a31565b600e546001600160a01b03831660009081526020819052604090205461196b9083612806565b11156119af5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a31565b611ad1565b6001600160a01b03821660009081526019602052604090205460ff1680156119f557506001600160a01b03831660009081526017602052604090205460ff16155b15611a4757600c548111156119af5760405162461bcd60e51b815260206004820152601860248201527713585e081d1c985b9cd858dd1a5bdb88195e18d95959195960421b6044820152606401610a31565b6001600160a01b03821660009081526017602052604090205460ff16611ad157600e546001600160a01b038316600090815260208190526040902054611a8d9083612806565b1115611ad15760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a31565b30600090815260208190526040902054600d5481108015908190611af8575060055460ff16155b8015611b1d57506001600160a01b03851660009081526019602052604090205460ff16155b8015611b4257506001600160a01b03851660009081526016602052604090205460ff16155b8015611b6757506001600160a01b03841660009081526016602052604090205460ff16155b15611b8c576005805460ff19166001179055611b81612012565b6005805460ff191690555b6005546001600160a01b03861660009081526016602052604090205460ff91821615911680611bd357506001600160a01b03851660009081526016602052604090205460ff165b15611bdc575060005b6000808215611cdf576001600160a01b03871660009081526019602052604090205460ff168015611c0f57506000601154115b15611c6457606460115487611c2491906127d0565b611c2e91906127ae565b90508060126000828254611c429190612806565b90915550611c539050883083611cf4565b611c5d81876127ef565b9550611cdf565b6001600160a01b03881660009081526019602052604090205460ff168015611c8e57506000601154115b15611cdf57606460115487611ca391906127d0565b611cad91906127ae565b91508160126000828254611cc19190612806565b90915550611cd29050883084611cf4565b611cdc82876127ef565b95505b611cea888888611cf4565b5050505050505050565b6001600160a01b038316611d585760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a31565b6001600160a01b038216611dba5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a31565b6001600160a01b03831660009081526020819052604090205481811015611e325760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a31565b611e3c82826127ef565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611e72908490612806565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ebe91815260200190565b60405180910390a350505050565b6001600160a01b038216611f2c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a31565b6001600160a01b03821660009081526020819052604090205481811015611fa05760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a31565b611faa82826127ef565b6001600160a01b038416600090815260208190526040902055600254611fd19083906127ef565b6002556040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161169e565b306000908152602081905260409020548061202a5750565b600d546120389060146127d0565b81111561205057600d5461204d9060146127d0565b90505b600061205d6005836127ae565b90504761207261206d83856127ef565b6121c1565b600061207e82476127ef565b9050806120cd5760405162461bcd60e51b815260206004820152601860248201527f4e6f7468696e67206761696e65642066726f6d207377617000000000000000006044820152606401610a31565b60006120da6004836127ae565b90506120e68482612390565b600060128190556120f8600a476127ae565b905060008061210783476127ef565b6007546040519192506000916001600160a01b039091169083908381818185875af1925050503d8060008114612159576040519150601f19603f3d011682016040523d82523d6000602084013e61215e565b606091505b50506008546040519192506001600160a01b0316908590600081818185875af1925050503d80600081146121ae576040519150601f19603f3d011682016040523d82523d6000602084013e6121b3565b606091505b505050505050505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106121f6576121f6612854565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561226f57600080fd5b505afa158015612283573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a7919061286a565b816001815181106122ba576122ba612854565b60200260200101906001600160a01b031690816001600160a01b031681525050612305307f000000000000000000000000000000000000000000000000000000000000000084611586565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac9479061235a908590600090869030904290600401612887565b600060405180830381600087803b15801561237457600080fd5b505af1158015612388573d6000803e3d6000fd5b505050505050565b6123bb307f000000000000000000000000000000000000000000000000000000000000000084611586565b60095460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0391821660848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000009091169063f305d71990839060c4016060604051808303818588803b15801561244557600080fd5b505af1158015612459573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061247e91906128f8565b5050505050565b60005b838110156124a0578181015183820152602001612488565b838111156124af576000848401525b50505050565b60208152600082518060208401526124d4816040850160208701612485565b601f01601f19169190910160400192915050565b6001600160a01b038116811461121957600080fd5b6000806040838503121561251057600080fd5b823561251b816124e8565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261255057600080fd5b813567ffffffffffffffff8082111561256b5761256b612529565b604051601f8301601f19908116603f0116810190828211818310171561259357612593612529565b816040528381528660208588010111156125ac57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000602082840312156125de57600080fd5b813567ffffffffffffffff8111156125f557600080fd5b6126018482850161253f565b949350505050565b60006020828403121561261b57600080fd5b8135612626816124e8565b9392505050565b60006020828403121561263f57600080fd5b5035919050565b60008060006060848603121561265b57600080fd5b8335612666816124e8565b92506020840135612676816124e8565b929592945050506040919091013590565b801515811461121957600080fd5b600080604083850312156126a857600080fd5b82356126b3816124e8565b915060208301356126c381612687565b809150509250929050565b600080604083850312156126e157600080fd5b823567ffffffffffffffff8111156126f857600080fd5b6127048582860161253f565b95602094909401359450505050565b6000806040838503121561272657600080fd5b8235612731816124e8565b915060208301356126c3816124e8565b600181811c9082168061275557607f821691505b6020821081141561277657634e487b7160e01b600052602260045260246000fd5b50919050565b6000825161278e818460208701612485565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b6000826127cb57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156127ea576127ea612798565b500290565b60008282101561280157612801612798565b500390565b6000821982111561281957612819612798565b500190565b60006020828403121561283057600080fd5b5051919050565b60006020828403121561284957600080fd5b815161262681612687565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561287c57600080fd5b8151612626816124e8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128d75784516001600160a01b0316835293830193918301916001016128b2565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561290d57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220991a18532a9eb7d01f5041172597553f98bdf1eeb3566855008482a4651c8ec764736f6c63430008080033

Deployed Bytecode

0x6080604052600436106102975760003560e01c80637f9dcbdf1161015a578063bbc0c742116100c1578063d310556b1161007a578063d310556b14610853578063dd62ed3e14610873578063e2f45605146108b9578063ee7ba30f146108cf578063eeea90a6146108ef578063f8b45b051461090f57600080fd5b8063bbc0c74214610785578063c0246668146107a4578063c18bc195146107c4578063c7c135aa146107e4578063c9c8f0dc1461081d578063d257b34f1461083357600080fd5b8063a2e3cd8411610113578063a2e3cd84146106d9578063a457c2d7146106f9578063a53192b514610719578063a9059cbb1461072f578063aacebbe31461074f578063aca858491461076f57600080fd5b80637f9dcbdf1461064357806386475e4d146106595780638a8c523c1461067957806395d89b411461068e5780639a7a23d6146106a3578063a22f954a146106c357600080fd5b806339509351116101fe5780634fbee193116101b75780634fbee193146105465780635fd22e251461057f5780636dd3d39f1461059f5780636f3b206e146105d857806370a08231146105f8578063751039fc1461062e57600080fd5b806339509351146104685780633bbac57914610488578063495dcbe3146104b857806349bd5a5e146104d85780634a62bb651461050c5780634fb2e45d1461052657600080fd5b80631ecd7d6e116102505780631ecd7d6e146103c0578063203e727e146103d657806323b872dd146103f657806327c8f835146104165780632f1adff21461042c578063313ce5671461044c57600080fd5b806306fdde03146102a3578063095ea7b3146102ce5780630ae82952146102fe5780631694505e1461033357806318160ddd1461037f5780631816467f1461039e57600080fd5b3661029e57005b600080fd5b3480156102af57600080fd5b506102b8610925565b6040516102c591906124b5565b60405180910390f35b3480156102da57600080fd5b506102ee6102e93660046124fd565b6109b7565b60405190151581526020016102c5565b34801561030a57600080fd5b5061031e6103193660046125cc565b6109cd565b604080519283526020830191909152016102c5565b34801561033f57600080fd5b506103677f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102c5565b34801561038b57600080fd5b506002545b6040519081526020016102c5565b3480156103aa57600080fd5b506103be6103b9366004612609565b610a81565b005b3480156103cc57600080fd5b5061039060125481565b3480156103e257600080fd5b506103be6103f136600461262d565b610aba565b34801561040257600080fd5b506102ee610411366004612646565b610b56565b34801561042257600080fd5b5061036761dead81565b34801561043857600080fd5b506103be610447366004612695565b610c0e565b34801561045857600080fd5b50604051600981526020016102c5565b34801561047457600080fd5b506102ee6104833660046124fd565b610c63565b34801561049457600080fd5b506102ee6104a3366004612609565b60106020526000908152604090205460ff1681565b3480156104c457600080fd5b506103be6104d33660046126ce565b610c9a565b3480156104e457600080fd5b506103677f000000000000000000000000d6010a762db55c494e112b13245f4b6d2a76d1a481565b34801561051857600080fd5b50600f546102ee9060ff1681565b34801561053257600080fd5b506103be610541366004612609565b610d91565b34801561055257600080fd5b506102ee610561366004612609565b6001600160a01b031660009081526016602052604090205460ff1690565b34801561058b57600080fd5b506103be61059a366004612609565b610df6565b3480156105ab57600080fd5b506102ee6105ba366004612609565b6001600160a01b031660009081526018602052604090205460ff1690565b3480156105e457600080fd5b506103be6105f3366004612695565b610e60565b34801561060457600080fd5b50610390610613366004612609565b6001600160a01b031660009081526020819052604090205490565b34801561063a57600080fd5b506103be610f1f565b34801561064f57600080fd5b5061039060155481565b34801561066557600080fd5b506103be61067436600461262d565b610f42565b34801561068557600080fd5b506103be610f6c565b34801561069a57600080fd5b506102b8610fa2565b3480156106af57600080fd5b506103be6106be366004612695565b610fb1565b3480156106cf57600080fd5b5061039060145481565b3480156106e557600080fd5b506103be6106f4366004612609565b611075565b34801561070557600080fd5b506102ee6107143660046124fd565b61121c565b34801561072557600080fd5b50610390600c5481565b34801561073b57600080fd5b506102ee61074a3660046124fd565b6112b7565b34801561075b57600080fd5b506103be61076a366004612609565b6112c4565b34801561077b57600080fd5b5061039060115481565b34801561079157600080fd5b50600f546102ee90610100900460ff1681565b3480156107b057600080fd5b506103be6107bf366004612695565b6112fd565b3480156107d057600080fd5b506103be6107df36600461262d565b61133f565b3480156107f057600080fd5b506102ee6107ff366004612609565b6001600160a01b031660009081526017602052604090205460ff1690565b34801561082957600080fd5b5061039060135481565b34801561083f57600080fd5b506102ee61084e36600461262d565b6113e6565b34801561085f57600080fd5b50600954610367906001600160a01b031681565b34801561087f57600080fd5b5061039061088e366004612713565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156108c557600080fd5b50610390600d5481565b3480156108db57600080fd5b506103be6108ea36600461262d565b61151a565b3480156108fb57600080fd5b506103be61090a366004612695565b611544565b34801561091b57600080fd5b50610390600e5481565b60606003805461093490612741565b80601f016020809104026020016040519081016040528092919081815260200182805461096090612741565b80156109ad5780601f10610982576101008083540402835291602001916109ad565b820191906000526020600020905b81548152906001019060200180831161099057829003601f168201915b5050505050905090565b60006109c4338484611586565b50600192915050565b600080601b836040516109e0919061277c565b90815260200160405180910390205460001415610a3a5760405162461bcd60e51b8152602060048201526013602482015272155cd95c881b9bdd081cdd589cd8dc9a589959606a1b60448201526064015b60405180910390fd5b601b83604051610a4a919061277c565b908152602001604051809103902054601a84604051610a69919061277c565b90815260200160405180910390205491509150915091565b6008546001600160a01b03163314610a9857600080fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6009546001600160a01b03163314610ad157600080fd5b6103e8610add60025490565b610ae791906127ae565b811015610b425760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f7420736574206d61785458414d54206c6f776572207468616e20306044820152622e312560e81b6064820152608401610a31565b610b5081633b9aca006127d0565b600c5550565b6001600160a01b03831660009081526001602090815260408083203384529091528120546000198114610bf85782811015610be45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a31565b610bf88533610bf386856127ef565b611586565b610c038585856116ab565b506001949350505050565b6009546001600160a01b03163314610c2557600080fd5b6001600160a01b039091166000908152601660209081526040808320805494151560ff19958616811790915560179092529091208054909216179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109c4918590610bf3908690612806565b33600090815260208190526040902054811115610cb657600080fd5b60006064600b5483610cc891906127d0565b610cd291906127ae565b600a54909150610ced9033906001600160a01b031683611cf4565b6000610cf982846127ef565b9050610d053382611ecc565b42601b85604051610d16919061277c565b90815260200160405180910390208190555082601a85604051610d39919061277c565b908152602001604051809103902081905550428385604051610d5b919061277c565b604051908190038120907fa43b225314e78f978c973b5789e1b13587a092c88bac5f2702244e72dbb6afd290600090a450505050565b6009546001600160a01b03163314610da857600080fd5b6001600160a01b03811615801590610dcb57506001600160a01b03811661dead14155b610dd457600080fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6009546001600160a01b03163314610e0d57600080fd5b600a80546001600160a01b039092166001600160a01b0319909216821790556000908152601660209081526040808320805460ff1990811660019081179092556017909352922080549091169091179055565b6009546001600160a01b03163314610e7757600080fd5b7f000000000000000000000000d6010a762db55c494e112b13245f4b6d2a76d1a46001600160a01b0316826001600160a01b031614158015610eeb57507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b031614155b610ef457600080fd5b6001600160a01b03919091166000908152601060205260409020805460ff1916911515919091179055565b6009546001600160a01b03163314610f3657600080fd5b600f805460ff19169055565b6009546001600160a01b03163314610f5957600080fd5b6064811115610f6757600080fd5b600b55565b6009546001600160a01b03163314610f8357600080fd5b600f805461ff001916610100179055610f9d426002612806565b600655565b60606004805461093490612741565b6009546001600160a01b03163314610fc857600080fd5b7f000000000000000000000000d6010a762db55c494e112b13245f4b6d2a76d1a46001600160a01b0316826001600160a01b0316141561104a5760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f7665640000000000006044820152606401610a31565b6001600160a01b03919091166000908152601960205260409020805460ff1916911515919091179055565b6009546001600160a01b0316331461108c57600080fd5b6001600160a01b0381163014156110dc5760405162461bcd60e51b81526020600482015260146024820152734261642044657621204e6f2074656e646965732160601b6044820152606401610a31565b6001600160a01b03811661111a5760405133904780156108fc02916000818181858888f19350505050158015611116573d6000803e3d6000fd5b5050565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a082319060240160206040518083038186803b15801561116357600080fd5b505afa158015611177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119b919061281e565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b1580156111e157600080fd5b505af11580156111f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111169190612837565b50565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561129e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a31565b6112ad3385610bf386856127ef565b5060019392505050565b60006109c43384846116ab565b6009546001600160a01b031633146112db57600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6009546001600160a01b0316331461131457600080fd5b6001600160a01b03919091166000908152601660205260409020805460ff1916911515919091179055565b6009546001600160a01b0316331461135657600080fd5b6103e861136260025490565b61136d9060056127d0565b61137791906127ae565b8110156113d25760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610a31565b6113e081633b9aca006127d0565b600e5550565b6009546000906001600160a01b0316331461140057600080fd5b620186a061140d60025490565b61141791906127ae565b8210156114845760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610a31565b6103e861149060025490565b61149b9060056127d0565b6114a591906127ae565b8211156115115760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610a31565b50600d55600190565b6009546001600160a01b0316331461153157600080fd5b600a81111561153f57600080fd5b601155565b6009546001600160a01b0316331461155b57600080fd5b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6001600160a01b0383166115e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a31565b6001600160a01b0382166116495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a31565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316158015906116cb57506001600160a01b03821615155b61170f5760405162461bcd60e51b81526020600482015260156024820152743d32b9379030b2323932b9b9903a3930b739b332b960591b6044820152606401610a31565b6001600160a01b03831660009081526010602052604090205460ff16156117655760405162461bcd60e51b815260206004820152600a60248201526942616420526f626f742160b01b6044820152606401610a31565b8061177b5761177683836000611cf4565b505050565b6006544210156117a9576001600160a01b0382166000908152601060205260409020805460ff191660011790555b600f5460ff1615611ad1576009546001600160a01b038481169116148015906117e057506009546001600160a01b03838116911614155b80156117f457506001600160a01b03821615155b801561180b57506001600160a01b03821661dead14155b801561181a575060055460ff16155b15611ad157600f54610100900460ff166118b2576001600160a01b03831660009081526016602052604090205460ff168061186d57506001600160a01b03821660009081526016602052604090205460ff165b6118b25760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610a31565b6001600160a01b03831660009081526019602052604090205460ff1680156118f357506001600160a01b03821660009081526017602052604090205460ff16155b156119b457600c548111156119455760405162461bcd60e51b815260206004820152601860248201527713585e081d1c985b9cd858dd1a5bdb88195e18d95959195960421b6044820152606401610a31565b600e546001600160a01b03831660009081526020819052604090205461196b9083612806565b11156119af5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a31565b611ad1565b6001600160a01b03821660009081526019602052604090205460ff1680156119f557506001600160a01b03831660009081526017602052604090205460ff16155b15611a4757600c548111156119af5760405162461bcd60e51b815260206004820152601860248201527713585e081d1c985b9cd858dd1a5bdb88195e18d95959195960421b6044820152606401610a31565b6001600160a01b03821660009081526017602052604090205460ff16611ad157600e546001600160a01b038316600090815260208190526040902054611a8d9083612806565b1115611ad15760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610a31565b30600090815260208190526040902054600d5481108015908190611af8575060055460ff16155b8015611b1d57506001600160a01b03851660009081526019602052604090205460ff16155b8015611b4257506001600160a01b03851660009081526016602052604090205460ff16155b8015611b6757506001600160a01b03841660009081526016602052604090205460ff16155b15611b8c576005805460ff19166001179055611b81612012565b6005805460ff191690555b6005546001600160a01b03861660009081526016602052604090205460ff91821615911680611bd357506001600160a01b03851660009081526016602052604090205460ff165b15611bdc575060005b6000808215611cdf576001600160a01b03871660009081526019602052604090205460ff168015611c0f57506000601154115b15611c6457606460115487611c2491906127d0565b611c2e91906127ae565b90508060126000828254611c429190612806565b90915550611c539050883083611cf4565b611c5d81876127ef565b9550611cdf565b6001600160a01b03881660009081526019602052604090205460ff168015611c8e57506000601154115b15611cdf57606460115487611ca391906127d0565b611cad91906127ae565b91508160126000828254611cc19190612806565b90915550611cd29050883084611cf4565b611cdc82876127ef565b95505b611cea888888611cf4565b5050505050505050565b6001600160a01b038316611d585760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a31565b6001600160a01b038216611dba5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a31565b6001600160a01b03831660009081526020819052604090205481811015611e325760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a31565b611e3c82826127ef565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611e72908490612806565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ebe91815260200190565b60405180910390a350505050565b6001600160a01b038216611f2c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610a31565b6001600160a01b03821660009081526020819052604090205481811015611fa05760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610a31565b611faa82826127ef565b6001600160a01b038416600090815260208190526040902055600254611fd19083906127ef565b6002556040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200161169e565b306000908152602081905260409020548061202a5750565b600d546120389060146127d0565b81111561205057600d5461204d9060146127d0565b90505b600061205d6005836127ae565b90504761207261206d83856127ef565b6121c1565b600061207e82476127ef565b9050806120cd5760405162461bcd60e51b815260206004820152601860248201527f4e6f7468696e67206761696e65642066726f6d207377617000000000000000006044820152606401610a31565b60006120da6004836127ae565b90506120e68482612390565b600060128190556120f8600a476127ae565b905060008061210783476127ef565b6007546040519192506000916001600160a01b039091169083908381818185875af1925050503d8060008114612159576040519150601f19603f3d011682016040523d82523d6000602084013e61215e565b606091505b50506008546040519192506001600160a01b0316908590600081818185875af1925050503d80600081146121ae576040519150601f19603f3d011682016040523d82523d6000602084013e6121b3565b606091505b505050505050505050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106121f6576121f6612854565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561226f57600080fd5b505afa158015612283573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a7919061286a565b816001815181106122ba576122ba612854565b60200260200101906001600160a01b031690816001600160a01b031681525050612305307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611586565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac9479061235a908590600090869030904290600401612887565b600060405180830381600087803b15801561237457600080fd5b505af1158015612388573d6000803e3d6000fd5b505050505050565b6123bb307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611586565b60095460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0391821660848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063f305d71990839060c4016060604051808303818588803b15801561244557600080fd5b505af1158015612459573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061247e91906128f8565b5050505050565b60005b838110156124a0578181015183820152602001612488565b838111156124af576000848401525b50505050565b60208152600082518060208401526124d4816040850160208701612485565b601f01601f19169190910160400192915050565b6001600160a01b038116811461121957600080fd5b6000806040838503121561251057600080fd5b823561251b816124e8565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261255057600080fd5b813567ffffffffffffffff8082111561256b5761256b612529565b604051601f8301601f19908116603f0116810190828211818310171561259357612593612529565b816040528381528660208588010111156125ac57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000602082840312156125de57600080fd5b813567ffffffffffffffff8111156125f557600080fd5b6126018482850161253f565b949350505050565b60006020828403121561261b57600080fd5b8135612626816124e8565b9392505050565b60006020828403121561263f57600080fd5b5035919050565b60008060006060848603121561265b57600080fd5b8335612666816124e8565b92506020840135612676816124e8565b929592945050506040919091013590565b801515811461121957600080fd5b600080604083850312156126a857600080fd5b82356126b3816124e8565b915060208301356126c381612687565b809150509250929050565b600080604083850312156126e157600080fd5b823567ffffffffffffffff8111156126f857600080fd5b6127048582860161253f565b95602094909401359450505050565b6000806040838503121561272657600080fd5b8235612731816124e8565b915060208301356126c3816124e8565b600181811c9082168061275557607f821691505b6020821081141561277657634e487b7160e01b600052602260045260246000fd5b50919050565b6000825161278e818460208701612485565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b6000826127cb57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156127ea576127ea612798565b500290565b60008282101561280157612801612798565b500390565b6000821982111561281957612819612798565b500190565b60006020828403121561283057600080fd5b5051919050565b60006020828403121561284957600080fd5b815161262681612687565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561287c57600080fd5b8151612626816124e8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156128d75784516001600160a01b0316835293830193918301916001016128b2565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561290d57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220991a18532a9eb7d01f5041172597553f98bdf1eeb3566855008482a4651c8ec764736f6c63430008080033

Deployed Bytecode Sourcemap

7558:11962:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3623:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4460:179;;;;;;;;;;-1:-1:-1;4460:179:0;;;;;:::i;:::-;;:::i;:::-;;;1286:14:1;;1279:22;1261:41;;1249:2;1234:18;4460:179:0;1121:187:1;10746:205:0;;;;;;;;;;-1:-1:-1;10746:205:0;;;;;:::i;:::-;;:::i;:::-;;;;2670:25:1;;;2726:2;2711:18;;2704:34;;;;2643:18;10746:205:0;2496:248:1;7595:116:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2939:32:1;;;2921:51;;2909:2;2894:18;7595:116:0;2749:229:1;3907:94:0;;;;;;;;;;-1:-1:-1;3986:12:0;;3907:94;;;3129:25:1;;;3117:2;3102:18;3907:94:0;2983:177:1;13919:148:0;;;;;;;;;;-1:-1:-1;13919:148:0;;;;;:::i;:::-;;:::i;:::-;;8476:28;;;;;;;;;;;;;;;;12385:224;;;;;;;;;;-1:-1:-1;12385:224:0;;;;;:::i;:::-;;:::i;4651:506::-;;;;;;;;;;-1:-1:-1;4651:506:0;;;;;:::i;:::-;;:::i;7771:53::-;;;;;;;;;;;;7817:6;7771:53;;13743:160;;;;;;;;;;-1:-1:-1;13743:160:0;;;;;:::i;:::-;;:::i;3819:78::-;;;;;;;;;;-1:-1:-1;3819:78:0;;3893:1;4923:36:1;;4911:2;4896:18;3819:78:0;4781:184:1;5169:223:0;;;;;;;;;;-1:-1:-1;5169:223:0;;;;;:::i;:::-;;:::i;8375:37::-;;;;;;;;;;-1:-1:-1;8375:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10986:522;;;;;;;;;;-1:-1:-1;10986:522:0;;;;;:::i;:::-;;:::i;7722:38::-;;;;;;;;;;;;;;;8285:33;;;;;;;;;;-1:-1:-1;8285:33:0;;;;;;;;14299:168;;;;;;;;;;-1:-1:-1;14299:168:0;;;;;:::i;:::-;;:::i;10404:98::-;;;;;;;;;;-1:-1:-1;10404:98:0;;;;;:::i;:::-;-1:-1:-1;;;;;10477:22:0;10463:4;10477:22;;;:19;:22;;;;;;;;;10404:98;13527:200;;;;;;;;;;-1:-1:-1;13527:200:0;;;;;:::i;:::-;;:::i;10516:104::-;;;;;;;;;;-1:-1:-1;10516:104:0;;;;;:::i;:::-;-1:-1:-1;;;;;10594:23:0;10580:4;10594:23;;;:20;:23;;;;;;;;;10516:104;14083:188;;;;;;;;;;-1:-1:-1;14083:188:0;;;;;:::i;:::-;;:::i;4011:113::-;;;;;;;;;;-1:-1:-1;4011:113:0;;;;;:::i;:::-;-1:-1:-1;;;;;4103:18:0;4085:7;4103:18;;;;;;;;;;;;4011:113;13030:68;;;;;;;;;;;;;:::i;8591:28::-;;;;;;;;;;;;;;;;13415:96;;;;;;;;;;-1:-1:-1;13415:96:0;;;;;:::i;:::-;;:::i;11763:149::-;;;;;;;;;;;;;:::i;3719:90::-;;;;;;;;;;;;;:::i;11542:205::-;;;;;;;;;;-1:-1:-1;11542:205:0;;;;;:::i;:::-;;:::i;8554:26::-;;;;;;;;;;;;;;;;14483:318;;;;;;;;;;-1:-1:-1;14483:318:0;;;;;:::i;:::-;;:::i;5404:391::-;;;;;;;;;;-1:-1:-1;5404:391:0;;;;;:::i;:::-;;:::i;8158:23::-;;;;;;;;;;;;;;;;4263:185;;;;;;;;;;-1:-1:-1;4263:185:0;;;;;:::i;:::-;;:::i;13318:83::-;;;;;;;;;;-1:-1:-1;13318:83:0;;;;;:::i;:::-;;:::i;8433:32::-;;;;;;;;;;;;;;;;8329:33;;;;;;;;;;-1:-1:-1;8329:33:0;;;;;;;;;;;13112:90;;;;;;;;;;-1:-1:-1;13112:90:0;;;;;:::i;:::-;;:::i;12625:233::-;;;;;;;;;;-1:-1:-1;12625:233:0;;;;;:::i;:::-;;:::i;10634:96::-;;;;;;;;;;-1:-1:-1;10634:96:0;;;;;:::i;:::-;-1:-1:-1;;;;;10708:19:0;10694:4;10708:19;;;:16;:19;;;;;;;;;10634:96;8517:26;;;;;;;;;;;;;;;;11936:421;;;;;;;;;;-1:-1:-1;11936:421:0;;;;;:::i;:::-;;:::i;8015:37::-;;;;;;;;;;-1:-1:-1;8015:37:0;;;;-1:-1:-1;;;;;8015:37:0;;;4134:117;;;;;;;;;;-1:-1:-1;4134:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;4231:14:0;;;4213:7;4231:14;;;:11;:14;;;;;;;;:17;;;;;;;;;;;;;4134:117;8192:33;;;;;;;;;;;;;;;;12874:139;;;;;;;;;;-1:-1:-1;12874:139:0;;;;;:::i;:::-;;:::i;13216:88::-;;;;;;;;;;-1:-1:-1;13216:88:0;;;;;:::i;:::-;;:::i;8236:24::-;;;;;;;;;;;;;;;;3623:86;3677:13;3701:5;3694:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3623:86;:::o;4460:179::-;4543:4;4564:37;4573:10;4585:7;4594:6;4564:8;:37::i;:::-;-1:-1:-1;4623:4:0;4460:179;;;;:::o;10746:205::-;10803:7;10811;10846;10854:1;10846:10;;;;;;:::i;:::-;;;;;;;;;;;;;;10860:1;10846:15;;10838:47;;;;-1:-1:-1;;;10838:47:0;;6626:2:1;10838:47:0;;;6608:21:1;6665:2;6645:18;;;6638:30;-1:-1:-1;;;6684:18:1;;;6677:49;6743:18;;10838:47:0;;;;;;;;;10911:7;10919:1;10911:10;;;;;;:::i;:::-;;;;;;;;;;;;;;10923:8;10932:1;10923:11;;;;;;:::i;:::-;;;;;;;;;;;;;;10904:31;;;;10746:205;;;:::o;13919:148::-;14003:10;;-1:-1:-1;;;;;14003:10:0;13989;:24;13981:33;;;;;;14037:10;:14;;-1:-1:-1;;;;;;14037:14:0;-1:-1:-1;;;;;14037:14:0;;;;;;;;;;13919:148::o;12385:224::-;19498:9;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;12500:4:::1;12484:13;3986:12:::0;;;3907:94;12484:13:::1;:20;;;;:::i;:::-;12473:6;:32;;12465:80;;;::::0;-1:-1:-1;;;12465:80:0;;7328:2:1;12465:80:0::1;::::0;::::1;7310:21:1::0;7367:2;7347:18;;;7340:30;7406:34;7386:18;;;7379:62;-1:-1:-1;;;7457:18:1;;;7450:33;7500:19;;12465:80:0::1;7126:399:1::0;12465:80:0::1;12575:18;:6:::0;12585:7:::1;12575:18;:::i;:::-;12564:8;:29:::0;-1:-1:-1;12385:224:0:o;4651:506::-;-1:-1:-1;;;;;4806:19:0;;4758:4;4806:19;;;:11;:19;;;;;;;;4826:10;4806:31;;;;;;;;-1:-1:-1;;4856:37:0;;4852:217;;4942:6;4922:16;:26;;4914:79;;;;-1:-1:-1;;;4914:79:0;;7905:2:1;4914:79:0;;;7887:21:1;7944:2;7924:18;;;7917:30;7983:34;7963:18;;;7956:62;-1:-1:-1;;;8034:18:1;;;8027:38;8082:19;;4914:79:0;7703:404:1;4914:79:0;5012:55;5021:6;5029:10;5041:25;5060:6;5041:16;:25;:::i;:::-;5012:8;:55::i;:::-;5083:36;5093:6;5101:9;5112:6;5083:9;:36::i;:::-;-1:-1:-1;5141:4:0;;4651:506;-1:-1:-1;;;;4651:506:0:o;13743:160::-;19498:9;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;-1:-1:-1;;;;;13819:22:0;;::::1;;::::0;;;:19:::1;:22;::::0;;;;;;;:26;;;::::1;;-1:-1:-1::0;;13819:26:0;;::::1;::::0;::::1;::::0;;;13864:16:::1;:19:::0;;;;;;:23;;;;::::1;;::::0;;13743:160::o;5169:223::-;5287:10;5257:4;5308:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5308:32:0;;;;;;;;;;5257:4;;5278:76;;5299:7;;5308:45;;5343:10;;5308:45;:::i;10986:522::-;11084:10;4085:7;4103:18;;;;;;;;;;;11099:6;-1:-1:-1;11074:31:0;11066:40;;;;;;11125:11;11168:3;11149:15;;11140:6;:24;;;;:::i;:::-;11139:32;;;;:::i;:::-;11218:14;;11125:46;;-1:-1:-1;11190:48:0;;11206:10;;-1:-1:-1;;;;;11218:14:0;11125:46;11190:15;:48::i;:::-;11257:10;11270:12;11279:3;11270:6;:12;:::i;:::-;11257:25;;11301:27;11313:10;11325:2;11301:11;:27::i;:::-;11366:15;11351:7;11359:3;11351:12;;;;;;:::i;:::-;;;;;;;;;;;;;:30;;;;11420:6;11404:8;11413:3;11404:13;;;;;;:::i;:::-;;;;;;;;;;;;;:22;;;;11476:15;11468:6;11463:3;11450:42;;;;;;:::i;:::-;;;;;;;;;;;;;;;11047:461;;10986:522;;:::o;14299:168::-;19498:9;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;-1:-1:-1;;;;;14375:15:0;::::1;::::0;;::::1;::::0;:39:::1;;-1:-1:-1::0;;;;;;14394:20:0;::::1;14407:6;14394:20;;14375:39;14367:48;;;::::0;::::1;;14438:9;:13:::0;;-1:-1:-1;;;;;;14438:13:0::1;-1:-1:-1::0;;;;;14438:13:0;;;::::1;::::0;;;::::1;::::0;;14299:168::o;13527:200::-;19498:9;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;13599:14:::1;:18:::0;;-1:-1:-1;;;;;13599:18:0;;::::1;-1:-1:-1::0;;;;;;13599:18:0;;::::1;::::0;::::1;::::0;;:14:::1;13637:22:::0;;;:19:::1;:22;::::0;;;;;;;:29;;-1:-1:-1;;13637:29:0;;::::1;13599:18:::0;13637:29;;::::1;::::0;;;13685:16:::1;:19:::0;;;;;:26;;;;::::1;::::0;;::::1;::::0;;13527:200::o;14083:188::-;19498:9;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;14169:13:::1;-1:-1:-1::0;;;;;14162:20:0::1;:3;-1:-1:-1::0;;;;;14162:20:0::1;;;:55;;;;;14201:15;-1:-1:-1::0;;;;;14186:31:0::1;:3;-1:-1:-1::0;;;;;14186:31:0::1;;;14162:55;14154:64;;;::::0;::::1;;-1:-1:-1::0;;;;;14241:10:0;;;::::1;;::::0;;;:5:::1;:10;::::0;;;;:14;;-1:-1:-1;;14241:14:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14083:188::o;13030:68::-;19498:9;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;13073:14:::1;:22:::0;;-1:-1:-1;;13073:22:0::1;::::0;;13030:68::o;13415:96::-;19498:9;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;13483:3:::1;13478:1;:8;;13470:17;;;::::0;::::1;;13489:15;:19:::0;13415:96::o;11763:149::-;19498:9;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;11824:13:::1;:20:::0;;-1:-1:-1;;11824:20:0::1;;;::::0;;11877:19:::1;:15;11895:1;11877:19;:::i;:::-;11863:11;:33:::0;11763:149::o;3719:90::-;3775:13;3799:7;3792:14;;;;;:::i;11542:205::-;19498:9;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;11649:13:::1;-1:-1:-1::0;;;;;11644:18:0::1;:1;-1:-1:-1::0;;;;;11644:18:0::1;;;11636:57;;;::::0;-1:-1:-1;;;11636:57:0;;8577:2:1;11636:57:0::1;::::0;::::1;8559:21:1::0;8616:2;8596:18;;;8589:30;8655:28;8635:18;;;8628:56;8701:18;;11636:57:0::1;8375:350:1::0;11636:57:0::1;-1:-1:-1::0;;;;;11716:7:0;;;::::1;;::::0;;;:4:::1;:7;::::0;;;;:15;;-1:-1:-1;;11716:15:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11542:205::o;14483:318::-;19498:9;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;-1:-1:-1;;;;;14556:18:0;::::1;14569:4;14556:18;;14548:51;;;::::0;-1:-1:-1;;;14548:51:0;;8932:2:1;14548:51:0::1;::::0;::::1;8914:21:1::0;8971:2;8951:18;;;8944:30;-1:-1:-1;;;8990:18:1;;;8983:50;9050:18;;14548:51:0::1;8730:344:1::0;14548:51:0::1;-1:-1:-1::0;;;;;14621:15:0;::::1;14618:168;;14639:51;::::0;14647:10:::1;::::0;14668:21:::1;14639:51:::0;::::1;;;::::0;::::1;::::0;;;14668:21;14647:10;14639:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14483:318:::0;:::o;14618:168::-:1;14748:34;::::0;-1:-1:-1;;;14748:34:0;;14776:4:::1;14748:34;::::0;::::1;2921:51:1::0;-1:-1:-1;;;;;14717:18:0;::::1;::::0;::::1;::::0;14736:10:::1;::::0;14717:18;;14748:19:::1;::::0;2894:18:1;;14748:34:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14717:66;::::0;-1:-1:-1;;;;;;14717:66:0::1;::::0;;;;;;-1:-1:-1;;;;;9460:32:1;;;14717:66:0::1;::::0;::::1;9442:51:1::0;9509:18;;;9502:34;9415:18;;14717:66:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14618:168::-;14483:318:::0;:::o;5404:391::-;5557:10;5497:4;5545:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5545:32:0;;;;;;;;;;5600:35;;;;5592:85;;;;-1:-1:-1;;;5592:85:0;;9999:2:1;5592:85:0;;;9981:21:1;10038:2;10018:18;;;10011:30;10077:34;10057:18;;;10050:62;-1:-1:-1;;;10128:18:1;;;10121:35;10173:19;;5592:85:0;9797:401:1;5592:85:0;5692:65;5701:10;5713:7;5722:34;5741:15;5722:16;:34;:::i;5692:65::-;-1:-1:-1;5779:4:0;;5404:391;-1:-1:-1;;;5404:391:0:o;4263:185::-;4349:4;4370:40;4380:10;4392:9;4403:6;4370:9;:40::i;13318:83::-;19498:9;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;13379:15:::1;:19:::0;;-1:-1:-1;;;;;;13379:19:0::1;-1:-1:-1::0;;;;;13379:19:0;;;::::1;::::0;;;::::1;::::0;;13318:83::o;13112:90::-;19498:9;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;-1:-1:-1;;;;;13173:22:0;;;::::1;;::::0;;;:19:::1;:22;::::0;;;;:26;;-1:-1:-1;;13173:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13112:90::o;12625:233::-;19498:9;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;12747:4:::1;12727:13;3986:12:::0;;;3907:94;12727:13:::1;:17;::::0;12743:1:::1;12727:17;:::i;:::-;:24;;;;:::i;:::-;12716:6;:36;;12708:85;;;::::0;-1:-1:-1;;;12708:85:0;;10405:2:1;12708:85:0::1;::::0;::::1;10387:21:1::0;10444:2;10424:18;;;10417:30;10483:34;10463:18;;;10456:62;-1:-1:-1;;;10534:18:1;;;10527:34;10578:19;;12708:85:0::1;10203:400:1::0;12708:85:0::1;12824:18;:6:::0;12834:7:::1;12824:18;:::i;:::-;12812:9;:30:::0;-1:-1:-1;12625:233:0:o;11936:421::-;19498:9;;12015:4;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;12077:6:::1;12061:13;3986:12:::0;;;3907:94;12061:13:::1;:22;;;;:::i;:::-;12048:9;:35;;12040:101;;;::::0;-1:-1:-1;;;12040:101:0;;10810:2:1;12040:101:0::1;::::0;::::1;10792:21:1::0;10849:2;10829:18;;;10822:30;10888:34;10868:18;;;10861:62;-1:-1:-1;;;10939:18:1;;;10932:51;11000:19;;12040:101:0::1;10608:417:1::0;12040:101:0::1;12201:4;12181:13;3986:12:::0;;;3907:94;12181:13:::1;:17;::::0;12197:1:::1;12181:17;:::i;:::-;:24;;;;:::i;:::-;12168:9;:37;;12160:102;;;::::0;-1:-1:-1;;;12160:102:0;;11232:2:1;12160:102:0::1;::::0;::::1;11214:21:1::0;11271:2;11251:18;;;11244:30;11310:34;11290:18;;;11283:62;-1:-1:-1;;;11361:18:1;;;11354:50;11421:19;;12160:102:0::1;11030:416:1::0;12160:102:0::1;-1:-1:-1::0;12281:18:0::1;:30:::0;12337:4:::1;::::0;11936:421::o;12874:139::-;19498:9;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;12954:2:::1;12949:1;:7;;12941:16;;;::::0;::::1;;12980:13;:17:::0;12874:139::o;13216:88::-;19498:9;;-1:-1:-1;;;;;19498:9:0;19484:10;:23;19476:32;;;;;;-1:-1:-1;;;;;13278:19:0;;;::::1;;::::0;;;:16:::1;:19;::::0;;;;:23;;-1:-1:-1;;13278:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13216:88::o;7179:364::-;-1:-1:-1;;;;;7285:19:0;;7277:68;;;;-1:-1:-1;;;7277:68:0;;11653:2:1;7277:68:0;;;11635:21:1;11692:2;11672:18;;;11665:30;11731:34;11711:18;;;11704:62;-1:-1:-1;;;11782:18:1;;;11775:34;11826:19;;7277:68:0;11451:400:1;7277:68:0;-1:-1:-1;;;;;7368:21:0;;7360:68;;;;-1:-1:-1;;;7360:68:0;;12058:2:1;7360:68:0;;;12040:21:1;12097:2;12077:18;;;12070:30;12136:34;12116:18;;;12109:62;-1:-1:-1;;;12187:18:1;;;12180:32;12229:19;;7360:68:0;11856:398:1;7360:68:0;-1:-1:-1;;;;;7443:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7499:32;;3129:25:1;;;7499:32:0;;3102:18:1;7499:32:0;;;;;;;;7179:364;;;:::o;14838:2632::-;-1:-1:-1;;;;;14944:18:0;;;;;;:38;;-1:-1:-1;;;;;;14966:16:0;;;;14944:38;14936:72;;;;-1:-1:-1;;;14936:72:0;;12461:2:1;14936:72:0;;;12443:21:1;12500:2;12480:18;;;12473:30;-1:-1:-1;;;12519:18:1;;;12512:51;12580:18;;14936:72:0;12259:345:1;14936:72:0;-1:-1:-1;;;;;15036:11:0;;;;;;:5;:11;;;;;;;;15035:12;15027:35;;;;-1:-1:-1;;;15027:35:0;;12811:2:1;15027:35:0;;;12793:21:1;12850:2;12830:18;;;12823:30;-1:-1:-1;;;12869:18:1;;;12862:40;12919:18;;15027:35:0;12609:334:1;15027:35:0;15084:11;15081:57;;15099:28;15115:4;15121:2;15125:1;15099:15;:28::i;:::-;14838:2632;;;:::o;15081:57::-;15177:11;;15159:15;:29;15156:55;;;-1:-1:-1;;;;;15192:9:0;;;;;;:5;:9;;;;;:16;;-1:-1:-1;;15192:16:0;15204:4;15192:16;;;15156:55;15234:14;;;;15231:840;;;15284:9;;-1:-1:-1;;;;;15276:17:0;;;15284:9;;15276:17;;;;:36;;-1:-1:-1;15303:9:0;;-1:-1:-1;;;;;15297:15:0;;;15303:9;;15297:15;;15276:36;:56;;;;-1:-1:-1;;;;;;15316:16:0;;;;15276:56;:81;;;;-1:-1:-1;;;;;;15336:21:0;;15350:6;15336:21;;15276:81;:95;;;;-1:-1:-1;15362:9:0;;;;15361:10;15276:95;15273:779;;;15404:13;;;;;;;15400:110;;-1:-1:-1;;;;;15428:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;15457:23:0;;;;;;:19;:23;;;;;;;;15428:52;15420:87;;;;-1:-1:-1;;;15420:87:0;;13150:2:1;15420:87:0;;;13132:21:1;13189:2;13169:18;;;13162:30;-1:-1:-1;;;13208:18:1;;;13201:52;13270:18;;15420:87:0;12948:346:1;15420:87:0;-1:-1:-1;;;;;15545:10:0;;;;;;:4;:10;;;;;;;;:35;;;;-1:-1:-1;;;;;;15560:20:0;;;;;;:16;:20;;;;;;;;15559:21;15545:35;15542:487;;;15631:8;;15621:6;:18;;15613:55;;;;-1:-1:-1;;;15613:55:0;;13501:2:1;15613:55:0;;;13483:21:1;13540:2;13520:18;;;13513:30;-1:-1:-1;;;13559:18:1;;;13552:54;13623:18;;15613:55:0;13299:348:1;15613:55:0;15733:9;;-1:-1:-1;;;;;4103:18:0;;4085:7;4103:18;;;;;;;;;;;15707:22;;:6;:22;:::i;:::-;:35;;15699:67;;;;-1:-1:-1;;;15699:67:0;;13854:2:1;15699:67:0;;;13836:21:1;13893:2;13873:18;;;13866:30;-1:-1:-1;;;13912:18:1;;;13905:49;13971:18;;15699:67:0;13652:343:1;15699:67:0;15542:487;;;-1:-1:-1;;;;;15803:8:0;;;;;;:4;:8;;;;;;;;:35;;;;-1:-1:-1;;;;;;15816:22:0;;;;;;:16;:22;;;;;;;;15815:23;15803:35;15800:229;;;15860:8;;15850:6;:18;;15842:55;;;;-1:-1:-1;;;15842:55:0;;13501:2:1;15842:55:0;;;13483:21:1;13540:2;13520:18;;;13513:30;-1:-1:-1;;;13559:18:1;;;13552:54;13623:18;;15842:55:0;13299:348:1;15800:229:0;-1:-1:-1;;;;;15936:20:0;;;;;;:16;:20;;;;;;;;15932:97;;15993:9;;-1:-1:-1;;;;;4103:18:0;;4085:7;4103:18;;;;;;;;;;;15967:22;;:6;:22;:::i;:::-;:35;;15959:67;;;;-1:-1:-1;;;15959:67:0;;13854:2:1;15959:67:0;;;13836:21:1;13893:2;13873:18;;;13866:30;-1:-1:-1;;;13912:18:1;;;13905:49;13971:18;;15959:67:0;13652:343:1;15959:67:0;16156:4;16107:28;4103:18;;;;;;;;;;;16220;;16196:42;;;;;;;16262:21;;-1:-1:-1;16274:9:0;;;;16273:10;16262:21;:36;;;;-1:-1:-1;;;;;;16288:10:0;;;;;;:4;:10;;;;;;;;16287:11;16262:36;:66;;;;-1:-1:-1;;;;;;16303:25:0;;;;;;:19;:25;;;;;;;;16302:26;16262:66;:94;;;;-1:-1:-1;;;;;;16333:23:0;;;;;;:19;:23;;;;;;;;16332:24;16262:94;16259:231;;;16381:9;:16;;-1:-1:-1;;16381:16:0;16393:4;16381:16;;;16420:10;:8;:10::i;:::-;16453:9;:17;;-1:-1:-1;;16453:17:0;;;16259:231;16526:9;;-1:-1:-1;;;;;16557:25:0;;16510:12;16557:25;;;:19;:25;;;;;;16526:9;;;;16525:10;;16557:25;;:52;;-1:-1:-1;;;;;;16586:23:0;;;;;;:19;:23;;;;;;;;16557:52;16554:72;;;-1:-1:-1;16621:5:0;16554:72;16663:15;16701:16;16761:7;16758:660;;;-1:-1:-1;;;;;16807:8:0;;;;;;:4;:8;;;;;;;;:29;;;;;16835:1;16819:13;;:17;16807:29;16804:595;;;16902:3;16885:13;;16876:6;:22;;;;:::i;:::-;16875:30;;;;:::i;:::-;16864:41;;16949:8;16932:13;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;16984:46:0;;-1:-1:-1;17000:4:0;17014;17021:8;16984:15;:46::i;:::-;17057:18;17067:8;17057:18;;:::i;:::-;;;16804:595;;;-1:-1:-1;;;;;17108:10:0;;;;;;:4;:10;;;;;;;;:31;;;;;17138:1;17122:13;;:17;17108:31;17105:294;;;17205:3;17188:13;;17179:6;:22;;;;:::i;:::-;17178:30;;;;:::i;:::-;17168:40;;17252:7;17235:13;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;17286:45:0;;-1:-1:-1;17302:4:0;17316;17323:7;17286:15;:45::i;:::-;17358:17;17368:7;17358:17;;:::i;:::-;;;17105:294;17421:33;17437:4;17443:2;17447:6;17421:15;:33::i;:::-;14917:2553;;;;;14838:2632;;;:::o;5807:572::-;-1:-1:-1;;;;;5917:20:0;;5909:70;;;;-1:-1:-1;;;5909:70:0;;14202:2:1;5909:70:0;;;14184:21:1;14241:2;14221:18;;;14214:30;14280:34;14260:18;;;14253:62;-1:-1:-1;;;14331:18:1;;;14324:35;14376:19;;5909:70:0;14000:401:1;5909:70:0;-1:-1:-1;;;;;6002:23:0;;5994:71;;;;-1:-1:-1;;;5994:71:0;;14608:2:1;5994:71:0;;;14590:21:1;14647:2;14627:18;;;14620:30;14686:34;14666:18;;;14659:62;-1:-1:-1;;;14737:18:1;;;14730:33;14780:19;;5994:71:0;14406:399:1;5994:71:0;-1:-1:-1;;;;;6104:17:0;;6080:21;6104:17;;;;;;;;;;;6144:23;;;;6136:74;;;;-1:-1:-1;;;6136:74:0;;15012:2:1;6136:74:0;;;14994:21:1;15051:2;15031:18;;;15024:30;15090:34;15070:18;;;15063:62;-1:-1:-1;;;15141:18:1;;;15134:36;15187:19;;6136:74:0;14810:402:1;6136:74:0;6245:22;6261:6;6245:13;:22;:::i;:::-;-1:-1:-1;;;;;6225:17:0;;;:9;:17;;;;;;;;;;;:42;;;;6282:20;;;;;;;;:30;;6306:6;;6225:9;6282:30;;6306:6;;6282:30;:::i;:::-;;;;;;;;6349:9;-1:-1:-1;;;;;6332:35:0;6341:6;-1:-1:-1;;;;;6332:35:0;;6360:6;6332:35;;;;3129:25:1;;3117:2;3102:18;;2983:177;6332:35:0;;;;;;;;5894:485;5807:572;;;:::o;6697:470::-;-1:-1:-1;;;;;6785:21:0;;6777:67;;;;-1:-1:-1;;;6777:67:0;;15419:2:1;6777:67:0;;;15401:21:1;15458:2;15438:18;;;15431:30;15497:34;15477:18;;;15470:62;-1:-1:-1;;;15548:18:1;;;15541:31;15589:19;;6777:67:0;15217:397:1;6777:67:0;-1:-1:-1;;;;;6884:18:0;;6859:22;6884:18;;;;;;;;;;;6925:24;;;;6917:71;;;;-1:-1:-1;;;6917:71:0;;15821:2:1;6917:71:0;;;15803:21:1;15860:2;15840:18;;;15833:30;15899:34;15879:18;;;15872:62;-1:-1:-1;;;15950:18:1;;;15943:32;15992:19;;6917:71:0;15619:398:1;6917:71:0;7024:23;7041:6;7024:14;:23;:::i;:::-;-1:-1:-1;;;;;7003:18:0;;:9;:18;;;;;;;;;;:44;7077:12;;:21;;7092:6;;7077:21;:::i;:::-;7062:12;:36;7118:37;;3129:25:1;;;7144:1:0;;-1:-1:-1;;;;;7118:37:0;;;;;3117:2:1;3102:18;7118:37:0;2983:177:1;18364:1075:0;18455:4;18411:23;4103:18;;;;;;;;;;;;18480:34;;18506:7;18364:1075::o;18480:34::-;18553:18;;:23;;18574:2;18553:23;:::i;:::-;18535:15;:41;18532:91;;;18597:18;;:23;;18618:2;18597:23;:::i;:::-;18579:41;;18532:91;18641:15;18659:19;18677:1;18659:15;:19;:::i;:::-;18641:37;-1:-1:-1;18712:21:0;18756:44;18774:25;18641:37;18774:15;:25;:::i;:::-;18756:17;:44::i;:::-;18820:13;18836:28;18860:4;18836:21;:28;:::i;:::-;18820:44;-1:-1:-1;18891:10:0;18883:47;;;;-1:-1:-1;;;18883:47:0;;16224:2:1;18883:47:0;;;16206:21:1;16263:2;16243:18;;;16236:30;16302:26;16282:18;;;16275:54;16346:18;;18883:47:0;16022:348:1;18883:47:0;18951:13;18967:9;18975:1;18967:5;:9;:::i;:::-;18951:25;;18999:29;19013:7;19022:5;18999:13;:29::i;:::-;19063:1;19047:13;:17;;;19102:26;19126:2;19102:21;:26;:::i;:::-;19085:43;-1:-1:-1;19147:15:0;;19198:30;19085:43;19198:21;:30;:::i;:::-;19305:15;;19297:48;;19181:47;;-1:-1:-1;19247:15:0;;-1:-1:-1;;;;;19305:15:0;;;;19181:47;;19247:15;19297:48;19247:15;19297:48;19181:47;19305:15;19297:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19388:10:0;;19380:43;;19281:64;;-1:-1:-1;;;;;;19388:10:0;;19412:6;;19380:43;;;;19412:6;19388:10;19380:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;18364:1075:0:o;17486:494::-;17585:16;;;17599:1;17585:16;;;;;;;;17561:21;;17585:16;;;;;;;;;;-1:-1:-1;17585:16:0;17561:40;;17642:4;17624;17629:1;17624:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;17624:23:0;;;-1:-1:-1;;;;;17624:23:0;;;;;17680:15;-1:-1:-1;;;;;17680:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17670:4;17675:1;17670:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;17670:32:0;;;-1:-1:-1;;;;;17670:32:0;;;;;17721:62;17738:4;17753:15;17771:11;17721:8;:62::i;:::-;17804:160;;-1:-1:-1;;;17804:160:0;;-1:-1:-1;;;;;17804:15:0;:66;;;;:160;;17893:11;;17906:1;;17909:4;;17923;;17930:15;;17804:160;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17542:438;17486:494;:::o;18008:340::-;18098:62;18115:4;18130:15;18148:11;18098:8;:62::i;:::-;18287:9;;18181:151;;-1:-1:-1;;;18181:151:0;;18261:4;18181:151;;;18299:34:1;18349:18;;;18342:34;;;18281:1:0;18392:18:1;;;18385:34;;;18435:18;;;18428:34;-1:-1:-1;;;;;18287:9:0;;;18478:19:1;;;18471:44;18298:15:0;18531:19:1;;;18524:35;18181:15:0;:31;;;;;;18220:9;;18233:19:1;;18181:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18008:340;;:::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;;;262:1;253:6;248:3;244:16;237:27;218:48;;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;801:315;869:6;877;930:2;918:9;909:7;905:23;901:32;898:52;;;946:1;943;936:12;898:52;985:9;972:23;1004:31;1029:5;1004:31;:::i;:::-;1054:5;1106:2;1091:18;;;;1078:32;;-1:-1:-1;;;801:315:1:o;1313:127::-;1374:10;1369:3;1365:20;1362:1;1355:31;1405:4;1402:1;1395:15;1429:4;1426:1;1419:15;1445:719;1488:5;1541:3;1534:4;1526:6;1522:17;1518:27;1508:55;;1559:1;1556;1549:12;1508:55;1595:6;1582:20;1621:18;1658:2;1654;1651:10;1648:36;;;1664:18;;:::i;:::-;1739:2;1733:9;1707:2;1793:13;;-1:-1:-1;;1789:22:1;;;1813:2;1785:31;1781:40;1769:53;;;1837:18;;;1857:22;;;1834:46;1831:72;;;1883:18;;:::i;:::-;1923:10;1919:2;1912:22;1958:2;1950:6;1943:18;2004:3;1997:4;1992:2;1984:6;1980:15;1976:26;1973:35;1970:55;;;2021:1;2018;2011:12;1970:55;2085:2;2078:4;2070:6;2066:17;2059:4;2051:6;2047:17;2034:54;2132:1;2125:4;2120:2;2112:6;2108:15;2104:26;2097:37;2152:6;2143:15;;;;;;1445:719;;;;:::o;2169:322::-;2238:6;2291:2;2279:9;2270:7;2266:23;2262:32;2259:52;;;2307:1;2304;2297:12;2259:52;2347:9;2334:23;2380:18;2372:6;2369:30;2366:50;;;2412:1;2409;2402:12;2366:50;2435;2477:7;2468:6;2457:9;2453:22;2435:50;:::i;:::-;2425:60;2169:322;-1:-1:-1;;;;2169:322:1:o;3165:247::-;3224:6;3277:2;3265:9;3256:7;3252:23;3248:32;3245:52;;;3293:1;3290;3283:12;3245:52;3332:9;3319:23;3351:31;3376:5;3351:31;:::i;:::-;3401:5;3165:247;-1:-1:-1;;;3165:247:1:o;3417:180::-;3476:6;3529:2;3517:9;3508:7;3504:23;3500:32;3497:52;;;3545:1;3542;3535:12;3497:52;-1:-1:-1;3568:23:1;;3417:180;-1:-1:-1;3417:180:1:o;3602:456::-;3679:6;3687;3695;3748:2;3736:9;3727:7;3723:23;3719:32;3716:52;;;3764:1;3761;3754:12;3716:52;3803:9;3790:23;3822:31;3847:5;3822:31;:::i;:::-;3872:5;-1:-1:-1;3929:2:1;3914:18;;3901:32;3942:33;3901:32;3942:33;:::i;:::-;3602:456;;3994:7;;-1:-1:-1;;;4048:2:1;4033:18;;;;4020:32;;3602:456::o;4271:118::-;4357:5;4350:13;4343:21;4336:5;4333:32;4323:60;;4379:1;4376;4369:12;4394:382;4459:6;4467;4520:2;4508:9;4499:7;4495:23;4491:32;4488:52;;;4536:1;4533;4526:12;4488:52;4575:9;4562:23;4594:31;4619:5;4594:31;:::i;:::-;4644:5;-1:-1:-1;4701:2:1;4686:18;;4673:32;4714:30;4673:32;4714:30;:::i;:::-;4763:7;4753:17;;;4394:382;;;;;:::o;4970:390::-;5048:6;5056;5109:2;5097:9;5088:7;5084:23;5080:32;5077:52;;;5125:1;5122;5115:12;5077:52;5165:9;5152:23;5198:18;5190:6;5187:30;5184:50;;;5230:1;5227;5220:12;5184:50;5253;5295:7;5286:6;5275:9;5271:22;5253:50;:::i;:::-;5243:60;5350:2;5335:18;;;;5322:32;;-1:-1:-1;;;;4970:390:1:o;5365:388::-;5433:6;5441;5494:2;5482:9;5473:7;5469:23;5465:32;5462:52;;;5510:1;5507;5500:12;5462:52;5549:9;5536:23;5568:31;5593:5;5568:31;:::i;:::-;5618:5;-1:-1:-1;5675:2:1;5660:18;;5647:32;5688:33;5647:32;5688:33;:::i;5758:380::-;5837:1;5833:12;;;;5880;;;5901:61;;5955:4;5947:6;5943:17;5933:27;;5901:61;6008:2;6000:6;5997:14;5977:18;5974:38;5971:161;;;6054:10;6049:3;6045:20;6042:1;6035:31;6089:4;6086:1;6079:15;6117:4;6114:1;6107:15;5971:161;;5758:380;;;:::o;6143:276::-;6274:3;6312:6;6306:13;6328:53;6374:6;6369:3;6362:4;6354:6;6350:17;6328:53;:::i;:::-;6397:16;;;;;6143:276;-1:-1:-1;;6143:276:1:o;6772:127::-;6833:10;6828:3;6824:20;6821:1;6814:31;6864:4;6861:1;6854:15;6888:4;6885:1;6878:15;6904:217;6944:1;6970;6960:132;;7014:10;7009:3;7005:20;7002:1;6995:31;7049:4;7046:1;7039:15;7077:4;7074:1;7067:15;6960:132;-1:-1:-1;7106:9:1;;6904:217::o;7530:168::-;7570:7;7636:1;7632;7628:6;7624:14;7621:1;7618:21;7613:1;7606:9;7599:17;7595:45;7592:71;;;7643:18;;:::i;:::-;-1:-1:-1;7683:9:1;;7530:168::o;8112:125::-;8152:4;8180:1;8177;8174:8;8171:34;;;8185:18;;:::i;:::-;-1:-1:-1;8222:9:1;;8112:125::o;8242:128::-;8282:3;8313:1;8309:6;8306:1;8303:13;8300:39;;;8319:18;;:::i;:::-;-1:-1:-1;8355:9:1;;8242:128::o;9079:184::-;9149:6;9202:2;9190:9;9181:7;9177:23;9173:32;9170:52;;;9218:1;9215;9208:12;9170:52;-1:-1:-1;9241:16:1;;9079:184;-1:-1:-1;9079:184:1:o;9547:245::-;9614:6;9667:2;9655:9;9646:7;9642:23;9638:32;9635:52;;;9683:1;9680;9673:12;9635:52;9715:9;9709:16;9734:28;9756:5;9734:28;:::i;16585:127::-;16646:10;16641:3;16637:20;16634:1;16627:31;16677:4;16674:1;16667:15;16701:4;16698:1;16691:15;16717:251;16787:6;16840:2;16828:9;16819:7;16815:23;16811:32;16808:52;;;16856:1;16853;16846:12;16808:52;16888:9;16882:16;16907:31;16932:5;16907:31;:::i;16973:980::-;17235:4;17283:3;17272:9;17268:19;17314:6;17303:9;17296:25;17340:2;17378:6;17373:2;17362:9;17358:18;17351:34;17421:3;17416:2;17405:9;17401:18;17394:31;17445:6;17480;17474:13;17511:6;17503;17496:22;17549:3;17538:9;17534:19;17527:26;;17588:2;17580:6;17576:15;17562:29;;17609:1;17619:195;17633:6;17630:1;17627:13;17619:195;;;17698:13;;-1:-1:-1;;;;;17694:39:1;17682:52;;17789:15;;;;17754:12;;;;17730:1;17648:9;17619:195;;;-1:-1:-1;;;;;;;17870:32:1;;;;17865:2;17850:18;;17843:60;-1:-1:-1;;;17934:3:1;17919:19;17912:35;17831:3;16973:980;-1:-1:-1;;;16973:980:1:o;18570:306::-;18658:6;18666;18674;18727:2;18715:9;18706:7;18702:23;18698:32;18695:52;;;18743:1;18740;18733:12;18695:52;18772:9;18766:16;18756:26;;18822:2;18811:9;18807:18;18801:25;18791:35;;18866:2;18855:9;18851:18;18845:25;18835:35;;18570:306;;;;;:::o

Swarm Source

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