ETH Price: $2,863.79 (-10.58%)
Gas: 13 Gwei

Token

SHEEBA (SHEEBA)
 

Overview

Max Total Supply

1,000,000,000,000 SHEEBA

Holders

503

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,369,159,519.265991410615388715 SHEEBA

Value
$0.00
0x9f8ff7f5ec6ad10cd87988e47c8857ab8a68763d
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:
SHEEBA

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        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 Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        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");
    }


    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}


abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}




contract SHEEBA is Context,IERC20, Ownable{
    using Address for address;

    string private _name = "SHEEBA";
    string private _symbol = "SHEEBA";
    uint8 private _decimals = 18;
    uint256 totalFeeFortx = 0;
      uint256 maxWalletTreshold = 5;
    uint256 maxTxTreshold = 5;
    uint256 private swapTreshold =2;

    uint256 private currentThreshold = 20; //Once the token value goes up this number can be decreased (To reduce price impact on asset)
    uint256 private _totalSupply = (100000000 * 10**4) * 10**_decimals; //1T supply
    uint256 public requiredTokensToSwap = _totalSupply * swapTreshold /1000;
    mapping (address => uint256) private _balances;
    mapping (address => bool) private _excludedFromFees;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public automatedMarketMakerPairs;
    address _owner;
    address payable public marketingAddress = payable(0x910Ad70E105224f503067DAe10b518F73B07b5cD);
    address payable public prizePoolAddress = payable(0x0d5cC40d34243ae68519f6d10D0e0B61Cd297DFE);
    uint256 maxWalletAmount = _totalSupply*maxWalletTreshold/100; // starting 3%
    uint256 maxTxAmount = _totalSupply*maxTxTreshold/100;
    mapping (address => bool) botWallets;
    bool botTradeEnabled = false;
    bool checkWalletSize = true;
    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private presaleAddresses;
    //15% buy tax 20% sell tax

    uint256 private buyliqFee = 0; //10
    uint256 private buyprevLiqFee = 10;
    uint256 private buymktFee = 0;//4
    uint256 private buyPrevmktFee = 4;
    uint256 private buyprizePool = 0;//1
    uint256 private buyprevPrizePool = 1;
    uint256 GoldenDaycooldown = 0;
    bool private tradeEnabled = false;

    
    uint256 private sellliqFee = 13;
    uint256 private sellprevLiqFee = 13;
    uint256 private sellmktFee = 5;
    uint256 private sellPrevmktFee = 5;
    uint256 private sellprizePool = 2;
    uint256 private sellprevPrizePool = 2;


    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    uint256 private mktTokens = 0;
    uint256 private prizepoolTokens = 0;
    uint256 private liqTokens = 0;

    
    event SwapAndLiquify(uint256 tokensSwapped,
		uint256 ethReceived,
		uint256 tokensIntoLiquidity
	);
    event tokensSwappedDuringTokenomics(uint256 amount);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    
    // 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
    IUniswapV2Router02 _router;
    address public uniswapV2Pair;

    //Balances tracker

    modifier lockTheSwap{
		inSwapAndLiquify = true;
		_;
		inSwapAndLiquify = false;
	}
    

    constructor(){
        _balances[_msgSender()] = _totalSupply;
        //0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D mainnet and all networks
        IUniswapV2Router02 _uniRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        
        uniswapV2Pair = IUniswapV2Factory(_uniRouter.factory())
            .createPair(address(this), _uniRouter.WETH());
        
        _excludedFromFees[owner()] = true;         
        _excludedFromFees[address(this)] = true;// exclude owner and contract instance from fees
        _router = _uniRouter;
        _liquidityHolders[address(_router)] = true;
        _liquidityHolders[owner()] = true;
        _liquidityHolders[address(this)] = true;
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        emit Transfer(address(0),_msgSender(),_totalSupply);




    }
    receive() external payable{}


    //general token data and tracking of balances to be swapped.
    function getOwner()external view returns(address){
            return owner();
    }
    function currentmktTokens() external view returns (uint256){
            return mktTokens;
     }
     function currentPZTokens() external view returns (uint256){
            return prizepoolTokens;
     }
     function currentLiqTokens() external view returns (uint256){
            return liqTokens;
     }

     function totalSupply() external view override returns (uint256){
            return _totalSupply;
     }
   
    function balanceOf(address account) public view override returns (uint256){
        return _balances[account];
    }
   
    function transfer(address recipient, uint256 amount) external override returns (bool){
            _transfer(_msgSender(),recipient,amount);
            return true;

    }
   
    function allowance(address owner, address spender) external view override returns (uint256){
            return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount) external override returns (bool){
            _approve(_msgSender(),spender,amount);
            return true;
    }

    function decimals()external view returns(uint256){
        return _decimals;
    }
    function name() external view returns (string memory) {
		return _name;
	}
    function symbol() external view returns (string memory){
        return _symbol;
    }
        function updateMaxTxTreshold(uint256 newVal) public onlyOwner{
        maxTxTreshold = newVal;
        maxTxAmount = _totalSupply*maxTxTreshold/100;// 1%

    }
     function updateMaxWalletTreshold(uint256 newVal) public onlyOwner{
        maxWalletTreshold = newVal;
        maxWalletAmount = _totalSupply*maxWalletTreshold/100;

    }
    

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool){
        require(amount <= _allowances[sender][_msgSender()], "BEP20: transfer amount exceeds allowance");
		_transfer(sender, recipient, amount);
		_approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
		return true;
    }



    //Tokenomics related functions
    
    function goldenDay() public onlyOwner{
         require(block.timestamp > GoldenDaycooldown, "You cant call golden Day more than once per day");
         buyPrevmktFee = buymktFee;
         buyprevLiqFee = buyliqFee;
         buyprevPrizePool = buyprizePool;
         
         buyliqFee = 0;
         buymktFee = 0;
         buyprizePool = 0;
    }
    function goldenDayOver() public onlyOwner{
         buyliqFee = buyprevLiqFee;
         buymktFee = buyPrevmktFee;
         buyprizePool = buyprevPrizePool;
         GoldenDaycooldown = block.timestamp + 86400;
    }

    function addBotWallet (address payable detectedBot, bool isBot) public onlyOwner{
        botWallets[detectedBot] = isBot;
    }
    function currentbuyliqFee() public view returns (uint256){
            return buyliqFee;
    }
    function currentbuymktfee() public view returns (uint256){
            return buymktFee;
    }
    function currentbuyprizepoolfee() public view returns (uint256){
            return buyprizePool;
    }

      function currentsellLiqFee() public view returns (uint256){
            return sellliqFee;
    }
    function currentsellmktfee() public view returns (uint256){
            return sellmktFee;
    }
    function currentsellyprizepoolfee() public view returns (uint256){
            return sellprizePool;
    }
    function currentThresholdInt()public view returns (uint256){
        return currentThreshold;
    }
    function isExcluded(address toCheck)public view returns (bool){
            return _excludedFromFees[toCheck];
    }

    function _transfer(address from, address to, uint256 amount) internal{
        
        require(from != address(0), "BEP20: transfer from the zero address");
		require(to != address(0), "BEP20: transfer to the zero address");
        require(amount > 0,"BEP20: transfered amount must be greater than zero");
        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount, "BEP20: transfer amount exceeds balance");
        if(tradeEnabled == false){
            require(_liquidityHolders[to] || _liquidityHolders[from],"Cant trade, trade is disabled");
        }
        if(_liquidityHolders[to]==false && _liquidityHolders[from]==false){
        require(amount <= maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
        }
        uint256 inContractBalance = balanceOf(address(this));
        if(inContractBalance >=requiredTokensToSwap && 
			!inSwapAndLiquify && 
			from != uniswapV2Pair && 
			swapAndLiquifyEnabled){
                if(inContractBalance >= requiredTokensToSwap ){
                    inContractBalance = requiredTokensToSwap;
                    swapForTokenomics(inContractBalance);
                }
            }

            bool takeFees = true;
            
            
            if(_excludedFromFees[from] || _excludedFromFees[to]) {
                totalFeeFortx = 0;
                takeFees = false;
               

            }
            uint256 mktAmount = 0;
            uint256 prizePoolAmount = 0; // Amount to be added to prize pool.
		    uint256 liqAmount = 0;  // Amount to be added to liquidity.

            if(takeFees){
                
                
                //bot fees
                if(botWallets[from] == true||botWallets[to]==true){
                    totalFeeFortx = 0;
                    mktAmount = amount * 15/100;
                    liqAmount = amount * 75/100;
                    prizePoolAmount = amount * 5/100;
                    totalFeeFortx = mktAmount + liqAmount + prizePoolAmount;
                }
                //Selling fees
                if (automatedMarketMakerPairs[to] && to != address(_router) ){
                        totalFeeFortx = 0;
                        mktAmount = amount * sellmktFee/100;
                        liqAmount = amount * sellliqFee/100;
                        prizePoolAmount = amount * sellprizePool/100;
                        totalFeeFortx = mktAmount + liqAmount + prizePoolAmount;
                }
                //Buy Fees
                else if(automatedMarketMakerPairs[from] && from != address(_router)) {
                
                    totalFeeFortx = 0;
                    mktAmount = amount * buymktFee/100;
                    liqAmount = amount * buyliqFee/100;
                    prizePoolAmount = amount * buyprizePool/100;
                    totalFeeFortx = mktAmount + liqAmount + prizePoolAmount;
                }

                
            }

            _balances[from] = senderBalance - amount;
            _balances[to] += amount - mktAmount - prizePoolAmount - liqAmount;

          if(liqAmount != 0) {
			_balances[address(this)] += totalFeeFortx;
			//tLiqTotal += liqAmount;
            liqTokens += liqAmount;
            prizepoolTokens += prizePoolAmount;
            mktTokens += mktAmount;
			emit Transfer(from, address(this), totalFeeFortx);
            
		    }
            emit Transfer(from, to,amount-totalFeeFortx);
            
        
    }
    function swapForTokenomics(uint256 balanceToswap) private lockTheSwap{
        swapAndLiquify(liqTokens);
        swapTokensForETHmkt(mktTokens);
        sendToPrizePool(prizepoolTokens);
        emit tokensSwappedDuringTokenomics(balanceToswap);
        mktTokens = 0;
        prizepoolTokens = 0;
        liqTokens = 0;
    }
     function addLimitExempt(address newAddress)external onlyOwner{
        _liquidityHolders[newAddress] = true;
     
    }
    function swapTokensForETHmkt(uint256 amount)private {
        address[] memory path = new address[](2);
		path[0] = address(this);
		path[1] = _router.WETH();
		_approve(address(this), address(_router), amount);

		
		_router.swapExactTokensForETHSupportingFeeOnTransferTokens(
			amount,
			0, // Accept any amount of ETH.
			path,
			marketingAddress,
			block.timestamp
		);

    }
      function sendToPrizePool(uint256 amount)private {
      _transfer(address(this), prizePoolAddress, amount);

    }

    function unstuckTokens (IERC20 tokenToClear, address payable destination, uint256 amount) public onlyOwner{
        //uint256 contractBalance = tokenToClear.balanceOf(address(this));
        tokenToClear.transfer(destination, amount);
    }

    function unstuckETH(address payable destination) public onlyOwner{
        uint256 ethBalance = address(this).balance;
        payable(destination).transfer(ethBalance);
    }

    function tradeStatus(bool status) public onlyOwner{
        tradeEnabled = status;
    }

    function swapAndLiquify(uint256 liqTokensPassed) private {
		uint256 half = liqTokensPassed / 2;
		uint256 otherHalf = liqTokensPassed - half;
		uint256 initialBalance = address(this).balance;

		swapTokensForETH(half);
		uint256 newBalance = address(this).balance - (initialBalance); 

		addLiquidity(otherHalf, newBalance);
		emit SwapAndLiquify(half,newBalance,otherHalf);
	}

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

		
		_router.swapExactTokensForETHSupportingFeeOnTransferTokens(
			tokenAmount,
			0, // Accept any amount of ETH.
			path,
			address(this),
			block.timestamp
		);
	}
    
    function addLiquidity(uint256 tokenAmount,uint256 ethAmount) private{
		_approve(address(this), address(_router), tokenAmount);

		_router.addLiquidityETH{value:ethAmount}(
			address(this),
			tokenAmount,
			0,
			0,
			deadAddress,// tr
			block.timestamp
		);
	}

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

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


    }




    //Fees related functions

    function addToExcluded(address toExclude) public onlyOwner{  
        _excludedFromFees[toExclude] = true;
    }

    function removeFromExcluded(address toRemove) public onlyOwner{
        _excludedFromFees[toRemove] = false;
    }
      function excludePresaleAddresses(address router, address presale) external onlyOwner {
        
        _liquidityHolders[address(router)] = true;
        _liquidityHolders[presale] = true;
        presaleAddresses[address(router)] = true;
        presaleAddresses[presale] = true;
       
    }

    function startPresaleStatus()public onlyOwner{
        
        buymktFee = 0;
        sellmktFee =0;
        buyliqFee =0;
        sellliqFee =0;
        buyprizePool =0;
        sellprizePool = 0;
        setSwapAndLiquify(false);

    }
    function endPresaleStatus() public onlyOwner{
        buymktFee = 4;
        buyliqFee = 10;
        buyprizePool = 1;

        sellmktFee = 5;
        sellliqFee = 13;
        sellprizePool = 2;
        setSwapAndLiquify(true);
    }

    function updateThreshold(uint newThreshold) public onlyOwner{
        currentThreshold = newThreshold;

    }

    function setSwapAndLiquify(bool _enabled) public onlyOwner{
            swapAndLiquifyEnabled = _enabled;
    }


    //Marketing related 

    function setMktAddress(address newAddress) external onlyOwner{
        marketingAddress = payable(newAddress);
    }
    function transferAssetsETH(address payable to, uint256 amount) internal{
            to.transfer(amount);
    }
    function setPrizePoolAddress(address newAddress) external onlyOwner{
        prizePoolAddress = payable(newAddress);
    }
    function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }
    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updatecurrentbuyliqFee(uint256 newAmount) public onlyOwner{
            buyliqFee = newAmount;
    }
    function updatecurrentbuymktfee(uint256 newAmount) public onlyOwner{
             buymktFee= newAmount;
    }
    function updatecurrentbuyprizepoolfee(uint256 newAmount) public onlyOwner{
             buyprizePool= newAmount;
    }

      function updatecurrentsellLiqFee(uint256 newAmount) public onlyOwner{
             sellliqFee= newAmount;
    }
    function updatecurrentsellmktfee(uint256 newAmount)public onlyOwner{
             sellmktFee= newAmount;
    }
    
    function updatecurrentsellyprizepoolfee(uint256 newAmount) public onlyOwner{
             sellprizePool= newAmount;
    }
    function currentMaxWallet() public view returns(uint256){
        return maxWalletAmount;
    }
    function currentMaxTx() public view returns(uint256){
        return maxTxAmount;
    }
    function updateSwapTreshold(uint256 newVal) public onlyOwner{
        swapTreshold = newVal;
        requiredTokensToSwap = _totalSupply*swapTreshold/1000;
        
    }
    function currentTradeStatus() public view returns (bool){
        return tradeEnabled;   
    }
    function currentSwapTreshold() public view returns(uint256){
        return swapTreshold;
    }
    function currentTokensToSwap() public view returns(uint256){
        return requiredTokensToSwap;
    }
}


interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

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

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

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

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

Contract 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":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokensSwappedDuringTokenomics","type":"event"},{"inputs":[{"internalType":"address payable","name":"detectedBot","type":"address"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"addBotWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"addLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"toExclude","type":"address"}],"name":"addToExcluded","outputs":[],"stateMutability":"nonpayable","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentLiqTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentPZTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentSwapTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentThresholdInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTradeStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuyliqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuymktfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuyprizepoolfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentmktTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellLiqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellmktfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellyprizepoolfee","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":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endPresaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"presale","type":"address"}],"name":"excludePresaleAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goldenDay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"goldenDayOver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toCheck","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"prizePoolAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toRemove","type":"address"}],"name":"removeFromExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"requiredTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMktAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setPrizePoolAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startPresaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"tradeStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"destination","type":"address"}],"name":"unstuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"tokenToClear","type":"address"},{"internalType":"address payable","name":"destination","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateMaxTxTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateMaxWalletTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"updateThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentbuyliqFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentbuymktfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentbuyprizepoolfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentsellLiqFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentsellmktfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentsellyprizepoolfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052600660a08190526553484545424160d01b60c0908152620000299160019190620005dc565b506040805180820190915260068082526553484545424160d01b60209092019182526200005991600291620005dc565b506003805460ff1916601217908190556000600455600580805560065560026007556014600855620000909060ff16600a62000743565b620000a19064e8d4a510006200082e565b6009556103e8600754600954620000b991906200082e565b620000c59190620006d5565b600a55601080546001600160a01b031990811673910ad70e105224f503067dae10b518f73b07b5cd1790915560118054909116730d5cc40d34243ae68519f6d10d0e0b61cd297dfe17905560055460095460649162000124916200082e565b620001309190620006d5565b60125560646006546009546200014791906200082e565b620001539190620006d5565b6013556015805461ffff191661010090811790915560006018819055600a601955601a8190556004601b55601c8190556001601d55601e819055601f805460ff19169055600d602081905560215560056022819055602355600260248190556025556026805461ff0019169092179091556ddead00000000000000000000000060805260278190556028819055602955348015620001f057600080fd5b5062000205620001ff62000525565b62000529565b600954600b60006200021662000525565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200028d57600080fd5b505afa158015620002a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c8919062000682565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031157600080fd5b505afa15801562000326573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034c919062000682565b6040518363ffffffff1660e01b81526004016200036b929190620006b2565b602060405180830381600087803b1580156200038657600080fd5b505af11580156200039b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c1919062000682565b602b80546001600160a01b0319166001600160a01b03929092169190911790556001600c6000620003f162000579565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600c8452828120805486166001908117909155602a80548885166001600160a01b031990911617908190559092168152601693849052918220805490941681179093556200046f62000579565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526016909352912080549092166001908117909255602b54620004c59291169062000588565b620004cf62000525565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620005169190620006cc565b60405180910390a350620008a3565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b031690565b6001600160a01b0382166000818152600e6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b828054620005ea9062000850565b90600052602060002090601f0160209004810192826200060e576000855562000659565b82601f106200062957805160ff191683800117855562000659565b8280016001018555821562000659579182015b82811115620006595782518255916020019190600101906200063c565b50620006679291506200066b565b5090565b5b808211156200066757600081556001016200066c565b60006020828403121562000694578081fd5b81516001600160a01b0381168114620006ab578182fd5b9392505050565b6001600160a01b0392831681529116602082015260400190565b90815260200190565b600082620006f157634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116200070a57506200073a565b8187048211156200071f576200071f6200088d565b808616156200072d57918102915b9490941c938002620006f9565b94509492505050565b6000620006ab60001960ff8516846000826200076257506001620006ab565b816200077157506000620006ab565b81600181146200078a57600281146200079557620007c9565b6001915050620006ab565b60ff841115620007a957620007a96200088d565b6001841b915084821115620007c257620007c26200088d565b50620006ab565b5060208310610133831016604e8410600b841016171562000801575081810a83811115620007fb57620007fb6200088d565b620006ab565b620008108484846001620006f6565b8086048211156200082557620008256200088d565b02949350505050565b60008160001904831182151516156200084b576200084b6200088d565b500290565b6002810460018216806200086557607f821691505b602082108114156200088757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160601c612c30620008c960003960008181610daf01526123eb0152612c306000f3fe6080604052600436106103bc5760003560e01c8063893d20e8116101f2578063bf9eb5401161010d578063ddcf9b98116100a0578063f2fde38b1161006f578063f2fde38b14610a12578063f7da678514610a32578063f953cf3a14610a52578063ff31e93014610a67576103c3565b8063ddcf9b98146109a8578063e1370dd3146109bd578063eb04c618146109d2578063edcf19b2146109f2576103c3565b8063d1294d4c116100dc578063d1294d4c14610933578063d15bcf0f14610953578063d7d7442f14610968578063dd62ed3e14610988576103c3565b8063bf9eb540146108be578063c5cb68a1146108de578063cb664534146108f3578063cba0e99614610913576103c3565b8063a5ece94111610185578063b195b83911610154578063b195b83914610854578063b4d95a9314610869578063b62496f514610889578063bf9b0159146108a9576103c3565b8063a5ece941146107df578063a6c38f59146107f4578063a7a0745214610814578063a9059cbb14610834576103c3565b806395d89b41116101c157806395d89b41146107805780639a7a23d6146107955780639b136da4146107b5578063a04bdc81146107ca576103c3565b8063893d20e8146107215780638cd0260c146107365780638da5cb5b1461075657806390f502831461076b576103c3565b8063425ebf48116102e257806364c161631161027557806370a082311161024457806370a08231146106ac578063715018a6146106cc578063801527ce146106e15780638628c23f14610701576103c3565b806364c161631461064d5780636573c4df146106625780636611f938146106825780636df3333a14610697576103c3565b80634a74bb02116102b15780634a74bb02146105ee5780634bd7ace5146106035780635297defd146106185780635be76f111461062d576103c3565b8063425ebf4814610584578063487a6905146105a457806349bd5a5e146105b95780634a0e963c146105ce576103c3565b8063220f66961161035a57806327c8f8351161032957806327c8f835146105185780632d03420b1461053a578063313ce5671461055a5780633cadd3c61461056f576103c3565b8063220f6696146104b957806322788f86146104ce578063232b6406146104e357806323b872dd146104f8576103c3565b806311abb0811161039657806311abb0811461044257806313b4a7f41461046257806314c0eaf91461048257806318160ddd146104a4576103c3565b806306fdde03146103c85780630882a863146103f3578063095ea7b314610415576103c3565b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610a7c565b6040516103ea91906126d6565b60405180910390f35b3480156103ff57600080fd5b5061041361040e3660046125db565b610b0e565b005b34801561042157600080fd5b50610435610430366004612564565b610b5b565b6040516103ea91906126cb565b34801561044e57600080fd5b5061041361045d3660046125db565b610b78565b34801561046e57600080fd5b5061041361047d3660046124e5565b610bbc565b34801561048e57600080fd5b50610497610c5b565b6040516103ea9190612abd565b3480156104b057600080fd5b50610497610c61565b3480156104c557600080fd5b50610435610c67565b3480156104da57600080fd5b50610497610c70565b3480156104ef57600080fd5b50610413610c76565b34801561050457600080fd5b50610435610513366004612512565b610cd9565b34801561052457600080fd5b5061052d610dad565b6040516103ea9190612663565b34801561054657600080fd5b5061041361055536600461258f565b610dd1565b34801561056657600080fd5b50610497610e23565b34801561057b57600080fd5b50610497610e2c565b34801561059057600080fd5b5061041361059f3660046125db565b610e32565b3480156105b057600080fd5b50610497610e76565b3480156105c557600080fd5b5061052d610e7c565b3480156105da57600080fd5b506104136105e936600461246e565b610e8b565b3480156105fa57600080fd5b50610435610eee565b34801561060f57600080fd5b50610497610efc565b34801561062457600080fd5b50610497610f02565b34801561063957600080fd5b5061041361064836600461246e565b610f08565b34801561065957600080fd5b50610497610f84565b34801561066e57600080fd5b5061041361067d3660046125db565b610f8a565b34801561068e57600080fd5b50610413610fef565b3480156106a357600080fd5b50610497611072565b3480156106b857600080fd5b506104976106c736600461246e565b611078565b3480156106d857600080fd5b50610413611093565b3480156106ed57600080fd5b506104136106fc36600461258f565b6110de565b34801561070d57600080fd5b5061041361071c3660046125db565b611137565b34801561072d57600080fd5b5061052d61117b565b34801561074257600080fd5b506104136107513660046125db565b61118a565b34801561076257600080fd5b5061052d6111ce565b34801561077757600080fd5b506104976111dd565b34801561078c57600080fd5b506103dd6111e3565b3480156107a157600080fd5b506104136107b0366004612552565b6111f2565b3480156107c157600080fd5b5061049761126d565b3480156107d657600080fd5b50610497611273565b3480156107eb57600080fd5b5061052d611279565b34801561080057600080fd5b5061041361080f3660046124ad565b611288565b34801561082057600080fd5b5061041361082f3660046125db565b6112f2565b34801561084057600080fd5b5061043561084f366004612564565b611357565b34801561086057600080fd5b5061041361136b565b34801561087557600080fd5b5061041361088436600461246e565b6113d3565b34801561089557600080fd5b506104356108a436600461246e565b611433565b3480156108b557600080fd5b50610497611448565b3480156108ca57600080fd5b506104136108d936600461246e565b61144e565b3480156108ea57600080fd5b506104976114af565b3480156108ff57600080fd5b5061041361090e36600461246e565b6114b5565b34801561091f57600080fd5b5061043561092e36600461246e565b611518565b34801561093f57600080fd5b5061041361094e3660046125db565b611536565b34801561095f57600080fd5b5061043561159c565b34801561097457600080fd5b506104136109833660046125db565b6115a5565b34801561099457600080fd5b506104976109a33660046124e5565b6115e9565b3480156109b457600080fd5b50610497611614565b3480156109c957600080fd5b5061049761161a565b3480156109de57600080fd5b506104136109ed36600461246e565b611620565b3480156109fe57600080fd5b50610413610a0d3660046125db565b611681565b348015610a1e57600080fd5b50610413610a2d36600461246e565b6116c5565b348015610a3e57600080fd5b50610413610a4d3660046125c7565b611736565b348015610a5e57600080fd5b506104136117fb565b348015610a7357600080fd5b5061052d611863565b606060018054610a8b90612b86565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab790612b86565b8015610b045780601f10610ad957610100808354040283529160200191610b04565b820191906000526020600020905b815481529060010190602001808311610ae757829003601f168201915b5050505050905090565b610b16611872565b6001600160a01b0316610b276111ce565b6001600160a01b031614610b565760405162461bcd60e51b8152600401610b4d9061296e565b60405180910390fd5b601855565b6000610b6f610b68611872565b8484611876565b50600192915050565b610b80611872565b6001600160a01b0316610b916111ce565b6001600160a01b031614610bb75760405162461bcd60e51b8152600401610b4d9061296e565b602455565b610bc4611872565b6001600160a01b0316610bd56111ce565b6001600160a01b031614610bfb5760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b0391821660008181526016602090815260408083208054600160ff199182168117909255959096168084528184208054871688179055938352601790915280822080548516861790559181522080549091169091179055565b60285490565b60095490565b60265460ff1681565b60085490565b610c7e611872565b6001600160a01b0316610c8f6111ce565b6001600160a01b031614610cb55760405162461bcd60e51b8152600401610b4d9061296e565b601954601855601b54601a55601d54601c55610cd44262015180612b18565b601e55565b6001600160a01b0383166000908152600d6020526040812081610cfa611872565b6001600160a01b03166001600160a01b0316815260200190815260200160002054821115610d3a5760405162461bcd60e51b8152600401610b4d906128a7565b610d4584848461192a565b610da384610d51611872565b6001600160a01b0387166000908152600d602052604081208691610d73611872565b6001600160a01b03166001600160a01b0316815260200190815260200160002054610d9e9190612b6f565b611876565b5060019392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610dd9611872565b6001600160a01b0316610dea6111ce565b6001600160a01b031614610e105760405162461bcd60e51b8152600401610b4d9061296e565b601f805460ff1916911515919091179055565b60035460ff1690565b60245490565b610e3a611872565b6001600160a01b0316610e4b6111ce565b6001600160a01b031614610e715760405162461bcd60e51b8152600401610b4d9061296e565b601c55565b600a5490565b602b546001600160a01b031681565b610e93611872565b6001600160a01b0316610ea46111ce565b6001600160a01b031614610eca5760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b602654610100900460ff1681565b60185490565b60225490565b610f10611872565b6001600160a01b0316610f216111ce565b6001600160a01b031614610f475760405162461bcd60e51b8152600401610b4d9061296e565b60405147906001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610f7f573d6000803e3d6000fd5b505050565b60295490565b610f92611872565b6001600160a01b0316610fa36111ce565b6001600160a01b031614610fc95760405162461bcd60e51b8152600401610b4d9061296e565b6005819055600954606490610fdf908390612b50565b610fe99190612b30565b60125550565b610ff7611872565b6001600160a01b03166110086111ce565b6001600160a01b03161461102e5760405162461bcd60e51b8152600401610b4d9061296e565b601e54421161104f5760405162461bcd60e51b8152600401610b4d906129a3565b601a8054601b5560188054601955601c8054601d55600091829055918190559055565b60075490565b6001600160a01b03166000908152600b602052604090205490565b61109b611872565b6001600160a01b03166110ac6111ce565b6001600160a01b0316146110d25760405162461bcd60e51b8152600401610b4d9061296e565b6110dc6000611f09565b565b6110e6611872565b6001600160a01b03166110f76111ce565b6001600160a01b03161461111d5760405162461bcd60e51b8152600401610b4d9061296e565b602680549115156101000261ff0019909216919091179055565b61113f611872565b6001600160a01b03166111506111ce565b6001600160a01b0316146111765760405162461bcd60e51b8152600401610b4d9061296e565b602255565b60006111856111ce565b905090565b611192611872565b6001600160a01b03166111a36111ce565b6001600160a01b0316146111c95760405162461bcd60e51b8152600401610b4d9061296e565b602055565b6000546001600160a01b031690565b60205490565b606060028054610a8b90612b86565b6111fa611872565b6001600160a01b031661120b6111ce565b6001600160a01b0316146112315760405162461bcd60e51b8152600401610b4d9061296e565b602b546001600160a01b038381169116141561125f5760405162461bcd60e51b8152600401610b4d9061284a565b6112698282611f59565b5050565b601a5490565b600a5481565b6010546001600160a01b031681565b611290611872565b6001600160a01b03166112a16111ce565b6001600160a01b0316146112c75760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6112fa611872565b6001600160a01b031661130b6111ce565b6001600160a01b0316146113315760405162461bcd60e51b8152600401610b4d9061296e565b6006819055600954606490611347908390612b50565b6113519190612b30565b60135550565b6000610b6f611364611872565b848461192a565b611373611872565b6001600160a01b03166113846111ce565b6001600160a01b0316146113aa5760405162461bcd60e51b8152600401610b4d9061296e565b6000601a819055602281905560188190556020819055601c81905560248190556110dc906110de565b6113db611872565b6001600160a01b03166113ec6111ce565b6001600160a01b0316146114125760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03166000908152600c60205260409020805460ff19169055565b600e6020526000908152604090205460ff1681565b60135490565b611456611872565b6001600160a01b03166114676111ce565b6001600160a01b03161461148d5760405162461bcd60e51b8152600401610b4d9061296e565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b601c5490565b6114bd611872565b6001600160a01b03166114ce6111ce565b6001600160a01b0316146114f45760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03166000908152601660205260409020805460ff19166001179055565b6001600160a01b03166000908152600c602052604090205460ff1690565b61153e611872565b6001600160a01b031661154f6111ce565b6001600160a01b0316146115755760405162461bcd60e51b8152600401610b4d9061296e565b60078190556009546103e89061158c908390612b50565b6115969190612b30565b600a5550565b601f5460ff1690565b6115ad611872565b6001600160a01b03166115be6111ce565b6001600160a01b0316146115e45760405162461bcd60e51b8152600401610b4d9061296e565b600855565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b60275490565b60125490565b611628611872565b6001600160a01b03166116396111ce565b6001600160a01b03161461165f5760405162461bcd60e51b8152600401610b4d9061296e565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b611689611872565b6001600160a01b031661169a6111ce565b6001600160a01b0316146116c05760405162461bcd60e51b8152600401610b4d9061296e565b601a55565b6116cd611872565b6001600160a01b03166116de6111ce565b6001600160a01b0316146117045760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03811661172a5760405162461bcd60e51b8152600401610b4d90612804565b61173381611f09565b50565b61173e611872565b6001600160a01b031661174f6111ce565b6001600160a01b0316146117755760405162461bcd60e51b8152600401610b4d9061296e565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906117a39085908590600401612677565b602060405180830381600087803b1580156117bd57600080fd5b505af11580156117d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f591906125ab565b50505050565b611803611872565b6001600160a01b03166118146111ce565b6001600160a01b03161461183a5760405162461bcd60e51b8152600401610b4d9061296e565b6004601a55600a6018556001601c8190556005602255600d60205560026024556110dc906110de565b6011546001600160a01b031681565b3390565b6001600160a01b03831661189c5760405162461bcd60e51b8152600401610b4d906127c0565b6001600160a01b0382166118c25760405162461bcd60e51b8152600401610b4d90612a7b565b6001600160a01b038084166000818152600d602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061191d908590612abd565b60405180910390a3505050565b6001600160a01b0383166119505760405162461bcd60e51b8152600401610b4d9061277b565b6001600160a01b0382166119765760405162461bcd60e51b8152600401610b4d90612a38565b600081116119965760405162461bcd60e51b8152600401610b4d90612729565b6001600160a01b0383166000908152600b6020526040902054818110156119cf5760405162461bcd60e51b8152600401610b4d906129f2565b601f5460ff16611a34576001600160a01b03831660009081526016602052604090205460ff1680611a1857506001600160a01b03841660009081526016602052604090205460ff165b611a345760405162461bcd60e51b8152600401610b4d90612937565b6001600160a01b03831660009081526016602052604090205460ff16158015611a7657506001600160a01b03841660009081526016602052604090205460ff16155b15611a9d57601354821115611a9d5760405162461bcd60e51b8152600401610b4d906128ef565b6000611aa830611078565b9050600a548110158015611abf575060265460ff16155b8015611ad95750602b546001600160a01b03868116911614155b8015611aec5750602654610100900460ff165b15611b0757600a548110611b075750600a54611b0781611fad565b6001600160a01b0385166000908152600c602052604090205460019060ff1680611b4957506001600160a01b0385166000908152600c602052604090205460ff165b15611b575750600060048190555b60008060008315611d77576001600160a01b03891660009081526014602052604090205460ff16151560011480611bab57506001600160a01b03881660009081526014602052604090205460ff1615156001145b15611c195760006004556064611bc288600f612b50565b611bcc9190612b30565b92506064611bdb88604b612b50565b611be59190612b30565b90506064611bf4886005612b50565b611bfe9190612b30565b915081611c0b8285612b18565b611c159190612b18565b6004555b6001600160a01b0388166000908152600e602052604090205460ff168015611c4f5750602a546001600160a01b03898116911614155b15611cca576000600455602254606490611c699089612b50565b611c739190612b30565b9250606460205488611c859190612b50565b611c8f9190612b30565b9050606460245488611ca19190612b50565b611cab9190612b30565b915081611cb88285612b18565b611cc29190612b18565b600455611d77565b6001600160a01b0389166000908152600e602052604090205460ff168015611d005750602a546001600160a01b038a8116911614155b15611d77576000600455601a54606490611d1a9089612b50565b611d249190612b30565b9250606460185488611d369190612b50565b611d409190612b30565b90506064601c5488611d529190612b50565b611d5c9190612b30565b915081611d698285612b18565b611d739190612b18565b6004555b611d818787612b6f565b6001600160a01b038a166000908152600b60205260409020558082611da6858a612b6f565b611db09190612b6f565b611dba9190612b6f565b6001600160a01b0389166000908152600b602052604081208054909190611de2908490612b18565b90915550508015611ea657600454306000908152600b602052604081208054909190611e0f908490612b18565b925050819055508060296000828254611e289190612b18565b925050819055508160286000828254611e419190612b18565b925050819055508260276000828254611e5a9190612b18565b909155505060045460405130916001600160a01b038c16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91611e9d91612abd565b60405180910390a35b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004548a611ee99190612b6f565b604051611ef69190612abd565b60405180910390a3505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000818152600e6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6026805460ff19166001179055602954611fc69061202f565b611fd16027546120b0565b611fdc602854612239565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f019048160405161200b9190612abd565b60405180910390a1506000602781905560288190556029556026805460ff19169055565b600061203c600283612b30565b9050600061204a8284612b6f565b90504761205683612251565b60006120628247612b6f565b905061206e83826123a0565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618482856040516120a193929190612b02565b60405180910390a15050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120f357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602a54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561214757600080fd5b505afa15801561215b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217f9190612491565b816001815181106121a057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152602a546121c69130911684611876565b602a5460105460405163791ac94760e01b81526001600160a01b039283169263791ac9479261220392879260009288929116904290600401612ac6565b600060405180830381600087803b15801561221d57600080fd5b505af1158015612231573d6000803e3d6000fd5b505050505050565b6011546117339030906001600160a01b03168361192a565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061229457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602a54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156122e857600080fd5b505afa1580156122fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123209190612491565b8160018151811061234157634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152602a546123679130911684611876565b602a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790612203908590600090869030904290600401612ac6565b602a546123b89030906001600160a01b031684611876565b602a5460405163f305d71960e01b81526001600160a01b039091169063f305d719908390612415903090879060009081907f0000000000000000000000000000000000000000000000000000000000000000904290600401612690565b6060604051808303818588803b15801561242e57600080fd5b505af1158015612442573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061246791906125f3565b5050505050565b60006020828403121561247f578081fd5b813561248a81612bd7565b9392505050565b6000602082840312156124a2578081fd5b815161248a81612bd7565b600080604083850312156124bf578081fd5b82356124ca81612bd7565b915060208301356124da81612bec565b809150509250929050565b600080604083850312156124f7578182fd5b823561250281612bd7565b915060208301356124da81612bd7565b600080600060608486031215612526578081fd5b833561253181612bd7565b9250602084013561254181612bd7565b929592945050506040919091013590565b600080604083850312156124bf578182fd5b60008060408385031215612576578182fd5b823561258181612bd7565b946020939093013593505050565b6000602082840312156125a0578081fd5b813561248a81612bec565b6000602082840312156125bc578081fd5b815161248a81612bec565b600080600060608486031215612526578283fd5b6000602082840312156125ec578081fd5b5035919050565b600080600060608486031215612607578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156126585781516001600160a01b031687529582019590820190600101612633565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b81811015612702578581018301518582016040015282016126e6565b818111156127135783604083870101525b50601f01601f1916929092016040019392505050565b60208082526032908201527f42455032303a207472616e73666572656420616d6f756e74206d7573742062656040820152712067726561746572207468616e207a65726f60701b606082015260800190565b60208082526025908201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526039908201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060408201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606082015260800190565b60208082526028908201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b6020808252601d908201527f43616e742074726164652c2074726164652069732064697361626c6564000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602f908201527f596f752063616e742063616c6c20676f6c64656e20446179206d6f726520746860408201526e616e206f6e6365207065722064617960881b606082015260800190565b60208082526026908201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526023908201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b90815260200190565b600086825285602083015260a06040830152612ae560a0830186612620565b6001600160a01b0394909416606083015250608001529392505050565b9283526020830191909152604082015260600190565b60008219821115612b2b57612b2b612bc1565b500190565b600082612b4b57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612b6a57612b6a612bc1565b500290565b600082821015612b8157612b81612bc1565b500390565b600281046001821680612b9a57607f821691505b60208210811415612bbb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461173357600080fd5b801515811461173357600080fdfea26469706673582212207df44b0856f90fc345afdb4427d59dd4c3986824b45babda651f8dc4e829440564736f6c63430008000033

Deployed Bytecode

0x6080604052600436106103bc5760003560e01c8063893d20e8116101f2578063bf9eb5401161010d578063ddcf9b98116100a0578063f2fde38b1161006f578063f2fde38b14610a12578063f7da678514610a32578063f953cf3a14610a52578063ff31e93014610a67576103c3565b8063ddcf9b98146109a8578063e1370dd3146109bd578063eb04c618146109d2578063edcf19b2146109f2576103c3565b8063d1294d4c116100dc578063d1294d4c14610933578063d15bcf0f14610953578063d7d7442f14610968578063dd62ed3e14610988576103c3565b8063bf9eb540146108be578063c5cb68a1146108de578063cb664534146108f3578063cba0e99614610913576103c3565b8063a5ece94111610185578063b195b83911610154578063b195b83914610854578063b4d95a9314610869578063b62496f514610889578063bf9b0159146108a9576103c3565b8063a5ece941146107df578063a6c38f59146107f4578063a7a0745214610814578063a9059cbb14610834576103c3565b806395d89b41116101c157806395d89b41146107805780639a7a23d6146107955780639b136da4146107b5578063a04bdc81146107ca576103c3565b8063893d20e8146107215780638cd0260c146107365780638da5cb5b1461075657806390f502831461076b576103c3565b8063425ebf48116102e257806364c161631161027557806370a082311161024457806370a08231146106ac578063715018a6146106cc578063801527ce146106e15780638628c23f14610701576103c3565b806364c161631461064d5780636573c4df146106625780636611f938146106825780636df3333a14610697576103c3565b80634a74bb02116102b15780634a74bb02146105ee5780634bd7ace5146106035780635297defd146106185780635be76f111461062d576103c3565b8063425ebf4814610584578063487a6905146105a457806349bd5a5e146105b95780634a0e963c146105ce576103c3565b8063220f66961161035a57806327c8f8351161032957806327c8f835146105185780632d03420b1461053a578063313ce5671461055a5780633cadd3c61461056f576103c3565b8063220f6696146104b957806322788f86146104ce578063232b6406146104e357806323b872dd146104f8576103c3565b806311abb0811161039657806311abb0811461044257806313b4a7f41461046257806314c0eaf91461048257806318160ddd146104a4576103c3565b806306fdde03146103c85780630882a863146103f3578063095ea7b314610415576103c3565b366103c357005b600080fd5b3480156103d457600080fd5b506103dd610a7c565b6040516103ea91906126d6565b60405180910390f35b3480156103ff57600080fd5b5061041361040e3660046125db565b610b0e565b005b34801561042157600080fd5b50610435610430366004612564565b610b5b565b6040516103ea91906126cb565b34801561044e57600080fd5b5061041361045d3660046125db565b610b78565b34801561046e57600080fd5b5061041361047d3660046124e5565b610bbc565b34801561048e57600080fd5b50610497610c5b565b6040516103ea9190612abd565b3480156104b057600080fd5b50610497610c61565b3480156104c557600080fd5b50610435610c67565b3480156104da57600080fd5b50610497610c70565b3480156104ef57600080fd5b50610413610c76565b34801561050457600080fd5b50610435610513366004612512565b610cd9565b34801561052457600080fd5b5061052d610dad565b6040516103ea9190612663565b34801561054657600080fd5b5061041361055536600461258f565b610dd1565b34801561056657600080fd5b50610497610e23565b34801561057b57600080fd5b50610497610e2c565b34801561059057600080fd5b5061041361059f3660046125db565b610e32565b3480156105b057600080fd5b50610497610e76565b3480156105c557600080fd5b5061052d610e7c565b3480156105da57600080fd5b506104136105e936600461246e565b610e8b565b3480156105fa57600080fd5b50610435610eee565b34801561060f57600080fd5b50610497610efc565b34801561062457600080fd5b50610497610f02565b34801561063957600080fd5b5061041361064836600461246e565b610f08565b34801561065957600080fd5b50610497610f84565b34801561066e57600080fd5b5061041361067d3660046125db565b610f8a565b34801561068e57600080fd5b50610413610fef565b3480156106a357600080fd5b50610497611072565b3480156106b857600080fd5b506104976106c736600461246e565b611078565b3480156106d857600080fd5b50610413611093565b3480156106ed57600080fd5b506104136106fc36600461258f565b6110de565b34801561070d57600080fd5b5061041361071c3660046125db565b611137565b34801561072d57600080fd5b5061052d61117b565b34801561074257600080fd5b506104136107513660046125db565b61118a565b34801561076257600080fd5b5061052d6111ce565b34801561077757600080fd5b506104976111dd565b34801561078c57600080fd5b506103dd6111e3565b3480156107a157600080fd5b506104136107b0366004612552565b6111f2565b3480156107c157600080fd5b5061049761126d565b3480156107d657600080fd5b50610497611273565b3480156107eb57600080fd5b5061052d611279565b34801561080057600080fd5b5061041361080f3660046124ad565b611288565b34801561082057600080fd5b5061041361082f3660046125db565b6112f2565b34801561084057600080fd5b5061043561084f366004612564565b611357565b34801561086057600080fd5b5061041361136b565b34801561087557600080fd5b5061041361088436600461246e565b6113d3565b34801561089557600080fd5b506104356108a436600461246e565b611433565b3480156108b557600080fd5b50610497611448565b3480156108ca57600080fd5b506104136108d936600461246e565b61144e565b3480156108ea57600080fd5b506104976114af565b3480156108ff57600080fd5b5061041361090e36600461246e565b6114b5565b34801561091f57600080fd5b5061043561092e36600461246e565b611518565b34801561093f57600080fd5b5061041361094e3660046125db565b611536565b34801561095f57600080fd5b5061043561159c565b34801561097457600080fd5b506104136109833660046125db565b6115a5565b34801561099457600080fd5b506104976109a33660046124e5565b6115e9565b3480156109b457600080fd5b50610497611614565b3480156109c957600080fd5b5061049761161a565b3480156109de57600080fd5b506104136109ed36600461246e565b611620565b3480156109fe57600080fd5b50610413610a0d3660046125db565b611681565b348015610a1e57600080fd5b50610413610a2d36600461246e565b6116c5565b348015610a3e57600080fd5b50610413610a4d3660046125c7565b611736565b348015610a5e57600080fd5b506104136117fb565b348015610a7357600080fd5b5061052d611863565b606060018054610a8b90612b86565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab790612b86565b8015610b045780601f10610ad957610100808354040283529160200191610b04565b820191906000526020600020905b815481529060010190602001808311610ae757829003601f168201915b5050505050905090565b610b16611872565b6001600160a01b0316610b276111ce565b6001600160a01b031614610b565760405162461bcd60e51b8152600401610b4d9061296e565b60405180910390fd5b601855565b6000610b6f610b68611872565b8484611876565b50600192915050565b610b80611872565b6001600160a01b0316610b916111ce565b6001600160a01b031614610bb75760405162461bcd60e51b8152600401610b4d9061296e565b602455565b610bc4611872565b6001600160a01b0316610bd56111ce565b6001600160a01b031614610bfb5760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b0391821660008181526016602090815260408083208054600160ff199182168117909255959096168084528184208054871688179055938352601790915280822080548516861790559181522080549091169091179055565b60285490565b60095490565b60265460ff1681565b60085490565b610c7e611872565b6001600160a01b0316610c8f6111ce565b6001600160a01b031614610cb55760405162461bcd60e51b8152600401610b4d9061296e565b601954601855601b54601a55601d54601c55610cd44262015180612b18565b601e55565b6001600160a01b0383166000908152600d6020526040812081610cfa611872565b6001600160a01b03166001600160a01b0316815260200190815260200160002054821115610d3a5760405162461bcd60e51b8152600401610b4d906128a7565b610d4584848461192a565b610da384610d51611872565b6001600160a01b0387166000908152600d602052604081208691610d73611872565b6001600160a01b03166001600160a01b0316815260200190815260200160002054610d9e9190612b6f565b611876565b5060019392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b610dd9611872565b6001600160a01b0316610dea6111ce565b6001600160a01b031614610e105760405162461bcd60e51b8152600401610b4d9061296e565b601f805460ff1916911515919091179055565b60035460ff1690565b60245490565b610e3a611872565b6001600160a01b0316610e4b6111ce565b6001600160a01b031614610e715760405162461bcd60e51b8152600401610b4d9061296e565b601c55565b600a5490565b602b546001600160a01b031681565b610e93611872565b6001600160a01b0316610ea46111ce565b6001600160a01b031614610eca5760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03166000908152600c60205260409020805460ff19166001179055565b602654610100900460ff1681565b60185490565b60225490565b610f10611872565b6001600160a01b0316610f216111ce565b6001600160a01b031614610f475760405162461bcd60e51b8152600401610b4d9061296e565b60405147906001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610f7f573d6000803e3d6000fd5b505050565b60295490565b610f92611872565b6001600160a01b0316610fa36111ce565b6001600160a01b031614610fc95760405162461bcd60e51b8152600401610b4d9061296e565b6005819055600954606490610fdf908390612b50565b610fe99190612b30565b60125550565b610ff7611872565b6001600160a01b03166110086111ce565b6001600160a01b03161461102e5760405162461bcd60e51b8152600401610b4d9061296e565b601e54421161104f5760405162461bcd60e51b8152600401610b4d906129a3565b601a8054601b5560188054601955601c8054601d55600091829055918190559055565b60075490565b6001600160a01b03166000908152600b602052604090205490565b61109b611872565b6001600160a01b03166110ac6111ce565b6001600160a01b0316146110d25760405162461bcd60e51b8152600401610b4d9061296e565b6110dc6000611f09565b565b6110e6611872565b6001600160a01b03166110f76111ce565b6001600160a01b03161461111d5760405162461bcd60e51b8152600401610b4d9061296e565b602680549115156101000261ff0019909216919091179055565b61113f611872565b6001600160a01b03166111506111ce565b6001600160a01b0316146111765760405162461bcd60e51b8152600401610b4d9061296e565b602255565b60006111856111ce565b905090565b611192611872565b6001600160a01b03166111a36111ce565b6001600160a01b0316146111c95760405162461bcd60e51b8152600401610b4d9061296e565b602055565b6000546001600160a01b031690565b60205490565b606060028054610a8b90612b86565b6111fa611872565b6001600160a01b031661120b6111ce565b6001600160a01b0316146112315760405162461bcd60e51b8152600401610b4d9061296e565b602b546001600160a01b038381169116141561125f5760405162461bcd60e51b8152600401610b4d9061284a565b6112698282611f59565b5050565b601a5490565b600a5481565b6010546001600160a01b031681565b611290611872565b6001600160a01b03166112a16111ce565b6001600160a01b0316146112c75760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03919091166000908152601460205260409020805460ff1916911515919091179055565b6112fa611872565b6001600160a01b031661130b6111ce565b6001600160a01b0316146113315760405162461bcd60e51b8152600401610b4d9061296e565b6006819055600954606490611347908390612b50565b6113519190612b30565b60135550565b6000610b6f611364611872565b848461192a565b611373611872565b6001600160a01b03166113846111ce565b6001600160a01b0316146113aa5760405162461bcd60e51b8152600401610b4d9061296e565b6000601a819055602281905560188190556020819055601c81905560248190556110dc906110de565b6113db611872565b6001600160a01b03166113ec6111ce565b6001600160a01b0316146114125760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03166000908152600c60205260409020805460ff19169055565b600e6020526000908152604090205460ff1681565b60135490565b611456611872565b6001600160a01b03166114676111ce565b6001600160a01b03161461148d5760405162461bcd60e51b8152600401610b4d9061296e565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b601c5490565b6114bd611872565b6001600160a01b03166114ce6111ce565b6001600160a01b0316146114f45760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03166000908152601660205260409020805460ff19166001179055565b6001600160a01b03166000908152600c602052604090205460ff1690565b61153e611872565b6001600160a01b031661154f6111ce565b6001600160a01b0316146115755760405162461bcd60e51b8152600401610b4d9061296e565b60078190556009546103e89061158c908390612b50565b6115969190612b30565b600a5550565b601f5460ff1690565b6115ad611872565b6001600160a01b03166115be6111ce565b6001600160a01b0316146115e45760405162461bcd60e51b8152600401610b4d9061296e565b600855565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b60275490565b60125490565b611628611872565b6001600160a01b03166116396111ce565b6001600160a01b03161461165f5760405162461bcd60e51b8152600401610b4d9061296e565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b611689611872565b6001600160a01b031661169a6111ce565b6001600160a01b0316146116c05760405162461bcd60e51b8152600401610b4d9061296e565b601a55565b6116cd611872565b6001600160a01b03166116de6111ce565b6001600160a01b0316146117045760405162461bcd60e51b8152600401610b4d9061296e565b6001600160a01b03811661172a5760405162461bcd60e51b8152600401610b4d90612804565b61173381611f09565b50565b61173e611872565b6001600160a01b031661174f6111ce565b6001600160a01b0316146117755760405162461bcd60e51b8152600401610b4d9061296e565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906117a39085908590600401612677565b602060405180830381600087803b1580156117bd57600080fd5b505af11580156117d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f591906125ab565b50505050565b611803611872565b6001600160a01b03166118146111ce565b6001600160a01b03161461183a5760405162461bcd60e51b8152600401610b4d9061296e565b6004601a55600a6018556001601c8190556005602255600d60205560026024556110dc906110de565b6011546001600160a01b031681565b3390565b6001600160a01b03831661189c5760405162461bcd60e51b8152600401610b4d906127c0565b6001600160a01b0382166118c25760405162461bcd60e51b8152600401610b4d90612a7b565b6001600160a01b038084166000818152600d602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061191d908590612abd565b60405180910390a3505050565b6001600160a01b0383166119505760405162461bcd60e51b8152600401610b4d9061277b565b6001600160a01b0382166119765760405162461bcd60e51b8152600401610b4d90612a38565b600081116119965760405162461bcd60e51b8152600401610b4d90612729565b6001600160a01b0383166000908152600b6020526040902054818110156119cf5760405162461bcd60e51b8152600401610b4d906129f2565b601f5460ff16611a34576001600160a01b03831660009081526016602052604090205460ff1680611a1857506001600160a01b03841660009081526016602052604090205460ff165b611a345760405162461bcd60e51b8152600401610b4d90612937565b6001600160a01b03831660009081526016602052604090205460ff16158015611a7657506001600160a01b03841660009081526016602052604090205460ff16155b15611a9d57601354821115611a9d5760405162461bcd60e51b8152600401610b4d906128ef565b6000611aa830611078565b9050600a548110158015611abf575060265460ff16155b8015611ad95750602b546001600160a01b03868116911614155b8015611aec5750602654610100900460ff165b15611b0757600a548110611b075750600a54611b0781611fad565b6001600160a01b0385166000908152600c602052604090205460019060ff1680611b4957506001600160a01b0385166000908152600c602052604090205460ff165b15611b575750600060048190555b60008060008315611d77576001600160a01b03891660009081526014602052604090205460ff16151560011480611bab57506001600160a01b03881660009081526014602052604090205460ff1615156001145b15611c195760006004556064611bc288600f612b50565b611bcc9190612b30565b92506064611bdb88604b612b50565b611be59190612b30565b90506064611bf4886005612b50565b611bfe9190612b30565b915081611c0b8285612b18565b611c159190612b18565b6004555b6001600160a01b0388166000908152600e602052604090205460ff168015611c4f5750602a546001600160a01b03898116911614155b15611cca576000600455602254606490611c699089612b50565b611c739190612b30565b9250606460205488611c859190612b50565b611c8f9190612b30565b9050606460245488611ca19190612b50565b611cab9190612b30565b915081611cb88285612b18565b611cc29190612b18565b600455611d77565b6001600160a01b0389166000908152600e602052604090205460ff168015611d005750602a546001600160a01b038a8116911614155b15611d77576000600455601a54606490611d1a9089612b50565b611d249190612b30565b9250606460185488611d369190612b50565b611d409190612b30565b90506064601c5488611d529190612b50565b611d5c9190612b30565b915081611d698285612b18565b611d739190612b18565b6004555b611d818787612b6f565b6001600160a01b038a166000908152600b60205260409020558082611da6858a612b6f565b611db09190612b6f565b611dba9190612b6f565b6001600160a01b0389166000908152600b602052604081208054909190611de2908490612b18565b90915550508015611ea657600454306000908152600b602052604081208054909190611e0f908490612b18565b925050819055508060296000828254611e289190612b18565b925050819055508160286000828254611e419190612b18565b925050819055508260276000828254611e5a9190612b18565b909155505060045460405130916001600160a01b038c16917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91611e9d91612abd565b60405180910390a35b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004548a611ee99190612b6f565b604051611ef69190612abd565b60405180910390a3505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000818152600e6020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6026805460ff19166001179055602954611fc69061202f565b611fd16027546120b0565b611fdc602854612239565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f019048160405161200b9190612abd565b60405180910390a1506000602781905560288190556029556026805460ff19169055565b600061203c600283612b30565b9050600061204a8284612b6f565b90504761205683612251565b60006120628247612b6f565b905061206e83826123a0565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5618482856040516120a193929190612b02565b60405180910390a15050505050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106120f357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602a54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561214757600080fd5b505afa15801561215b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217f9190612491565b816001815181106121a057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152602a546121c69130911684611876565b602a5460105460405163791ac94760e01b81526001600160a01b039283169263791ac9479261220392879260009288929116904290600401612ac6565b600060405180830381600087803b15801561221d57600080fd5b505af1158015612231573d6000803e3d6000fd5b505050505050565b6011546117339030906001600160a01b03168361192a565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061229457634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602a54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156122e857600080fd5b505afa1580156122fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123209190612491565b8160018151811061234157634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152602a546123679130911684611876565b602a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790612203908590600090869030904290600401612ac6565b602a546123b89030906001600160a01b031684611876565b602a5460405163f305d71960e01b81526001600160a01b039091169063f305d719908390612415903090879060009081907f000000000000000000000000000000000000000000000000000000000000dead904290600401612690565b6060604051808303818588803b15801561242e57600080fd5b505af1158015612442573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061246791906125f3565b5050505050565b60006020828403121561247f578081fd5b813561248a81612bd7565b9392505050565b6000602082840312156124a2578081fd5b815161248a81612bd7565b600080604083850312156124bf578081fd5b82356124ca81612bd7565b915060208301356124da81612bec565b809150509250929050565b600080604083850312156124f7578182fd5b823561250281612bd7565b915060208301356124da81612bd7565b600080600060608486031215612526578081fd5b833561253181612bd7565b9250602084013561254181612bd7565b929592945050506040919091013590565b600080604083850312156124bf578182fd5b60008060408385031215612576578182fd5b823561258181612bd7565b946020939093013593505050565b6000602082840312156125a0578081fd5b813561248a81612bec565b6000602082840312156125bc578081fd5b815161248a81612bec565b600080600060608486031215612526578283fd5b6000602082840312156125ec578081fd5b5035919050565b600080600060608486031215612607578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156126585781516001600160a01b031687529582019590820190600101612633565b509495945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b81811015612702578581018301518582016040015282016126e6565b818111156127135783604083870101525b50601f01601f1916929092016040019392505050565b60208082526032908201527f42455032303a207472616e73666572656420616d6f756e74206d7573742062656040820152712067726561746572207468616e207a65726f60701b606082015260800190565b60208082526025908201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526039908201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060408201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606082015260800190565b60208082526028908201527f42455032303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b6020808252601d908201527f43616e742074726164652c2074726164652069732064697361626c6564000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252602f908201527f596f752063616e742063616c6c20676f6c64656e20446179206d6f726520746860408201526e616e206f6e6365207065722064617960881b606082015260800190565b60208082526026908201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526023908201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b90815260200190565b600086825285602083015260a06040830152612ae560a0830186612620565b6001600160a01b0394909416606083015250608001529392505050565b9283526020830191909152604082015260600190565b60008219821115612b2b57612b2b612bc1565b500190565b600082612b4b57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612b6a57612b6a612bc1565b500290565b600082821015612b8157612b81612bc1565b500390565b600281046001821680612b9a57607f821691505b60208210811415612bbb57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461173357600080fd5b801515811461173357600080fdfea26469706673582212207df44b0856f90fc345afdb4427d59dd4c3986824b45babda651f8dc4e829440564736f6c63430008000033

Deployed Bytecode Sourcemap

5417:17847:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10553:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21836:111;;;;;;;;;;-1:-1:-1;21836:111:0;;;;;:::i;:::-;;:::i;:::-;;10287:168;;;;;;;;;;-1:-1:-1;10287:168:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;22443:123::-;;;;;;;;;;-1:-1:-1;22443:123:0;;;;;:::i;:::-;;:::i;19932:302::-;;;;;;;;;;-1:-1:-1;19932:302:0;;;;;:::i;:::-;;:::i;9478:104::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9697:106::-;;;;;;;;;;;;;:::i;7507:28::-;;;;;;;;;;;;;:::i;12905:101::-;;;;;;;;;;;;;:::i;11899:221::-;;;;;;;;;;;;;:::i;11093:388::-;;;;;;;;;;-1:-1:-1;11093:388:0;;;;;:::i;:::-;;:::i;7589:81::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;18130:90::-;;;;;;;;;;-1:-1:-1;18130:90:0;;;;;:::i;:::-;;:::i;10463:84::-;;;;;;;;;;;;;:::i;12791:108::-;;;;;;;;;;;;;:::i;22070:120::-;;;;;;;;;;-1:-1:-1;22070:120:0;;;;;:::i;:::-;;:::i;23156:105::-;;;;;;;;;;;;;:::i;8138:28::-;;;;;;;;;;;;;:::i;19686:114::-;;;;;;;;;;-1:-1:-1;19686:114:0;;;;;:::i;:::-;;:::i;7542:40::-;;;;;;;;;;;;;:::i;12264:96::-;;;;;;;;;;;;;:::i;12687:98::-;;;;;;;;;;;;;:::i;17944:178::-;;;;;;;;;;-1:-1:-1;17944:178:0;;;;;:::i;:::-;;:::i;9589:99::-;;;;;;;;;;;;;:::i;10904:175::-;;;;;;;;;;-1:-1:-1;10904:175:0;;;;;:::i;:::-;;:::i;11535:358::-;;;;;;;;;;;;;:::i;23053:97::-;;;;;;;;;;;;;:::i;9814:118::-;;;;;;;;;;-1:-1:-1;9814:118:0;;;;;:::i;:::-;;:::i;4782:94::-;;;;;;;;;;;;;:::i;20868:113::-;;;;;;;;;;-1:-1:-1;20868:113:0;;;;;:::i;:::-;;:::i;22319:112::-;;;;;;;;;;-1:-1:-1;22319:112:0;;;;;:::i;:::-;;:::i;9280:86::-;;;;;;;;;;;;;:::i;22200:113::-;;;;;;;;;;-1:-1:-1;22200:113:0;;;;;:::i;:::-;;:::i;4131:87::-;;;;;;;;;;;;;:::i;12583:98::-;;;;;;;;;;;;;:::i;10635:88::-;;;;;;;;;;;;;:::i;21392:242::-;;;;;;;;;;-1:-1:-1;21392:242:0;;;;;:::i;:::-;;:::i;12366:96::-;;;;;;;;;;;;;:::i;5978:71::-;;;;;;;;;;;;;:::i;6329:93::-;;;;;;;;;;;;;:::i;12128:130::-;;;;;;;;;;-1:-1:-1;12128:130:0;;;;;:::i;:::-;;:::i;10733:164::-;;;;;;;;;;-1:-1:-1;10733:164:0;;;;;:::i;:::-;;:::i;9943:176::-;;;;;;;;;;-1:-1:-1;9943:176:0;;;;;:::i;:::-;;:::i;20242:249::-;;;;;;;;;;;;;:::i;19808:116::-;;;;;;;;;;-1:-1:-1;19808:116:0;;;;;:::i;:::-;;:::i;6243:58::-;;;;;;;;;;-1:-1:-1;6243:58:0;;;;;:::i;:::-;;:::i;22675:89::-;;;;;;;;;;;;;:::i;21019:118::-;;;;;;;;;;-1:-1:-1;21019:118:0;;;;;:::i;:::-;;:::i;12468:105::-;;;;;;;;;;;;;:::i;17032:123::-;;;;;;;;;;-1:-1:-1;17032:123:0;;;;;:::i;:::-;;:::i;13012:118::-;;;;;;;;;;-1:-1:-1;13012:118:0;;;;;:::i;:::-;;:::i;22770:174::-;;;;;;;;;;-1:-1:-1;22770:174:0;;;;;:::i;:::-;;:::i;22950:97::-;;;;;;;;;;;;;:::i;20748:112::-;;;;;;;;;;-1:-1:-1;20748:112:0;;;;;:::i;:::-;;:::i;10130:148::-;;;;;;;;;;-1:-1:-1;10130:148:0;;;;;:::i;:::-;;:::i;9372:99::-;;;;;;;;;;;;;:::i;22572:97::-;;;;;;;;;;;;;:::i;21262:124::-;;;;;;;;;;-1:-1:-1;21262:124:0;;;;;:::i;:::-;;:::i;21953:111::-;;;;;;;;;;-1:-1:-1;21953:111:0;;;;;:::i;:::-;;:::i;5031:192::-;;;;;;;;;;-1:-1:-1;5031:192:0;;;;;:::i;:::-;;:::i;17693:243::-;;;;;;;;;;-1:-1:-1;17693:243:0;;;;;:::i;:::-;;:::i;20497:::-;;;;;;;;;;;;;:::i;6429:93::-;;;;;;;;;;;;;:::i;10553:76::-;10592:13;10619:5;10612:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10553:76;:::o;21836:111::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;;;;;;;;;21918:9:::1;:21:::0;21836:111::o;10287:168::-;10364:4;10384:37;10393:12;:10;:12::i;:::-;10406:7;10414:6;10384:8;:37::i;:::-;-1:-1:-1;10443:4:0;10287:168;;;;:::o;22443:123::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;22534:13:::1;:24:::0;22443:123::o;19932:302::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20038:34:0;;::::1;;::::0;;;:17:::1;:34;::::0;;;;;;;:41;;20075:4:::1;-1:-1:-1::0;;20038:41:0;;::::1;::::0;::::1;::::0;;;20090:26;;;::::1;::::0;;;;;;:33;;;::::1;::::0;::::1;::::0;;20134;;;:16:::1;:33:::0;;;;;;:40;;;::::1;::::0;::::1;::::0;;20185:25;;;;:32;;;;::::1;::::0;;::::1;::::0;;19932:302::o;9478:104::-;9558:15;;9478:104;:::o;9697:106::-;9782:12;;9697:106;:::o;7507:28::-;;;;;;:::o;12905:101::-;12982:16;;12905:101;:::o;11899:221::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;11964:13:::1;::::0;11952:9:::1;:25:::0;12001:13:::1;::::0;11989:9:::1;:25:::0;12041:16:::1;::::0;12026:12:::1;:31:::0;12089:23:::1;:15;12107:5;12089:23;:::i;:::-;12069:17;:43:::0;11899:221::o;11093:388::-;-1:-1:-1;;;;;11259:19:0;;11225:4;11259:19;;;:11;:19;;;;;11225:4;11279:12;:10;:12::i;:::-;-1:-1:-1;;;;;11259:33:0;-1:-1:-1;;;;;11259:33:0;;;;;;;;;;;;;11249:6;:43;;11241:96;;;;-1:-1:-1;;;11241:96:0;;;;;;;:::i;:::-;11342:36;11352:6;11360:9;11371:6;11342:9;:36::i;:::-;11383:74;11392:6;11400:12;:10;:12::i;:::-;-1:-1:-1;;;;;11414:19:0;;;;;;:11;:19;;;;;11450:6;;11434:12;:10;:12::i;:::-;-1:-1:-1;;;;;11414:33:0;-1:-1:-1;;;;;11414:33:0;;;;;;;;;;;;;:42;;;;:::i;:::-;11383:8;:74::i;:::-;-1:-1:-1;11469:4:0;11093:388;;;;;:::o;7589:81::-;;;:::o;18130:90::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;18191:12:::1;:21:::0;;-1:-1:-1;;18191:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18130:90::o;10463:84::-;10530:9;;;;10463:84;:::o;12791:108::-;12878:13;;12791:108;:::o;22070:120::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;22159:12:::1;:23:::0;22070:120::o;23156:105::-;23233:20;;23156:105;:::o;8138:28::-;;;-1:-1:-1;;;;;8138:28:0;;:::o;19686:114::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19757:28:0::1;;::::0;;;:17:::1;:28;::::0;;;;:35;;-1:-1:-1;;19757:35:0::1;19788:4;19757:35;::::0;;19686:114::o;7542:40::-;;;;;;;;;:::o;12264:96::-;12343:9;;12264:96;:::o;12687:98::-;12767:10;;12687:98;:::o;17944:178::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;18073:41:::1;::::0;18041:21:::1;::::0;-1:-1:-1;;;;;18073:29:0;::::1;::::0;:41;::::1;;;::::0;18041:21;;18020:18:::1;18073:41:::0;18020:18;18073:41;18041:21;18073:29;:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;4422:1;17944:178:::0;:::o;9589:99::-;9670:9;;9589:99;:::o;10904:175::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;10980:17:::1;:26:::0;;;11035:12:::1;::::0;11066:3:::1;::::0;11035:30:::1;::::0;11000:6;;11035:30:::1;:::i;:::-;:34;;;;:::i;:::-;11017:15;:52:::0;-1:-1:-1;10904:175:0:o;11535:358::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;11610:17:::1;;11592:15;:35;11584:95;;;;-1:-1:-1::0;;;11584:95:0::1;;;;;;;:::i;:::-;11707:9;::::0;;11691:13:::1;:25:::0;11744:9:::1;::::0;;11728:13:::1;:25:::0;11784:12:::1;::::0;;11765:16:::1;:31:::0;-1:-1:-1;11819:13:0;;;;11844;;;;11869:16;;11535:358::o;23053:97::-;23130:12;;23053:97;:::o;9814:118::-;-1:-1:-1;;;;;9906:18:0;9880:7;9906:18;;;:9;:18;;;;;;;9814:118::o;4782:94::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;4847:21:::1;4865:1;4847:9;:21::i;:::-;4782:94::o:0;20868:113::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;20941:21:::1;:32:::0;;;::::1;;;;-1:-1:-1::0;;20941:32:0;;::::1;::::0;;;::::1;::::0;;20868:113::o;22319:112::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;22402:10:::1;:21:::0;22319:112::o;9280:86::-;9321:7;9351;:5;:7::i;:::-;9344:14;;9280:86;:::o;22200:113::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;22284:10:::1;:21:::0;22200:113::o;4131:87::-;4177:7;4204:6;-1:-1:-1;;;;;4204:6:0;4131:87;:::o;12583:98::-;12663:10;;12583:98;:::o;10635:88::-;10676:13;10708:7;10701:14;;;;;:::i;21392:242::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;21499:13:::1;::::0;-1:-1:-1;;;;;21491:21:0;;::::1;21499:13:::0;::::1;21491:21;;21483:91;;;;-1:-1:-1::0;;;21483:91:0::1;;;;;;;:::i;:::-;21585:41;21614:4;21620:5;21585:28;:41::i;:::-;21392:242:::0;;:::o;12366:96::-;12445:9;;12366:96;:::o;5978:71::-;;;;:::o;6329:93::-;;;-1:-1:-1;;;;;6329:93:0;;:::o;12128:130::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12219:23:0;;;::::1;;::::0;;;:10:::1;:23;::::0;;;;:31;;-1:-1:-1;;12219:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12128:130::o;10733:164::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;10805:13:::1;:22:::0;;;10852:12:::1;::::0;10879:3:::1;::::0;10852:26:::1;::::0;10821:6;;10852:26:::1;:::i;:::-;:30;;;;:::i;:::-;10838:11;:44:::0;-1:-1:-1;10733:164:0:o;9943:176::-;10023:4;10043:40;10053:12;:10;:12::i;:::-;10066:9;10076:6;10043:9;:40::i;20242:249::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;20320:1:::1;20308:9;:13:::0;;;20332:10:::1;:13:::0;;;20356:9:::1;:12:::0;;;20379:10:::1;:13:::0;;;20403:12:::1;:15:::0;;;20429:13:::1;:17:::0;;;20457:24:::1;::::0;:17:::1;:24::i;19808:116::-:0;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19881:27:0::1;19911:5;19881:27:::0;;;:17:::1;:27;::::0;;;;:35;;-1:-1:-1;;19881:35:0::1;::::0;;19808:116::o;6243:58::-;;;;;;;;;;;;;;;:::o;22675:89::-;22745:11;;22675:89;:::o;21019:118::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;21091:16:::1;:38:::0;;-1:-1:-1;;;;;;21091:38:0::1;-1:-1:-1::0;;;;;21091:38:0;;;::::1;::::0;;;::::1;::::0;;21019:118::o;12468:105::-;12553:12;;12468:105;:::o;17032:123::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17104:29:0::1;;::::0;;;:17:::1;:29;::::0;;;;:36;;-1:-1:-1;;17104:36:0::1;17136:4;17104:36;::::0;;17032:123::o;13012:118::-;-1:-1:-1;;;;;13096:26:0;13069:4;13096:26;;;:17;:26;;;;;;;;;13012:118::o;22770:174::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;22841:12:::1;:21:::0;;;22896:12:::1;::::0;22922:4:::1;::::0;22896:25:::1;::::0;22856:6;;22896:25:::1;:::i;:::-;:30;;;;:::i;:::-;22873:20;:53:::0;-1:-1:-1;22770:174:0:o;22950:97::-;23024:12;;;;22950:97;:::o;20748:112::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;20819:16:::1;:31:::0;20748:112::o;10130:148::-;-1:-1:-1;;;;;10243:18:0;;;10213:7;10243:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10130:148::o;9372:99::-;9453:9;;9372:99;:::o;22572:97::-;22646:15;;22572:97;:::o;21262:124::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;21340:16:::1;:38:::0;;-1:-1:-1;;;;;;21340:38:0::1;-1:-1:-1::0;;;;;21340:38:0;;;::::1;::::0;;;::::1;::::0;;21262:124::o;21953:111::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;22036:9:::1;:20:::0;21953:111::o;5031:192::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5120:22:0;::::1;5112:73;;;;-1:-1:-1::0;;;5112:73:0::1;;;;;;;:::i;:::-;5196:19;5206:8;5196:9;:19::i;:::-;5031:192:::0;:::o;17693:243::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;17886:42:::1;::::0;-1:-1:-1;;;17886:42:0;;-1:-1:-1;;;;;17886:21:0;::::1;::::0;::::1;::::0;:42:::1;::::0;17908:11;;17921:6;;17886:42:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17693:243:::0;;;:::o;20497:::-;4362:12;:10;:12::i;:::-;-1:-1:-1;;;;;4351:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;4351:23:0;;4343:68;;;;-1:-1:-1;;;4343:68:0;;;;;;;:::i;:::-;20564:1:::1;20552:9;:13:::0;20588:2:::1;20576:9;:14:::0;20616:1:::1;20601:12;:16:::0;;;20643:1:::1;20630:10;:14:::0;20668:2:::1;20655:10;:15:::0;-1:-1:-1;20681:13:0::1;:17:::0;20709:23:::1;::::0;:17:::1;:23::i;6429:93::-:0;;;-1:-1:-1;;;;;6429:93:0;;:::o;91:98::-;171:10;91:98;:::o;19318:322::-;-1:-1:-1;;;;;19410:19:0;;19402:68;;;;-1:-1:-1;;;19402:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19483:21:0;;19475:68;;;;-1:-1:-1;;;19475:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19550:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;19596:32;;;;;19580:6;;19596:32;:::i;:::-;;;;;;;;19318:322;;;:::o;13138:3546::-;-1:-1:-1;;;;;13236:18:0;;13228:68;;;;-1:-1:-1;;;13228:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13309:16:0;;13301:64;;;;-1:-1:-1;;;13301:64:0;;;;;;;:::i;:::-;13393:1;13384:6;:10;13376:72;;;;-1:-1:-1;;;13376:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13483:15:0;;13459:21;13483:15;;;:9;:15;;;;;;13517:23;;;;13509:74;;;;-1:-1:-1;;;13509:74:0;;;;;;;:::i;:::-;13597:12;;;;13594:141;;-1:-1:-1;;;;;13642:21:0;;;;;;:17;:21;;;;;;;;;:48;;-1:-1:-1;;;;;;13667:23:0;;;;;;:17;:23;;;;;;;;13642:48;13634:89;;;;-1:-1:-1;;;13634:89:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13748:21:0;;;;;;:17;:21;;;;;;;;:28;;;:62;;-1:-1:-1;;;;;;13780:23:0;;;;;;:17;:23;;;;;;;;:30;13748:62;13745:163;;;13840:11;;13830:6;:21;;13822:74;;;;-1:-1:-1;;;13822:74:0;;;;;;;:::i;:::-;13918:25;13946:24;13964:4;13946:9;:24::i;:::-;13918:52;;14004:20;;13984:17;:40;;:66;;;;-1:-1:-1;14034:16:0;;;;14033:17;13984:66;:96;;;;-1:-1:-1;14067:13:0;;-1:-1:-1;;;;;14059:21:0;;;14067:13;;14059:21;;13984:96;:126;;;;-1:-1:-1;14089:21:0;;;;;;;13984:126;13981:352;;;14154:20;;14133:17;:41;14130:188;;-1:-1:-1;14219:20:0;;14262:36;14219:20;14262:17;:36::i;:::-;-1:-1:-1;;;;;14415:23:0;;14349:13;14415:23;;;:17;:23;;;;;;14365:4;;14415:23;;;:48;;-1:-1:-1;;;;;;14442:21:0;;;;;;:17;:21;;;;;;;;14415:48;14412:159;;;-1:-1:-1;14500:1:0;14484:13;:17;;;14412:159;14585:17;14621:23;14694:17;14772:8;14769:1376;;;-1:-1:-1;;;;;14867:16:0;;;;;;:10;:16;;;;;;;;:24;;:16;:24;;:46;;-1:-1:-1;;;;;;14893:14:0;;;;;;:10;:14;;;;;;;;:20;;:14;:20;14867:46;14864:343;;;14953:1;14937:13;:17;15001:3;14989:11;:6;14998:2;14989:11;:::i;:::-;:15;;;;:::i;:::-;14977:27;-1:-1:-1;15051:3:0;15039:11;:6;15048:2;15039:11;:::i;:::-;:15;;;;:::i;:::-;15027:27;-1:-1:-1;15106:3:0;15095:10;:6;15104:1;15095:10;:::i;:::-;:14;;;;:::i;:::-;15077:32;-1:-1:-1;15077:32:0;15148:21;15160:9;15148;:21;:::i;:::-;:39;;;;:::i;:::-;15132:13;:55;14864:343;-1:-1:-1;;;;;15261:29:0;;;;;;:25;:29;;;;;;;;:55;;;;-1:-1:-1;15308:7:0;;-1:-1:-1;;;;;15294:22:0;;;15308:7;;15294:22;;15261:55;15257:853;;;15361:1;15345:13;:17;15410:10;;15421:3;;15401:19;;:6;:19;:::i;:::-;:23;;;;:::i;:::-;15389:35;;15483:3;15472:10;;15463:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;15451:35;;15554:3;15540:13;;15531:6;:22;;;;:::i;:::-;:26;;;;:::i;:::-;15513:44;-1:-1:-1;15513:44:0;15600:21;15612:9;15600;:21;:::i;:::-;:39;;;;:::i;:::-;15584:13;:55;15257:853;;;-1:-1:-1;;;;;15713:31:0;;;;;;:25;:31;;;;;;;;:59;;;;-1:-1:-1;15764:7:0;;-1:-1:-1;;;;;15748:24:0;;;15764:7;;15748:24;;15713:59;15710:400;;;15831:1;15815:13;:17;15876:9;;15886:3;;15867:18;;:6;:18;:::i;:::-;:22;;;;:::i;:::-;15855:34;;15943:3;15933:9;;15924:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;15912:34;;16009:3;15996:12;;15987:6;:21;;;;:::i;:::-;:25;;;;:::i;:::-;15969:43;-1:-1:-1;15969:43:0;16051:21;16063:9;16051;:21;:::i;:::-;:39;;;;:::i;:::-;16035:13;:55;15710:400;16179:22;16195:6;16179:13;:22;:::i;:::-;-1:-1:-1;;;;;16161:15:0;;;;;;:9;:15;;;;;:40;16272:9;16254:15;16233:18;16242:9;16233:6;:18;:::i;:::-;:36;;;;:::i;:::-;:48;;;;:::i;:::-;-1:-1:-1;;;;;16216:13:0;;;;;;:9;:13;;;;;:65;;:13;;;:65;;;;;:::i;:::-;;;;-1:-1:-1;;16299:14:0;;16296:298;;16349:13;;16339:4;16321:24;;;;:9;:24;;;;;:41;;:24;;;:41;;16349:13;;16321:41;:::i;:::-;;;;;;;;16420:9;16407;;:22;;;;;;;:::i;:::-;;;;;;;;16463:15;16444;;:34;;;;;;;:::i;:::-;;;;;;;;16506:9;16493;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;16556:13:0;;16526:44;;16549:4;;-1:-1:-1;;;;;16526:44:0;;;;;;;;:::i;:::-;;;;;;;;16296:298;16628:2;-1:-1:-1;;;;;16613:39:0;16622:4;-1:-1:-1;;;;;16613:39:0;;16638:13;;16631:6;:20;;;;:::i;:::-;16613:39;;;;;;:::i;:::-;;;;;;;;13138:3546;;;;;;;;;:::o;5231:173::-;5287:16;5306:6;;-1:-1:-1;;;;;5323:17:0;;;-1:-1:-1;;;;;;5323:17:0;;;;;;5356:40;;5306:6;;;;;;;5356:40;;5287:16;5356:40;5231:173;;:::o;21640:188::-;-1:-1:-1;;;;;21723:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;21723:39:0;;;;;;;;;;21780:40;;21723:39;;:31;21780:40;;;21640:188;;:::o;16690:335::-;8226:16;:23;;-1:-1:-1;;8226:23:0;8245:4;8226:23;;;16785:9:::1;::::0;16770:25:::1;::::0;:14:::1;:25::i;:::-;16806:30;16826:9;;16806:19;:30::i;:::-;16847:32;16863:15;;16847;:32::i;:::-;16895:44;16925:13;16895:44;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;16962:1:0::1;16950:9;:13:::0;;;16974:15:::1;:19:::0;;;17004:9:::1;:13:::0;8260:16;:24;;-1:-1:-1;;8260:24:0;;;16690:335::o;18228:388::-;18290:12;18305:19;18323:1;18305:15;:19;:::i;:::-;18290:34;-1:-1:-1;18329:17:0;18349:22;18290:34;18349:15;:22;:::i;:::-;18329:42;-1:-1:-1;18401:21:0;18429:22;18446:4;18429:16;:22::i;:::-;18456:18;18477:40;18502:14;18477:21;:40;:::i;:::-;18456:61;;18525:35;18538:9;18549:10;18525:12;:35::i;:::-;18570:41;18585:4;18590:10;18601:9;18570:41;;;;;;;;:::i;:::-;;;;;;;;18228:388;;;;;:::o;17161:399::-;17248:16;;;17262:1;17248:16;;;;;;;;17224:21;;17248:16;;;;;;;;;;-1:-1:-1;17248:16:0;17224:40;;17287:4;17269;17274:1;17269:7;;;;;;-1:-1:-1;;;17269:7:0;;;;;;;;;-1:-1:-1;;;;;17269:23:0;;;:7;;;;;;;;;;:23;;;;17307:7;;:14;;;-1:-1:-1;;;17307:14:0;;;;:7;;;;;:12;;:14;;;;;17269:7;;17307:14;;;;;:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17297:4;17302:1;17297:7;;;;;;-1:-1:-1;;;17297:7:0;;;;;;;;;-1:-1:-1;;;;;17297:24:0;;;:7;;;;;;;;;:24;17358:7;;17326:49;;17343:4;;17358:7;17368:6;17326:8;:49::i;:::-;17386:7;;17508:16;;17386:164;;-1:-1:-1;;;17386:164:0;;-1:-1:-1;;;;;17386:7:0;;;;:58;;:164;;17450:6;;17386:7;;17498:4;;17508:16;;;17530:15;;17386:164;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17161:399;;:::o;17568:117::-;17650:16;;17625:50;;17643:4;;-1:-1:-1;;;;;17650:16:0;17668:6;17625:9;:50::i;18624:397::-;18707:16;;;18721:1;18707:16;;;;;;;;18683:21;;18707:16;;;;;;;;;;-1:-1:-1;18707:16:0;18683:40;;18746:4;18728;18733:1;18728:7;;;;;;-1:-1:-1;;;18728:7:0;;;;;;;;;-1:-1:-1;;;;;18728:23:0;;;:7;;;;;;;;;;:23;;;;18766:7;;:14;;;-1:-1:-1;;;18766:14:0;;;;:7;;;;;:12;;:14;;;;;18728:7;;18766:14;;;;;:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18756:4;18761:1;18756:7;;;;;;-1:-1:-1;;;18756:7:0;;;;;;;;;-1:-1:-1;;;;;18756:24:0;;;:7;;;;;;;;;:24;18817:7;;18785:54;;18802:4;;18817:7;18827:11;18785:8;:54::i;:::-;18850:7;;:166;;-1:-1:-1;;;18850:166:0;;-1:-1:-1;;;;;18850:7:0;;;;:58;;:166;;18914:11;;18850:7;;18967:4;;18985;;18996:15;;18850:166;;;:::i;19033:277::-;19138:7;;19106:54;;19123:4;;-1:-1:-1;;;;;19138:7:0;19148:11;19106:8;:54::i;:::-;19167:7;;:138;;-1:-1:-1;;;19167:138:0;;-1:-1:-1;;;;;19167:7:0;;;;:23;;19197:9;;19167:138;;19221:4;;19232:11;;19167:7;;;;19263:11;;19285:15;;19167:138;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19033:277;;:::o;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;:::-;262:5;84:189;-1:-1:-1;;;84:189:1:o;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;818:404::-;;;952:2;940:9;931:7;927:23;923:32;920:2;;;973:6;965;958:22;920:2;1017:9;1004:23;1036:33;1063:5;1036:33;:::i;:::-;1088:5;-1:-1:-1;1145:2:1;1130:18;;1117:32;1158;1117;1158;:::i;:::-;1209:7;1199:17;;;910:312;;;;;:::o;1227:402::-;;;1356:2;1344:9;1335:7;1331:23;1327:32;1324:2;;;1377:6;1369;1362:22;1324:2;1421:9;1408:23;1440:33;1467:5;1440:33;:::i;:::-;1492:5;-1:-1:-1;1549:2:1;1534:18;;1521:32;1562:35;1521:32;1562:35;:::i;1634:470::-;;;;1780:2;1768:9;1759:7;1755:23;1751:32;1748:2;;;1801:6;1793;1786:22;1748:2;1845:9;1832:23;1864:33;1891:5;1864:33;:::i;:::-;1916:5;-1:-1:-1;1973:2:1;1958:18;;1945:32;1986:35;1945:32;1986:35;:::i;:::-;1738:366;;2040:7;;-1:-1:-1;;;2094:2:1;2079:18;;;;2066:32;;1738:366::o;2109:396::-;;;2235:2;2223:9;2214:7;2210:23;2206:32;2203:2;;;2256:6;2248;2241:22;2510:327;;;2639:2;2627:9;2618:7;2614:23;2610:32;2607:2;;;2660:6;2652;2645:22;2607:2;2704:9;2691:23;2723:33;2750:5;2723:33;:::i;:::-;2775:5;2827:2;2812:18;;;;2799:32;;-1:-1:-1;;;2597:240:1:o;2842:253::-;;2951:2;2939:9;2930:7;2926:23;2922:32;2919:2;;;2972:6;2964;2957:22;2919:2;3016:9;3003:23;3035:30;3059:5;3035:30;:::i;3100:257::-;;3220:2;3208:9;3199:7;3195:23;3191:32;3188:2;;;3241:6;3233;3226:22;3188:2;3278:9;3272:16;3297:30;3321:5;3297:30;:::i;3362:491::-;;;;3529:2;3517:9;3508:7;3504:23;3500:32;3497:2;;;3550:6;3542;3535:22;3858:190;;3970:2;3958:9;3949:7;3945:23;3941:32;3938:2;;;3991:6;3983;3976:22;3938:2;-1:-1:-1;4019:23:1;;3928:120;-1:-1:-1;3928:120:1:o;4053:316::-;;;;4210:2;4198:9;4189:7;4185:23;4181:32;4178:2;;;4231:6;4223;4216:22;4178:2;4265:9;4259:16;4249:26;;4315:2;4304:9;4300:18;4294:25;4284:35;;4359:2;4348:9;4344:18;4338:25;4328:35;;4168:201;;;;;:::o;4374:469::-;;4471:5;4465:12;4498:6;4493:3;4486:19;4524:4;4553:2;4548:3;4544:12;4537:19;;4590:2;4583:5;4579:14;4611:3;4623:195;4637:6;4634:1;4631:13;4623:195;;;4702:13;;-1:-1:-1;;;;;4698:39:1;4686:52;;4758:12;;;;4793:15;;;;4734:1;4652:9;4623:195;;;-1:-1:-1;4834:3:1;;4441:402;-1:-1:-1;;;;;4441:402:1:o;4848:203::-;-1:-1:-1;;;;;5012:32:1;;;;4994:51;;4982:2;4967:18;;4949:102::o;5280:282::-;-1:-1:-1;;;;;5480:32:1;;;;5462:51;;5544:2;5529:18;;5522:34;5450:2;5435:18;;5417:145::o;5567:607::-;-1:-1:-1;;;;;5926:15:1;;;5908:34;;5973:2;5958:18;;5951:34;;;;6016:2;6001:18;;5994:34;;;;6059:2;6044:18;;6037:34;;;;6108:15;;;6102:3;6087:19;;6080:44;5888:3;6140:19;;6133:35;;;;5857:3;5842:19;;5824:350::o;6179:187::-;6344:14;;6337:22;6319:41;;6307:2;6292:18;;6274:92::o;6371:603::-;;6512:2;6541;6530:9;6523:21;6573:6;6567:13;6616:6;6611:2;6600:9;6596:18;6589:34;6641:4;6654:140;6668:6;6665:1;6662:13;6654:140;;;6763:14;;;6759:23;;6753:30;6729:17;;;6748:2;6725:26;6718:66;6683:10;;6654:140;;;6812:6;6809:1;6806:13;6803:2;;;6882:4;6877:2;6868:6;6857:9;6853:22;6849:31;6842:45;6803:2;-1:-1:-1;6958:2:1;6937:15;-1:-1:-1;;6933:29:1;6918:45;;;;6965:2;6914:54;;6492:482;-1:-1:-1;;;6492:482:1:o;6979:414::-;7181:2;7163:21;;;7220:2;7200:18;;;7193:30;7259:34;7254:2;7239:18;;7232:62;-1:-1:-1;;;7325:2:1;7310:18;;7303:48;7383:3;7368:19;;7153:240::o;7398:401::-;7600:2;7582:21;;;7639:2;7619:18;;;7612:30;7678:34;7673:2;7658:18;;7651:62;-1:-1:-1;;;7744:2:1;7729:18;;7722:35;7789:3;7774:19;;7572:227::o;7804:400::-;8006:2;7988:21;;;8045:2;8025:18;;;8018:30;8084:34;8079:2;8064:18;;8057:62;-1:-1:-1;;;8150:2:1;8135:18;;8128:34;8194:3;8179:19;;7978:226::o;8209:402::-;8411:2;8393:21;;;8450:2;8430:18;;;8423:30;8489:34;8484:2;8469:18;;8462:62;-1:-1:-1;;;8555:2:1;8540:18;;8533:36;8601:3;8586:19;;8383:228::o;8616:421::-;8818:2;8800:21;;;8857:2;8837:18;;;8830:30;8896:34;8891:2;8876:18;;8869:62;8967:27;8962:2;8947:18;;8940:55;9027:3;9012:19;;8790:247::o;9042:404::-;9244:2;9226:21;;;9283:2;9263:18;;;9256:30;9322:34;9317:2;9302:18;;9295:62;-1:-1:-1;;;9388:2:1;9373:18;;9366:38;9436:3;9421:19;;9216:230::o;9451:404::-;9653:2;9635:21;;;9692:2;9672:18;;;9665:30;9731:34;9726:2;9711:18;;9704:62;-1:-1:-1;;;9797:2:1;9782:18;;9775:38;9845:3;9830:19;;9625:230::o;9860:353::-;10062:2;10044:21;;;10101:2;10081:18;;;10074:30;10140:31;10135:2;10120:18;;10113:59;10204:2;10189:18;;10034:179::o;10218:356::-;10420:2;10402:21;;;10439:18;;;10432:30;10498:34;10493:2;10478:18;;10471:62;10565:2;10550:18;;10392:182::o;10579:411::-;10781:2;10763:21;;;10820:2;10800:18;;;10793:30;10859:34;10854:2;10839:18;;10832:62;-1:-1:-1;;;10925:2:1;10910:18;;10903:45;10980:3;10965:19;;10753:237::o;10995:402::-;11197:2;11179:21;;;11236:2;11216:18;;;11209:30;11275:34;11270:2;11255:18;;11248:62;-1:-1:-1;;;11341:2:1;11326:18;;11319:36;11387:3;11372:19;;11169:228::o;11402:399::-;11604:2;11586:21;;;11643:2;11623:18;;;11616:30;11682:34;11677:2;11662:18;;11655:62;-1:-1:-1;;;11748:2:1;11733:18;;11726:33;11791:3;11776:19;;11576:225::o;11806:398::-;12008:2;11990:21;;;12047:2;12027:18;;;12020:30;12086:34;12081:2;12066:18;;12059:62;-1:-1:-1;;;12152:2:1;12137:18;;12130:32;12194:3;12179:19;;11980:224::o;12209:177::-;12355:25;;;12343:2;12328:18;;12310:76::o;12391:596::-;;12698:6;12687:9;12680:25;12741:6;12736:2;12725:9;12721:18;12714:34;12784:3;12779:2;12768:9;12764:18;12757:31;12805:63;12863:3;12852:9;12848:19;12840:6;12805:63;:::i;:::-;-1:-1:-1;;;;;12904:32:1;;;;12899:2;12884:18;;12877:60;-1:-1:-1;12968:3:1;12953:19;12946:35;12797:71;12670:317;-1:-1:-1;;;12670:317:1:o;13585:319::-;13787:25;;;13843:2;13828:18;;13821:34;;;;13886:2;13871:18;;13864:34;13775:2;13760:18;;13742:162::o;13909:128::-;;13980:1;13976:6;13973:1;13970:13;13967:2;;;13986:18;;:::i;:::-;-1:-1:-1;14022:9:1;;13957:80::o;14042:217::-;;14108:1;14098:2;;-1:-1:-1;;;14133:31:1;;14187:4;14184:1;14177:15;14215:4;14140:1;14205:15;14098:2;-1:-1:-1;14244:9:1;;14088:171::o;14264:168::-;;14370:1;14366;14362:6;14358:14;14355:1;14352:21;14347:1;14340:9;14333:17;14329:45;14326:2;;;14377:18;;:::i;:::-;-1:-1:-1;14417:9:1;;14316:116::o;14437:125::-;;14505:1;14502;14499:8;14496:2;;;14510:18;;:::i;:::-;-1:-1:-1;14547:9:1;;14486:76::o;14567:380::-;14652:1;14642:12;;14699:1;14689:12;;;14710:2;;14764:4;14756:6;14752:17;14742:27;;14710:2;14817;14809:6;14806:14;14786:18;14783:38;14780:2;;;14863:10;14858:3;14854:20;14851:1;14844:31;14898:4;14895:1;14888:15;14926:4;14923:1;14916:15;14780:2;;14622:325;;;:::o;14952:127::-;15013:10;15008:3;15004:20;15001:1;14994:31;15044:4;15041:1;15034:15;15068:4;15065:1;15058:15;15084:133;-1:-1:-1;;;;;15161:31:1;;15151:42;;15141:2;;15207:1;15204;15197:12;15222:120;15310:5;15303:13;15296:21;15289:5;15286:32;15276:2;;15332:1;15329;15322:12

Swarm Source

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