ETH Price: $3,278.12 (+0.98%)
Gas: 8 Gwei

Token

Invasive Species (IS)
 

Overview

Max Total Supply

1,000,000,000 IS

Holders

103

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
516,195.10176432951630654 IS

Value
$0.00
0x59c349887f5307fc62827eaf6670c57045ac6a82
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:
InvasiveSpecies

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*

    

 /$$$$$$                                    /$$                          /$$$$$$                            /$$                  
|_  $$_/                                   |__/                         /$$__  $$                          |__/                  
  | $$  /$$$$$$$ /$$    /$$/$$$$$$  /$$$$$$$/$$/$$    /$$/$$$$$$       | $$  \__/ /$$$$$$  /$$$$$$  /$$$$$$$/$$ /$$$$$$  /$$$$$$$
  | $$ | $$__  $|  $$  /$$|____  $$/$$_____| $|  $$  /$$/$$__  $$      |  $$$$$$ /$$__  $$/$$__  $$/$$_____| $$/$$__  $$/$$_____/
  | $$ | $$  \ $$\  $$/$$/ /$$$$$$|  $$$$$$| $$\  $$/$$| $$$$$$$$       \____  $| $$  \ $| $$$$$$$| $$     | $| $$$$$$$|  $$$$$$ 
  | $$ | $$  | $$ \  $$$/ /$$__  $$\____  $| $$ \  $$$/| $$_____/       /$$  \ $| $$  | $| $$_____| $$     | $| $$_____/\____  $$
 /$$$$$| $$  | $$  \  $/ |  $$$$$$$/$$$$$$$| $$  \  $/ |  $$$$$$$      |  $$$$$$| $$$$$$$|  $$$$$$|  $$$$$$| $|  $$$$$$$/$$$$$$$/
|______|__/  |__/   \_/   \_______|_______/|__/   \_/   \_______/       \______/| $$____/ \_______/\_______|__/\_______|_______/ 
                                                                                | $$                                             
                                                                                | $$                                             
                                                                                |__/                                                                                                                                          |__/                                                  

* Telegram : https://t.me/invasivespecieserc
* Website : https://invasive-species.club/
* Twitter : https://twitter.com/ISerc20

*/

// SPDX-License-Identifier:MIT

pragma solidity ^0.8.10;

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

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

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

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

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

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

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

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

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

    function initialize(address, address) external;
}

interface IDexSwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract InvasiveSpecies is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "Invasive Species";
    string private _symbol = "IS";
    uint8 private _decimals = 18; 

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    uint256 public _buyTaxFee;
    uint256 public _sellTaxFee;

    address public FeeWallet = address(0x1e2009EC3ac7D85c7cEb6B90C68D5526926d5E47);
    
    uint256 feedenominator = 100;

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

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

    uint256 private _totalSupply = 1_000_000_000 * 10**_decimals;

    uint256 public swapThreshold = _totalSupply.mul(5).div(1000);     //0.5%
    
    uint256 public _maxTxAmount =  _totalSupply.mul(10).div(1000);     // 1%
    uint256 public _walletMax = _totalSupply.mul(30).div(1000);        // 3%

    bool public swapEnabled = false;
    bool public swapbylimit = true;
    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    bool public activeTrade;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

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

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

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

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

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

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

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

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

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

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

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

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

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

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(!activeTrade) {
            require(isExcludedFromFee[sender] || isExcludedFromFee[recipient],"Trading is not enable yet!");
        }
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled) {
                swapBack(contractTokenBalance);
            }

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

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet Limit Exceeded!!");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;

        }

    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(_buyTaxFee).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(_sellTaxFee).div(feedenominator);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }

    function openTrade() external onlyOwner {

        require(!activeTrade,"Trade Already Active!");

        uint256 contractETH = address(this).balance;
        uint256 contractToken = balanceOf(address(this));

        require(contractETH > 0 && contractToken > 0,"Insufficient Funds!");

        activeTrade = true;
        
        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexPair = IDexSwapFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );

        dexRouter = _dexRouter;

        isWalletLimitExempt[address(dexPair)] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;

        _allowances[address(this)][address(dexRouter)] = ~uint256(0);
        _allowances[address(this)][address(dexPair)] = ~uint256(0);
        
        _approve(address(this), address(dexRouter), contractToken);

        dexRouter.addLiquidityETH{value: contractETH}(
            address(this),
            contractToken,
            contractToken, // slippage is unavoidable
            contractETH, // slippage is unavoidable
            msg.sender,
            block.timestamp
        );

        swapEnabled = true;
        _buyTaxFee = 25;
        _sellTaxFee = 25;
        
    }

    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

        if(amountReceived > 0) payable(FeeWallet).transfer(amountReceived);

    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

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

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

    function rescueFunds() external onlyOwner { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function rescueTokens(address _token,address recipient,uint _amount) external onlyOwner {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function setFee(uint _BuySide, uint _SellSide) external onlyOwner {    
        _buyTaxFee = _BuySide;
        _sellTaxFee = _SellSide;
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }

    function setFeeWallet(address _newWallet) external onlyOwner {
        FeeWallet = _newWallet;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        if(_status) {
            isWalletLimitExempt[_pair] = _status;
        }
    }

    function setSwapBackSettings(bool _enabled, bool _limited)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
    }

    function setSwapthreshold(uint _threshold) external onlyOwner {
        swapThreshold = _threshold;
    }

    function setManualRouter(address _router) external onlyOwner {
        dexRouter = IDexSwapRouter(_router);
    }

    function setManualPair(address _pair) external onlyOwner {
        dexPair = _pair;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FeeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"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":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","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":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_BuySide","type":"uint256"},{"internalType":"uint256","name":"_SellSide","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setManualRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapthreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapbylimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280601081526020017f496e766173697665205370656369657300000000000000000000000000000000815250600190816200004a919062000b9f565b506040518060400160405280600281526020017f49530000000000000000000000000000000000000000000000000000000000008152506002908162000091919062000b9f565b506012600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff16815250731e2009ec3ac7d85c7ceb6b90c68d5526926d5e47600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600755600360009054906101000a900460ff16600a6200018f919062000e16565b633b9aca00620001a0919062000e67565b600e55620001db6103e8620001c76005600e546200071c60201b620028d81790919060201c565b6200079f60201b620029521790919060201c565b600f55620002166103e862000202600a600e546200071c60201b620028d81790919060201c565b6200079f60201b620029521790919060201c565b601055620002516103e86200023d601e600e546200071c60201b620028d81790919060201c565b6200079f60201b620029521790919060201c565b6011556000601260006101000a81548160ff0219169083151502179055506001601260016101000a81548160ff0219169083151502179055506001601260026101000a81548160ff0219169083151502179055506001601260036101000a81548160ff021916908315150217905550348015620002cd57600080fd5b50620002ee620002e2620007f160201b60201c565b620007f960201b60201c565b6001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600e54600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516200070e919062000ec3565b60405180910390a362001092565b600080830362000730576000905062000799565b6000828462000740919062000e67565b905082848262000751919062000f0f565b1462000794576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200078b9062000fce565b60405180910390fd5b809150505b92915050565b6000620007e983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008bd60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808311829062000907576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008fe91906200106e565b60405180910390fd5b506000838562000918919062000f0f565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620009a757607f821691505b602082108103620009bd57620009bc6200095f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009e8565b62000a338683620009e8565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000a8062000a7a62000a748462000a4b565b62000a55565b62000a4b565b9050919050565b6000819050919050565b62000a9c8362000a5f565b62000ab462000aab8262000a87565b848454620009f5565b825550505050565b600090565b62000acb62000abc565b62000ad881848462000a91565b505050565b5b8181101562000b005762000af460008262000ac1565b60018101905062000ade565b5050565b601f82111562000b4f5762000b1981620009c3565b62000b2484620009d8565b8101602085101562000b34578190505b62000b4c62000b4385620009d8565b83018262000add565b50505b505050565b600082821c905092915050565b600062000b746000198460080262000b54565b1980831691505092915050565b600062000b8f838362000b61565b9150826002028217905092915050565b62000baa8262000925565b67ffffffffffffffff81111562000bc65762000bc562000930565b5b62000bd282546200098e565b62000bdf82828562000b04565b600060209050601f83116001811462000c17576000841562000c02578287015190505b62000c0e858262000b81565b86555062000c7e565b601f19841662000c2786620009c3565b60005b8281101562000c515784890151825560018201915060208501945060208101905062000c2a565b8683101562000c71578489015162000c6d601f89168262000b61565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000d145780860481111562000cec5762000ceb62000c86565b5b600185161562000cfc5780820291505b808102905062000d0c8562000cb5565b945062000ccc565b94509492505050565b60008262000d2f576001905062000e02565b8162000d3f576000905062000e02565b816001811462000d58576002811462000d635762000d99565b600191505062000e02565b60ff84111562000d785762000d7762000c86565b5b8360020a91508482111562000d925762000d9162000c86565b5b5062000e02565b5060208310610133831016604e8410600b841016171562000dd35782820a90508381111562000dcd5762000dcc62000c86565b5b62000e02565b62000de2848484600162000cc2565b9250905081840481111562000dfc5762000dfb62000c86565b5b81810290505b9392505050565b600060ff82169050919050565b600062000e238262000a4b565b915062000e308362000e09565b925062000e5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000d1d565b905092915050565b600062000e748262000a4b565b915062000e818362000a4b565b925082820262000e918162000a4b565b9150828204841483151762000eab5762000eaa62000c86565b5b5092915050565b62000ebd8162000a4b565b82525050565b600060208201905062000eda600083018462000eb2565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000f1c8262000a4b565b915062000f298362000a4b565b92508262000f3c5762000f3b62000ee0565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000fb660218362000f47565b915062000fc38262000f58565b604082019050919050565b6000602082019050818103600083015262000fe98162000fa7565b9050919050565b60005b838110156200101057808201518184015260208101905062000ff3565b60008484015250505050565b6000601f19601f8301169050919050565b60006200103a8262000925565b62001046818562000f47565b93506200105881856020860162000ff0565b62001063816200101c565b840191505092915050565b600060208201905081810360008301526200108a81846200102d565b905092915050565b60805160a051614fd3620010c660003960008181610caf0152610e07015260008181610ddb0152610e330152614fd36000f3fe6080604052600436106102e85760003560e01c8063728d41c911610190578063cea9d26f116100dc578063ee828db311610095578063f2fde38b1161006f578063f2fde38b14610b5b578063f71b9bbf14610b84578063f872858a14610bad578063fb201b1d14610bd8576102ef565b8063ee828db314610adc578063efcc52de14610b05578063f242ab4114610b30576102ef565b8063cea9d26f146109e2578063d4e43fb314610a0b578063dd62ed3e14610a34578063df8408fe14610a71578063e6b2603b14610a9a578063e9fd339414610ab1576102ef565b806395d89b4111610149578063adc0d09211610123578063adc0d0921461092a578063ae85ade614610953578063c16dd4a41461097c578063c867d60b146109a5576102ef565b806395d89b4114610885578063a457c2d7146108b0578063a9059cbb146108ed576102ef565b8063728d41c9146107755780637d1db4a51461079e578063807c2d9c146107c95780638b42507f146107f45780638da5cb5b1461083157806390d49b9d1461085c576102ef565b8063395093511161024f5780635c85974f11610208578063651a8987116101e2578063651a8987146106cd5780636ddd1713146106f657806370a0823114610721578063715018a61461075e576102ef565b80635c85974f1461064e5780635ca6de3c146106775780635e42358c146106a2576102ef565b8063395093511461051c5780633ecad271146105595780634974d88f1461059657806352f7c988146105bf5780635342acb4146105e857806359fac51714610625576102ef565b8063200a692d116102a1578063200a692d1461040857806323b872dd1461043357806327c8f835146104705780632b112e491461049b5780632ebd161c146104c6578063313ce567146104f1576102ef565b80630445b667146102f457806306fdde031461031f5780630758d9241461034a5780630930907b14610375578063095ea7b3146103a057806318160ddd146103dd576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610bef565b6040516103169190613d3d565b60405180910390f35b34801561032b57600080fd5b50610334610bf5565b6040516103419190613de8565b60405180910390f35b34801561035657600080fd5b5061035f610c87565b60405161036c9190613e89565b60405180910390f35b34801561038157600080fd5b5061038a610cad565b6040516103979190613ec5565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c29190613f3d565b610cd1565b6040516103d49190613f98565b60405180910390f35b3480156103e957600080fd5b506103f2610cef565b6040516103ff9190613d3d565b60405180910390f35b34801561041457600080fd5b5061041d610cf9565b60405161042a9190613d3d565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190613fb3565b610cff565b6040516104679190613f98565b60405180910390f35b34801561047c57600080fd5b50610485610dd9565b6040516104929190613ec5565b60405180910390f35b3480156104a757600080fd5b506104b0610dfd565b6040516104bd9190613d3d565b60405180910390f35b3480156104d257600080fd5b506104db610e7b565b6040516104e89190613ec5565b60405180910390f35b3480156104fd57600080fd5b50610506610ea1565b6040516105139190614022565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e9190613f3d565b610eb8565b6040516105509190613f98565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b919061403d565b610f6b565b60405161058d9190613f98565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190614096565b610f8b565b005b3480156105cb57600080fd5b506105e660048036038101906105e191906140c3565b611024565b005b3480156105f457600080fd5b5061060f600480360381019061060a919061403d565b6110b2565b60405161061c9190613f98565b60405180910390f35b34801561063157600080fd5b5061064c6004803603810190610647919061403d565b6110d2565b005b34801561065a57600080fd5b5061067560048036038101906106709190614103565b611192565b005b34801561068357600080fd5b5061068c611218565b6040516106999190613f98565b60405180910390f35b3480156106ae57600080fd5b506106b761122b565b6040516106c49190613f98565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef9190614130565b61123e565b005b34801561070257600080fd5b5061070b611315565b6040516107189190613f98565b60405180910390f35b34801561072d57600080fd5b506107486004803603810190610743919061403d565b611328565b6040516107559190613d3d565b60405180910390f35b34801561076a57600080fd5b50610773611371565b005b34801561078157600080fd5b5061079c60048036038101906107979190614103565b6113f9565b005b3480156107aa57600080fd5b506107b361147f565b6040516107c09190613d3d565b60405180910390f35b3480156107d557600080fd5b506107de611485565b6040516107eb9190613d3d565b60405180910390f35b34801561080057600080fd5b5061081b6004803603810190610816919061403d565b61148b565b6040516108289190613f98565b60405180910390f35b34801561083d57600080fd5b506108466114ab565b6040516108539190613ec5565b60405180910390f35b34801561086857600080fd5b50610883600480360381019061087e919061403d565b6114d4565b005b34801561089157600080fd5b5061089a611594565b6040516108a79190613de8565b60405180910390f35b3480156108bc57600080fd5b506108d760048036038101906108d29190613f3d565b611626565b6040516108e49190613f98565b60405180910390f35b3480156108f957600080fd5b50610914600480360381019061090f9190613f3d565b6116f3565b6040516109219190613f98565b60405180910390f35b34801561093657600080fd5b50610951600480360381019061094c9190614103565b611712565b005b34801561095f57600080fd5b5061097a60048036038101906109759190614130565b611798565b005b34801561098857600080fd5b506109a3600480360381019061099e9190614130565b61186f565b005b3480156109b157600080fd5b506109cc60048036038101906109c7919061403d565b6119a4565b6040516109d99190613f98565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a049190613fb3565b6119c4565b005b348015610a1757600080fd5b50610a326004803603810190610a2d9190614170565b611b82565b005b348015610a4057600080fd5b50610a5b6004803603810190610a5691906141b0565b611c36565b604051610a689190613d3d565b60405180910390f35b348015610a7d57600080fd5b50610a986004803603810190610a939190614130565b611cbd565b005b348015610aa657600080fd5b50610aaf611d94565b005b348015610abd57600080fd5b50610ac6611ebf565b604051610ad39190613f98565b60405180910390f35b348015610ae857600080fd5b50610b036004803603810190610afe9190614096565b611ed2565b005b348015610b1157600080fd5b50610b1a611f6b565b604051610b279190613d3d565b60405180910390f35b348015610b3c57600080fd5b50610b45611f71565b604051610b529190613ec5565b60405180910390f35b348015610b6757600080fd5b50610b826004803603810190610b7d919061403d565b611f97565b005b348015610b9057600080fd5b50610bab6004803603810190610ba6919061403d565b61208e565b005b348015610bb957600080fd5b50610bc261214e565b604051610bcf9190613f98565b60405180910390f35b348015610be457600080fd5b50610bed612161565b005b600f5481565b606060018054610c049061421f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c309061421f565b8015610c7d5780601f10610c5257610100808354040283529160200191610c7d565b820191906000526020600020905b815481529060010190602001808311610c6057829003601f168201915b5050505050905090565b601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610ce5610cde61299c565b84846129a4565b6001905092915050565b6000600e54905090565b60055481565b6000610d0c848484612b6d565b50610dce84610d1961299c565b610dc985604051806060016040528060288152602001614f5160289139600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d7f61299c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132249092919063ffffffff16565b6129a4565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610e76610e2b7f0000000000000000000000000000000000000000000000000000000000000000611328565b610e68610e577f0000000000000000000000000000000000000000000000000000000000000000611328565b600e5461328890919063ffffffff16565b61328890919063ffffffff16565b905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b6000610f61610ec561299c565b84610f5c8560096000610ed661299c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132d290919063ffffffff16565b6129a4565b6001905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b610f9361299c565b73ffffffffffffffffffffffffffffffffffffffff16610fb16114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe9061429c565b60405180910390fd5b80601260036101000a81548160ff02191690831515021790555050565b61102c61299c565b73ffffffffffffffffffffffffffffffffffffffff1661104a6114ab565b73ffffffffffffffffffffffffffffffffffffffff16146110a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110979061429c565b60405180910390fd5b81600481905550806005819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6110da61299c565b73ffffffffffffffffffffffffffffffffffffffff166110f86114ab565b73ffffffffffffffffffffffffffffffffffffffff161461114e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111459061429c565b60405180910390fd5b80601260056101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61119a61299c565b73ffffffffffffffffffffffffffffffffffffffff166111b86114ab565b73ffffffffffffffffffffffffffffffffffffffff161461120e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112059061429c565b60405180910390fd5b8060108190555050565b601260049054906101000a900460ff1681565b601260029054906101000a900460ff1681565b61124661299c565b73ffffffffffffffffffffffffffffffffffffffff166112646114ab565b73ffffffffffffffffffffffffffffffffffffffff16146112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b19061429c565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61137961299c565b73ffffffffffffffffffffffffffffffffffffffff166113976114ab565b73ffffffffffffffffffffffffffffffffffffffff16146113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e49061429c565b60405180910390fd5b6113f76000613330565b565b61140161299c565b73ffffffffffffffffffffffffffffffffffffffff1661141f6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c9061429c565b60405180910390fd5b8060118190555050565b60105481565b60115481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6114dc61299c565b73ffffffffffffffffffffffffffffffffffffffff166114fa6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611550576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115479061429c565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060600280546115a39061421f565b80601f01602080910402602001604051908101604052809291908181526020018280546115cf9061421f565b801561161c5780601f106115f15761010080835404028352916020019161161c565b820191906000526020600020905b8154815290600101906020018083116115ff57829003601f168201915b5050505050905090565b60006116e961163361299c565b846116e485604051806060016040528060258152602001614f79602591396009600061165d61299c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132249092919063ffffffff16565b6129a4565b6001905092915050565b600061170761170061299c565b8484612b6d565b506001905092915050565b61171a61299c565b73ffffffffffffffffffffffffffffffffffffffff166117386114ab565b73ffffffffffffffffffffffffffffffffffffffff161461178e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117859061429c565b60405180910390fd5b80600f8190555050565b6117a061299c565b73ffffffffffffffffffffffffffffffffffffffff166117be6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b9061429c565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61187761299c565b73ffffffffffffffffffffffffffffffffffffffff166118956114ab565b73ffffffffffffffffffffffffffffffffffffffff16146118eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e29061429c565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156119a05780600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600c6020528060005260406000206000915054906101000a900460ff1681565b6119cc61299c565b73ffffffffffffffffffffffffffffffffffffffff166119ea6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a379061429c565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff168383604051602401611a6c9291906142bc565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611af6919061432c565b6000604051808303816000865af19150503d8060008114611b33576040519150601f19603f3d011682016040523d82523d6000602084013e611b38565b606091505b5050905080611b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b739061438f565b60405180910390fd5b50505050565b611b8a61299c565b73ffffffffffffffffffffffffffffffffffffffff16611ba86114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf59061429c565b60405180910390fd5b81601260006101000a81548160ff02191690831515021790555080601260016101000a81548160ff0219169083151502179055505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cc561299c565b73ffffffffffffffffffffffffffffffffffffffff16611ce36114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d309061429c565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d9c61299c565b73ffffffffffffffffffffffffffffffffffffffff16611dba6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e079061429c565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611e36906143d5565b60006040518083038185875af1925050503d8060008114611e73576040519150601f19603f3d011682016040523d82523d6000602084013e611e78565b606091505b5050905080611ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb390614436565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b611eda61299c565b73ffffffffffffffffffffffffffffffffffffffff16611ef86114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f459061429c565b60405180910390fd5b80601260026101000a81548160ff02191690831515021790555050565b60045481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f9f61299c565b73ffffffffffffffffffffffffffffffffffffffff16611fbd6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614612013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200a9061429c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612082576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612079906144c8565b60405180910390fd5b61208b81613330565b50565b61209661299c565b73ffffffffffffffffffffffffffffffffffffffff166120b46114ab565b73ffffffffffffffffffffffffffffffffffffffff161461210a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121019061429c565b60405180910390fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260039054906101000a900460ff1681565b61216961299c565b73ffffffffffffffffffffffffffffffffffffffff166121876114ab565b73ffffffffffffffffffffffffffffffffffffffff16146121dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d49061429c565b60405180910390fd5b601260049054906101000a900460ff161561222d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222490614534565b60405180910390fd5b6000479050600061223d30611328565b905060008211801561224f5750600081115b61228e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612285906145a0565b60405180910390fd5b6001601260046101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561230d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233191906145d5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612398573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123bc91906145d5565b6040518363ffffffff1660e01b81526004016123d9929190614602565b6020604051808303816000875af11580156123f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241c91906145d5565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260056101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127fc30601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846129a4565b601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719843085868833426040518863ffffffff1660e01b81526004016128629695949392919061462b565b60606040518083038185885af1158015612880573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128a591906146a1565b5050506001601260006101000a81548160ff02191690831515021790555060196004819055506019600581905550505050565b60008083036128ea576000905061294c565b600082846128f89190614723565b90508284826129079190614794565b14612947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293e90614837565b60405180910390fd5b809150505b92915050565b600061299483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133f4565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0a906148c9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a799061495b565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612b609190613d3d565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd4906149ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4390614a7f565b60405180910390fd5b60008211612c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8690614b11565b60405180910390fd5b601260049054906101000a900460ff16612d8457600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d445750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7a90614b7d565b60405180910390fd5b5b601360149054906101000a900460ff1615612dab57612da4848484613457565b905061321d565b6000612db630611328565b90506000600f548210159050808015612ddc5750601360149054906101000a900460ff16155b8015612e325750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e4a5750601260009054906101000a900460ff165b15612e5957612e588261362a565b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612efd5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f155750601260029054906101000a900460ff165b15612f6057601054841115612f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5690614c0f565b60405180910390fd5b5b612fe9846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132249092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006130388787613718565b61304c57613047878787613883565b61304e565b845b9050601260039054906101000a900460ff1680156130b65750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561311b576011546130d9826130cb89611328565b6132d290919063ffffffff16565b111561311a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311190614c7b565b60405180910390fd5b5b61316d81600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132d290919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161320d9190613d3d565b60405180910390a3600193505050505b9392505050565b600083831115829061326c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132639190613de8565b60405180910390fd5b506000838561327b9190614c9b565b9050809150509392505050565b60006132ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613224565b905092915050565b60008082846132e19190614ccf565b905083811015613326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331d90614d4f565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808311829061343b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134329190613de8565b60405180910390fd5b506000838561344a9190614794565b9050809150509392505050565b60006134e2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132249092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061357782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132d290919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136179190613d3d565b60405180910390a3600190509392505050565b6001601360146101000a81548160ff021916908315150217905550601260019054906101000a900460ff161561366057600f5490505b600047905061366e82613aa8565b6000613683824761328890919063ffffffff16565b905060008111156136f857600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156136f6573d6000803e3d6000fd5b505b50506000601360146101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806137bb5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156137c9576001905061387d565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061386a5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613878576000905061387d565b600090505b92915050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613908576139016007546138f3600454866128d890919063ffffffff16565b61295290919063ffffffff16565b9050613987565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561398657613983600754613975600554866128d890919063ffffffff16565b61295290919063ffffffff16565b90505b5b6000811115613a8b576139e281600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132d290919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613a829190613d3d565b60405180910390a35b613a9e818461328890919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff811115613ac557613ac4614d6f565b5b604051908082528060200260200182016040528015613af35781602001602082028036833780820191505090505b5090503081600081518110613b0b57613b0a614d9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bd691906145d5565b81600181518110613bea57613be9614d9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613c5130601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846129a4565b601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613cb5959493929190614ec6565b600060405180830381600087803b158015613ccf57600080fd5b505af1158015613ce3573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613d18929190614f20565b60405180910390a15050565b6000819050919050565b613d3781613d24565b82525050565b6000602082019050613d526000830184613d2e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d92578082015181840152602081019050613d77565b60008484015250505050565b6000601f19601f8301169050919050565b6000613dba82613d58565b613dc48185613d63565b9350613dd4818560208601613d74565b613ddd81613d9e565b840191505092915050565b60006020820190508181036000830152613e028184613daf565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613e4f613e4a613e4584613e0a565b613e2a565b613e0a565b9050919050565b6000613e6182613e34565b9050919050565b6000613e7382613e56565b9050919050565b613e8381613e68565b82525050565b6000602082019050613e9e6000830184613e7a565b92915050565b6000613eaf82613e0a565b9050919050565b613ebf81613ea4565b82525050565b6000602082019050613eda6000830184613eb6565b92915050565b600080fd5b613eee81613ea4565b8114613ef957600080fd5b50565b600081359050613f0b81613ee5565b92915050565b613f1a81613d24565b8114613f2557600080fd5b50565b600081359050613f3781613f11565b92915050565b60008060408385031215613f5457613f53613ee0565b5b6000613f6285828601613efc565b9250506020613f7385828601613f28565b9150509250929050565b60008115159050919050565b613f9281613f7d565b82525050565b6000602082019050613fad6000830184613f89565b92915050565b600080600060608486031215613fcc57613fcb613ee0565b5b6000613fda86828701613efc565b9350506020613feb86828701613efc565b9250506040613ffc86828701613f28565b9150509250925092565b600060ff82169050919050565b61401c81614006565b82525050565b60006020820190506140376000830184614013565b92915050565b60006020828403121561405357614052613ee0565b5b600061406184828501613efc565b91505092915050565b61407381613f7d565b811461407e57600080fd5b50565b6000813590506140908161406a565b92915050565b6000602082840312156140ac576140ab613ee0565b5b60006140ba84828501614081565b91505092915050565b600080604083850312156140da576140d9613ee0565b5b60006140e885828601613f28565b92505060206140f985828601613f28565b9150509250929050565b60006020828403121561411957614118613ee0565b5b600061412784828501613f28565b91505092915050565b6000806040838503121561414757614146613ee0565b5b600061415585828601613efc565b925050602061416685828601614081565b9150509250929050565b6000806040838503121561418757614186613ee0565b5b600061419585828601614081565b92505060206141a685828601614081565b9150509250929050565b600080604083850312156141c7576141c6613ee0565b5b60006141d585828601613efc565b92505060206141e685828601613efc565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061423757607f821691505b60208210810361424a576142496141f0565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614286602083613d63565b915061429182614250565b602082019050919050565b600060208201905081810360008301526142b581614279565b9050919050565b60006040820190506142d16000830185613eb6565b6142de6020830184613d2e565b9392505050565b600081519050919050565b600081905092915050565b6000614306826142e5565b61431081856142f0565b9350614320818560208601613d74565b80840191505092915050565b600061433882846142fb565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b6000614379601483613d63565b915061438482614343565b602082019050919050565b600060208201905081810360008301526143a88161436c565b9050919050565b50565b60006143bf6000836142f0565b91506143ca826143af565b600082019050919050565b60006143e0826143b2565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000614420601483613d63565b915061442b826143ea565b602082019050919050565b6000602082019050818103600083015261444f81614413565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144b2602683613d63565b91506144bd82614456565b604082019050919050565b600060208201905081810360008301526144e1816144a5565b9050919050565b7f547261646520416c726561647920416374697665210000000000000000000000600082015250565b600061451e601583613d63565b9150614529826144e8565b602082019050919050565b6000602082019050818103600083015261454d81614511565b9050919050565b7f496e73756666696369656e742046756e64732100000000000000000000000000600082015250565b600061458a601383613d63565b915061459582614554565b602082019050919050565b600060208201905081810360008301526145b98161457d565b9050919050565b6000815190506145cf81613ee5565b92915050565b6000602082840312156145eb576145ea613ee0565b5b60006145f9848285016145c0565b91505092915050565b60006040820190506146176000830185613eb6565b6146246020830184613eb6565b9392505050565b600060c0820190506146406000830189613eb6565b61464d6020830188613d2e565b61465a6040830187613d2e565b6146676060830186613d2e565b6146746080830185613eb6565b61468160a0830184613d2e565b979650505050505050565b60008151905061469b81613f11565b92915050565b6000806000606084860312156146ba576146b9613ee0565b5b60006146c88682870161468c565b93505060206146d98682870161468c565b92505060406146ea8682870161468c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061472e82613d24565b915061473983613d24565b925082820261474781613d24565b9150828204841483151761475e5761475d6146f4565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061479f82613d24565b91506147aa83613d24565b9250826147ba576147b9614765565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614821602183613d63565b915061482c826147c5565b604082019050919050565b6000602082019050818103600083015261485081614814565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006148b3602483613d63565b91506148be82614857565b604082019050919050565b600060208201905081810360008301526148e2816148a6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614945602283613d63565b9150614950826148e9565b604082019050919050565b6000602082019050818103600083015261497481614938565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006149d7602583613d63565b91506149e28261497b565b604082019050919050565b60006020820190508181036000830152614a06816149ca565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614a69602383613d63565b9150614a7482614a0d565b604082019050919050565b60006020820190508181036000830152614a9881614a5c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614afb602983613d63565b9150614b0682614a9f565b604082019050919050565b60006020820190508181036000830152614b2a81614aee565b9050919050565b7f54726164696e67206973206e6f7420656e61626c652079657421000000000000600082015250565b6000614b67601a83613d63565b9150614b7282614b31565b602082019050919050565b60006020820190508181036000830152614b9681614b5a565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000614bf9602883613d63565b9150614c0482614b9d565b604082019050919050565b60006020820190508181036000830152614c2881614bec565b9050919050565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b6000614c65601b83613d63565b9150614c7082614c2f565b602082019050919050565b60006020820190508181036000830152614c9481614c58565b9050919050565b6000614ca682613d24565b9150614cb183613d24565b9250828203905081811115614cc957614cc86146f4565b5b92915050565b6000614cda82613d24565b9150614ce583613d24565b9250828201905080821115614cfd57614cfc6146f4565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614d39601b83613d63565b9150614d4482614d03565b602082019050919050565b60006020820190508181036000830152614d6881614d2c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614df2614ded614de884614dcd565b613e2a565b613d24565b9050919050565b614e0281614dd7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614e3d81613ea4565b82525050565b6000614e4f8383614e34565b60208301905092915050565b6000602082019050919050565b6000614e7382614e08565b614e7d8185614e13565b9350614e8883614e24565b8060005b83811015614eb9578151614ea08882614e43565b9750614eab83614e5b565b925050600181019050614e8c565b5085935050505092915050565b600060a082019050614edb6000830188613d2e565b614ee86020830187614df9565b8181036040830152614efa8186614e68565b9050614f096060830185613eb6565b614f166080830184613d2e565b9695505050505050565b6000604082019050614f356000830185613d2e565b8181036020830152614f478184614e68565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122074f92eae5248ff5f78dc88c271475312897e8fc6fece00ba5c2ff5a70d3a8bdd64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c8063728d41c911610190578063cea9d26f116100dc578063ee828db311610095578063f2fde38b1161006f578063f2fde38b14610b5b578063f71b9bbf14610b84578063f872858a14610bad578063fb201b1d14610bd8576102ef565b8063ee828db314610adc578063efcc52de14610b05578063f242ab4114610b30576102ef565b8063cea9d26f146109e2578063d4e43fb314610a0b578063dd62ed3e14610a34578063df8408fe14610a71578063e6b2603b14610a9a578063e9fd339414610ab1576102ef565b806395d89b4111610149578063adc0d09211610123578063adc0d0921461092a578063ae85ade614610953578063c16dd4a41461097c578063c867d60b146109a5576102ef565b806395d89b4114610885578063a457c2d7146108b0578063a9059cbb146108ed576102ef565b8063728d41c9146107755780637d1db4a51461079e578063807c2d9c146107c95780638b42507f146107f45780638da5cb5b1461083157806390d49b9d1461085c576102ef565b8063395093511161024f5780635c85974f11610208578063651a8987116101e2578063651a8987146106cd5780636ddd1713146106f657806370a0823114610721578063715018a61461075e576102ef565b80635c85974f1461064e5780635ca6de3c146106775780635e42358c146106a2576102ef565b8063395093511461051c5780633ecad271146105595780634974d88f1461059657806352f7c988146105bf5780635342acb4146105e857806359fac51714610625576102ef565b8063200a692d116102a1578063200a692d1461040857806323b872dd1461043357806327c8f835146104705780632b112e491461049b5780632ebd161c146104c6578063313ce567146104f1576102ef565b80630445b667146102f457806306fdde031461031f5780630758d9241461034a5780630930907b14610375578063095ea7b3146103a057806318160ddd146103dd576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610bef565b6040516103169190613d3d565b60405180910390f35b34801561032b57600080fd5b50610334610bf5565b6040516103419190613de8565b60405180910390f35b34801561035657600080fd5b5061035f610c87565b60405161036c9190613e89565b60405180910390f35b34801561038157600080fd5b5061038a610cad565b6040516103979190613ec5565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c29190613f3d565b610cd1565b6040516103d49190613f98565b60405180910390f35b3480156103e957600080fd5b506103f2610cef565b6040516103ff9190613d3d565b60405180910390f35b34801561041457600080fd5b5061041d610cf9565b60405161042a9190613d3d565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190613fb3565b610cff565b6040516104679190613f98565b60405180910390f35b34801561047c57600080fd5b50610485610dd9565b6040516104929190613ec5565b60405180910390f35b3480156104a757600080fd5b506104b0610dfd565b6040516104bd9190613d3d565b60405180910390f35b3480156104d257600080fd5b506104db610e7b565b6040516104e89190613ec5565b60405180910390f35b3480156104fd57600080fd5b50610506610ea1565b6040516105139190614022565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e9190613f3d565b610eb8565b6040516105509190613f98565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b919061403d565b610f6b565b60405161058d9190613f98565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190614096565b610f8b565b005b3480156105cb57600080fd5b506105e660048036038101906105e191906140c3565b611024565b005b3480156105f457600080fd5b5061060f600480360381019061060a919061403d565b6110b2565b60405161061c9190613f98565b60405180910390f35b34801561063157600080fd5b5061064c6004803603810190610647919061403d565b6110d2565b005b34801561065a57600080fd5b5061067560048036038101906106709190614103565b611192565b005b34801561068357600080fd5b5061068c611218565b6040516106999190613f98565b60405180910390f35b3480156106ae57600080fd5b506106b761122b565b6040516106c49190613f98565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef9190614130565b61123e565b005b34801561070257600080fd5b5061070b611315565b6040516107189190613f98565b60405180910390f35b34801561072d57600080fd5b506107486004803603810190610743919061403d565b611328565b6040516107559190613d3d565b60405180910390f35b34801561076a57600080fd5b50610773611371565b005b34801561078157600080fd5b5061079c60048036038101906107979190614103565b6113f9565b005b3480156107aa57600080fd5b506107b361147f565b6040516107c09190613d3d565b60405180910390f35b3480156107d557600080fd5b506107de611485565b6040516107eb9190613d3d565b60405180910390f35b34801561080057600080fd5b5061081b6004803603810190610816919061403d565b61148b565b6040516108289190613f98565b60405180910390f35b34801561083d57600080fd5b506108466114ab565b6040516108539190613ec5565b60405180910390f35b34801561086857600080fd5b50610883600480360381019061087e919061403d565b6114d4565b005b34801561089157600080fd5b5061089a611594565b6040516108a79190613de8565b60405180910390f35b3480156108bc57600080fd5b506108d760048036038101906108d29190613f3d565b611626565b6040516108e49190613f98565b60405180910390f35b3480156108f957600080fd5b50610914600480360381019061090f9190613f3d565b6116f3565b6040516109219190613f98565b60405180910390f35b34801561093657600080fd5b50610951600480360381019061094c9190614103565b611712565b005b34801561095f57600080fd5b5061097a60048036038101906109759190614130565b611798565b005b34801561098857600080fd5b506109a3600480360381019061099e9190614130565b61186f565b005b3480156109b157600080fd5b506109cc60048036038101906109c7919061403d565b6119a4565b6040516109d99190613f98565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a049190613fb3565b6119c4565b005b348015610a1757600080fd5b50610a326004803603810190610a2d9190614170565b611b82565b005b348015610a4057600080fd5b50610a5b6004803603810190610a5691906141b0565b611c36565b604051610a689190613d3d565b60405180910390f35b348015610a7d57600080fd5b50610a986004803603810190610a939190614130565b611cbd565b005b348015610aa657600080fd5b50610aaf611d94565b005b348015610abd57600080fd5b50610ac6611ebf565b604051610ad39190613f98565b60405180910390f35b348015610ae857600080fd5b50610b036004803603810190610afe9190614096565b611ed2565b005b348015610b1157600080fd5b50610b1a611f6b565b604051610b279190613d3d565b60405180910390f35b348015610b3c57600080fd5b50610b45611f71565b604051610b529190613ec5565b60405180910390f35b348015610b6757600080fd5b50610b826004803603810190610b7d919061403d565b611f97565b005b348015610b9057600080fd5b50610bab6004803603810190610ba6919061403d565b61208e565b005b348015610bb957600080fd5b50610bc261214e565b604051610bcf9190613f98565b60405180910390f35b348015610be457600080fd5b50610bed612161565b005b600f5481565b606060018054610c049061421f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c309061421f565b8015610c7d5780601f10610c5257610100808354040283529160200191610c7d565b820191906000526020600020905b815481529060010190602001808311610c6057829003601f168201915b5050505050905090565b601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610ce5610cde61299c565b84846129a4565b6001905092915050565b6000600e54905090565b60055481565b6000610d0c848484612b6d565b50610dce84610d1961299c565b610dc985604051806060016040528060288152602001614f5160289139600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d7f61299c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132249092919063ffffffff16565b6129a4565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000610e76610e2b7f0000000000000000000000000000000000000000000000000000000000000000611328565b610e68610e577f000000000000000000000000000000000000000000000000000000000000dead611328565b600e5461328890919063ffffffff16565b61328890919063ffffffff16565b905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b6000610f61610ec561299c565b84610f5c8560096000610ed661299c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132d290919063ffffffff16565b6129a4565b6001905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b610f9361299c565b73ffffffffffffffffffffffffffffffffffffffff16610fb16114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe9061429c565b60405180910390fd5b80601260036101000a81548160ff02191690831515021790555050565b61102c61299c565b73ffffffffffffffffffffffffffffffffffffffff1661104a6114ab565b73ffffffffffffffffffffffffffffffffffffffff16146110a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110979061429c565b60405180910390fd5b81600481905550806005819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6110da61299c565b73ffffffffffffffffffffffffffffffffffffffff166110f86114ab565b73ffffffffffffffffffffffffffffffffffffffff161461114e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111459061429c565b60405180910390fd5b80601260056101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61119a61299c565b73ffffffffffffffffffffffffffffffffffffffff166111b86114ab565b73ffffffffffffffffffffffffffffffffffffffff161461120e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112059061429c565b60405180910390fd5b8060108190555050565b601260049054906101000a900460ff1681565b601260029054906101000a900460ff1681565b61124661299c565b73ffffffffffffffffffffffffffffffffffffffff166112646114ab565b73ffffffffffffffffffffffffffffffffffffffff16146112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b19061429c565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61137961299c565b73ffffffffffffffffffffffffffffffffffffffff166113976114ab565b73ffffffffffffffffffffffffffffffffffffffff16146113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e49061429c565b60405180910390fd5b6113f76000613330565b565b61140161299c565b73ffffffffffffffffffffffffffffffffffffffff1661141f6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c9061429c565b60405180910390fd5b8060118190555050565b60105481565b60115481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6114dc61299c565b73ffffffffffffffffffffffffffffffffffffffff166114fa6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611550576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115479061429c565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060600280546115a39061421f565b80601f01602080910402602001604051908101604052809291908181526020018280546115cf9061421f565b801561161c5780601f106115f15761010080835404028352916020019161161c565b820191906000526020600020905b8154815290600101906020018083116115ff57829003601f168201915b5050505050905090565b60006116e961163361299c565b846116e485604051806060016040528060258152602001614f79602591396009600061165d61299c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132249092919063ffffffff16565b6129a4565b6001905092915050565b600061170761170061299c565b8484612b6d565b506001905092915050565b61171a61299c565b73ffffffffffffffffffffffffffffffffffffffff166117386114ab565b73ffffffffffffffffffffffffffffffffffffffff161461178e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117859061429c565b60405180910390fd5b80600f8190555050565b6117a061299c565b73ffffffffffffffffffffffffffffffffffffffff166117be6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b9061429c565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61187761299c565b73ffffffffffffffffffffffffffffffffffffffff166118956114ab565b73ffffffffffffffffffffffffffffffffffffffff16146118eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e29061429c565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156119a05780600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600c6020528060005260406000206000915054906101000a900460ff1681565b6119cc61299c565b73ffffffffffffffffffffffffffffffffffffffff166119ea6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a379061429c565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff168383604051602401611a6c9291906142bc565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611af6919061432c565b6000604051808303816000865af19150503d8060008114611b33576040519150601f19603f3d011682016040523d82523d6000602084013e611b38565b606091505b5050905080611b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b739061438f565b60405180910390fd5b50505050565b611b8a61299c565b73ffffffffffffffffffffffffffffffffffffffff16611ba86114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf59061429c565b60405180910390fd5b81601260006101000a81548160ff02191690831515021790555080601260016101000a81548160ff0219169083151502179055505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cc561299c565b73ffffffffffffffffffffffffffffffffffffffff16611ce36114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d309061429c565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d9c61299c565b73ffffffffffffffffffffffffffffffffffffffff16611dba6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e079061429c565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611e36906143d5565b60006040518083038185875af1925050503d8060008114611e73576040519150601f19603f3d011682016040523d82523d6000602084013e611e78565b606091505b5050905080611ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb390614436565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b611eda61299c565b73ffffffffffffffffffffffffffffffffffffffff16611ef86114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f459061429c565b60405180910390fd5b80601260026101000a81548160ff02191690831515021790555050565b60045481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f9f61299c565b73ffffffffffffffffffffffffffffffffffffffff16611fbd6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614612013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200a9061429c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612082576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612079906144c8565b60405180910390fd5b61208b81613330565b50565b61209661299c565b73ffffffffffffffffffffffffffffffffffffffff166120b46114ab565b73ffffffffffffffffffffffffffffffffffffffff161461210a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121019061429c565b60405180910390fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260039054906101000a900460ff1681565b61216961299c565b73ffffffffffffffffffffffffffffffffffffffff166121876114ab565b73ffffffffffffffffffffffffffffffffffffffff16146121dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d49061429c565b60405180910390fd5b601260049054906101000a900460ff161561222d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222490614534565b60405180910390fd5b6000479050600061223d30611328565b905060008211801561224f5750600081115b61228e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612285906145a0565b60405180910390fd5b6001601260046101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561230d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233191906145d5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612398573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123bc91906145d5565b6040518363ffffffff1660e01b81526004016123d9929190614602565b6020604051808303816000875af11580156123f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241c91906145d5565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260056101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127fc30601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846129a4565b601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719843085868833426040518863ffffffff1660e01b81526004016128629695949392919061462b565b60606040518083038185885af1158015612880573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128a591906146a1565b5050506001601260006101000a81548160ff02191690831515021790555060196004819055506019600581905550505050565b60008083036128ea576000905061294c565b600082846128f89190614723565b90508284826129079190614794565b14612947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293e90614837565b60405180910390fd5b809150505b92915050565b600061299483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133f4565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0a906148c9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a799061495b565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612b609190613d3d565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd4906149ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4390614a7f565b60405180910390fd5b60008211612c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8690614b11565b60405180910390fd5b601260049054906101000a900460ff16612d8457600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d445750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7a90614b7d565b60405180910390fd5b5b601360149054906101000a900460ff1615612dab57612da4848484613457565b905061321d565b6000612db630611328565b90506000600f548210159050808015612ddc5750601360149054906101000a900460ff16155b8015612e325750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612e4a5750601260009054906101000a900460ff165b15612e5957612e588261362a565b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612efd5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612f155750601260029054906101000a900460ff165b15612f6057601054841115612f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5690614c0f565b60405180910390fd5b5b612fe9846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132249092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006130388787613718565b61304c57613047878787613883565b61304e565b845b9050601260039054906101000a900460ff1680156130b65750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561311b576011546130d9826130cb89611328565b6132d290919063ffffffff16565b111561311a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311190614c7b565b60405180910390fd5b5b61316d81600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132d290919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161320d9190613d3d565b60405180910390a3600193505050505b9392505050565b600083831115829061326c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132639190613de8565b60405180910390fd5b506000838561327b9190614c9b565b9050809150509392505050565b60006132ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613224565b905092915050565b60008082846132e19190614ccf565b905083811015613326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331d90614d4f565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808311829061343b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134329190613de8565b60405180910390fd5b506000838561344a9190614794565b9050809150509392505050565b60006134e2826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132249092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061357782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132d290919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136179190613d3d565b60405180910390a3600190509392505050565b6001601360146101000a81548160ff021916908315150217905550601260019054906101000a900460ff161561366057600f5490505b600047905061366e82613aa8565b6000613683824761328890919063ffffffff16565b905060008111156136f857600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156136f6573d6000803e3d6000fd5b505b50506000601360146101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806137bb5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156137c9576001905061387d565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061386a5750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15613878576000905061387d565b600090505b92915050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613908576139016007546138f3600454866128d890919063ffffffff16565b61295290919063ffffffff16565b9050613987565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561398657613983600754613975600554866128d890919063ffffffff16565b61295290919063ffffffff16565b90505b5b6000811115613a8b576139e281600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132d290919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051613a829190613d3d565b60405180910390a35b613a9e818461328890919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff811115613ac557613ac4614d6f565b5b604051908082528060200260200182016040528015613af35781602001602082028036833780820191505090505b5090503081600081518110613b0b57613b0a614d9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bd691906145d5565b81600181518110613bea57613be9614d9e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613c5130601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846129a4565b601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613cb5959493929190614ec6565b600060405180830381600087803b158015613ccf57600080fd5b505af1158015613ce3573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613d18929190614f20565b60405180910390a15050565b6000819050919050565b613d3781613d24565b82525050565b6000602082019050613d526000830184613d2e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613d92578082015181840152602081019050613d77565b60008484015250505050565b6000601f19601f8301169050919050565b6000613dba82613d58565b613dc48185613d63565b9350613dd4818560208601613d74565b613ddd81613d9e565b840191505092915050565b60006020820190508181036000830152613e028184613daf565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613e4f613e4a613e4584613e0a565b613e2a565b613e0a565b9050919050565b6000613e6182613e34565b9050919050565b6000613e7382613e56565b9050919050565b613e8381613e68565b82525050565b6000602082019050613e9e6000830184613e7a565b92915050565b6000613eaf82613e0a565b9050919050565b613ebf81613ea4565b82525050565b6000602082019050613eda6000830184613eb6565b92915050565b600080fd5b613eee81613ea4565b8114613ef957600080fd5b50565b600081359050613f0b81613ee5565b92915050565b613f1a81613d24565b8114613f2557600080fd5b50565b600081359050613f3781613f11565b92915050565b60008060408385031215613f5457613f53613ee0565b5b6000613f6285828601613efc565b9250506020613f7385828601613f28565b9150509250929050565b60008115159050919050565b613f9281613f7d565b82525050565b6000602082019050613fad6000830184613f89565b92915050565b600080600060608486031215613fcc57613fcb613ee0565b5b6000613fda86828701613efc565b9350506020613feb86828701613efc565b9250506040613ffc86828701613f28565b9150509250925092565b600060ff82169050919050565b61401c81614006565b82525050565b60006020820190506140376000830184614013565b92915050565b60006020828403121561405357614052613ee0565b5b600061406184828501613efc565b91505092915050565b61407381613f7d565b811461407e57600080fd5b50565b6000813590506140908161406a565b92915050565b6000602082840312156140ac576140ab613ee0565b5b60006140ba84828501614081565b91505092915050565b600080604083850312156140da576140d9613ee0565b5b60006140e885828601613f28565b92505060206140f985828601613f28565b9150509250929050565b60006020828403121561411957614118613ee0565b5b600061412784828501613f28565b91505092915050565b6000806040838503121561414757614146613ee0565b5b600061415585828601613efc565b925050602061416685828601614081565b9150509250929050565b6000806040838503121561418757614186613ee0565b5b600061419585828601614081565b92505060206141a685828601614081565b9150509250929050565b600080604083850312156141c7576141c6613ee0565b5b60006141d585828601613efc565b92505060206141e685828601613efc565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061423757607f821691505b60208210810361424a576142496141f0565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614286602083613d63565b915061429182614250565b602082019050919050565b600060208201905081810360008301526142b581614279565b9050919050565b60006040820190506142d16000830185613eb6565b6142de6020830184613d2e565b9392505050565b600081519050919050565b600081905092915050565b6000614306826142e5565b61431081856142f0565b9350614320818560208601613d74565b80840191505092915050565b600061433882846142fb565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b6000614379601483613d63565b915061438482614343565b602082019050919050565b600060208201905081810360008301526143a88161436c565b9050919050565b50565b60006143bf6000836142f0565b91506143ca826143af565b600082019050919050565b60006143e0826143b2565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000614420601483613d63565b915061442b826143ea565b602082019050919050565b6000602082019050818103600083015261444f81614413565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006144b2602683613d63565b91506144bd82614456565b604082019050919050565b600060208201905081810360008301526144e1816144a5565b9050919050565b7f547261646520416c726561647920416374697665210000000000000000000000600082015250565b600061451e601583613d63565b9150614529826144e8565b602082019050919050565b6000602082019050818103600083015261454d81614511565b9050919050565b7f496e73756666696369656e742046756e64732100000000000000000000000000600082015250565b600061458a601383613d63565b915061459582614554565b602082019050919050565b600060208201905081810360008301526145b98161457d565b9050919050565b6000815190506145cf81613ee5565b92915050565b6000602082840312156145eb576145ea613ee0565b5b60006145f9848285016145c0565b91505092915050565b60006040820190506146176000830185613eb6565b6146246020830184613eb6565b9392505050565b600060c0820190506146406000830189613eb6565b61464d6020830188613d2e565b61465a6040830187613d2e565b6146676060830186613d2e565b6146746080830185613eb6565b61468160a0830184613d2e565b979650505050505050565b60008151905061469b81613f11565b92915050565b6000806000606084860312156146ba576146b9613ee0565b5b60006146c88682870161468c565b93505060206146d98682870161468c565b92505060406146ea8682870161468c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061472e82613d24565b915061473983613d24565b925082820261474781613d24565b9150828204841483151761475e5761475d6146f4565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061479f82613d24565b91506147aa83613d24565b9250826147ba576147b9614765565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614821602183613d63565b915061482c826147c5565b604082019050919050565b6000602082019050818103600083015261485081614814565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006148b3602483613d63565b91506148be82614857565b604082019050919050565b600060208201905081810360008301526148e2816148a6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614945602283613d63565b9150614950826148e9565b604082019050919050565b6000602082019050818103600083015261497481614938565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006149d7602583613d63565b91506149e28261497b565b604082019050919050565b60006020820190508181036000830152614a06816149ca565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614a69602383613d63565b9150614a7482614a0d565b604082019050919050565b60006020820190508181036000830152614a9881614a5c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614afb602983613d63565b9150614b0682614a9f565b604082019050919050565b60006020820190508181036000830152614b2a81614aee565b9050919050565b7f54726164696e67206973206e6f7420656e61626c652079657421000000000000600082015250565b6000614b67601a83613d63565b9150614b7282614b31565b602082019050919050565b60006020820190508181036000830152614b9681614b5a565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000614bf9602883613d63565b9150614c0482614b9d565b604082019050919050565b60006020820190508181036000830152614c2881614bec565b9050919050565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b6000614c65601b83613d63565b9150614c7082614c2f565b602082019050919050565b60006020820190508181036000830152614c9481614c58565b9050919050565b6000614ca682613d24565b9150614cb183613d24565b9250828203905081811115614cc957614cc86146f4565b5b92915050565b6000614cda82613d24565b9150614ce583613d24565b9250828201905080821115614cfd57614cfc6146f4565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614d39601b83613d63565b9150614d4482614d03565b602082019050919050565b60006020820190508181036000830152614d6881614d2c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614df2614ded614de884614dcd565b613e2a565b613d24565b9050919050565b614e0281614dd7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614e3d81613ea4565b82525050565b6000614e4f8383614e34565b60208301905092915050565b6000602082019050919050565b6000614e7382614e08565b614e7d8185614e13565b9350614e8883614e24565b8060005b83811015614eb9578151614ea08882614e43565b9750614eab83614e5b565b925050600181019050614e8c565b5085935050505092915050565b600060a082019050614edb6000830188613d2e565b614ee86020830187614df9565b8181036040830152614efa8186614e68565b9050614f096060830185613eb6565b614f166080830184613d2e565b9695505050505050565b6000604082019050614f356000830185613d2e565b8181036020830152614f478184614e68565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122074f92eae5248ff5f78dc88c271475312897e8fc6fece00ba5c2ff5a70d3a8bdd64736f6c63430008110033

Deployed Bytecode Sourcemap

8820:12768:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9829:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11179:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10261:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9127:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12517:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11456:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9249:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13291:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9039:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11850:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9284:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11365:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12014:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9592:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20017:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19759:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9535:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21367:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20638:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10229:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10146:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20260:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10071:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11564:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3580:94;;;;;;;;;;;;;:::i;:::-;;20524:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9913:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9991:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9703:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3271:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20747:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11270:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12240:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13116:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21252:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20396:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20857:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9644:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19479:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21069:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11695:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20130:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19293:178;;;;;;;;;;;;;:::i;:::-;;10109:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19911:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9217:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10299:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3682:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21490:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10185:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16774:1460;;;;;;;;;;;;;:::i;:::-;;9829:60;;;;:::o;11179:83::-;11216:13;11249:5;11242:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11179:83;:::o;10261:31::-;;;;;;;;;;;;;:::o;9127:81::-;;;:::o;12517:161::-;12592:4;12609:39;12618:12;:10;:12::i;:::-;12632:7;12641:6;12609:8;:39::i;:::-;12666:4;12659:11;;12517:161;;;;:::o;11456:100::-;11509:7;11536:12;;11529:19;;11456:100;:::o;9249:26::-;;;;:::o;13291:313::-;13389:4;13406:36;13416:6;13424:9;13435:6;13406:9;:36::i;:::-;;13453:121;13462:6;13470:12;:10;:12::i;:::-;13484:89;13522:6;13484:89;;;;;;;;;;;;;;;;;:11;:19;13496:6;13484:19;;;;;;;;;;;;;;;:33;13504:12;:10;:12::i;:::-;13484:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;13453:8;:121::i;:::-;13592:4;13585:11;;13291:313;;;;;:::o;9039:81::-;;;:::o;11850:156::-;11903:7;11930:68;11975:22;11985:11;11975:9;:22::i;:::-;11930:40;11947:22;11957:11;11947:9;:22::i;:::-;11930:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;11923:75;;11850:156;:::o;9284:78::-;;;;;;;;;;;;;:::o;11365:83::-;11406:5;11431:9;;;;;;;;;;;11424:16;;11365:83;:::o;12014:218::-;12102:4;12119:83;12128:12;:10;:12::i;:::-;12142:7;12151:50;12190:10;12151:11;:25;12163:12;:10;:12::i;:::-;12151:25;;;;;;;;;;;;;;;:34;12177:7;12151:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;12119:8;:83::i;:::-;12220:4;12213:11;;12014:218;;;;:::o;9592:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;20017:105::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20107:7:::1;20088:16;;:26;;;;;;;;;;;;;;;;;;20017:105:::0;:::o;19759:144::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19853:8:::1;19840:10;:21;;;;19886:9;19872:11;:23;;;;19759:144:::0;;:::o;9535:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;21367:115::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21466:7:::1;21439:9;;:35;;;;;;;;;;;;;;;;;;21367:115:::0;:::o;20638:101::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20723:8:::1;20708:12;:23;;;;20638:101:::0;:::o;10229:23::-;;;;;;;;;;;;;:::o;10146:32::-;;;;;;;;;;;;;:::o;20260:128::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20373:7:::1;20345:19;:25;20365:4;20345:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;20260:128:::0;;:::o;10071:31::-;;;;;;;;;;;;;:::o;11564:123::-;11630:7;11656:9;:18;11666:7;11656:18;;;;;;;;;;;;;;;;11649:25;;11564:123;;;:::o;3580:94::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3645:21:::1;3663:1;3645:9;:21::i;:::-;3580:94::o:0;20524:106::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20614:8:::1;20601:10;:21;;;;20524:106:::0;:::o;9913:61::-;;;;:::o;9991:58::-;;;;:::o;9703:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3271:87::-;3317:7;3344:6;;;;;;;;;;;3337:13;;3271:87;:::o;20747:102::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20831:10:::1;20819:9;;:22;;;;;;;;;;;;;;;;;;20747:102:::0;:::o;11270:87::-;11309:13;11342:7;11335:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11270:87;:::o;12240:269::-;12333:4;12350:129;12359:12;:10;:12::i;:::-;12373:7;12382:96;12421:15;12382:96;;;;;;;;;;;;;;;;;:11;:25;12394:12;:10;:12::i;:::-;12382:25;;;;;;;;;;;;;;;:34;12408:7;12382:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;12350:8;:129::i;:::-;12497:4;12490:11;;12240:269;;;;:::o;13116:167::-;13194:4;13211:42;13221:12;:10;:12::i;:::-;13235:9;13246:6;13211:9;:42::i;:::-;;13271:4;13264:11;;13116:167;;;;:::o;21252:107::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21341:10:::1;21325:13;:26;;;;21252:107:::0;:::o;20396:120::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20501:7:::1;20477:15;:21;20493:4;20477:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;20396:120:::0;;:::o;20857:204::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20961:7:::1;20939:12;:19;20952:5;20939:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;20982:7;20979:75;;;21035:7;21006:19;:26;21026:5;21006:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;20979:75;20857:204:::0;;:::o;9644:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;19479:272::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19579:12:::1;19605:6;19597:20;;19672:9;19683:7;19618:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19597:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19578:114;;;19711:7;19703:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;19567:184;19479:272:::0;;;:::o;21069:175::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21195:8:::1;21181:11;;:22;;;;;;;;;;;;;;;;;;21228:8;21214:11;;:22;;;;;;;;;;;;;;;;;;21069:175:::0;;:::o;11695:143::-;11776:7;11803:11;:18;11815:5;11803:18;;;;;;;;;;;;;;;:27;11822:7;11803:27;;;;;;;;;;;;;;;;11796:34;;11695:143;;;;:::o;20130:122::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20237:7:::1;20211:17;:23;20229:4;20211:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;20130:122:::0;;:::o;19293:178::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19348:7:::1;19368:10;19360:24;;19392:21;19360:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19347:71;;;19437:2;19429:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;19335:136;19293:178::o:0;10109:30::-;;;;;;;;;;;;;:::o;19911:98::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19994:7:::1;19978:13;;:23;;;;;;;;;;;;;;;;;;19911:98:::0;:::o;9217:25::-;;;;:::o;10299:22::-;;;;;;;;;;;;;:::o;3682:229::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3805:1:::1;3785:22;;:8;:22;;::::0;3763:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3884:19;3894:8;3884:9;:19::i;:::-;3682:229:::0;:::o;21490:91::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21568:5:::1;21558:7;;:15;;;;;;;;;;;;;;;;;;21490:91:::0;:::o;10185:35::-;;;;;;;;;;;;;:::o;16774:1460::-;3503:12;:10;:12::i;:::-;3492:23;;:7;:5;:7::i;:::-;:23;;;3484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16836:11:::1;;;;;;;;;;;16835:12;16827:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;16885:19;16907:21;16885:43;;16939:21;16963:24;16981:4;16963:9;:24::i;:::-;16939:48;;17022:1;17008:11;:15;:36;;;;;17043:1;17027:13;:17;17008:36;17000:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17094:4;17080:11;;:18;;;;;;;;;;;;;;;;;;17119:25;17176:42;17119:110;;17268:10;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17252:48;;;17323:4;17343:10;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17252:119;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17242:7;;:129;;;;;;;;;;;;;;;;;;17396:10;17384:9;;:22;;;;;;;;;;;;;;;;;;17459:4;17419:19;:37;17447:7;;;;;;;;;;;17419:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;17516:4;17474:19;:39;17502:9;;;;;;;;;;;17474:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;17569:4;17531:15;:35;17555:9;;;;;;;;;;;17531:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17619:4;17586:12;:30;17607:7;;;;;;;;;;;17586:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;17694:1;17685:11;17636;:26;17656:4;17636:26;;;;;;;;;;;;;;;:46;17671:9;;;;;;;;;;;17636:46;;;;;;;;;;;;;;;:60;;;;17763:1;17754:11;17707;:26;17727:4;17707:26;;;;;;;;;;;;;;;:44;17742:7;;;;;;;;;;;17707:44;;;;;;;;;;;;;;;:58;;;;17786;17803:4;17818:9;;;;;;;;;;;17830:13;17786:8;:58::i;:::-;17857:9;;;;;;;;;;;:25;;;17890:11;17925:4;17945:13;17973;18028:11;18081:10;18106:15;17857:275;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18159:4;18145:11;;:18;;;;;;;;;;;;;;;;;;18187:2;18174:10;:15;;;;18214:2;18200:11;:16;;;;16814:1420;;;16774:1460::o:0;4658:250::-;4716:7;4745:1;4740;:6;4736:47;;4770:1;4763:8;;;;4736:47;4795:9;4811:1;4807;:5;;;;:::i;:::-;4795:17;;4840:1;4835;4831;:5;;;;:::i;:::-;:10;4823:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4899:1;4892:8;;;4658:250;;;;;:::o;4916:132::-;4974:7;5001:39;5005:1;5008;5001:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4994:46;;4916:132;;;;:::o;1838:98::-;1891:7;1918:10;1911:17;;1838:98;:::o;12686:337::-;12796:1;12779:19;;:5;:19;;;12771:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12877:1;12858:21;;:7;:21;;;12850:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12961:6;12931:11;:18;12943:5;12931:18;;;;;;;;;;;;;;;:27;12950:7;12931:27;;;;;;;;;;;;;;;:36;;;;12999:7;12983:32;;12992:5;12983:32;;;13008:6;12983:32;;;;;;:::i;:::-;;;;;;;;12686:337;;;:::o;13612:1729::-;13699:4;13744:1;13726:20;;:6;:20;;;13718:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13828:1;13807:23;;:9;:23;;;13799:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13898:1;13889:6;:10;13881:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13962:11;;;;;;;;;;;13958:139;;13998:17;:25;14016:6;13998:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;14027:17;:28;14045:9;14027:28;;;;;;;;;;;;;;;;;;;;;;;;;13998:57;13990:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;13958:139;14117:6;;;;;;;;;;;14113:1219;;;14147:41;14162:6;14170:9;14181:6;14147:14;:41::i;:::-;14140:48;;;;14113:1219;14232:28;14263:24;14281:4;14263:9;:24::i;:::-;14232:55;;14302:28;14357:13;;14333:20;:37;;14302:68;;14391:23;:34;;;;;14419:6;;;;;;;;;;;14418:7;14391:34;:59;;;;;14430:12;:20;14443:6;14430:20;;;;;;;;;;;;;;;;;;;;;;;;;14429:21;14391:59;:74;;;;;14454:11;;;;;;;;;;;14391:74;14387:145;;;14486:30;14495:20;14486:8;:30::i;:::-;14387:145;14552:15;:23;14568:6;14552:23;;;;;;;;;;;;;;;;;;;;;;;;;14551:24;:55;;;;;14580:15;:26;14596:9;14580:26;;;;;;;;;;;;;;;;;;;;;;;;;14579:27;14551:55;:72;;;;;14610:13;;;;;;;;;;;14551:72;14548:187;;;14662:12;;14652:6;:22;;14644:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;14548:187;14784:53;14806:6;14784:53;;;;;;;;;;;;;;;;;:9;:17;14794:6;14784:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14764:9;:17;14774:6;14764:17;;;;;;;;;;;;;;;:73;;;;14854:19;14876:34;14893:6;14900:9;14876:16;:34::i;:::-;:80;;14922:34;14930:6;14938:9;14949:6;14922:7;:34::i;:::-;14876:80;;;14913:6;14876:80;14854:102;;14976:16;;;;;;;;;;;:51;;;;;14997:19;:30;15017:9;14997:30;;;;;;;;;;;;;;;;;;;;;;;;;14996:31;14976:51;14973:181;;;15097:10;;15056:37;15081:11;15056:20;15066:9;15056;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;15048:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;14973:181;15193:37;15218:11;15193:9;:20;15203:9;15193:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;15170:9;:20;15180:9;15170:20;;;;;;;;;;;;;;;:60;;;;15269:9;15252:40;;15261:6;15252:40;;;15280:11;15252:40;;;;;;:::i;:::-;;;;;;;;15314:4;15307:11;;;;;13612:1729;;;;;;:::o;4458:192::-;4544:7;4577:1;4572;:6;;4580:12;4564:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4604:9;4620:1;4616;:5;;;;:::i;:::-;4604:17;;4641:1;4634:8;;;4458:192;;;;;:::o;4314:136::-;4372:7;4399:43;4403:1;4406;4399:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4392:50;;4314:136;;;;:::o;4125:181::-;4183:7;4203:9;4219:1;4215;:5;;;;:::i;:::-;4203:17;;4244:1;4239;:6;;4231:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4297:1;4290:8;;;4125:181;;;;:::o;3919:173::-;3975:16;3994:6;;;;;;;;;;;3975:25;;4020:8;4011:6;;:17;;;;;;;;;;;;;;;;;;4075:8;4044:40;;4065:8;4044:40;;;;;;;;;;;;3964:128;3919:173;:::o;5056:278::-;5142:7;5174:1;5170;:5;5177:12;5162:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5201:9;5217:1;5213;:5;;;;:::i;:::-;5201:17;;5325:1;5318:8;;;5056:278;;;;;:::o;15349:330::-;15442:4;15479:53;15501:6;15479:53;;;;;;;;;;;;;;;;;:9;:17;15489:6;15479:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15459:9;:17;15469:6;15459:17;;;;;;;;;;;;;;;:73;;;;15566:32;15591:6;15566:9;:20;15576:9;15566:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15543:9;:20;15553:9;15543:20;;;;;;;;;;;;;;;:55;;;;15631:9;15614:35;;15623:6;15614:35;;;15642:6;15614:35;;;;;;:::i;:::-;;;;;;;;15667:4;15660:11;;15349:330;;;;;:::o;18242:387::-;10390:4;10381:6;;:13;;;;;;;;;;;;;;;;;;18316:11:::1;;;;;;;;;;;18313:47;;;18347:13;;18329:31;;18313:47;18373:22;18398:21;18373:46;;18430:33;18447:15;18430:16;:33::i;:::-;18474:22;18499:41;18525:14;18499:21;:25;;:41;;;;:::i;:::-;18474:66;;18573:1;18556:14;:18;18553:66;;;18584:9;;;;;;;;;;;18576:27;;:43;18604:14;18576:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18553:66;18300:329;;10426:5:::0;10417:6;;:14;;;;;;;;;;;;;;;;;;18242:387;:::o;15691:369::-;15775:4;15795:17;:25;15813:6;15795:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;15824:17;:28;15842:9;15824:28;;;;;;;;;;;;;;;;;;;;;;;;;15795:57;15792:261;;;15876:4;15869:11;;;;15792:261;15911:12;:20;15924:6;15911:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;15935:12;:23;15948:9;15935:23;;;;;;;;;;;;;;;;;;;;;;;;;15911:47;15907:146;;;15982:5;15975:12;;;;15907:146;16036:5;16029:12;;15691:369;;;;;:::o;16068:698::-;16154:7;16184:14;16241:12;:20;16254:6;16241:20;;;;;;;;;;;;;;;;;;;;;;;;;16238:254;;;16295:42;16322:14;;16295:22;16306:10;;16295:6;:10;;:22;;;;:::i;:::-;:26;;:42;;;;:::i;:::-;16283:54;;16238:254;;;16376:12;:23;16389:9;16376:23;;;;;;;;;;;;;;;;;;;;;;;;;16373:119;;;16433:43;16461:14;;16433:23;16444:11;;16433:6;:10;;:23;;;;:::i;:::-;:27;;:43;;;;:::i;:::-;16421:55;;16373:119;16238:254;16523:1;16511:9;:13;16508:185;;;16572:39;16601:9;16572;:24;16590:4;16572:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16545:9;:24;16563:4;16545:24;;;;;;;;;;;;;;;:66;;;;16660:4;16635:42;;16644:6;16635:42;;;16667:9;16635:42;;;;;;:::i;:::-;;;;;;;;16508:185;16716:21;16727:9;16716:6;:10;;:21;;;;:::i;:::-;16709:28;;;16068:698;;;;;:::o;18637:648::-;18763:21;18801:1;18787:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18763:40;;18832:4;18814;18819:1;18814:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18858:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18848:4;18853:1;18848:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;18887:56;18904:4;18919:9;;;;;;;;;;;18931:11;18887:8;:56::i;:::-;18982:9;;;;;;;;;;;:60;;;19057:11;19083:1;19127:4;19154;19190:15;18982:234;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19242:35;19259:11;19272:4;19242:35;;;;;;;:::i;:::-;;;;;;;;18692:593;18637:648;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:126::-;1821:7;1861:42;1854:5;1850:54;1839:65;;1784:126;;;:::o;1916:60::-;1944:3;1965:5;1958:12;;1916:60;;;:::o;1982:142::-;2032:9;2065:53;2083:34;2092:24;2110:5;2092:24;:::i;:::-;2083:34;:::i;:::-;2065:53;:::i;:::-;2052:66;;1982:142;;;:::o;2130:126::-;2180:9;2213:37;2244:5;2213:37;:::i;:::-;2200:50;;2130:126;;;:::o;2262:148::-;2334:9;2367:37;2398:5;2367:37;:::i;:::-;2354:50;;2262:148;;;:::o;2416:175::-;2525:59;2578:5;2525:59;:::i;:::-;2520:3;2513:72;2416:175;;:::o;2597:266::-;2712:4;2750:2;2739:9;2735:18;2727:26;;2763:93;2853:1;2842:9;2838:17;2829:6;2763:93;:::i;:::-;2597:266;;;;:::o;2869:96::-;2906:7;2935:24;2953:5;2935:24;:::i;:::-;2924:35;;2869:96;;;:::o;2971:118::-;3058:24;3076:5;3058:24;:::i;:::-;3053:3;3046:37;2971:118;;:::o;3095:222::-;3188:4;3226:2;3215:9;3211:18;3203:26;;3239:71;3307:1;3296:9;3292:17;3283:6;3239:71;:::i;:::-;3095:222;;;;:::o;3404:117::-;3513:1;3510;3503:12;3650:122;3723:24;3741:5;3723:24;:::i;:::-;3716:5;3713:35;3703:63;;3762:1;3759;3752:12;3703:63;3650:122;:::o;3778:139::-;3824:5;3862:6;3849:20;3840:29;;3878:33;3905:5;3878:33;:::i;:::-;3778:139;;;;:::o;3923:122::-;3996:24;4014:5;3996:24;:::i;:::-;3989:5;3986:35;3976:63;;4035:1;4032;4025:12;3976:63;3923:122;:::o;4051:139::-;4097:5;4135:6;4122:20;4113:29;;4151:33;4178:5;4151:33;:::i;:::-;4051:139;;;;:::o;4196:474::-;4264:6;4272;4321:2;4309:9;4300:7;4296:23;4292:32;4289:119;;;4327:79;;:::i;:::-;4289:119;4447:1;4472:53;4517:7;4508:6;4497:9;4493:22;4472:53;:::i;:::-;4462:63;;4418:117;4574:2;4600:53;4645:7;4636:6;4625:9;4621:22;4600:53;:::i;:::-;4590:63;;4545:118;4196:474;;;;;:::o;4676:90::-;4710:7;4753:5;4746:13;4739:21;4728:32;;4676:90;;;:::o;4772:109::-;4853:21;4868:5;4853:21;:::i;:::-;4848:3;4841:34;4772:109;;:::o;4887:210::-;4974:4;5012:2;5001:9;4997:18;4989:26;;5025:65;5087:1;5076:9;5072:17;5063:6;5025:65;:::i;:::-;4887:210;;;;:::o;5103:619::-;5180:6;5188;5196;5245:2;5233:9;5224:7;5220:23;5216:32;5213:119;;;5251:79;;:::i;:::-;5213:119;5371:1;5396:53;5441:7;5432:6;5421:9;5417:22;5396:53;:::i;:::-;5386:63;;5342:117;5498:2;5524:53;5569:7;5560:6;5549:9;5545:22;5524:53;:::i;:::-;5514:63;;5469:118;5626:2;5652:53;5697:7;5688:6;5677:9;5673:22;5652:53;:::i;:::-;5642:63;;5597:118;5103:619;;;;;:::o;5728:86::-;5763:7;5803:4;5796:5;5792:16;5781:27;;5728:86;;;:::o;5820:112::-;5903:22;5919:5;5903:22;:::i;:::-;5898:3;5891:35;5820:112;;:::o;5938:214::-;6027:4;6065:2;6054:9;6050:18;6042:26;;6078:67;6142:1;6131:9;6127:17;6118:6;6078:67;:::i;:::-;5938:214;;;;:::o;6158:329::-;6217:6;6266:2;6254:9;6245:7;6241:23;6237:32;6234:119;;;6272:79;;:::i;:::-;6234:119;6392:1;6417:53;6462:7;6453:6;6442:9;6438:22;6417:53;:::i;:::-;6407:63;;6363:117;6158:329;;;;:::o;6493:116::-;6563:21;6578:5;6563:21;:::i;:::-;6556:5;6553:32;6543:60;;6599:1;6596;6589:12;6543:60;6493:116;:::o;6615:133::-;6658:5;6696:6;6683:20;6674:29;;6712:30;6736:5;6712:30;:::i;:::-;6615:133;;;;:::o;6754:323::-;6810:6;6859:2;6847:9;6838:7;6834:23;6830:32;6827:119;;;6865:79;;:::i;:::-;6827:119;6985:1;7010:50;7052:7;7043:6;7032:9;7028:22;7010:50;:::i;:::-;7000:60;;6956:114;6754:323;;;;:::o;7083:474::-;7151:6;7159;7208:2;7196:9;7187:7;7183:23;7179:32;7176:119;;;7214:79;;:::i;:::-;7176:119;7334:1;7359:53;7404:7;7395:6;7384:9;7380:22;7359:53;:::i;:::-;7349:63;;7305:117;7461:2;7487:53;7532:7;7523:6;7512:9;7508:22;7487:53;:::i;:::-;7477:63;;7432:118;7083:474;;;;;:::o;7563:329::-;7622:6;7671:2;7659:9;7650:7;7646:23;7642:32;7639:119;;;7677:79;;:::i;:::-;7639:119;7797:1;7822:53;7867:7;7858:6;7847:9;7843:22;7822:53;:::i;:::-;7812:63;;7768:117;7563:329;;;;:::o;7898:468::-;7963:6;7971;8020:2;8008:9;7999:7;7995:23;7991:32;7988:119;;;8026:79;;:::i;:::-;7988:119;8146:1;8171:53;8216:7;8207:6;8196:9;8192:22;8171:53;:::i;:::-;8161:63;;8117:117;8273:2;8299:50;8341:7;8332:6;8321:9;8317:22;8299:50;:::i;:::-;8289:60;;8244:115;7898:468;;;;;:::o;8372:462::-;8434:6;8442;8491:2;8479:9;8470:7;8466:23;8462:32;8459:119;;;8497:79;;:::i;:::-;8459:119;8617:1;8642:50;8684:7;8675:6;8664:9;8660:22;8642:50;:::i;:::-;8632:60;;8588:114;8741:2;8767:50;8809:7;8800:6;8789:9;8785:22;8767:50;:::i;:::-;8757:60;;8712:115;8372:462;;;;;:::o;8840:474::-;8908:6;8916;8965:2;8953:9;8944:7;8940:23;8936:32;8933:119;;;8971:79;;:::i;:::-;8933:119;9091:1;9116:53;9161:7;9152:6;9141:9;9137:22;9116:53;:::i;:::-;9106:63;;9062:117;9218:2;9244:53;9289:7;9280:6;9269:9;9265:22;9244:53;:::i;:::-;9234:63;;9189:118;8840:474;;;;;:::o;9320:180::-;9368:77;9365:1;9358:88;9465:4;9462:1;9455:15;9489:4;9486:1;9479:15;9506:320;9550:6;9587:1;9581:4;9577:12;9567:22;;9634:1;9628:4;9624:12;9655:18;9645:81;;9711:4;9703:6;9699:17;9689:27;;9645:81;9773:2;9765:6;9762:14;9742:18;9739:38;9736:84;;9792:18;;:::i;:::-;9736:84;9557:269;9506:320;;;:::o;9832:182::-;9972:34;9968:1;9960:6;9956:14;9949:58;9832:182;:::o;10020:366::-;10162:3;10183:67;10247:2;10242:3;10183:67;:::i;:::-;10176:74;;10259:93;10348:3;10259:93;:::i;:::-;10377:2;10372:3;10368:12;10361:19;;10020:366;;;:::o;10392:419::-;10558:4;10596:2;10585:9;10581:18;10573:26;;10645:9;10639:4;10635:20;10631:1;10620:9;10616:17;10609:47;10673:131;10799:4;10673:131;:::i;:::-;10665:139;;10392:419;;;:::o;10817:332::-;10938:4;10976:2;10965:9;10961:18;10953:26;;10989:71;11057:1;11046:9;11042:17;11033:6;10989:71;:::i;:::-;11070:72;11138:2;11127:9;11123:18;11114:6;11070:72;:::i;:::-;10817:332;;;;;:::o;11155:98::-;11206:6;11240:5;11234:12;11224:22;;11155:98;;;:::o;11259:147::-;11360:11;11397:3;11382:18;;11259:147;;;;:::o;11412:386::-;11516:3;11544:38;11576:5;11544:38;:::i;:::-;11598:88;11679:6;11674:3;11598:88;:::i;:::-;11591:95;;11695:65;11753:6;11748:3;11741:4;11734:5;11730:16;11695:65;:::i;:::-;11785:6;11780:3;11776:16;11769:23;;11520:278;11412:386;;;;:::o;11804:271::-;11934:3;11956:93;12045:3;12036:6;11956:93;:::i;:::-;11949:100;;12066:3;12059:10;;11804:271;;;;:::o;12081:170::-;12221:22;12217:1;12209:6;12205:14;12198:46;12081:170;:::o;12257:366::-;12399:3;12420:67;12484:2;12479:3;12420:67;:::i;:::-;12413:74;;12496:93;12585:3;12496:93;:::i;:::-;12614:2;12609:3;12605:12;12598:19;;12257:366;;;:::o;12629:419::-;12795:4;12833:2;12822:9;12818:18;12810:26;;12882:9;12876:4;12872:20;12868:1;12857:9;12853:17;12846:47;12910:131;13036:4;12910:131;:::i;:::-;12902:139;;12629:419;;;:::o;13054:114::-;;:::o;13174:398::-;13333:3;13354:83;13435:1;13430:3;13354:83;:::i;:::-;13347:90;;13446:93;13535:3;13446:93;:::i;:::-;13564:1;13559:3;13555:11;13548:18;;13174:398;;;:::o;13578:379::-;13762:3;13784:147;13927:3;13784:147;:::i;:::-;13777:154;;13948:3;13941:10;;13578:379;;;:::o;13963:170::-;14103:22;14099:1;14091:6;14087:14;14080:46;13963:170;:::o;14139:366::-;14281:3;14302:67;14366:2;14361:3;14302:67;:::i;:::-;14295:74;;14378:93;14467:3;14378:93;:::i;:::-;14496:2;14491:3;14487:12;14480:19;;14139:366;;;:::o;14511:419::-;14677:4;14715:2;14704:9;14700:18;14692:26;;14764:9;14758:4;14754:20;14750:1;14739:9;14735:17;14728:47;14792:131;14918:4;14792:131;:::i;:::-;14784:139;;14511:419;;;:::o;14936:225::-;15076:34;15072:1;15064:6;15060:14;15053:58;15145:8;15140:2;15132:6;15128:15;15121:33;14936:225;:::o;15167:366::-;15309:3;15330:67;15394:2;15389:3;15330:67;:::i;:::-;15323:74;;15406:93;15495:3;15406:93;:::i;:::-;15524:2;15519:3;15515:12;15508:19;;15167:366;;;:::o;15539:419::-;15705:4;15743:2;15732:9;15728:18;15720:26;;15792:9;15786:4;15782:20;15778:1;15767:9;15763:17;15756:47;15820:131;15946:4;15820:131;:::i;:::-;15812:139;;15539:419;;;:::o;15964:171::-;16104:23;16100:1;16092:6;16088:14;16081:47;15964:171;:::o;16141:366::-;16283:3;16304:67;16368:2;16363:3;16304:67;:::i;:::-;16297:74;;16380:93;16469:3;16380:93;:::i;:::-;16498:2;16493:3;16489:12;16482:19;;16141:366;;;:::o;16513:419::-;16679:4;16717:2;16706:9;16702:18;16694:26;;16766:9;16760:4;16756:20;16752:1;16741:9;16737:17;16730:47;16794:131;16920:4;16794:131;:::i;:::-;16786:139;;16513:419;;;:::o;16938:169::-;17078:21;17074:1;17066:6;17062:14;17055:45;16938:169;:::o;17113:366::-;17255:3;17276:67;17340:2;17335:3;17276:67;:::i;:::-;17269:74;;17352:93;17441:3;17352:93;:::i;:::-;17470:2;17465:3;17461:12;17454:19;;17113:366;;;:::o;17485:419::-;17651:4;17689:2;17678:9;17674:18;17666:26;;17738:9;17732:4;17728:20;17724:1;17713:9;17709:17;17702:47;17766:131;17892:4;17766:131;:::i;:::-;17758:139;;17485:419;;;:::o;17910:143::-;17967:5;17998:6;17992:13;17983:22;;18014:33;18041:5;18014:33;:::i;:::-;17910:143;;;;:::o;18059:351::-;18129:6;18178:2;18166:9;18157:7;18153:23;18149:32;18146:119;;;18184:79;;:::i;:::-;18146:119;18304:1;18329:64;18385:7;18376:6;18365:9;18361:22;18329:64;:::i;:::-;18319:74;;18275:128;18059:351;;;;:::o;18416:332::-;18537:4;18575:2;18564:9;18560:18;18552:26;;18588:71;18656:1;18645:9;18641:17;18632:6;18588:71;:::i;:::-;18669:72;18737:2;18726:9;18722:18;18713:6;18669:72;:::i;:::-;18416:332;;;;;:::o;18754:775::-;18987:4;19025:3;19014:9;19010:19;19002:27;;19039:71;19107:1;19096:9;19092:17;19083:6;19039:71;:::i;:::-;19120:72;19188:2;19177:9;19173:18;19164:6;19120:72;:::i;:::-;19202;19270:2;19259:9;19255:18;19246:6;19202:72;:::i;:::-;19284;19352:2;19341:9;19337:18;19328:6;19284:72;:::i;:::-;19366:73;19434:3;19423:9;19419:19;19410:6;19366:73;:::i;:::-;19449;19517:3;19506:9;19502:19;19493:6;19449:73;:::i;:::-;18754:775;;;;;;;;;:::o;19535:143::-;19592:5;19623:6;19617:13;19608:22;;19639:33;19666:5;19639:33;:::i;:::-;19535:143;;;;:::o;19684:663::-;19772:6;19780;19788;19837:2;19825:9;19816:7;19812:23;19808:32;19805:119;;;19843:79;;:::i;:::-;19805:119;19963:1;19988:64;20044:7;20035:6;20024:9;20020:22;19988:64;:::i;:::-;19978:74;;19934:128;20101:2;20127:64;20183:7;20174:6;20163:9;20159:22;20127:64;:::i;:::-;20117:74;;20072:129;20240:2;20266:64;20322:7;20313:6;20302:9;20298:22;20266:64;:::i;:::-;20256:74;;20211:129;19684:663;;;;;:::o;20353:180::-;20401:77;20398:1;20391:88;20498:4;20495:1;20488:15;20522:4;20519:1;20512:15;20539:410;20579:7;20602:20;20620:1;20602:20;:::i;:::-;20597:25;;20636:20;20654:1;20636:20;:::i;:::-;20631:25;;20691:1;20688;20684:9;20713:30;20731:11;20713:30;:::i;:::-;20702:41;;20892:1;20883:7;20879:15;20876:1;20873:22;20853:1;20846:9;20826:83;20803:139;;20922:18;;:::i;:::-;20803:139;20587:362;20539:410;;;;:::o;20955:180::-;21003:77;21000:1;20993:88;21100:4;21097:1;21090:15;21124:4;21121:1;21114:15;21141:185;21181:1;21198:20;21216:1;21198:20;:::i;:::-;21193:25;;21232:20;21250:1;21232:20;:::i;:::-;21227:25;;21271:1;21261:35;;21276:18;;:::i;:::-;21261:35;21318:1;21315;21311:9;21306:14;;21141:185;;;;:::o;21332:220::-;21472:34;21468:1;21460:6;21456:14;21449:58;21541:3;21536:2;21528:6;21524:15;21517:28;21332:220;:::o;21558:366::-;21700:3;21721:67;21785:2;21780:3;21721:67;:::i;:::-;21714:74;;21797:93;21886:3;21797:93;:::i;:::-;21915:2;21910:3;21906:12;21899:19;;21558:366;;;:::o;21930:419::-;22096:4;22134:2;22123:9;22119:18;22111:26;;22183:9;22177:4;22173:20;22169:1;22158:9;22154:17;22147:47;22211:131;22337:4;22211:131;:::i;:::-;22203:139;;21930:419;;;:::o;22355:223::-;22495:34;22491:1;22483:6;22479:14;22472:58;22564:6;22559:2;22551:6;22547:15;22540:31;22355:223;:::o;22584:366::-;22726:3;22747:67;22811:2;22806:3;22747:67;:::i;:::-;22740:74;;22823:93;22912:3;22823:93;:::i;:::-;22941:2;22936:3;22932:12;22925:19;;22584:366;;;:::o;22956:419::-;23122:4;23160:2;23149:9;23145:18;23137:26;;23209:9;23203:4;23199:20;23195:1;23184:9;23180:17;23173:47;23237:131;23363:4;23237:131;:::i;:::-;23229:139;;22956:419;;;:::o;23381:221::-;23521:34;23517:1;23509:6;23505:14;23498:58;23590:4;23585:2;23577:6;23573:15;23566:29;23381:221;:::o;23608:366::-;23750:3;23771:67;23835:2;23830:3;23771:67;:::i;:::-;23764:74;;23847:93;23936:3;23847:93;:::i;:::-;23965:2;23960:3;23956:12;23949:19;;23608:366;;;:::o;23980:419::-;24146:4;24184:2;24173:9;24169:18;24161:26;;24233:9;24227:4;24223:20;24219:1;24208:9;24204:17;24197:47;24261:131;24387:4;24261:131;:::i;:::-;24253:139;;23980:419;;;:::o;24405:224::-;24545:34;24541:1;24533:6;24529:14;24522:58;24614:7;24609:2;24601:6;24597:15;24590:32;24405:224;:::o;24635:366::-;24777:3;24798:67;24862:2;24857:3;24798:67;:::i;:::-;24791:74;;24874:93;24963:3;24874:93;:::i;:::-;24992:2;24987:3;24983:12;24976:19;;24635:366;;;:::o;25007:419::-;25173:4;25211:2;25200:9;25196:18;25188:26;;25260:9;25254:4;25250:20;25246:1;25235:9;25231:17;25224:47;25288:131;25414:4;25288:131;:::i;:::-;25280:139;;25007:419;;;:::o;25432:222::-;25572:34;25568:1;25560:6;25556:14;25549:58;25641:5;25636:2;25628:6;25624:15;25617:30;25432:222;:::o;25660:366::-;25802:3;25823:67;25887:2;25882:3;25823:67;:::i;:::-;25816:74;;25899:93;25988:3;25899:93;:::i;:::-;26017:2;26012:3;26008:12;26001:19;;25660:366;;;:::o;26032:419::-;26198:4;26236:2;26225:9;26221:18;26213:26;;26285:9;26279:4;26275:20;26271:1;26260:9;26256:17;26249:47;26313:131;26439:4;26313:131;:::i;:::-;26305:139;;26032:419;;;:::o;26457:228::-;26597:34;26593:1;26585:6;26581:14;26574:58;26666:11;26661:2;26653:6;26649:15;26642:36;26457:228;:::o;26691:366::-;26833:3;26854:67;26918:2;26913:3;26854:67;:::i;:::-;26847:74;;26930:93;27019:3;26930:93;:::i;:::-;27048:2;27043:3;27039:12;27032:19;;26691:366;;;:::o;27063:419::-;27229:4;27267:2;27256:9;27252:18;27244:26;;27316:9;27310:4;27306:20;27302:1;27291:9;27287:17;27280:47;27344:131;27470:4;27344:131;:::i;:::-;27336:139;;27063:419;;;:::o;27488:176::-;27628:28;27624:1;27616:6;27612:14;27605:52;27488:176;:::o;27670:366::-;27812:3;27833:67;27897:2;27892:3;27833:67;:::i;:::-;27826:74;;27909:93;27998:3;27909:93;:::i;:::-;28027:2;28022:3;28018:12;28011:19;;27670:366;;;:::o;28042:419::-;28208:4;28246:2;28235:9;28231:18;28223:26;;28295:9;28289:4;28285:20;28281:1;28270:9;28266:17;28259:47;28323:131;28449:4;28323:131;:::i;:::-;28315:139;;28042:419;;;:::o;28467:227::-;28607:34;28603:1;28595:6;28591:14;28584:58;28676:10;28671:2;28663:6;28659:15;28652:35;28467:227;:::o;28700:366::-;28842:3;28863:67;28927:2;28922:3;28863:67;:::i;:::-;28856:74;;28939:93;29028:3;28939:93;:::i;:::-;29057:2;29052:3;29048:12;29041:19;;28700:366;;;:::o;29072:419::-;29238:4;29276:2;29265:9;29261:18;29253:26;;29325:9;29319:4;29315:20;29311:1;29300:9;29296:17;29289:47;29353:131;29479:4;29353:131;:::i;:::-;29345:139;;29072:419;;;:::o;29497:177::-;29637:29;29633:1;29625:6;29621:14;29614:53;29497:177;:::o;29680:366::-;29822:3;29843:67;29907:2;29902:3;29843:67;:::i;:::-;29836:74;;29919:93;30008:3;29919:93;:::i;:::-;30037:2;30032:3;30028:12;30021:19;;29680:366;;;:::o;30052:419::-;30218:4;30256:2;30245:9;30241:18;30233:26;;30305:9;30299:4;30295:20;30291:1;30280:9;30276:17;30269:47;30333:131;30459:4;30333:131;:::i;:::-;30325:139;;30052:419;;;:::o;30477:194::-;30517:4;30537:20;30555:1;30537:20;:::i;:::-;30532:25;;30571:20;30589:1;30571:20;:::i;:::-;30566:25;;30615:1;30612;30608:9;30600:17;;30639:1;30633:4;30630:11;30627:37;;;30644:18;;:::i;:::-;30627:37;30477:194;;;;:::o;30677:191::-;30717:3;30736:20;30754:1;30736:20;:::i;:::-;30731:25;;30770:20;30788:1;30770:20;:::i;:::-;30765:25;;30813:1;30810;30806:9;30799:16;;30834:3;30831:1;30828:10;30825:36;;;30841:18;;:::i;:::-;30825:36;30677:191;;;;:::o;30874:177::-;31014:29;31010:1;31002:6;30998:14;30991:53;30874:177;:::o;31057:366::-;31199:3;31220:67;31284:2;31279:3;31220:67;:::i;:::-;31213:74;;31296:93;31385:3;31296:93;:::i;:::-;31414:2;31409:3;31405:12;31398:19;;31057:366;;;:::o;31429:419::-;31595:4;31633:2;31622:9;31618:18;31610:26;;31682:9;31676:4;31672:20;31668:1;31657:9;31653:17;31646:47;31710:131;31836:4;31710:131;:::i;:::-;31702:139;;31429:419;;;:::o;31854:180::-;31902:77;31899:1;31892:88;31999:4;31996:1;31989:15;32023:4;32020:1;32013:15;32040:180;32088:77;32085:1;32078:88;32185:4;32182:1;32175:15;32209:4;32206:1;32199:15;32226:85;32271:7;32300:5;32289:16;;32226:85;;;:::o;32317:158::-;32375:9;32408:61;32426:42;32435:32;32461:5;32435:32;:::i;:::-;32426:42;:::i;:::-;32408:61;:::i;:::-;32395:74;;32317:158;;;:::o;32481:147::-;32576:45;32615:5;32576:45;:::i;:::-;32571:3;32564:58;32481:147;;:::o;32634:114::-;32701:6;32735:5;32729:12;32719:22;;32634:114;;;:::o;32754:184::-;32853:11;32887:6;32882:3;32875:19;32927:4;32922:3;32918:14;32903:29;;32754:184;;;;:::o;32944:132::-;33011:4;33034:3;33026:11;;33064:4;33059:3;33055:14;33047:22;;32944:132;;;:::o;33082:108::-;33159:24;33177:5;33159:24;:::i;:::-;33154:3;33147:37;33082:108;;:::o;33196:179::-;33265:10;33286:46;33328:3;33320:6;33286:46;:::i;:::-;33364:4;33359:3;33355:14;33341:28;;33196:179;;;;:::o;33381:113::-;33451:4;33483;33478:3;33474:14;33466:22;;33381:113;;;:::o;33530:732::-;33649:3;33678:54;33726:5;33678:54;:::i;:::-;33748:86;33827:6;33822:3;33748:86;:::i;:::-;33741:93;;33858:56;33908:5;33858:56;:::i;:::-;33937:7;33968:1;33953:284;33978:6;33975:1;33972:13;33953:284;;;34054:6;34048:13;34081:63;34140:3;34125:13;34081:63;:::i;:::-;34074:70;;34167:60;34220:6;34167:60;:::i;:::-;34157:70;;34013:224;34000:1;33997;33993:9;33988:14;;33953:284;;;33957:14;34253:3;34246:10;;33654:608;;;33530:732;;;;:::o;34268:831::-;34531:4;34569:3;34558:9;34554:19;34546:27;;34583:71;34651:1;34640:9;34636:17;34627:6;34583:71;:::i;:::-;34664:80;34740:2;34729:9;34725:18;34716:6;34664:80;:::i;:::-;34791:9;34785:4;34781:20;34776:2;34765:9;34761:18;34754:48;34819:108;34922:4;34913:6;34819:108;:::i;:::-;34811:116;;34937:72;35005:2;34994:9;34990:18;34981:6;34937:72;:::i;:::-;35019:73;35087:3;35076:9;35072:19;35063:6;35019:73;:::i;:::-;34268:831;;;;;;;;:::o;35105:483::-;35276:4;35314:2;35303:9;35299:18;35291:26;;35327:71;35395:1;35384:9;35380:17;35371:6;35327:71;:::i;:::-;35445:9;35439:4;35435:20;35430:2;35419:9;35415:18;35408:48;35473:108;35576:4;35567:6;35473:108;:::i;:::-;35465:116;;35105:483;;;;;:::o

Swarm Source

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