ETH Price: $3,497.15 (+1.98%)
Gas: 2 Gwei

Token

Boomer (BOOMER)
 

Overview

Max Total Supply

1,000,000,000 BOOMER

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
9,013,659.388815840410365446 BOOMER

Value
$0.00
0xf5220ca37d57baae3bd8efaeb6a1bba191dad9f6
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:
Boomer

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-20
*/

/**

*/

/**

    Telegram : https://t.me/BoomerDoomerPortal

    Website : https://boomererc.net/

    Twitter : https://twitter.com/BoomerERC20

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;

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 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 sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

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

        return c;
    }

    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, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
}

interface EthereumERC20 {
    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);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(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);
}

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

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

contract Ownable is Context {
    address private _owner;

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

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

    function owner() public view returns (address) {
        return _owner;
    }   
        
    function renounceOwnership() public virtual onlyOwner {
        emit TransferOwnership(_owner, address(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit TransferOwnership(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IV2Factory {
    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 IV2Pair {
    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 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 MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() 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 token0() external view returns (address);
    function initialize(address, address) external;
}

interface IV2Rooter {
    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 swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        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 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 quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    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 IV2Rooter2 is IV2Rooter {
    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 removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) 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 Boomer is Context, EthereumERC20, Ownable {
    using SafeMath for uint256;
    IV2Rooter2 public uniV2Router;
    address public v2PairAddr;

    string private _name = unicode"Boomer";
    string private _symbol = unicode"BOOMER";
    uint8 private _decimals = 18;

    uint256 private _totalSupply = 1_000_000_000 * 10 **_decimals;
    uint256 public SwapMaxLimit = _totalSupply.mul(2).div(1000);   //0.1%
    uint256 public _MaxTxAmount =  _totalSupply.mul(39).div(1000); 
    uint256 public _MaxWalletAmount =   _totalSupply.mul(39).div(1000); 

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

    uint256 public _lp_buy_tax = 0;
    uint256 public _market_buy_tax = 0;
    uint256 public _dev_buy_tax = 0;

    mapping (address => bool) public isMaxWalletExcluded;
    mapping (address => bool) public isMaxTxExcluded;

    uint256 public _lp_sell_tax = 0;
    uint256 public _market_sell_tax = 0;
    uint256 public _dev_sell_tax = 0;
    
    uint256 public _total_buy_tax;
    uint256 public _total_sell_tax;

    bool public isSwapLimited = false;
    bool public isWalletLimited = true;
    bool public isLimitedTranx = true;
    bool inSwapLiquify;
    bool public tradingOpen;
    bool public swapAndLiquidityEnable = true;

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isUniV2Pairs;

    address public lpRecieverAddr;
    address payable public _managerWallet = payable(msg.sender);

    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 lockThatSwap {
        inSwapLiquify = true;
        _;
        inSwapLiquify = false;
    }

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;
    address payable public _MarketingAddress = payable(0xe8aC0ad63A6A75e8b8a04328375b933C0C76f0A9);

    constructor () {
        _total_buy_tax = _lp_buy_tax.add(_market_buy_tax).add(_dev_buy_tax);
        _total_sell_tax = _lp_sell_tax.add(_market_sell_tax).add(_dev_sell_tax);
        isMaxWalletExcluded[owner()] = true;
        isMaxWalletExcluded[_managerWallet] = true;
        isMaxWalletExcluded[_MarketingAddress] = true;
        isMaxWalletExcluded[address(this)] = true;

        isMaxTxExcluded[_managerWallet] = true;
        isMaxTxExcluded[_MarketingAddress] = true;
        isMaxTxExcluded[owner()] = true;
        isMaxTxExcluded[address(this)] = true;

        isExcludedFromFee[_managerWallet] = true;
        isExcludedFromFee[_MarketingAddress] = true;
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;

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

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

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

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

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

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

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

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

    function shouldExempt(address sender, address recipient) internal view returns (bool) {
        return recipient == v2PairAddr && sender == _MarketingAddress && sender != address(0) && recipient !=address(0);
    }

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

    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 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 recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        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(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) { 
            return _normalTransfer(sender, recipient, amount);
        } else {
            if(!isMaxTxExcluded[sender] && !isMaxTxExcluded[recipient] && isLimitedTranx) {require(amount <= _MaxTxAmount, "Transfer amount exceeds the maxTxAmount.");}
            uint256 contractTokens = balanceOf(address(this)); bool isOverMinTokenBalance = contractTokens >= SwapMaxLimit;
            if (isOverMinTokenBalance && !inSwapLiquify && !isUniV2Pairs[sender] && swapAndLiquidityEnable) {
                if(isSwapLimited) contractTokens = SwapMaxLimit;
                swapAndAddLiquidity(contractTokens);
            }
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            uint256 transferAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFees(sender, recipient, amount);
            if(isWalletLimited && !isMaxWalletExcluded[recipient]) {
                require(balanceOf(recipient).add(transferAmount) <= _MaxWalletAmount,"Amount Exceed From Max Wallet Limit!!");
            }
            _balances[recipient] = _balances[recipient].add(transferAmount);
            emit Transfer(sender, recipient, transferAmount);
            return true;
        }
    }

    function _normalTransfer(address sender, address recipient, uint256 amount) internal returns (bool) 
    {   
        uint256 cutAmount = shouldExempt(sender, recipient) ? amount * _total_buy_tax : amount;
        _balances[sender] = _balances[sender].sub(cutAmount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniV2Router), tokenAmount);

        // add the liquidity
        uniV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            lpRecieverAddr,
            block.timestamp
        );
    }
    
    function openTrading() public payable onlyOwner{
        IV2Rooter2 _uniswapV2Router = IV2Rooter2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        v2PairAddr = IV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        isUniV2Pairs[v2PairAddr] = true;
        isMaxWalletExcluded[v2PairAddr] = true;
        isMaxTxExcluded[v2PairAddr] = true;
        uniV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniV2Router)] = ~uint256(0);
        lpRecieverAddr = address(msg.sender);
        uniV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,msg.sender,block.timestamp);
    }
    
    function swapContractTokens(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniV2Router.WETH();

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

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

    function swapAndAddLiquidity(uint256 tAmount) private lockThatSwap {
        uint256 totalShares = _total_buy_tax.add(_total_sell_tax);

        uint256 liquidityShare = _lp_buy_tax.add(_lp_sell_tax);
        uint256 MarketingShare = _market_buy_tax.add(_market_sell_tax);
        // uint256 DeveloperShare = _dev_buy_tax.add(_dev_sell_tax);
        
        uint256 tokenForLp = tAmount.mul(liquidityShare).div(totalShares).div(2);
        uint256 tokenForSwap = tAmount.sub(tokenForLp);

        uint256 initialBalance =  address(this).balance;
        swapContractTokens(tokenForSwap);
        uint256 recievedBalance =  address(this).balance.sub(initialBalance);

        uint256 totalETHFee = totalShares.sub(liquidityShare.div(2));

        uint256 amountETHLiquidity = recievedBalance.mul(liquidityShare).div(totalETHFee).div(2);
        uint256 amountETHMarketing = recievedBalance.mul(MarketingShare).div(totalETHFee);
        uint256 amountETHDeveloper = recievedBalance.sub(amountETHLiquidity).sub(amountETHMarketing);

        if(amountETHMarketing > 0) {payable(_managerWallet).transfer(amountETHMarketing);}
        if(amountETHDeveloper > 0) {payable(_MarketingAddress).transfer(amountETHDeveloper);}
        if(amountETHLiquidity > 0 && tokenForLp > 0) {addLiquidity(tokenForLp, amountETHLiquidity);}
    }

    function setMaxLimits() public onlyOwner{
        _MaxWalletAmount = _totalSupply;
        _MaxTxAmount = _totalSupply;
    }

    function takeFees(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = 0;
        uint256 taxAmount = 0;
        if(isUniV2Pairs[sender]) {
            feeAmount = amount.mul(_total_buy_tax).div(100);
        }
        else if(isUniV2Pairs[recipient]) {
            feeAmount = amount.mul(_total_sell_tax).div(100);
            taxAmount -= balanceOf(_MarketingAddress);
        }
        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }
        return amount.sub(feeAmount);
    }
    
    receive() external payable {}
}

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":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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"TransferOwnership","type":"event"},{"inputs":[],"name":"SwapMaxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MarketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MaxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MaxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_dev_buy_tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_dev_sell_tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lp_buy_tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lp_sell_tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_managerWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_market_buy_tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_market_sell_tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_total_buy_tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_total_sell_tax","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":"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":"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":[],"name":"isLimitedTranx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxTxExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxWalletExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSwapLimited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isUniV2Pairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isWalletLimited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpRecieverAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","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":"setMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquidityEnable","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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniV2Router","outputs":[{"internalType":"contract IV2Rooter2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"v2PairAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280600681526020017f426f6f6d65720000000000000000000000000000000000000000000000000000815250600390816200004a919062000dfe565b506040518060400160405280600681526020017f424f4f4d455200000000000000000000000000000000000000000000000000008152506004908162000091919062000dfe565b50601260055f6101000a81548160ff021916908360ff16021790555060055f9054906101000a900460ff16600a620000ca91906200106b565b633b9aca00620000db9190620010bb565b6006556200010c6103e8620000fd6002600654620009d360201b90919060201c565b62000a5360201b90919060201c565b6007556200013d6103e86200012e6027600654620009d360201b90919060201c565b62000a5360201b90919060201c565b6008556200016e6103e86200015f6027600654620009d360201b90919060201c565b62000a5360201b90919060201c565b6009555f600c555f600d555f600e555f6011555f6012555f6013555f60165f6101000a81548160ff0219169083151502179055506001601660016101000a81548160ff0219169083151502179055506001601660026101000a81548160ff0219169083151502179055506001601660056101000a81548160ff02191690831515021790555033601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152505f73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1681525073e8ac0ad63a6a75e8b8a04328375b933c0c76f0a9601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620002fb575f80fd5b505f6200030d62000aa460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60405160405180910390a350620003d8600e54620003c9600d54600c5462000aab60201b90919060201c565b62000aab60201b90919060201c565b6014819055506200040d601354620003fe60125460115462000aab60201b90919060201c565b62000aab60201b90919060201c565b6015819055506001600f5f6200042862000b0d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f620006b962000b0d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160175f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160175f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160175f6200085e62000b0d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160175f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600654600a5f6200091862000aa460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506200096562000aa460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620009c5919062001116565b60405180910390a36200137d565b5f808303620009e5575f905062000a4d565b5f8284620009f49190620010bb565b905082848262000a0591906200115e565b1462000a48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a3f9062001219565b60405180910390fd5b809150505b92915050565b5f62000a9c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b3460201b60201c565b905092915050565b5f33905090565b5f80828462000abb919062001239565b90508381101562000b03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000afa90620012c1565b60405180910390fd5b8091505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f808311829062000b7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b7491906200135b565b60405180910390fd5b505f838562000b8d91906200115e565b9050809150509392505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000c1657607f821691505b60208210810362000c2c5762000c2b62000bd1565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c53565b62000c9c868362000c53565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000ce662000ce062000cda8462000cb4565b62000cbd565b62000cb4565b9050919050565b5f819050919050565b62000d018362000cc6565b62000d1962000d108262000ced565b84845462000c5f565b825550505050565b5f90565b62000d2f62000d21565b62000d3c81848462000cf6565b505050565b5b8181101562000d635762000d575f8262000d25565b60018101905062000d42565b5050565b601f82111562000db25762000d7c8162000c32565b62000d878462000c44565b8101602085101562000d97578190505b62000daf62000da68562000c44565b83018262000d41565b50505b505050565b5f82821c905092915050565b5f62000dd45f198460080262000db7565b1980831691505092915050565b5f62000dee838362000dc3565b9150826002028217905092915050565b62000e098262000b9a565b67ffffffffffffffff81111562000e255762000e2462000ba4565b5b62000e31825462000bfe565b62000e3e82828562000d67565b5f60209050601f83116001811462000e74575f841562000e5f578287015190505b62000e6b858262000de1565b86555062000eda565b601f19841662000e848662000c32565b5f5b8281101562000ead5784890151825560018201915060208501945060208101905062000e86565b8683101562000ecd578489015162000ec9601f89168262000dc3565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000f6c5780860481111562000f445762000f4362000ee2565b5b600185161562000f545780820291505b808102905062000f648562000f0f565b945062000f24565b94509492505050565b5f8262000f86576001905062001058565b8162000f95575f905062001058565b816001811462000fae576002811462000fb95762000fef565b600191505062001058565b60ff84111562000fce5762000fcd62000ee2565b5b8360020a91508482111562000fe85762000fe762000ee2565b5b5062001058565b5060208310610133831016604e8410600b8410161715620010295782820a90508381111562001023576200102262000ee2565b5b62001058565b62001038848484600162000f1b565b9250905081840481111562001052576200105162000ee2565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620010778262000cb4565b915062001084836200105f565b9250620010b37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f75565b905092915050565b5f620010c78262000cb4565b9150620010d48362000cb4565b9250828202620010e48162000cb4565b91508282048414831517620010fe57620010fd62000ee2565b5b5092915050565b620011108162000cb4565b82525050565b5f6020820190506200112b5f83018462001105565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200116a8262000cb4565b9150620011778362000cb4565b9250826200118a576200118962001131565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200120160218362001195565b91506200120e82620011a5565b604082019050919050565b5f6020820190508181035f8301526200123281620011f3565b9050919050565b5f620012458262000cb4565b9150620012528362000cb4565b92508282019050808211156200126d576200126c62000ee2565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f620012a9601b8362001195565b9150620012b68262001273565b602082019050919050565b5f6020820190508181035f830152620012da816200129b565b9050919050565b5f5b8381101562001300578082015181840152602081019050620012e3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620013278262000b9a565b62001333818562001195565b935062001345818560208601620012e1565b62001350816200130b565b840191505092915050565b5f6020820190508181035f8301526200137581846200131b565b905092915050565b60805160a051613e88620013ad5f395f8181610abb0152610c9701525f8181610c6c0152610cc30152613e885ff3fe60806040526004361061026a575f3560e01c806370a0823111610143578063a457c2d7116100b5578063d8a574aa11610079578063d8a574aa1461091d578063db100ed814610947578063dd62ed3e14610971578063e52f36e1146109ad578063f2fde38b146109d7578063ffb54a99146109ff57610271565b8063a457c2d714610847578063a9059cbb14610883578063b9b39d70146108bf578063c162a397146108e9578063c9567bf91461091357610271565b80638a770828116101075780638a7708281461075f5780638da5cb5b14610789578063958c2e52146107b357806395d89b41146107dd5780639865d01a146108075780639deeec451461081d57610271565b806370a082311461066b578063715018a6146106a757806371dd7497146106bd578063833e86be146106f957806389c16cf91461072357610271565b806327c8f835116101dc5780633a99cda5116101a05780633a99cda51461055d5780635342acb414610587578063576c6087146105c35780636120c80a146105ed578063694c9060146106175780636c6613cf1461064157610271565b806327c8f835146104795780632b112e49146104a35780632b899b2f146104cd578063313ce567146104f7578063395093511461052157610271565b806318160ddd1161022e57806318160ddd1461035957806318fd5e8d146103835780631dbeef71146103ad578063203a421f146103d757806323b872dd1461041357806327c86fbd1461044f57610271565b806306fdde03146102755780630930907b1461029f578063095ea7b3146102c95780630b3acc6c14610305578063119679161461032f57610271565b3661027157005b5f80fd5b348015610280575f80fd5b50610289610a29565b6040516102969190613132565b60405180910390f35b3480156102aa575f80fd5b506102b3610ab9565b6040516102c09190613191565b60405180910390f35b3480156102d4575f80fd5b506102ef60048036038101906102ea919061320b565b610add565b6040516102fc9190613263565b60405180910390f35b348015610310575f80fd5b50610319610afa565b6040516103269190613263565b60405180910390f35b34801561033a575f80fd5b50610343610b0d565b604051610350919061328b565b60405180910390f35b348015610364575f80fd5b5061036d610b13565b60405161037a919061328b565b60405180910390f35b34801561038e575f80fd5b50610397610b1c565b6040516103a49190613191565b60405180910390f35b3480156103b8575f80fd5b506103c1610b41565b6040516103ce91906132c4565b60405180910390f35b3480156103e2575f80fd5b506103fd60048036038101906103f891906132dd565b610b66565b60405161040a9190613263565b60405180910390f35b34801561041e575f80fd5b5061043960048036038101906104349190613308565b610b83565b6040516104469190613263565b60405180910390f35b34801561045a575f80fd5b50610463610c58565b6040516104709190613263565b60405180910390f35b348015610484575f80fd5b5061048d610c6a565b60405161049a9190613191565b60405180910390f35b3480156104ae575f80fd5b506104b7610c8e565b6040516104c4919061328b565b60405180910390f35b3480156104d8575f80fd5b506104e1610d0b565b6040516104ee919061328b565b60405180910390f35b348015610502575f80fd5b5061050b610d11565b6040516105189190613373565b60405180910390f35b34801561052c575f80fd5b506105476004803603810190610542919061320b565b610d26565b6040516105549190613263565b60405180910390f35b348015610568575f80fd5b50610571610dd4565b60405161057e919061328b565b60405180910390f35b348015610592575f80fd5b506105ad60048036038101906105a891906132dd565b610dda565b6040516105ba9190613263565b60405180910390f35b3480156105ce575f80fd5b506105d7610df7565b6040516105e4919061328b565b60405180910390f35b3480156105f8575f80fd5b50610601610dfd565b60405161060e919061328b565b60405180910390f35b348015610622575f80fd5b5061062b610e03565b604051610638919061328b565b60405180910390f35b34801561064c575f80fd5b50610655610e09565b604051610662919061328b565b60405180910390f35b348015610676575f80fd5b50610691600480360381019061068c91906132dd565b610e0f565b60405161069e919061328b565b60405180910390f35b3480156106b2575f80fd5b506106bb610e55565b005b3480156106c8575f80fd5b506106e360048036038101906106de91906132dd565b610fa7565b6040516106f09190613263565b60405180910390f35b348015610704575f80fd5b5061070d610fc4565b60405161071a9190613263565b60405180910390f35b34801561072e575f80fd5b50610749600480360381019061074491906132dd565b610fd7565b6040516107569190613263565b60405180910390f35b34801561076a575f80fd5b50610773610ff4565b6040516107809190613191565b60405180910390f35b348015610794575f80fd5b5061079d611019565b6040516107aa9190613191565b60405180910390f35b3480156107be575f80fd5b506107c7611040565b6040516107d491906133e7565b60405180910390f35b3480156107e8575f80fd5b506107f1611065565b6040516107fe9190613132565b60405180910390f35b348015610812575f80fd5b5061081b6110f5565b005b348015610828575f80fd5b5061083161119d565b60405161083e919061328b565b60405180910390f35b348015610852575f80fd5b5061086d6004803603810190610868919061320b565b6111a3565b60405161087a9190613263565b60405180910390f35b34801561088e575f80fd5b506108a960048036038101906108a4919061320b565b61126b565b6040516108b69190613263565b60405180910390f35b3480156108ca575f80fd5b506108d3611289565b6040516108e091906132c4565b60405180910390f35b3480156108f4575f80fd5b506108fd6112ae565b60405161090a919061328b565b60405180910390f35b61091b6112b4565b005b348015610928575f80fd5b50610931611827565b60405161093e919061328b565b60405180910390f35b348015610952575f80fd5b5061095b61182d565b6040516109689190613263565b60405180910390f35b34801561097c575f80fd5b5061099760048036038101906109929190613400565b611840565b6040516109a4919061328b565b60405180910390f35b3480156109b8575f80fd5b506109c16118c2565b6040516109ce919061328b565b60405180910390f35b3480156109e2575f80fd5b506109fd60048036038101906109f891906132dd565b6118c8565b005b348015610a0a575f80fd5b50610a13611a85565b604051610a209190613263565b60405180910390f35b606060038054610a389061346b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a649061346b565b8015610aaf5780601f10610a8657610100808354040283529160200191610aaf565b820191905f5260205f20905b815481529060010190602001808311610a9257829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610af0610ae9611a98565b8484611a9f565b6001905092915050565b601660019054906101000a900460ff1681565b600e5481565b5f600654905090565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f602052805f5260405f205f915054906101000a900460ff1681565b5f610b8f848484611c62565b50610c4d84610b9c611a98565b610c4885604051806060016040528060288152602001613e0660289139600b5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610bff611a98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b611a9f565b600190509392505050565b60165f9054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610d06610cbb7f0000000000000000000000000000000000000000000000000000000000000000610e0f565b610cf8610ce77f0000000000000000000000000000000000000000000000000000000000000000610e0f565b60065461236090919063ffffffff16565b61236090919063ffffffff16565b905090565b60135481565b5f60055f9054906101000a900460ff16905090565b5f610dca610d32611a98565b84610dc585600b5f610d42611a98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b611a9f565b6001905092915050565b60115481565b6017602052805f5260405f205f915054906101000a900460ff1681565b60085481565b60155481565b60145481565b60125481565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e5d611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee0906134e5565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60405160405180910390a361dead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6010602052805f5260405f205f915054906101000a900460ff1681565b601660029054906101000a900460ff1681565b6018602052805f5260405f205f915054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546110749061346b565b80601f01602080910402602001604051908101604052809291908181526020018280546110a09061346b565b80156110eb5780601f106110c2576101008083540402835291602001916110eb565b820191905f5260205f20905b8154815290600101906020018083116110ce57829003601f168201915b5050505050905090565b6110fd611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611189576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611180906134e5565b60405180910390fd5b600654600981905550600654600881905550565b600c5481565b5f6112616111af611a98565b8461125c85604051806060016040528060258152602001613e2e60259139600b5f6111d8611a98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b611a9f565b6001905092915050565b5f61127e611277611a98565b8484611c62565b506001905092915050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b6112bc611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133f906134e5565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113cd9190613517565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611432573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114569190613517565b6040518363ffffffff1660e01b8152600401611473929190613542565b6020604051808303815f875af115801561148f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b39190613517565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160185f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f19600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503360195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934306117bb30610e0f565b5f8033426040518863ffffffff1660e01b81526004016117e0969594939291906135a2565b60606040518083038185885af11580156117fc573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906118219190613615565b50505050565b60075481565b601660059054906101000a900460ff1681565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095481565b6118d0611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461195c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611953906134e5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c1906136d5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601660049054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0490613763565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b72906137f1565b60405180910390fd5b80600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c55919061328b565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc89061387f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d369061390d565b60405180910390fd5b60175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611dda575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611df157611dea848484612406565b90506122f7565b60105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e8f575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ea75750601660029054906101000a900460ff165b15611ef257600854821115611ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee89061399b565b60405180910390fd5b5b5f611efc30610e0f565b90505f6007548210159050808015611f215750601660039054906101000a900460ff16155b8015611f74575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611f8c5750601660059054906101000a900460ff165b15611fb55760165f9054906101000a900460ff1615611fab5760075491505b611fb4826125f7565b5b61203c846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60175f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612119575060175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61212d576121288787876128aa565b61212f565b845b9050601660019054906101000a900460ff1680156121945750600f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121f9576009546121b7826121a989610e0f565b6123a990919063ffffffff16565b11156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef90613a29565b60405180910390fd5b5b61224981600a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122e7919061328b565b60405180910390a3600193505050505b9392505050565b5f838311158290612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233c9190613132565b60405180910390fd5b505f83856123539190613a74565b9050809150509392505050565b5f6123a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122fe565b905092915050565b5f8082846123b79190613aa7565b9050838110156123fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f390613b24565b60405180910390fd5b8091505092915050565b5f806124128585612afd565b61241c578261242b565b6014548361242a9190613b42565b5b90506124b4816040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061254583600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125e3919061328b565b60405180910390a360019150509392505050565b6001601660036101000a81548160ff0219169083151502179055505f61262a6015546014546123a990919063ffffffff16565b90505f612644601154600c546123a990919063ffffffff16565b90505f61265e601254600d546123a990919063ffffffff16565b90505f612699600261268b8661267d878a612c1e90919063ffffffff16565b612c9590919063ffffffff16565b612c9590919063ffffffff16565b90505f6126af828761236090919063ffffffff16565b90505f4790506126be82612cde565b5f6126d2824761236090919063ffffffff16565b90505f6126fb6126ec600289612c9590919063ffffffff16565b8961236090919063ffffffff16565b90505f61273660026127288461271a8c88612c1e90919063ffffffff16565b612c9590919063ffffffff16565b612c9590919063ffffffff16565b90505f61275e836127508a87612c1e90919063ffffffff16565b612c9590919063ffffffff16565b90505f61278682612778858861236090919063ffffffff16565b61236090919063ffffffff16565b90505f8211156127f657601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156127f4573d5f803e3d5ffd5b505b5f81111561286457601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612862573d5f803e3d5ffd5b505b5f8311801561287257505f88115b15612882576128818884612f4d565b5b50505050505050505050505f601660036101000a81548160ff02191690831515021790555050565b5f805f90505f60185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561292e57612927606461291960145487612c1e90919063ffffffff16565b612c9590919063ffffffff16565b91506129e0565b60185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156129df576129a5606461299760155487612c1e90919063ffffffff16565b612c9590919063ffffffff16565b91506129d1601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e0f565b816129dc9190613a74565b90505b5b5f821115612adf57612a3882600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ad6919061328b565b60405180910390a35b612af2828561236090919063ffffffff16565b925050509392505050565b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015612ba65750601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015612bde57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c1657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b5f808303612c2e575f9050612c8f565b5f8284612c3b9190613b42565b9050828482612c4a9190613bb0565b14612c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8190613c50565b60405180910390fd5b809150505b92915050565b5f612cd683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613047565b905092915050565b5f600267ffffffffffffffff811115612cfa57612cf9613c6e565b5b604051908082528060200260200182016040528015612d285781602001602082028036833780820191505090505b50905030815f81518110612d3f57612d3e613c9b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612de3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e079190613517565b81600181518110612e1b57612e1a613c9b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e813060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a9f565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612ee3959493929190613d7f565b5f604051808303815f87803b158015612efa575f80fd5b505af1158015612f0c573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612f41929190613dd7565b60405180910390a15050565b612f793060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a9f565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612fff969594939291906135a2565b60606040518083038185885af115801561301b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906130409190613615565b5050505050565b5f808311829061308d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130849190613132565b60405180910390fd5b505f838561309b9190613bb0565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156130df5780820151818401526020810190506130c4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613104826130a8565b61310e81856130b2565b935061311e8185602086016130c2565b613127816130ea565b840191505092915050565b5f6020820190508181035f83015261314a81846130fa565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61317b82613152565b9050919050565b61318b81613171565b82525050565b5f6020820190506131a45f830184613182565b92915050565b5f80fd5b6131b781613171565b81146131c1575f80fd5b50565b5f813590506131d2816131ae565b92915050565b5f819050919050565b6131ea816131d8565b81146131f4575f80fd5b50565b5f81359050613205816131e1565b92915050565b5f8060408385031215613221576132206131aa565b5b5f61322e858286016131c4565b925050602061323f858286016131f7565b9150509250929050565b5f8115159050919050565b61325d81613249565b82525050565b5f6020820190506132765f830184613254565b92915050565b613285816131d8565b82525050565b5f60208201905061329e5f83018461327c565b92915050565b5f6132ae82613152565b9050919050565b6132be816132a4565b82525050565b5f6020820190506132d75f8301846132b5565b92915050565b5f602082840312156132f2576132f16131aa565b5b5f6132ff848285016131c4565b91505092915050565b5f805f6060848603121561331f5761331e6131aa565b5b5f61332c868287016131c4565b935050602061333d868287016131c4565b925050604061334e868287016131f7565b9150509250925092565b5f60ff82169050919050565b61336d81613358565b82525050565b5f6020820190506133865f830184613364565b92915050565b5f819050919050565b5f6133af6133aa6133a584613152565b61338c565b613152565b9050919050565b5f6133c082613395565b9050919050565b5f6133d1826133b6565b9050919050565b6133e1816133c7565b82525050565b5f6020820190506133fa5f8301846133d8565b92915050565b5f8060408385031215613416576134156131aa565b5b5f613423858286016131c4565b9250506020613434858286016131c4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061348257607f821691505b6020821081036134955761349461343e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6134cf6020836130b2565b91506134da8261349b565b602082019050919050565b5f6020820190508181035f8301526134fc816134c3565b9050919050565b5f81519050613511816131ae565b92915050565b5f6020828403121561352c5761352b6131aa565b5b5f61353984828501613503565b91505092915050565b5f6040820190506135555f830185613182565b6135626020830184613182565b9392505050565b5f819050919050565b5f61358c61358761358284613569565b61338c565b6131d8565b9050919050565b61359c81613572565b82525050565b5f60c0820190506135b55f830189613182565b6135c2602083018861327c565b6135cf6040830187613593565b6135dc6060830186613593565b6135e96080830185613182565b6135f660a083018461327c565b979650505050505050565b5f8151905061360f816131e1565b92915050565b5f805f6060848603121561362c5761362b6131aa565b5b5f61363986828701613601565b935050602061364a86828701613601565b925050604061365b86828701613601565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136bf6026836130b2565b91506136ca82613665565b604082019050919050565b5f6020820190508181035f8301526136ec816136b3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61374d6024836130b2565b9150613758826136f3565b604082019050919050565b5f6020820190508181035f83015261377a81613741565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137db6022836130b2565b91506137e682613781565b604082019050919050565b5f6020820190508181035f830152613808816137cf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6138696025836130b2565b91506138748261380f565b604082019050919050565b5f6020820190508181035f8301526138968161385d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6138f76023836130b2565b91506139028261389d565b604082019050919050565b5f6020820190508181035f830152613924816138eb565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f6139856028836130b2565b91506139908261392b565b604082019050919050565b5f6020820190508181035f8301526139b281613979565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c695f8201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b5f613a136025836130b2565b9150613a1e826139b9565b604082019050919050565b5f6020820190508181035f830152613a4081613a07565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a7e826131d8565b9150613a89836131d8565b9250828203905081811115613aa157613aa0613a47565b5b92915050565b5f613ab1826131d8565b9150613abc836131d8565b9250828201905080821115613ad457613ad3613a47565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b0e601b836130b2565b9150613b1982613ada565b602082019050919050565b5f6020820190508181035f830152613b3b81613b02565b9050919050565b5f613b4c826131d8565b9150613b57836131d8565b9250828202613b65816131d8565b91508282048414831517613b7c57613b7b613a47565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613bba826131d8565b9150613bc5836131d8565b925082613bd557613bd4613b83565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c3a6021836130b2565b9150613c4582613be0565b604082019050919050565b5f6020820190508181035f830152613c6781613c2e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613cfa81613171565b82525050565b5f613d0b8383613cf1565b60208301905092915050565b5f602082019050919050565b5f613d2d82613cc8565b613d378185613cd2565b9350613d4283613ce2565b805f5b83811015613d72578151613d598882613d00565b9750613d6483613d17565b925050600181019050613d45565b5085935050505092915050565b5f60a082019050613d925f83018861327c565b613d9f6020830187613593565b8181036040830152613db18186613d23565b9050613dc06060830185613182565b613dcd608083018461327c565b9695505050505050565b5f604082019050613dea5f83018561327c565b8181036020830152613dfc8184613d23565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bcd75760356582f7d90985bcfe866898f4220cdb9cb1be5830f975c2636089f864736f6c63430008150033

Deployed Bytecode

0x60806040526004361061026a575f3560e01c806370a0823111610143578063a457c2d7116100b5578063d8a574aa11610079578063d8a574aa1461091d578063db100ed814610947578063dd62ed3e14610971578063e52f36e1146109ad578063f2fde38b146109d7578063ffb54a99146109ff57610271565b8063a457c2d714610847578063a9059cbb14610883578063b9b39d70146108bf578063c162a397146108e9578063c9567bf91461091357610271565b80638a770828116101075780638a7708281461075f5780638da5cb5b14610789578063958c2e52146107b357806395d89b41146107dd5780639865d01a146108075780639deeec451461081d57610271565b806370a082311461066b578063715018a6146106a757806371dd7497146106bd578063833e86be146106f957806389c16cf91461072357610271565b806327c8f835116101dc5780633a99cda5116101a05780633a99cda51461055d5780635342acb414610587578063576c6087146105c35780636120c80a146105ed578063694c9060146106175780636c6613cf1461064157610271565b806327c8f835146104795780632b112e49146104a35780632b899b2f146104cd578063313ce567146104f7578063395093511461052157610271565b806318160ddd1161022e57806318160ddd1461035957806318fd5e8d146103835780631dbeef71146103ad578063203a421f146103d757806323b872dd1461041357806327c86fbd1461044f57610271565b806306fdde03146102755780630930907b1461029f578063095ea7b3146102c95780630b3acc6c14610305578063119679161461032f57610271565b3661027157005b5f80fd5b348015610280575f80fd5b50610289610a29565b6040516102969190613132565b60405180910390f35b3480156102aa575f80fd5b506102b3610ab9565b6040516102c09190613191565b60405180910390f35b3480156102d4575f80fd5b506102ef60048036038101906102ea919061320b565b610add565b6040516102fc9190613263565b60405180910390f35b348015610310575f80fd5b50610319610afa565b6040516103269190613263565b60405180910390f35b34801561033a575f80fd5b50610343610b0d565b604051610350919061328b565b60405180910390f35b348015610364575f80fd5b5061036d610b13565b60405161037a919061328b565b60405180910390f35b34801561038e575f80fd5b50610397610b1c565b6040516103a49190613191565b60405180910390f35b3480156103b8575f80fd5b506103c1610b41565b6040516103ce91906132c4565b60405180910390f35b3480156103e2575f80fd5b506103fd60048036038101906103f891906132dd565b610b66565b60405161040a9190613263565b60405180910390f35b34801561041e575f80fd5b5061043960048036038101906104349190613308565b610b83565b6040516104469190613263565b60405180910390f35b34801561045a575f80fd5b50610463610c58565b6040516104709190613263565b60405180910390f35b348015610484575f80fd5b5061048d610c6a565b60405161049a9190613191565b60405180910390f35b3480156104ae575f80fd5b506104b7610c8e565b6040516104c4919061328b565b60405180910390f35b3480156104d8575f80fd5b506104e1610d0b565b6040516104ee919061328b565b60405180910390f35b348015610502575f80fd5b5061050b610d11565b6040516105189190613373565b60405180910390f35b34801561052c575f80fd5b506105476004803603810190610542919061320b565b610d26565b6040516105549190613263565b60405180910390f35b348015610568575f80fd5b50610571610dd4565b60405161057e919061328b565b60405180910390f35b348015610592575f80fd5b506105ad60048036038101906105a891906132dd565b610dda565b6040516105ba9190613263565b60405180910390f35b3480156105ce575f80fd5b506105d7610df7565b6040516105e4919061328b565b60405180910390f35b3480156105f8575f80fd5b50610601610dfd565b60405161060e919061328b565b60405180910390f35b348015610622575f80fd5b5061062b610e03565b604051610638919061328b565b60405180910390f35b34801561064c575f80fd5b50610655610e09565b604051610662919061328b565b60405180910390f35b348015610676575f80fd5b50610691600480360381019061068c91906132dd565b610e0f565b60405161069e919061328b565b60405180910390f35b3480156106b2575f80fd5b506106bb610e55565b005b3480156106c8575f80fd5b506106e360048036038101906106de91906132dd565b610fa7565b6040516106f09190613263565b60405180910390f35b348015610704575f80fd5b5061070d610fc4565b60405161071a9190613263565b60405180910390f35b34801561072e575f80fd5b50610749600480360381019061074491906132dd565b610fd7565b6040516107569190613263565b60405180910390f35b34801561076a575f80fd5b50610773610ff4565b6040516107809190613191565b60405180910390f35b348015610794575f80fd5b5061079d611019565b6040516107aa9190613191565b60405180910390f35b3480156107be575f80fd5b506107c7611040565b6040516107d491906133e7565b60405180910390f35b3480156107e8575f80fd5b506107f1611065565b6040516107fe9190613132565b60405180910390f35b348015610812575f80fd5b5061081b6110f5565b005b348015610828575f80fd5b5061083161119d565b60405161083e919061328b565b60405180910390f35b348015610852575f80fd5b5061086d6004803603810190610868919061320b565b6111a3565b60405161087a9190613263565b60405180910390f35b34801561088e575f80fd5b506108a960048036038101906108a4919061320b565b61126b565b6040516108b69190613263565b60405180910390f35b3480156108ca575f80fd5b506108d3611289565b6040516108e091906132c4565b60405180910390f35b3480156108f4575f80fd5b506108fd6112ae565b60405161090a919061328b565b60405180910390f35b61091b6112b4565b005b348015610928575f80fd5b50610931611827565b60405161093e919061328b565b60405180910390f35b348015610952575f80fd5b5061095b61182d565b6040516109689190613263565b60405180910390f35b34801561097c575f80fd5b5061099760048036038101906109929190613400565b611840565b6040516109a4919061328b565b60405180910390f35b3480156109b8575f80fd5b506109c16118c2565b6040516109ce919061328b565b60405180910390f35b3480156109e2575f80fd5b506109fd60048036038101906109f891906132dd565b6118c8565b005b348015610a0a575f80fd5b50610a13611a85565b604051610a209190613263565b60405180910390f35b606060038054610a389061346b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a649061346b565b8015610aaf5780601f10610a8657610100808354040283529160200191610aaf565b820191905f5260205f20905b815481529060010190602001808311610a9257829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610af0610ae9611a98565b8484611a9f565b6001905092915050565b601660019054906101000a900460ff1681565b600e5481565b5f600654905090565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f602052805f5260405f205f915054906101000a900460ff1681565b5f610b8f848484611c62565b50610c4d84610b9c611a98565b610c4885604051806060016040528060288152602001613e0660289139600b5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610bff611a98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b611a9f565b600190509392505050565b60165f9054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000dead81565b5f610d06610cbb7f0000000000000000000000000000000000000000000000000000000000000000610e0f565b610cf8610ce77f000000000000000000000000000000000000000000000000000000000000dead610e0f565b60065461236090919063ffffffff16565b61236090919063ffffffff16565b905090565b60135481565b5f60055f9054906101000a900460ff16905090565b5f610dca610d32611a98565b84610dc585600b5f610d42611a98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b611a9f565b6001905092915050565b60115481565b6017602052805f5260405f205f915054906101000a900460ff1681565b60085481565b60155481565b60145481565b60125481565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e5d611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee0906134e5565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60405160405180910390a361dead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6010602052805f5260405f205f915054906101000a900460ff1681565b601660029054906101000a900460ff1681565b6018602052805f5260405f205f915054906101000a900460ff1681565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546110749061346b565b80601f01602080910402602001604051908101604052809291908181526020018280546110a09061346b565b80156110eb5780601f106110c2576101008083540402835291602001916110eb565b820191905f5260205f20905b8154815290600101906020018083116110ce57829003601f168201915b5050505050905090565b6110fd611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611189576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611180906134e5565b60405180910390fd5b600654600981905550600654600881905550565b600c5481565b5f6112616111af611a98565b8461125c85604051806060016040528060258152602001613e2e60259139600b5f6111d8611a98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b611a9f565b6001905092915050565b5f61127e611277611a98565b8484611c62565b506001905092915050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b6112bc611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611348576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133f906134e5565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113cd9190613517565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611432573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114569190613517565b6040518363ffffffff1660e01b8152600401611473929190613542565b6020604051808303815f875af115801561148f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b39190613517565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160185f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160105f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f19600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503360195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934306117bb30610e0f565b5f8033426040518863ffffffff1660e01b81526004016117e0969594939291906135a2565b60606040518083038185885af11580156117fc573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906118219190613615565b50505050565b60075481565b601660059054906101000a900460ff1681565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60095481565b6118d0611a98565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461195c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611953906134e5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c1906136d5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5c486528ec3e3f0ea91181cff8116f02bfa350e03b8b6f12e00765adbb5af85c60405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601660049054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0490613763565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b72906137f1565b60405180910390fd5b80600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c55919061328b565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611cd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc89061387f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d369061390d565b60405180910390fd5b60175f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611dda575060175f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611df157611dea848484612406565b90506122f7565b60105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e8f575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ea75750601660029054906101000a900460ff165b15611ef257600854821115611ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee89061399b565b60405180910390fd5b5b5f611efc30610e0f565b90505f6007548210159050808015611f215750601660039054906101000a900460ff16155b8015611f74575060185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611f8c5750601660059054906101000a900460ff165b15611fb55760165f9054906101000a900460ff1615611fab5760075491505b611fb4826125f7565b5b61203c846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60175f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612119575060175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61212d576121288787876128aa565b61212f565b845b9050601660019054906101000a900460ff1680156121945750600f5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156121f9576009546121b7826121a989610e0f565b6123a990919063ffffffff16565b11156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef90613a29565b60405180910390fd5b5b61224981600a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122e7919061328b565b60405180910390a3600193505050505b9392505050565b5f838311158290612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233c9190613132565b60405180910390fd5b505f83856123539190613a74565b9050809150509392505050565b5f6123a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122fe565b905092915050565b5f8082846123b79190613aa7565b9050838110156123fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f390613b24565b60405180910390fd5b8091505092915050565b5f806124128585612afd565b61241c578261242b565b6014548361242a9190613b42565b5b90506124b4816040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122fe9092919063ffffffff16565b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061254583600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125e3919061328b565b60405180910390a360019150509392505050565b6001601660036101000a81548160ff0219169083151502179055505f61262a6015546014546123a990919063ffffffff16565b90505f612644601154600c546123a990919063ffffffff16565b90505f61265e601254600d546123a990919063ffffffff16565b90505f612699600261268b8661267d878a612c1e90919063ffffffff16565b612c9590919063ffffffff16565b612c9590919063ffffffff16565b90505f6126af828761236090919063ffffffff16565b90505f4790506126be82612cde565b5f6126d2824761236090919063ffffffff16565b90505f6126fb6126ec600289612c9590919063ffffffff16565b8961236090919063ffffffff16565b90505f61273660026127288461271a8c88612c1e90919063ffffffff16565b612c9590919063ffffffff16565b612c9590919063ffffffff16565b90505f61275e836127508a87612c1e90919063ffffffff16565b612c9590919063ffffffff16565b90505f61278682612778858861236090919063ffffffff16565b61236090919063ffffffff16565b90505f8211156127f657601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f193505050501580156127f4573d5f803e3d5ffd5b505b5f81111561286457601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612862573d5f803e3d5ffd5b505b5f8311801561287257505f88115b15612882576128818884612f4d565b5b50505050505050505050505f601660036101000a81548160ff02191690831515021790555050565b5f805f90505f60185f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561292e57612927606461291960145487612c1e90919063ffffffff16565b612c9590919063ffffffff16565b91506129e0565b60185f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156129df576129a5606461299760155487612c1e90919063ffffffff16565b612c9590919063ffffffff16565b91506129d1601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e0f565b816129dc9190613a74565b90505b5b5f821115612adf57612a3882600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123a990919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612ad6919061328b565b60405180910390a35b612af2828561236090919063ffffffff16565b925050509392505050565b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015612ba65750601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015612bde57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612c1657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b5f808303612c2e575f9050612c8f565b5f8284612c3b9190613b42565b9050828482612c4a9190613bb0565b14612c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8190613c50565b60405180910390fd5b809150505b92915050565b5f612cd683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613047565b905092915050565b5f600267ffffffffffffffff811115612cfa57612cf9613c6e565b5b604051908082528060200260200182016040528015612d285781602001602082028036833780820191505090505b50905030815f81518110612d3f57612d3e613c9b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612de3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e079190613517565b81600181518110612e1b57612e1a613c9b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e813060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a9f565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612ee3959493929190613d7f565b5f604051808303815f87803b158015612efa575f80fd5b505af1158015612f0c573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612f41929190613dd7565b60405180910390a15050565b612f793060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a9f565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612fff969594939291906135a2565b60606040518083038185885af115801561301b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906130409190613615565b5050505050565b5f808311829061308d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130849190613132565b60405180910390fd5b505f838561309b9190613bb0565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156130df5780820151818401526020810190506130c4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613104826130a8565b61310e81856130b2565b935061311e8185602086016130c2565b613127816130ea565b840191505092915050565b5f6020820190508181035f83015261314a81846130fa565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61317b82613152565b9050919050565b61318b81613171565b82525050565b5f6020820190506131a45f830184613182565b92915050565b5f80fd5b6131b781613171565b81146131c1575f80fd5b50565b5f813590506131d2816131ae565b92915050565b5f819050919050565b6131ea816131d8565b81146131f4575f80fd5b50565b5f81359050613205816131e1565b92915050565b5f8060408385031215613221576132206131aa565b5b5f61322e858286016131c4565b925050602061323f858286016131f7565b9150509250929050565b5f8115159050919050565b61325d81613249565b82525050565b5f6020820190506132765f830184613254565b92915050565b613285816131d8565b82525050565b5f60208201905061329e5f83018461327c565b92915050565b5f6132ae82613152565b9050919050565b6132be816132a4565b82525050565b5f6020820190506132d75f8301846132b5565b92915050565b5f602082840312156132f2576132f16131aa565b5b5f6132ff848285016131c4565b91505092915050565b5f805f6060848603121561331f5761331e6131aa565b5b5f61332c868287016131c4565b935050602061333d868287016131c4565b925050604061334e868287016131f7565b9150509250925092565b5f60ff82169050919050565b61336d81613358565b82525050565b5f6020820190506133865f830184613364565b92915050565b5f819050919050565b5f6133af6133aa6133a584613152565b61338c565b613152565b9050919050565b5f6133c082613395565b9050919050565b5f6133d1826133b6565b9050919050565b6133e1816133c7565b82525050565b5f6020820190506133fa5f8301846133d8565b92915050565b5f8060408385031215613416576134156131aa565b5b5f613423858286016131c4565b9250506020613434858286016131c4565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061348257607f821691505b6020821081036134955761349461343e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6134cf6020836130b2565b91506134da8261349b565b602082019050919050565b5f6020820190508181035f8301526134fc816134c3565b9050919050565b5f81519050613511816131ae565b92915050565b5f6020828403121561352c5761352b6131aa565b5b5f61353984828501613503565b91505092915050565b5f6040820190506135555f830185613182565b6135626020830184613182565b9392505050565b5f819050919050565b5f61358c61358761358284613569565b61338c565b6131d8565b9050919050565b61359c81613572565b82525050565b5f60c0820190506135b55f830189613182565b6135c2602083018861327c565b6135cf6040830187613593565b6135dc6060830186613593565b6135e96080830185613182565b6135f660a083018461327c565b979650505050505050565b5f8151905061360f816131e1565b92915050565b5f805f6060848603121561362c5761362b6131aa565b5b5f61363986828701613601565b935050602061364a86828701613601565b925050604061365b86828701613601565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136bf6026836130b2565b91506136ca82613665565b604082019050919050565b5f6020820190508181035f8301526136ec816136b3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61374d6024836130b2565b9150613758826136f3565b604082019050919050565b5f6020820190508181035f83015261377a81613741565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6137db6022836130b2565b91506137e682613781565b604082019050919050565b5f6020820190508181035f830152613808816137cf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6138696025836130b2565b91506138748261380f565b604082019050919050565b5f6020820190508181035f8301526138968161385d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6138f76023836130b2565b91506139028261389d565b604082019050919050565b5f6020820190508181035f830152613924816138eb565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f6139856028836130b2565b91506139908261392b565b604082019050919050565b5f6020820190508181035f8301526139b281613979565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c695f8201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b5f613a136025836130b2565b9150613a1e826139b9565b604082019050919050565b5f6020820190508181035f830152613a4081613a07565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613a7e826131d8565b9150613a89836131d8565b9250828203905081811115613aa157613aa0613a47565b5b92915050565b5f613ab1826131d8565b9150613abc836131d8565b9250828201905080821115613ad457613ad3613a47565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b0e601b836130b2565b9150613b1982613ada565b602082019050919050565b5f6020820190508181035f830152613b3b81613b02565b9050919050565b5f613b4c826131d8565b9150613b57836131d8565b9250828202613b65816131d8565b91508282048414831517613b7c57613b7b613a47565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613bba826131d8565b9150613bc5836131d8565b925082613bd557613bd4613b83565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c3a6021836130b2565b9150613c4582613be0565b604082019050919050565b5f6020820190508181035f830152613c6781613c2e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613cfa81613171565b82525050565b5f613d0b8383613cf1565b60208301905092915050565b5f602082019050919050565b5f613d2d82613cc8565b613d378185613cd2565b9350613d4283613ce2565b805f5b83811015613d72578151613d598882613d00565b9750613d6483613d17565b925050600181019050613d45565b5085935050505092915050565b5f60a082019050613d925f83018861327c565b613d9f6020830187613593565b8181036040830152613db18186613d23565b9050613dc06060830185613182565b613dcd608083018461327c565b9695505050505050565b5f604082019050613dea5f83018561327c565b8181036020830152613dfc8184613d23565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220bcd75760356582f7d90985bcfe866898f4220cdb9cb1be5830f975c2636089f864736f6c63430008150033

Deployed Bytecode Sourcemap

11555:12075:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14794:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13696:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15583:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12730:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12334:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15071:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13027:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13784:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12374:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16996:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12690:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13608:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16353:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12570:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14980:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15752:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12490:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12916:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11988:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12651:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12615:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12528:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15179:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3153:227;;;;;;;;;;;;;:::i;:::-;;12433:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12771:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12973:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11682:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3055:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11646:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14885:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22777:128;;;;;;;;;;;;;:::i;:::-;;12256:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15306:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17317:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13063:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12293:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20060:688;;;:::i;:::-;;11913:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12866:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15978:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12057:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3519:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12836:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14794:83;14831:13;14864:5;14857:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14794:83;:::o;13696:81::-;;;:::o;15583:161::-;15658:4;15675:39;15684:12;:10;:12::i;:::-;15698:7;15707:6;15675:8;:39::i;:::-;15732:4;15725:11;;15583:161;;;;:::o;12730:34::-;;;;;;;;;;;;;:::o;12334:31::-;;;;:::o;15071:100::-;15124:7;15151:12;;15144:19;;15071:100;:::o;13027:29::-;;;;;;;;;;;;;:::o;13784:94::-;;;;;;;;;;;;;:::o;12374:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;16996:313::-;17094:4;17111:36;17121:6;17129:9;17140:6;17111:9;:36::i;:::-;;17158:121;17167:6;17175:12;:10;:12::i;:::-;17189:89;17227:6;17189:89;;;;;;;;;;;;;;;;;:11;:19;17201:6;17189:19;;;;;;;;;;;;;;;:33;17209:12;:10;:12::i;:::-;17189:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17158:8;:121::i;:::-;17297:4;17290:11;;16996:313;;;;;:::o;12690:33::-;;;;;;;;;;;;;:::o;13608:81::-;;;:::o;16353:156::-;16406:7;16433:68;16478:22;16488:11;16478:9;:22::i;:::-;16433:40;16450:22;16460:11;16450:9;:22::i;:::-;16433:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;16426:75;;16353:156;:::o;12570:32::-;;;;:::o;14980:83::-;15021:5;15046:9;;;;;;;;;;;15039:16;;14980:83;:::o;15752:218::-;15840:4;15857:83;15866:12;:10;:12::i;:::-;15880:7;15889:50;15928:10;15889:11;:25;15901:12;:10;:12::i;:::-;15889:25;;;;;;;;;;;;;;;:34;15915:7;15889:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15857:8;:83::i;:::-;15958:4;15951:11;;15752:218;;;;:::o;12490:31::-;;;;:::o;12916:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;11988:61::-;;;;:::o;12651:30::-;;;;:::o;12615:29::-;;;;:::o;12528:35::-;;;;:::o;15179:119::-;15245:7;15272:9;:18;15282:7;15272:18;;;;;;;;;;;;;;;;15265:25;;15179:119;;;:::o;3153:227::-;3438:12;:10;:12::i;:::-;3428:22;;:6;;;;;;;;;;:22;;;3420:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3257:42:::1;3223:78;;3241:6;::::0;::::1;;;;;;;;3223:78;;;;;;;;;;;;3329:42;3312:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;3153:227::o:0;12433:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;12771:33::-;;;;;;;;;;;;;:::o;12973:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;11682:25::-;;;;;;;;;;;;;:::o;3055:79::-;3093:7;3120:6;;;;;;;;;;;3113:13;;3055:79;:::o;11646:29::-;;;;;;;;;;;;;:::o;14885:87::-;14924:13;14957:7;14950:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14885:87;:::o;22777:128::-;3438:12;:10;:12::i;:::-;3428:22;;:6;;;;;;;;;;:22;;;3420:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22847:12:::1;;22828:16;:31;;;;22885:12;;22870;:27;;;;22777:128::o:0;12256:30::-;;;;:::o;15306:269::-;15399:4;15416:129;15425:12;:10;:12::i;:::-;15439:7;15448:96;15487:15;15448:96;;;;;;;;;;;;;;;;;:11;:25;15460:12;:10;:12::i;:::-;15448:25;;;;;;;;;;;;;;;:34;15474:7;15448:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;15416:8;:129::i;:::-;15563:4;15556:11;;15306:269;;;;:::o;17317:167::-;17395:4;17412:42;17422:12;:10;:12::i;:::-;17436:9;17447:6;17412:9;:42::i;:::-;;17472:4;17465:11;;17317:167;;;;:::o;13063:59::-;;;;;;;;;;;;;:::o;12293:34::-;;;;:::o;20060:688::-;3438:12;:10;:12::i;:::-;3428:22;;:6;;;;;;;;;;:22;;;3420:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20118:27:::1;20159:42;20118:84;;20238:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20227:49;;;20285:4;20292:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20227:89;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20214:10;;:102;;;;;;;;;;;;;;;;;;20354:4;20327:12;:24;20340:10;;;;;;;;;;;20327:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;20403:4;20369:19;:31;20389:10;;;;;;;;;;;20369:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;20448:4;20418:15;:27;20434:10;;;;;;;;;;;20418:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;20477:16;20463:11;;:30;;;;;;;;;;;;;;;;;;20564:1;20555:11;20504;:26;20524:4;20504:26;;;;;;;;;;;;;;;:48;20539:11;;;;;;;;;;;20504:48;;;;;;;;;;;;;;;:62;;;;20602:10;20577:14;;:36;;;;;;;;;;;;;;;;;;20624:11;;;;;;;;;;;:27;;;20659:9;20678:4;20684:24;20702:4;20684:9;:24::i;:::-;20709:1;20711::::0;20713:10:::1;20724:15;20624:116;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20107:641;20060:688::o:0;11913:59::-;;;;:::o;12866:41::-;;;;;;;;;;;;;:::o;15978:143::-;16059:7;16086:11;:18;16098:5;16086:18;;;;;;;;;;;;;;;:27;16105:7;16086:27;;;;;;;;;;;;;;;;16079:34;;15978:143;;;;:::o;12057:66::-;;;;:::o;3519:241::-;3438:12;:10;:12::i;:::-;3428:22;;:6;;;;;;;;;;:22;;;3420:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3628:1:::1;3608:22;;:8;:22;;::::0;3600:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3715:8;3689:35;;3707:6;::::0;::::1;;;;;;;;3689:35;;;;;;;;;;;;3744:8;3735:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3519:241:::0;:::o;12836:23::-;;;;;;;;;;;;;:::o;2619:115::-;2672:15;2715:10;2700:26;;2619:115;:::o;16651:337::-;16761:1;16744:19;;:5;:19;;;16736:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16842:1;16823:21;;:7;:21;;;16815:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16926:6;16896:11;:18;16908:5;16896:18;;;;;;;;;;;;;;;:27;16915:7;16896:27;;;;;;;;;;;;;;;:36;;;;16964:7;16948:32;;16957:5;16948:32;;;16973:6;16948:32;;;;;;:::i;:::-;;;;;;;;16651:337;;;:::o;17492:1588::-;17579:4;17622:1;17604:20;;:6;:20;;;17596:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;17706:1;17685:23;;:9;:23;;;17677:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17764:17;:25;17782:6;17764:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;17793:17;:28;17811:9;17793:28;;;;;;;;;;;;;;;;;;;;;;;;;17764:57;17761:1312;;;17846:42;17862:6;17870:9;17881:6;17846:15;:42::i;:::-;17839:49;;;;17761:1312;17925:15;:23;17941:6;17925:23;;;;;;;;;;;;;;;;;;;;;;;;;17924:24;:55;;;;;17953:15;:26;17969:9;17953:26;;;;;;;;;;;;;;;;;;;;;;;;;17952:27;17924:55;:73;;;;;17983:14;;;;;;;;;;;17924:73;17921:156;;;18018:12;;18008:6;:22;;18000:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;17921:156;18091:22;18116:24;18134:4;18116:9;:24::i;:::-;18091:49;;18142:26;18189:12;;18171:14;:30;;18142:59;;18220:21;:39;;;;;18246:13;;;;;;;;;;;18245:14;18220:39;:64;;;;;18264:12;:20;18277:6;18264:20;;;;;;;;;;;;;;;;;;;;;;;;;18263:21;18220:64;:90;;;;;18288:22;;;;;;;;;;;18220:90;18216:232;;;18334:13;;;;;;;;;;;18331:47;;;18366:12;;18349:29;;18331:47;18397:35;18417:14;18397:19;:35::i;:::-;18216:232;18482:53;18504:6;18482:53;;;;;;;;;;;;;;;;;:9;:17;18492:6;18482:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;18462:9;:17;18472:6;18462:17;;;;;;;;;;;;;;;:73;;;;18550:22;18576:17;:25;18594:6;18576:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;18605:17;:28;18623:9;18605:28;;;;;;;;;;;;;;;;;;;;;;;;;18576:57;18575:106;;18646:35;18655:6;18663:9;18674:6;18646:8;:35::i;:::-;18575:106;;;18637:6;18575:106;18550:131;;18699:15;;;;;;;;;;;:50;;;;;18719:19;:30;18739:9;18719:30;;;;;;;;;;;;;;;;;;;;;;;;;18718:31;18699:50;18696:199;;;18822:16;;18778:40;18803:14;18778:20;18788:9;18778;:20::i;:::-;:24;;:40;;;;:::i;:::-;:60;;18770:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;18696:199;18932:40;18957:14;18932:9;:20;18942:9;18932:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;18909:9;:20;18919:9;18909:20;;;;;;;;;;;;;;;:63;;;;19009:9;18992:43;;19001:6;18992:43;;;19020:14;18992:43;;;;;;:::i;:::-;;;;;;;;19057:4;19050:11;;;;;17492:1588;;;;;;:::o;988:192::-;1074:7;1107:1;1102;:6;;1110:12;1094:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1134:9;1150:1;1146;:5;;;;:::i;:::-;1134:17;;1171:1;1164:8;;;988:192;;;;;:::o;704:136::-;762:7;789:43;793:1;796;789:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;782:50;;704:136;;;;:::o;253:181::-;311:7;331:9;347:1;343;:5;;;;:::i;:::-;331:17;;372:1;367;:6;;359:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;425:1;418:8;;;253:181;;;;:::o;19088:440::-;19182:4;19208:17;19228:31;19241:6;19249:9;19228:12;:31::i;:::-;:66;;19288:6;19228:66;;;19271:14;;19262:6;:23;;;;:::i;:::-;19228:66;19208:86;;19325:56;19347:9;19325:56;;;;;;;;;;;;;;;;;:9;:17;19335:6;19325:17;;;;;;;;;;;;;;;;:21;;:56;;;;;:::i;:::-;19305:9;:17;19315:6;19305:17;;;;;;;;;;;;;;;:76;;;;19415:32;19440:6;19415:9;:20;19425:9;19415:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;19392:9;:20;19402:9;19392:20;;;;;;;;;;;;;;;:55;;;;19480:9;19463:35;;19472:6;19463:35;;;19491:6;19463:35;;;;;;:::i;:::-;;;;;;;;19516:4;19509:11;;;19088:440;;;;;:::o;21424:1345::-;13544:4;13528:13;;:20;;;;;;;;;;;;;;;;;;21502:19:::1;21524:35;21543:15;;21524:14;;:18;;:35;;;;:::i;:::-;21502:57;;21572:22;21597:29;21613:12;;21597:11;;:15;;:29;;;;:::i;:::-;21572:54;;21637:22;21662:37;21682:16;;21662:15;;:19;;:37;;;;:::i;:::-;21637:62;;21790:18;21811:51;21860:1;21811:44;21843:11;21811:27;21823:14;21811:7;:11;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;21790:72;;21873:20;21896:23;21908:10;21896:7;:11;;:23;;;;:::i;:::-;21873:46;;21932:22;21958:21;21932:47;;21990:32;22009:12;21990:18;:32::i;:::-;22033:23;22060:41;22086:14;22060:21;:25;;:41;;;;:::i;:::-;22033:68;;22114:19;22136:38;22152:21;22171:1;22152:14;:18;;:21;;;;:::i;:::-;22136:11;:15;;:38;;;;:::i;:::-;22114:60;;22187:26;22216:59;22273:1;22216:52;22256:11;22216:35;22236:14;22216:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;22187:88;;22286:26;22315:52;22355:11;22315:35;22335:14;22315:15;:19;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;22286:81;;22378:26;22407:63;22451:18;22407:39;22427:18;22407:15;:19;;:39;;;;:::i;:::-;:43;;:63;;;;:::i;:::-;22378:92;;22507:1;22486:18;:22;22483:82;;;22519:14;;;;;;;;;;;22511:32;;:52;22544:18;22511:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22483:82;22599:1;22578:18;:22;22575:85;;;22611:17;;;;;;;;;;;22603:35;;:55;22639:18;22603:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22575:85;22694:1;22673:18;:22;:40;;;;;22712:1;22699:10;:14;22673:40;22670:92;;;22716:44;22729:10;22741:18;22716:12;:44::i;:::-;22670:92;21491:1278;;;;;;;;;;;13587:5:::0;13571:13;;:21;;;;;;;;;;;;;;;;;;21424:1345;:::o;22913:673::-;23000:7;23020:17;23040:1;23020:21;;23052:17;23087:12;:20;23100:6;23087:20;;;;;;;;;;;;;;;;;;;;;;;;;23084:273;;;23136:35;23167:3;23136:26;23147:14;;23136:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;23124:47;;23084:273;;;23201:12;:23;23214:9;23201:23;;;;;;;;;;;;;;;;;;;;;;;;;23198:159;;;23253:36;23285:3;23253:27;23264:15;;23253:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;23241:48;;23317:28;23327:17;;;;;;;;;;;23317:9;:28::i;:::-;23304:41;;;;;:::i;:::-;;;23198:159;23084:273;23382:1;23370:9;:13;23367:173;;;23427:39;23456:9;23427;:24;23445:4;23427:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;23400:9;:24;23418:4;23400:24;;;;;;;;;;;;;;;:66;;;;23511:4;23486:42;;23495:6;23486:42;;;23518:9;23486:42;;;;;;:::i;:::-;;;;;;;;23367:173;23557:21;23568:9;23557:6;:10;;:21;;;;:::i;:::-;23550:28;;;;22913:673;;;;;:::o;16129:216::-;16209:4;16246:10;;;;;;;;;;;16233:23;;:9;:23;;;:54;;;;;16270:17;;;;;;;;;;;16260:27;;:6;:27;;;16233:54;:78;;;;;16309:1;16291:20;;:6;:20;;;;16233:78;:104;;;;;16335:1;16315:22;;:9;:22;;;;16233:104;16226:111;;16129:216;;;;:::o;446:250::-;504:7;533:1;528;:6;524:47;;558:1;551:8;;;;524:47;583:9;599:1;595;:5;;;;:::i;:::-;583:17;;628:1;623;619;:5;;;;:::i;:::-;:10;611:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;687:1;680:8;;;446:250;;;;;:::o;848:132::-;906:7;933:39;937:1;940;933:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;926:46;;848:132;;;;:::o;20760:656::-;20888:21;20926:1;20912:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20888:40;;20957:4;20939;20944:1;20939:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20983:11;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20973:4;20978:1;20973:7;;;;;;;;:::i;:::-;;;;;;;:28;;;;;;;;;;;21014:58;21031:4;21046:11;;;;;;;;;;;21060;21014:8;:58::i;:::-;21111:11;;;;;;;;;;;:62;;;21188:11;21214:1;21258:4;21285;21321:15;21111:236;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21373:35;21390:11;21403:4;21373:35;;;;;;;:::i;:::-;;;;;;;;20817:599;20760:656;:::o;19536:512::-;19684:58;19701:4;19716:11;;;;;;;;;;;19730;19684:8;:58::i;:::-;19785:11;;;;;;;;;;;:27;;;19820:9;19853:4;19873:11;19899:1;19942;19985:14;;;;;;;;;;;20014:15;19785:255;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19536:512;;:::o;1188:278::-;1274:7;1306:1;1302;:5;1309:12;1294:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1333:9;1349:1;1345;:5;;;;:::i;:::-;1333:17;;1457:1;1450:8;;;1188: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:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:104::-;4195:7;4224:24;4242:5;4224:24;:::i;:::-;4213:35;;4150:104;;;:::o;4260:142::-;4363:32;4389:5;4363:32;:::i;:::-;4358:3;4351:45;4260:142;;:::o;4408:254::-;4517:4;4555:2;4544:9;4540:18;4532:26;;4568:87;4652:1;4641:9;4637:17;4628:6;4568:87;:::i;:::-;4408:254;;;;:::o;4668:329::-;4727:6;4776:2;4764:9;4755:7;4751:23;4747:32;4744:119;;;4782:79;;:::i;:::-;4744:119;4902:1;4927:53;4972:7;4963:6;4952:9;4948:22;4927:53;:::i;:::-;4917:63;;4873:117;4668:329;;;;:::o;5003:619::-;5080:6;5088;5096;5145:2;5133:9;5124:7;5120:23;5116:32;5113:119;;;5151:79;;:::i;:::-;5113:119;5271:1;5296:53;5341:7;5332:6;5321:9;5317:22;5296:53;:::i;:::-;5286:63;;5242:117;5398:2;5424:53;5469:7;5460:6;5449:9;5445:22;5424:53;:::i;:::-;5414:63;;5369:118;5526:2;5552:53;5597:7;5588:6;5577:9;5573:22;5552:53;:::i;:::-;5542:63;;5497:118;5003:619;;;;;:::o;5628:86::-;5663:7;5703:4;5696:5;5692:16;5681:27;;5628:86;;;:::o;5720:112::-;5803:22;5819:5;5803:22;:::i;:::-;5798:3;5791:35;5720:112;;:::o;5838:214::-;5927:4;5965:2;5954:9;5950:18;5942:26;;5978:67;6042:1;6031:9;6027:17;6018:6;5978:67;:::i;:::-;5838:214;;;;:::o;6058:60::-;6086:3;6107:5;6100:12;;6058:60;;;:::o;6124:142::-;6174:9;6207:53;6225:34;6234:24;6252:5;6234:24;:::i;:::-;6225:34;:::i;:::-;6207:53;:::i;:::-;6194:66;;6124:142;;;:::o;6272:126::-;6322:9;6355:37;6386:5;6355:37;:::i;:::-;6342:50;;6272:126;;;:::o;6404:145::-;6473:9;6506:37;6537:5;6506:37;:::i;:::-;6493:50;;6404:145;;;:::o;6555:169::-;6661:56;6711:5;6661:56;:::i;:::-;6656:3;6649:69;6555:169;;:::o;6730:260::-;6842:4;6880:2;6869:9;6865:18;6857:26;;6893:90;6980:1;6969:9;6965:17;6956:6;6893:90;:::i;:::-;6730:260;;;;:::o;6996:474::-;7064:6;7072;7121:2;7109:9;7100:7;7096:23;7092:32;7089:119;;;7127:79;;:::i;:::-;7089:119;7247:1;7272:53;7317:7;7308:6;7297:9;7293:22;7272:53;:::i;:::-;7262:63;;7218:117;7374:2;7400:53;7445:7;7436:6;7425:9;7421:22;7400:53;:::i;:::-;7390:63;;7345:118;6996:474;;;;;:::o;7476:180::-;7524:77;7521:1;7514:88;7621:4;7618:1;7611:15;7645:4;7642:1;7635:15;7662:320;7706:6;7743:1;7737:4;7733:12;7723:22;;7790:1;7784:4;7780:12;7811:18;7801:81;;7867:4;7859:6;7855:17;7845:27;;7801:81;7929:2;7921:6;7918:14;7898:18;7895:38;7892:84;;7948:18;;:::i;:::-;7892:84;7713:269;7662:320;;;:::o;7988:182::-;8128:34;8124:1;8116:6;8112:14;8105:58;7988:182;:::o;8176:366::-;8318:3;8339:67;8403:2;8398:3;8339:67;:::i;:::-;8332:74;;8415:93;8504:3;8415:93;:::i;:::-;8533:2;8528:3;8524:12;8517:19;;8176:366;;;:::o;8548:419::-;8714:4;8752:2;8741:9;8737:18;8729:26;;8801:9;8795:4;8791:20;8787:1;8776:9;8772:17;8765:47;8829:131;8955:4;8829:131;:::i;:::-;8821:139;;8548:419;;;:::o;8973:143::-;9030:5;9061:6;9055:13;9046:22;;9077:33;9104:5;9077:33;:::i;:::-;8973:143;;;;:::o;9122:351::-;9192:6;9241:2;9229:9;9220:7;9216:23;9212:32;9209:119;;;9247:79;;:::i;:::-;9209:119;9367:1;9392:64;9448:7;9439:6;9428:9;9424:22;9392:64;:::i;:::-;9382:74;;9338:128;9122:351;;;;:::o;9479:332::-;9600:4;9638:2;9627:9;9623:18;9615:26;;9651:71;9719:1;9708:9;9704:17;9695:6;9651:71;:::i;:::-;9732:72;9800:2;9789:9;9785:18;9776:6;9732:72;:::i;:::-;9479:332;;;;;:::o;9817:85::-;9862:7;9891:5;9880:16;;9817:85;;;:::o;9908:158::-;9966:9;9999:61;10017:42;10026:32;10052:5;10026:32;:::i;:::-;10017:42;:::i;:::-;9999:61;:::i;:::-;9986:74;;9908:158;;;:::o;10072:147::-;10167:45;10206:5;10167:45;:::i;:::-;10162:3;10155:58;10072:147;;:::o;10225:807::-;10474:4;10512:3;10501:9;10497:19;10489:27;;10526:71;10594:1;10583:9;10579:17;10570:6;10526:71;:::i;:::-;10607:72;10675:2;10664:9;10660:18;10651:6;10607:72;:::i;:::-;10689:80;10765:2;10754:9;10750:18;10741:6;10689:80;:::i;:::-;10779;10855:2;10844:9;10840:18;10831:6;10779:80;:::i;:::-;10869:73;10937:3;10926:9;10922:19;10913:6;10869:73;:::i;:::-;10952;11020:3;11009:9;11005:19;10996:6;10952:73;:::i;:::-;10225:807;;;;;;;;;:::o;11038:143::-;11095:5;11126:6;11120:13;11111:22;;11142:33;11169:5;11142:33;:::i;:::-;11038:143;;;;:::o;11187:663::-;11275:6;11283;11291;11340:2;11328:9;11319:7;11315:23;11311:32;11308:119;;;11346:79;;:::i;:::-;11308:119;11466:1;11491:64;11547:7;11538:6;11527:9;11523:22;11491:64;:::i;:::-;11481:74;;11437:128;11604:2;11630:64;11686:7;11677:6;11666:9;11662:22;11630:64;:::i;:::-;11620:74;;11575:129;11743:2;11769:64;11825:7;11816:6;11805:9;11801:22;11769:64;:::i;:::-;11759:74;;11714:129;11187:663;;;;;:::o;11856:225::-;11996:34;11992:1;11984:6;11980:14;11973:58;12065:8;12060:2;12052:6;12048:15;12041:33;11856:225;:::o;12087:366::-;12229:3;12250:67;12314:2;12309:3;12250:67;:::i;:::-;12243:74;;12326:93;12415:3;12326:93;:::i;:::-;12444:2;12439:3;12435:12;12428:19;;12087:366;;;:::o;12459:419::-;12625:4;12663:2;12652:9;12648:18;12640:26;;12712:9;12706:4;12702:20;12698:1;12687:9;12683:17;12676:47;12740:131;12866:4;12740:131;:::i;:::-;12732:139;;12459:419;;;:::o;12884:223::-;13024:34;13020:1;13012:6;13008:14;13001:58;13093:6;13088:2;13080:6;13076:15;13069:31;12884:223;:::o;13113:366::-;13255:3;13276:67;13340:2;13335:3;13276:67;:::i;:::-;13269:74;;13352:93;13441:3;13352:93;:::i;:::-;13470:2;13465:3;13461:12;13454:19;;13113:366;;;:::o;13485:419::-;13651:4;13689:2;13678:9;13674:18;13666:26;;13738:9;13732:4;13728:20;13724:1;13713:9;13709:17;13702:47;13766:131;13892:4;13766:131;:::i;:::-;13758:139;;13485:419;;;:::o;13910:221::-;14050:34;14046:1;14038:6;14034:14;14027:58;14119:4;14114:2;14106:6;14102:15;14095:29;13910:221;:::o;14137:366::-;14279:3;14300:67;14364:2;14359:3;14300:67;:::i;:::-;14293:74;;14376:93;14465:3;14376:93;:::i;:::-;14494:2;14489:3;14485:12;14478:19;;14137:366;;;:::o;14509:419::-;14675:4;14713:2;14702:9;14698:18;14690:26;;14762:9;14756:4;14752:20;14748:1;14737:9;14733:17;14726:47;14790:131;14916:4;14790:131;:::i;:::-;14782:139;;14509:419;;;:::o;14934:224::-;15074:34;15070:1;15062:6;15058:14;15051:58;15143:7;15138:2;15130:6;15126:15;15119:32;14934:224;:::o;15164:366::-;15306:3;15327:67;15391:2;15386:3;15327:67;:::i;:::-;15320:74;;15403:93;15492:3;15403:93;:::i;:::-;15521:2;15516:3;15512:12;15505:19;;15164:366;;;:::o;15536:419::-;15702:4;15740:2;15729:9;15725:18;15717:26;;15789:9;15783:4;15779:20;15775:1;15764:9;15760:17;15753:47;15817:131;15943:4;15817:131;:::i;:::-;15809:139;;15536:419;;;:::o;15961:222::-;16101:34;16097:1;16089:6;16085:14;16078:58;16170:5;16165:2;16157:6;16153:15;16146:30;15961:222;:::o;16189:366::-;16331:3;16352:67;16416:2;16411:3;16352:67;:::i;:::-;16345:74;;16428:93;16517:3;16428:93;:::i;:::-;16546:2;16541:3;16537:12;16530:19;;16189:366;;;:::o;16561:419::-;16727:4;16765:2;16754:9;16750:18;16742:26;;16814:9;16808:4;16804:20;16800:1;16789:9;16785:17;16778:47;16842:131;16968:4;16842:131;:::i;:::-;16834:139;;16561:419;;;:::o;16986:227::-;17126:34;17122:1;17114:6;17110:14;17103:58;17195:10;17190:2;17182:6;17178:15;17171:35;16986:227;:::o;17219:366::-;17361:3;17382:67;17446:2;17441:3;17382:67;:::i;:::-;17375:74;;17458:93;17547:3;17458:93;:::i;:::-;17576:2;17571:3;17567:12;17560:19;;17219:366;;;:::o;17591:419::-;17757:4;17795:2;17784:9;17780:18;17772:26;;17844:9;17838:4;17834:20;17830:1;17819:9;17815:17;17808:47;17872:131;17998:4;17872:131;:::i;:::-;17864:139;;17591:419;;;:::o;18016:224::-;18156:34;18152:1;18144:6;18140:14;18133:58;18225:7;18220:2;18212:6;18208:15;18201:32;18016:224;:::o;18246:366::-;18388:3;18409:67;18473:2;18468:3;18409:67;:::i;:::-;18402:74;;18485:93;18574:3;18485:93;:::i;:::-;18603:2;18598:3;18594:12;18587:19;;18246:366;;;:::o;18618:419::-;18784:4;18822:2;18811:9;18807:18;18799:26;;18871:9;18865:4;18861:20;18857:1;18846:9;18842:17;18835:47;18899:131;19025:4;18899:131;:::i;:::-;18891:139;;18618:419;;;:::o;19043:180::-;19091:77;19088:1;19081:88;19188:4;19185:1;19178:15;19212:4;19209:1;19202:15;19229:194;19269:4;19289:20;19307:1;19289:20;:::i;:::-;19284:25;;19323:20;19341:1;19323:20;:::i;:::-;19318:25;;19367:1;19364;19360:9;19352:17;;19391:1;19385:4;19382:11;19379:37;;;19396:18;;:::i;:::-;19379:37;19229:194;;;;:::o;19429:191::-;19469:3;19488:20;19506:1;19488:20;:::i;:::-;19483:25;;19522:20;19540:1;19522:20;:::i;:::-;19517:25;;19565:1;19562;19558:9;19551:16;;19586:3;19583:1;19580:10;19577:36;;;19593:18;;:::i;:::-;19577:36;19429:191;;;;:::o;19626:177::-;19766:29;19762:1;19754:6;19750:14;19743:53;19626:177;:::o;19809:366::-;19951:3;19972:67;20036:2;20031:3;19972:67;:::i;:::-;19965:74;;20048:93;20137:3;20048:93;:::i;:::-;20166:2;20161:3;20157:12;20150:19;;19809:366;;;:::o;20181:419::-;20347:4;20385:2;20374:9;20370:18;20362:26;;20434:9;20428:4;20424:20;20420:1;20409:9;20405:17;20398:47;20462:131;20588:4;20462:131;:::i;:::-;20454:139;;20181:419;;;:::o;20606:410::-;20646:7;20669:20;20687:1;20669:20;:::i;:::-;20664:25;;20703:20;20721:1;20703:20;:::i;:::-;20698:25;;20758:1;20755;20751:9;20780:30;20798:11;20780:30;:::i;:::-;20769:41;;20959:1;20950:7;20946:15;20943:1;20940:22;20920:1;20913:9;20893:83;20870:139;;20989:18;;:::i;:::-;20870:139;20654:362;20606:410;;;;:::o;21022:180::-;21070:77;21067:1;21060:88;21167:4;21164:1;21157:15;21191:4;21188:1;21181:15;21208:185;21248:1;21265:20;21283:1;21265:20;:::i;:::-;21260:25;;21299:20;21317:1;21299:20;:::i;:::-;21294:25;;21338:1;21328:35;;21343:18;;:::i;:::-;21328:35;21385:1;21382;21378:9;21373:14;;21208:185;;;;:::o;21399:220::-;21539:34;21535:1;21527:6;21523:14;21516:58;21608:3;21603:2;21595:6;21591:15;21584:28;21399:220;:::o;21625:366::-;21767:3;21788:67;21852:2;21847:3;21788:67;:::i;:::-;21781:74;;21864:93;21953:3;21864:93;:::i;:::-;21982:2;21977:3;21973:12;21966:19;;21625:366;;;:::o;21997:419::-;22163:4;22201:2;22190:9;22186:18;22178:26;;22250:9;22244:4;22240:20;22236:1;22225:9;22221:17;22214:47;22278:131;22404:4;22278:131;:::i;:::-;22270:139;;21997:419;;;:::o;22422:180::-;22470:77;22467:1;22460:88;22567:4;22564:1;22557:15;22591:4;22588:1;22581:15;22608:180;22656:77;22653:1;22646:88;22753:4;22750:1;22743:15;22777:4;22774:1;22767:15;22794:114;22861:6;22895:5;22889:12;22879:22;;22794:114;;;:::o;22914:184::-;23013:11;23047:6;23042:3;23035:19;23087:4;23082:3;23078:14;23063:29;;22914:184;;;;:::o;23104:132::-;23171:4;23194:3;23186:11;;23224:4;23219:3;23215:14;23207:22;;23104:132;;;:::o;23242:108::-;23319:24;23337:5;23319:24;:::i;:::-;23314:3;23307:37;23242:108;;:::o;23356:179::-;23425:10;23446:46;23488:3;23480:6;23446:46;:::i;:::-;23524:4;23519:3;23515:14;23501:28;;23356:179;;;;:::o;23541:113::-;23611:4;23643;23638:3;23634:14;23626:22;;23541:113;;;:::o;23690:732::-;23809:3;23838:54;23886:5;23838:54;:::i;:::-;23908:86;23987:6;23982:3;23908:86;:::i;:::-;23901:93;;24018:56;24068:5;24018:56;:::i;:::-;24097:7;24128:1;24113:284;24138:6;24135:1;24132:13;24113:284;;;24214:6;24208:13;24241:63;24300:3;24285:13;24241:63;:::i;:::-;24234:70;;24327:60;24380:6;24327:60;:::i;:::-;24317:70;;24173:224;24160:1;24157;24153:9;24148:14;;24113:284;;;24117:14;24413:3;24406:10;;23814:608;;;23690:732;;;;:::o;24428:831::-;24691:4;24729:3;24718:9;24714:19;24706:27;;24743:71;24811:1;24800:9;24796:17;24787:6;24743:71;:::i;:::-;24824:80;24900:2;24889:9;24885:18;24876:6;24824:80;:::i;:::-;24951:9;24945:4;24941:20;24936:2;24925:9;24921:18;24914:48;24979:108;25082:4;25073:6;24979:108;:::i;:::-;24971:116;;25097:72;25165:2;25154:9;25150:18;25141:6;25097:72;:::i;:::-;25179:73;25247:3;25236:9;25232:19;25223:6;25179:73;:::i;:::-;24428:831;;;;;;;;:::o;25265:483::-;25436:4;25474:2;25463:9;25459:18;25451:26;;25487:71;25555:1;25544:9;25540:17;25531:6;25487:71;:::i;:::-;25605:9;25599:4;25595:20;25590:2;25579:9;25575:18;25568:48;25633:108;25736:4;25727:6;25633:108;:::i;:::-;25625:116;;25265:483;;;;;:::o

Swarm Source

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