ETH Price: $3,398.83 (+1.60%)

Token

My Bags (MYBAGS)
 

Overview

Max Total Supply

1,000,000,000,000 MYBAGS

Holders

390

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
hayleywilliams.eth
Balance
128,915,524.062948934 MYBAGS

Value
$0.00
0x70981969Fb2eE716f8297B0736a80a908EF842a8
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:
MYBAGS

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-01
*/

/**

                           *     .--.
                                / /  `
               +               | |
                      '         \ \__,
                  *          +   '--'  *     
         █▀▄▀█ █▄█   █▄▄ ▄▀█ █▀▀ █▀
         █░▀░█ ░█░   █▄█ █▀█ █▄█ ▄█
──────────────────██████────────────────
─────────────────████████─█─────────────
─────────────██████████████─────────────
─────────────█████████████──────────────
──────────────███████████───────────────
───────────────██████████───────────────
────────────────████████────────────────
────────────────▐██████─────────────────
────────────────▐██████─────────────────
──────────────── ▌─────▌────────────────
────────────────███─█████───────────────
────────────████████████████────────────
──────────████████████████████──────────
────────████████████─────███████────────
──────███████████─────────███████───────
─────████████████───██─███████████──────
────██████████████──────────████████────
───████████████████─────█───█████████───
──█████████████████████─██───█████████──
──█████████████████████──██──██████████─
─███████████████████████─██───██████████
████████████████████████──────██████████
███████████████████──────────███████████
─██████████████████───────██████████████
─███████████████████████──█████████████─
──█████████████████████████████████████─
───██████████████████████████████████───
───────██████████████████████████████───
───────██████████████████████████───────
─────────────███████████████────────────

Site: https://www.moonmybags.com/
Telegram: https://t.me/mybagseth
*/
//SPDX-License-Identifier: MIT 

pragma solidity ^0.8.9;

library SafeMath {
	function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b;	require(c >= a, "Addition overflow"); return c; }
	function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "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, "Multiplication overflow"); return c; }
	function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "Division by zero"); }
	function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c;	}
	function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "Modulo by zero"); }
	function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; }
}

interface IERC20 {
	function totalSupply() external view returns (uint256);
	function decimals() external view returns (uint8);
	function symbol() external view returns (string memory);
	function name() external view returns (string memory);
	function getOwner() external view returns (address);
	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 Auth {
	address internal owner;
	constructor(address _owner) { owner = _owner; }
	modifier onlyOwner() { require(msg.sender == owner, "Only contract owner can call this function"); _; }
	function transferOwnership(address payable newOwner) external onlyOwner { owner = newOwner;	emit OwnershipTransferred(newOwner); }
	event OwnershipTransferred(address owner);
}

interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); }
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function WETH() external pure returns (address);
    function factory() 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);
}

contract MYBAGS is IERC20, Auth {
	using SafeMath for uint256;
	string _name = "My Bags";
	string _symbol = "MYBAGS";
	uint256 constant _totalSupply = 1 * (10**12) * (10 ** _decimals);
	uint8 constant _decimals = 9;
    uint32 _smd; uint32 _smr;
	mapping (address => uint256) _balances;
	mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) private _excludedFromFee;
    bool public tradingOpen;
    bool public taxPaused;
    uint256 public maxTxAmount; uint256 public maxWalletAmount;
  	uint256 private _taxSwapMin; uint256 private _taxSwapMax;
	address private _operator; 
    address private _uniLpAddr;
    uint16 public snipersCaught = 0;
	uint8 _defTaxRate = 11; 
	uint8 private _buyTaxRate; uint8 private _sellTaxRate; uint8 private _txTaxRate;
    uint16 private _autoLPShares = 180;
	uint16 private _taxShares1 = 820;
    uint16 private _taxShares2 = 0;
    uint16 private _taxShares3 = 0;
    uint256 private _sbt = 0;

    uint256 private _humanBlock = 0;
    mapping (address => bool) private _nonSniper;
    mapping (address => uint256) private _sniperBlock;

	uint256 private _taxBreakEnd;
	address payable private _taxWallet1 = payable(0x6ba89D5EFaeb03a1E39C29394ca4cC3444bdbf30);
	address payable private _taxWallet2 = payable(0x6ba89D5EFaeb03a1E39C29394ca4cC3444bdbf30);
    address payable private _taxWallet3 = payable(0x6ba89D5EFaeb03a1E39C29394ca4cC3444bdbf30);
	bool private _inTaxSwap = false;
	address private constant _uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // UniswapV2
    IUniswapV2Router02 private _uniswapV2Router;
	modifier lockTaxSwap { _inTaxSwap = true; _; _inTaxSwap = false; }

	constructor (uint32 smd, uint32 smr) Auth(msg.sender) {      
		tradingOpen = false;
		taxPaused = false;
		_operator = msg.sender;
		maxTxAmount = _totalSupply;
		maxWalletAmount = _totalSupply;
		_taxSwapMin = _totalSupply * 10 / 10000;
		_taxSwapMax = _totalSupply * 50 / 10000;
		_uniswapV2Router = IUniswapV2Router02(_uniswapV2RouterAddress);
		_excludedFromFee[owner] = true;
		_excludedFromFee[address(this)] = true;
		_excludedFromFee[_uniswapV2RouterAddress] = true;
		_excludedFromFee[_taxWallet1] = true;
		_smd = smd; _smr = smr;
		_balances[address(this)] = _totalSupply;
		emit Transfer(address(0), address(this), _totalSupply);
	}
	
	receive() external payable {}
	
	function totalSupply() external pure override returns (uint256) { return _totalSupply; }
	function decimals() external pure override returns (uint8) { return _decimals; }
	function symbol() external view override returns (string memory) { return _symbol; }
	function name() external view override returns (string memory) { return _name; }
	function getOwner() external view override returns (address) { return owner; }
	function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
	function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

	function initLP(uint256 ethAmountWei) external onlyOwner {
		require(!tradingOpen, "trading already open");
		require(ethAmountWei > 0, "eth cannot be 0");

		_nonSniper[address(this)] = true;
		_nonSniper[owner] = true;
		_nonSniper[_taxWallet1] = true;
		_nonSniper[_taxWallet2] = true;
		_nonSniper[_taxWallet3] = true;

		_transferFrom(address(this), owner, _totalSupply * 25 / 100);
		uint256 _contractETHBalance = address(this).balance;
		require(_contractETHBalance >= ethAmountWei, "not enough eth");
		uint256 _contractTokenBalance = balanceOf(address(this));
		require(_contractTokenBalance > 0, "no tokens");
		_uniLpAddr = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

		_nonSniper[_uniLpAddr] = true;

		_approveRouter(_contractTokenBalance);
		_addLiquidity(_contractTokenBalance, ethAmountWei, false);

		_openTrading();
	}

	function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
		address lpTokenRecipient = address(0);
		if (autoburn == false) { lpTokenRecipient = owner; }
		_uniswapV2Router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lpTokenRecipient, block.timestamp );
	}

	function taxSwapSettings(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
		_taxSwapMin = _totalSupply * minValue / minDivider;
		_taxSwapMax = _totalSupply * maxValue / maxDivider;
	}

	function resetTax() external {
		require(msg.sender == _operator || msg.sender == owner, "403");
		_resetTax();
	}

	function _resetTax() internal {
		_buyTaxRate = _defTaxRate;
		_sellTaxRate = _defTaxRate;
		_txTaxRate = _defTaxRate;
	}

	function isSniper(address wallet) external view returns(bool) {
		if (_sniperBlock[wallet] != 0) { return true; }
		else { return false; }
	}

	function sniperBlock(address wallet) external view returns(uint256) {
		return _sniperBlock[wallet];
	}

	function disableFeesFor(address wallet) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
		_excludedFromFee[ wallet ] = true;
	}
	function enableFeesFor(address wallet) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
		_excludedFromFee[ wallet ] = false;
	}

    function decreaseTaxRate(uint8 newBuyTax, uint8 newSellTax, uint8 newTxTax) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
        require(newBuyTax <= _buyTaxRate && newSellTax <= _sellTaxRate && newTxTax <= _txTaxRate, "New tax must be lower");
		_buyTaxRate = newBuyTax;
		_sellTaxRate = newSellTax;
		_txTaxRate = newTxTax;
    }
  
    function changeTaxDistribution(uint16 sharesAutoLP, uint16 sharesWallet1, uint16 sharesWallet2, uint16 sharesWallet3) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
        require(sharesAutoLP + sharesWallet1 + sharesWallet2 + sharesWallet3 == 1000, "Sum must be 1000" );
        _autoLPShares = sharesAutoLP;
        _taxShares1 = sharesWallet1;
        _taxShares2 = sharesWallet2;
        _taxShares3 = sharesWallet3;
    }
    
    function setTaxWallets(address newTaxWall1, address newTaxWall2, address newTaxWall3) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
        _taxWallet1 = payable(newTaxWall1);
        _taxWallet2 = payable(newTaxWall2);
        _taxWallet3 = payable(newTaxWall3);
		_excludedFromFee[newTaxWall1] = true;
		_excludedFromFee[newTaxWall2] = true;
		_excludedFromFee[newTaxWall3] = true;
    }

	function approve(address spender, uint256 amount) public override returns (bool) {
		if (_humanBlock > block.number && _nonSniper[msg.sender] == false) {
			_markSniper(msg.sender, block.number);
		}

		_allowances[msg.sender][spender] = amount;
		emit Approval(msg.sender, spender, amount);
		return true;
	}

	function transfer(address recipient, uint256 amount) external override returns (bool) {
	    require(_checkTradingOpen(), "trading not open");
		return _transferFrom(msg.sender, recipient, amount);
	}
    
    function increaseLimits(uint16 maxTxAmtPermile, uint16 maxWalletAmtPermile) external {
		require(msg.sender == _operator || msg.sender == owner, "403");
        uint256 newTxAmt = _totalSupply * maxTxAmtPermile / 1000;
        require(newTxAmt >= maxTxAmount, "tx limit too low");
        maxTxAmount = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWalletAmtPermile / 1000;
        require(newWalletAmt >= maxWalletAmount, "wallet limit too low");
        maxWalletAmount = newWalletAmt;
    }

    function openTrading() external onlyOwner{
        _openTrading();
	}
	
    function _openTrading() internal {
        require(_uniLpAddr != address(0), "LP not set");
        _taxBreakEnd = block.timestamp;
        _sbt = _sbt + _taxBreakEnd - 1;
        _humanBlock = block.number * 5;
		maxTxAmount     = 5 * _totalSupply / 1000; 
		maxWalletAmount = 5 * _totalSupply / 1000;
		_resetTax();
		_sellTaxRate = 25; //increased sell tax at launch to discourage early dumpers
		tradingOpen = true;

    }
    
    function _checkTradingOpen() private view returns (bool){
        bool checkResult = false;
        if (tradingOpen == true) { checkResult = true; } 
        else if (tx.origin == owner) { checkResult = true; } 

        return checkResult;
    }

    function humanize() external onlyOwner{
        _humanize(0);
	}

    function _humanize(uint8 blkcount) internal {
    	if (_humanBlock > block.number || _humanBlock == 0) {
    		_humanBlock = block.number + blkcount;
    	}
	}
    
	function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(), "Trading not open");
		if(_allowances[sender][msg.sender] != type(uint256).max){
			_allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
		}
		return _transferFrom(sender, recipient, amount);
	}
	
	function _checkLimits(address recipient, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( tradingOpen == true ) {
            if ( transferAmount > maxTxAmount ) { limitCheckPassed = false; }
            else if ( recipient != _uniLpAddr && (_balances[recipient].add(transferAmount) > maxWalletAmount) ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        if ( tradingOpen == true && block.timestamp < _sbt ) { taxAmount = amount.mul(98).div(100);}
		else if ( _excludedFromFee[sender] == true || _excludedFromFee[recipient] == true || tradingOpen == false || taxPaused == true) { taxAmount = 0; }
		else if ( sender == _uniLpAddr && _taxBreakEnd > block.timestamp) { taxAmount = 0; }
		else if ( sender == _uniLpAddr && _taxBreakEnd <= block.timestamp) { taxAmount = amount.mul(_buyTaxRate).div(100); }
		else if ( recipient == _uniLpAddr ) { taxAmount = amount.mul(_sellTaxRate).div(100); }
		else { taxAmount = amount.mul(_txTaxRate).div(100); }
		return taxAmount;
    }

    function liquifySniper(address wallet) external onlyOwner lockTaxSwap {
    	require(_sniperBlock[wallet] != 0, "not a sniper");
    	uint256 sniperBalance = balanceOf(wallet);
    	require(sniperBalance > 0, "no tokens");

    	_balances[wallet] = _balances[wallet].sub(sniperBalance);
    	_balances[address(this)] = _balances[address(this)].add(sniperBalance);
		emit Transfer(wallet, address(this), sniperBalance);

		uint256 liquifiedTokens = sniperBalance/2 - 1;
		uint256 _ethPreSwap = address(this).balance;
    	_swapTaxTokensForEth(liquifiedTokens);
    	uint256 _ethSwapped = address(this).balance - _ethPreSwap;
    	_approveRouter(liquifiedTokens);
		_addLiquidity(liquifiedTokens, _ethSwapped, true);
    }

	function _swapTaxAndLiquify() private lockTaxSwap {
		uint256 _taxTokensAvailable = balanceOf(address(this));
		if (_taxTokensAvailable >= _taxSwapMin && tradingOpen == true && taxPaused == false ) {
			if (_taxTokensAvailable >= _taxSwapMax) { _taxTokensAvailable = _taxSwapMax; }
			uint256 _tokensForLP = _taxTokensAvailable * _autoLPShares / 1000 / 2;
		    uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP;
		    uint256 _ethPreSwap = address(this).balance;
		    _swapTaxTokensForEth(_tokensToSwap);
		    uint256 _ethSwapped = address(this).balance - _ethPreSwap;
		    if (_autoLPShares > 0) {
		    	uint256 _ethWeiAmount = _ethSwapped * _autoLPShares / 1000 ;
		    	_approveRouter(_tokensForLP);
		    	_addLiquidity(_tokensForLP, _ethWeiAmount, true);
		    }
		    uint256 _contractETHBalance = address(this).balance;
		    if(_contractETHBalance > 0) { _distributeTax(_contractETHBalance); }
		}
	}

	function _markSniper(address wallet, uint256 snipeBlockNum) internal {
		if (_nonSniper[wallet] == false && _sniperBlock[wallet] == 0) { 
			_sniperBlock[wallet] = snipeBlockNum; 
			snipersCaught ++;
		}
	}

	function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
		if (_humanBlock > block.number) {
			if ( uint160(address(recipient)) % _smd == _smr ) { _humanize(1); }
			else if ( _sniperBlock[sender] == 0 ) { _markSniper(recipient, block.number); }
			else { _markSniper(recipient, _sniperBlock[sender]); }
		} else {
			if ( _sniperBlock[sender] != 0 ) { _markSniper(recipient, _sniperBlock[sender]); }
		}

		if ( tradingOpen == true && _sniperBlock[sender] != 0 && _sniperBlock[sender] < block.number ) {
			revert("blacklisted");
		}

        if (_inTaxSwap == false && recipient == _uniLpAddr) {
        	_swapTaxAndLiquify();
		}
        if ( sender != address(this) && recipient != address(this) && sender != owner) { require(_checkLimits(recipient, amount), "TX exceeds limits"); }
	    uint256 _taxAmount = _calculateTax(sender, recipient, amount);
	    uint256 _transferAmount = amount.sub(_taxAmount);
	    _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
	    if (_taxAmount > 0) { _balances[address(this)] = _balances[address(this)].add(_taxAmount); }
		_balances[recipient] = _balances[recipient].add(_transferAmount);
		emit Transfer(sender, recipient, amount);
		return true;
	}

	function _approveRouter(uint256 _tokenAmount) internal {
		if (_allowances[address(this)][_uniswapV2RouterAddress] < _tokenAmount) {
			_allowances[address(this)][_uniswapV2RouterAddress] = type(uint256).max;
			emit Approval(address(this), _uniswapV2RouterAddress, type(uint256).max);
		}
	}

	function _swapTaxTokensForEth(uint256 _tokenAmount) private {
		_approveRouter(_tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(_tokenAmount,0,path,address(this),block.timestamp);
    }

    function _distributeTax(uint256 _amount) private {
    	uint16 _taxShareTotal = _taxShares1 + _taxShares2 + _taxShares3;
        if (_taxShares1 > 0) { _taxWallet1.transfer(_amount * _taxShares1 / _taxShareTotal); }
        if (_taxShares2 > 0) { _taxWallet2.transfer(_amount * _taxShares2 / _taxShareTotal); }
        if (_taxShares3 > 0) { _taxWallet3.transfer(_amount * _taxShares3 / _taxShareTotal); }
    }

	function taxSwap() external {
		require(msg.sender == _taxWallet1 || msg.sender == _taxWallet2 || msg.sender == _taxWallet3 || msg.sender == _operator || msg.sender == owner, "403" );
		uint256 taxTokenBalance = balanceOf(address(this));
        require(taxTokenBalance > 0, "No tokens");
		_swapTaxTokensForEth(taxTokenBalance);
	}

	function taxSend() external { 
		require(msg.sender == _taxWallet1 || msg.sender == _taxWallet2 || msg.sender == _taxWallet3 || msg.sender == _operator || msg.sender == owner, "403" );
		_distributeTax(address(this).balance); 
	}

	function toggleTax() external {
		require(msg.sender == _operator || msg.sender == owner, "403");
		taxPaused = !taxPaused;
	}

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint32","name":"smd","type":"uint32"},{"internalType":"uint32","name":"smr","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","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":[{"internalType":"address","name":"holder","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":[{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesWallet1","type":"uint16"},{"internalType":"uint16","name":"sharesWallet2","type":"uint16"},{"internalType":"uint16","name":"sharesWallet3","type":"uint16"}],"name":"changeTaxDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"newBuyTax","type":"uint8"},{"internalType":"uint8","name":"newSellTax","type":"uint8"},{"internalType":"uint8","name":"newTxTax","type":"uint8"}],"name":"decreaseTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"disableFeesFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"enableFeesFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"humanize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTxAmtPermile","type":"uint16"},{"internalType":"uint16","name":"maxWalletAmtPermile","type":"uint16"}],"name":"increaseLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ethAmountWei","type":"uint256"}],"name":"initLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"liquifySniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTaxWall1","type":"address"},{"internalType":"address","name":"newTaxWall2","type":"address"},{"internalType":"address","name":"newTaxWall3","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"sniperBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"snipersCaught","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"taxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minValue","type":"uint32"},{"internalType":"uint32","name":"minDivider","type":"uint32"},{"internalType":"uint32","name":"maxValue","type":"uint32"},{"internalType":"uint32","name":"maxDivider","type":"uint32"}],"name":"taxSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600781526020017f4d79204261677300000000000000000000000000000000000000000000000000815250600190805190602001906200005192919062000781565b506040518060400160405280600681526020017f4d59424147530000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000781565b506000600d60146101000a81548161ffff021916908361ffff160217905550600b600d60166101000a81548160ff021916908360ff16021790555060b4600d601a6101000a81548161ffff021916908361ffff160217905550610334600d601c6101000a81548161ffff021916908361ffff1602179055506000600d601e6101000a81548161ffff021916908361ffff1602179055506000600e60006101000a81548161ffff021916908361ffff1602179055506000600f556000601055736ba89d5efaeb03a1e39c29394ca4cc3444bdbf30601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736ba89d5efaeb03a1e39c29394ca4cc3444bdbf30601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736ba89d5efaeb03a1e39c29394ca4cc3444bdbf30601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601660146101000a81548160ff0219169083151502179055503480156200028457600080fd5b50604051620069bf380380620069bf8339818101604052810190620002aa919062000877565b33806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000600760006101000a81548160ff0219169083151502179055506000600760016101000a81548160ff02191690831515021790555033600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000373919062000a58565b64e8d4a5100062000385919062000aa9565b6008819055506009600a6200039b919062000a58565b64e8d4a51000620003ad919062000aa9565b600981905550612710600a6009600a620003c8919062000a58565b64e8d4a51000620003da919062000aa9565b620003e6919062000aa9565b620003f2919062000b39565b600a8190555061271060326009600a6200040d919062000a58565b64e8d4a510006200041f919062000aa9565b6200042b919062000aa9565b62000437919062000b39565b600b81905550737a250d5630b4cf539739df2c5dacb4c659f2488d601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081600360006101000a81548163ffffffff021916908363ffffffff16021790555080600360046101000a81548163ffffffff021916908363ffffffff1602179055506009600a6200069b919062000a58565b64e8d4a51000620006ad919062000aa9565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000750919062000a58565b64e8d4a5100062000762919062000aa9565b60405162000771919062000b82565b60405180910390a3505062000c04565b8280546200078f9062000bce565b90600052602060002090601f016020900481019282620007b35760008555620007ff565b82601f10620007ce57805160ff1916838001178555620007ff565b82800160010185558215620007ff579182015b82811115620007fe578251825591602001919060010190620007e1565b5b5090506200080e919062000812565b5090565b5b808211156200082d57600081600090555060010162000813565b5090565b600080fd5b600063ffffffff82169050919050565b620008518162000836565b81146200085d57600080fd5b50565b600081519050620008718162000846565b92915050565b6000806040838503121562000891576200089062000831565b5b6000620008a18582860162000860565b9250506020620008b48582860162000860565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200094c57808604811115620009245762000923620008be565b5b6001851615620009345780820291505b80810290506200094485620008ed565b945062000904565b94509492505050565b60008262000967576001905062000a3a565b8162000977576000905062000a3a565b81600181146200099057600281146200099b57620009d1565b600191505062000a3a565b60ff841115620009b057620009af620008be565b5b8360020a915084821115620009ca57620009c9620008be565b5b5062000a3a565b5060208310610133831016604e8410600b841016171562000a0b5782820a90508381111562000a055762000a04620008be565b5b62000a3a565b62000a1a8484846001620008fa565b9250905081840481111562000a345762000a33620008be565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a658262000a41565b915062000a728362000a4b565b925062000aa17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000955565b905092915050565b600062000ab68262000a41565b915062000ac38362000a41565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000aff5762000afe620008be565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b468262000a41565b915062000b538362000a41565b92508262000b665762000b6562000b0a565b5b828204905092915050565b62000b7c8162000a41565b82525050565b600060208201905062000b99600083018462000b71565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000be757607f821691505b6020821081141562000bfe5762000bfd62000b9f565b5b50919050565b615dab8062000c146000396000f3fe6080604052600436106101f15760003560e01c806370a082311161010d578063c9567bf9116100a0578063e79d41601161006f578063e79d4160146106a7578063f2fde38b146106d2578063f32383e9146106fb578063fd9d000014610712578063ffb54a991461074f576101f8565b8063c9567bf914610613578063d0e1f6e71461062a578063d9f0b37014610641578063dd62ed3e1461066a576101f8565b80639fda0581116100dc5780639fda058114610559578063a9059cbb14610582578063aa4bde28146105bf578063b1421803146105ea576101f8565b806370a082311461049b578063893d20e8146104d85780638c0b5e221461050357806395d89b411461052e576101f8565b8063268f72dd116101855780635524a738116101545780635524a738146103f757806360a1f3931461042057806362d79328146104495780636969c1a414610472576101f8565b8063268f72dd14610361578063313ce5671461038c57806331b14d71146103b75780634cdc8da4146103e0576101f8565b806310bf6029116101c157806310bf6029146102cb57806318160ddd146102e25780631cbbe3e41461030d57806323b872dd14610324576101f8565b8062fffc9d146101fd57806306fdde0314610226578063095ea7b3146102515780630f3a325f1461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f919061481a565b61077a565b005b34801561023257600080fd5b5061023b6108f2565b604051610248919061491a565b60405180910390f35b34801561025d57600080fd5b50610278600480360381019061027391906149d0565b610984565b6040516102859190614a2b565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b09190614a46565b610ae7565b6040516102c29190614a2b565b60405180910390f35b3480156102d757600080fd5b506102e0610b42565b005b3480156102ee57600080fd5b506102f7610c54565b6040516103049190614a82565b60405180910390f35b34801561031957600080fd5b50610322610c79565b005b34801561033057600080fd5b5061034b60048036038101906103469190614a9d565b610d13565b6040516103589190614a2b565b60405180910390f35b34801561036d57600080fd5b50610376610f5a565b6040516103839190614a2b565b60405180910390f35b34801561039857600080fd5b506103a1610f6d565b6040516103ae9190614b0c565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d99190614a46565b610f76565b005b3480156103ec57600080fd5b506103f56110b7565b005b34801561040357600080fd5b5061041e60048036038101906104199190614b53565b611301565b005b34801561042c57600080fd5b5061044760048036038101906104429190614be0565b6114d7565b005b34801561045557600080fd5b50610470600480360381019061046b9190614a46565b6116a0565b005b34801561047e57600080fd5b5061049960048036038101906104949190614c47565b6117e1565b005b3480156104a757600080fd5b506104c260048036038101906104bd9190614a46565b611eb4565b6040516104cf9190614a82565b60405180910390f35b3480156104e457600080fd5b506104ed611efd565b6040516104fa9190614c83565b60405180910390f35b34801561050f57600080fd5b50610518611f26565b6040516105259190614a82565b60405180910390f35b34801561053a57600080fd5b50610543611f2c565b604051610550919061491a565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b9190614c9e565b611fbe565b005b34801561058e57600080fd5b506105a960048036038101906105a491906149d0565b612274565b6040516105b69190614a2b565b60405180910390f35b3480156105cb57600080fd5b506105d46122d0565b6040516105e19190614a82565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190614cf1565b6122d6565b005b34801561061f57600080fd5b506106286124d6565b005b34801561063657600080fd5b5061063f61256e565b005b34801561064d57600080fd5b5061066860048036038101906106639190614a46565b612767565b005b34801561067657600080fd5b50610691600480360381019061068c9190614d31565b612ae4565b60405161069e9190614a82565b60405180910390f35b3480156106b357600080fd5b506106bc612b6b565b6040516106c99190614d80565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190614dd9565b612b7f565b005b34801561070757600080fd5b50610710612c87565b005b34801561071e57600080fd5b5061073960048036038101906107349190614a46565b612d77565b6040516107469190614a82565b60405180910390f35b34801561075b57600080fd5b50610764612dc0565b6040516107719190614a2b565b60405180910390f35b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610821575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085790614e52565b60405180910390fd5b8263ffffffff168463ffffffff166009600a61087c9190614fd4565b64e8d4a5100061088c919061501f565b610896919061501f565b6108a091906150a8565b600a819055508063ffffffff168263ffffffff166009600a6108c29190614fd4565b64e8d4a510006108d2919061501f565b6108dc919061501f565b6108e691906150a8565b600b8190555050505050565b60606001805461090190615108565b80601f016020809104026020016040519081016040528092919081815260200182805461092d90615108565b801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050905090565b6000436010541180156109e7575060001515601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b156109f7576109f63343612dd3565b5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ad59190614a82565b60405180910390a36001905092915050565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b385760019050610b3d565b600090505b919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610be9575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90614e52565b60405180910390fd5b600760019054906101000a900460ff1615600760016101000a81548160ff021916908315150217905550565b60006009600a610c649190614fd4565b64e8d4a51000610c74919061501f565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe906151ac565b60405180910390fd5b610d116000612efb565b565b6000610d1d612f2b565b610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390615218565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f4657610ec5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fb89092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f5184848461301c565b90509392505050565b600760019054906101000a900460ff1681565b60006009905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061101d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61105c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105390614e52565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111605750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806111b85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806112105750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611266575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90614e52565b60405180910390fd5b60006112b030611eb4565b9050600081116112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90615284565b60405180910390fd5b6112fe816136db565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113a8575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90614e52565b60405180910390fd5b600d60179054906101000a900460ff1660ff168360ff16111580156114215750600d60189054906101000a900460ff1660ff168260ff1611155b80156114425750600d60199054906101000a900460ff1660ff168160ff1611155b611481576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611478906152f0565b60405180910390fd5b82600d60176101000a81548160ff021916908360ff16021790555081600d60186101000a81548160ff021916908360ff16021790555080600d60196101000a81548160ff021916908360ff160217905550505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061157e575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b490614e52565b60405180910390fd5b6103e8818385876115ce9190615310565b6115d89190615310565b6115e29190615310565b61ffff1614611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d90615394565b60405180910390fd5b83600d601a6101000a81548161ffff021916908361ffff16021790555082600d601c6101000a81548161ffff021916908361ffff16021790555081600d601e6101000a81548161ffff021916908361ffff16021790555080600e60006101000a81548161ffff021916908361ffff16021790555050505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611747575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d90614e52565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461186f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611866906151ac565b60405180910390fd5b600760009054906101000a900460ff16156118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b690615400565b60405180910390fd5b60008111611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f99061546c565b60405180910390fd5b6001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ba13060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460196009600a611b789190614fd4565b64e8d4a51000611b88919061501f565b611b92919061501f565b611b9c91906150a8565b61301c565b50600047905081811015611bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be1906154d8565b60405180910390fd5b6000611bf530611eb4565b905060008111611c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3190615544565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccb9190615579565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d789190615579565b6040518363ffffffff1660e01b8152600401611d959291906155a6565b6020604051808303816000875af1158015611db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd89190615579565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160116000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611e9b816138fa565b611ea781846000613ae4565b611eaf613bc9565b505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b606060028054611f3b90615108565b80601f0160208091040260200160405190810160405280929190818152602001828054611f6790615108565b8015611fb45780601f10611f8957610100808354040283529160200191611fb4565b820191906000526020600020905b815481529060010190602001808311611f9757829003601f168201915b5050505050905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612065575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6120a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209b90614e52565b60405180910390fd5b82601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b600061227e612f2b565b6122bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b49061561b565b60405180910390fd5b6122c833848461301c565b905092915050565b60095481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061237d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6123bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b390614e52565b60405180910390fd5b60006103e88361ffff166009600a6123d49190614fd4565b64e8d4a510006123e4919061501f565b6123ee919061501f565b6123f891906150a8565b905060085481101561243f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243690615687565b60405180910390fd5b8060088190555060006103e88361ffff166009600a61245e9190614fd4565b64e8d4a5100061246e919061501f565b612478919061501f565b61248291906150a8565b90506009548110156124c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c0906156f3565b60405180910390fd5b8060098190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b906151ac565b60405180910390fd5b61256c613bc9565b565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806126175750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061266f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806126c75750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061271d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61275c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275390614e52565b60405180910390fd5b61276547613d52565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ec906151ac565b60405180910390fd5b6001601660146101000a81548160ff0219169083151502179055506000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288a9061575f565b60405180910390fd5b600061289e82611eb4565b9050600081116128e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128da90615544565b60405180910390fd5b61293581600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fc090919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129ca81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a6a9190614a82565b60405180910390a360006001600283612a8391906150a8565b612a8d919061577f565b90506000479050612a9d826136db565b60008147612aab919061577f565b9050612ab6836138fa565b612ac283826001613ae4565b505050506000601660146101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60149054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c04906151ac565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051612c7c9190615812565b60405180910390a150565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612d2e575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6490614e52565b60405180910390fd5b612d75614068565b565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900460ff1681565b60001515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015612e7257506000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612ef75780601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d601481819054906101000a900461ffff1680929190612edb9061582d565b91906101000a81548161ffff021916908361ffff160217905550505b5050565b436010541180612f0d57506000601054145b15612f28578060ff1643612f219190615858565b6010819055505b50565b6000806000905060011515600760009054906101000a900460ff1615151415612f575760019050612fb1565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612fb057600190505b5b8091505090565b6000838311158290613000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff7919061491a565b60405180910390fd5b506000838561300f919061577f565b9050809150509392505050565b600043601054111561313757600360049054906101000a900463ffffffff1663ffffffff16600360009054906101000a900463ffffffff1663ffffffff168461306591906158ae565b73ffffffffffffffffffffffffffffffffffffffff1614156130905761308b6001612efb565b613132565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156130e7576130e28343612dd3565b613131565b61313083601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd3565b5b5b6131c9565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146131c8576131c783601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd3565b5b5b60011515600760009054906101000a900460ff16151514801561322c57506000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b8015613276575043601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b156132b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ad9061592b565b60405180910390fd5b60001515601660149054906101000a900460ff1615151480156133265750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15613334576133336140e8565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561339c57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156133f4575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15613443576134038383614274565b613442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161343990615997565b60405180910390fd5b5b6000613450858585614370565b905060006134678285613fc090919063ffffffff16565b90506134f2846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fb89092919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008211156135d45761359082600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61362681600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516136c69190614a82565b60405180910390a36001925050509392505050565b6136e4816138fa565b6000600267ffffffffffffffff811115613701576137006159b7565b5b60405190808252806020026020018201604052801561372f5781602001602082028036833780820191505090505b5090503081600081518110613747576137466159e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138129190615579565b81600181518110613826576138256159e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016138c4959493929190615b0e565b600060405180830381600087803b1580156138de57600080fd5b505af11580156138f2573d6000803e3d6000fd5b505050505050565b80600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613ae1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613ad89190614a82565b60405180910390a35b50565b60008015158215151415613b165760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b8152600401613b7d96959493929190615b68565b60606040518083038185885af1158015613b9b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613bc09190615bde565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c5290615c7d565b60405180910390fd5b426013819055506001601354600f54613c749190615858565b613c7e919061577f565b600f81905550600543613c91919061501f565b6010819055506103e86009600a613ca89190614fd4565b64e8d4a51000613cb8919061501f565b6005613cc4919061501f565b613cce91906150a8565b6008819055506103e86009600a613ce59190614fd4565b64e8d4a51000613cf5919061501f565b6005613d01919061501f565b613d0b91906150a8565b600981905550613d19614068565b6019600d60186101000a81548160ff021916908360ff1602179055506001600760006101000a81548160ff021916908315150217905550565b6000600e60009054906101000a900461ffff16600d601e9054906101000a900461ffff16600d601c9054906101000a900461ffff16613d919190615310565b613d9b9190615310565b90506000600d601c9054906101000a900461ffff1661ffff161115613e5257601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d601c9054906101000a900461ffff1661ffff1685613e1b919061501f565b613e2591906150a8565b9081150290604051600060405180830381858888f19350505050158015613e50573d6000803e3d6000fd5b505b6000600d601e9054906101000a900461ffff1661ffff161115613f0757601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d601e9054906101000a900461ffff1661ffff1685613ed0919061501f565b613eda91906150a8565b9081150290604051600060405180830381858888f19350505050158015613f05573d6000803e3d6000fd5b505b6000600e60009054906101000a900461ffff1661ffff161115613fbc57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600e60009054906101000a900461ffff1661ffff1685613f85919061501f565b613f8f91906150a8565b9081150290604051600060405180830381858888f19350505050158015613fba573d6000803e3d6000fd5b505b5050565b600061400283836040518060400160405280601481526020017f5375627472616374696f6e206f766572666c6f77000000000000000000000000815250612fb8565b905092915050565b60008082846140199190615858565b90508381101561405e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161405590615ce9565b60405180910390fd5b8091505092915050565b600d60169054906101000a900460ff16600d60176101000a81548160ff021916908360ff160217905550600d60169054906101000a900460ff16600d60186101000a81548160ff021916908360ff160217905550600d60169054906101000a900460ff16600d60196101000a81548160ff021916908360ff160217905550565b6001601660146101000a81548160ff021916908315150217905550600061410e30611eb4565b9050600a548110158015614135575060011515600760009054906101000a900460ff161515145b8015614154575060001515600760019054906101000a900460ff161515145b1561425657600b54811061416857600b5490505b600060026103e8600d601a9054906101000a900461ffff1661ffff168461418f919061501f565b61419991906150a8565b6141a391906150a8565b9050600081836141b3919061577f565b905060004790506141c3826136db565b600081476141d1919061577f565b90506000600d601a9054906101000a900461ffff1661ffff1611156142385760006103e8600d601a9054906101000a900461ffff1661ffff1683614215919061501f565b61421f91906150a8565b905061422a856138fa565b61423685826001613ae4565b505b600047905060008111156142505761424f81613d52565b5b50505050505b506000601660146101000a81548160ff021916908315150217905550565b6000806001905060011515600760009054906101000a900460ff1615151415614366576008548311156142aa5760009050614365565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561435a575060095461435884600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b115b1561436457600090505b5b5b8091505092915050565b60008060011515600760009054906101000a900460ff1615151480156143975750600f5442105b156143ca576143c360646143b56062866146b190919063ffffffff16565b61472c90919063ffffffff16565b90506146a6565b60011515600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480614479575060011515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80614497575060001515600760009054906101000a900460ff161515145b806144b5575060011515600760019054906101000a900460ff161515145b156144c357600090506146a5565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015614521575042601354115b1561452f57600090506146a4565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561458e57504260135411155b156145d2576145cb60646145bd600d60179054906101000a900460ff1660ff16866146b190919063ffffffff16565b61472c90919063ffffffff16565b90506146a3565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614667576146606064614652600d60189054906101000a900460ff1660ff16866146b190919063ffffffff16565b61472c90919063ffffffff16565b90506146a2565b61469f6064614691600d60199054906101000a900460ff1660ff16866146b190919063ffffffff16565b61472c90919063ffffffff16565b90505b5b5b5b5b809150509392505050565b6000808314156146c45760009050614726565b600082846146d2919061501f565b90508284826146e191906150a8565b14614721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161471890615d55565b60405180910390fd5b809150505b92915050565b600061476e83836040518060400160405280601081526020017f4469766973696f6e206279207a65726f00000000000000000000000000000000815250614776565b905092915050565b600080831182906147bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016147b4919061491a565b60405180910390fd5b50600083856147cc91906150a8565b9050809150509392505050565b600080fd5b600063ffffffff82169050919050565b6147f7816147de565b811461480257600080fd5b50565b600081359050614814816147ee565b92915050565b60008060008060808587031215614834576148336147d9565b5b600061484287828801614805565b945050602061485387828801614805565b935050604061486487828801614805565b925050606061487587828801614805565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b838110156148bb5780820151818401526020810190506148a0565b838111156148ca576000848401525b50505050565b6000601f19601f8301169050919050565b60006148ec82614881565b6148f6818561488c565b935061490681856020860161489d565b61490f816148d0565b840191505092915050565b6000602082019050818103600083015261493481846148e1565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006149678261493c565b9050919050565b6149778161495c565b811461498257600080fd5b50565b6000813590506149948161496e565b92915050565b6000819050919050565b6149ad8161499a565b81146149b857600080fd5b50565b6000813590506149ca816149a4565b92915050565b600080604083850312156149e7576149e66147d9565b5b60006149f585828601614985565b9250506020614a06858286016149bb565b9150509250929050565b60008115159050919050565b614a2581614a10565b82525050565b6000602082019050614a406000830184614a1c565b92915050565b600060208284031215614a5c57614a5b6147d9565b5b6000614a6a84828501614985565b91505092915050565b614a7c8161499a565b82525050565b6000602082019050614a976000830184614a73565b92915050565b600080600060608486031215614ab657614ab56147d9565b5b6000614ac486828701614985565b9350506020614ad586828701614985565b9250506040614ae6868287016149bb565b9150509250925092565b600060ff82169050919050565b614b0681614af0565b82525050565b6000602082019050614b216000830184614afd565b92915050565b614b3081614af0565b8114614b3b57600080fd5b50565b600081359050614b4d81614b27565b92915050565b600080600060608486031215614b6c57614b6b6147d9565b5b6000614b7a86828701614b3e565b9350506020614b8b86828701614b3e565b9250506040614b9c86828701614b3e565b9150509250925092565b600061ffff82169050919050565b614bbd81614ba6565b8114614bc857600080fd5b50565b600081359050614bda81614bb4565b92915050565b60008060008060808587031215614bfa57614bf96147d9565b5b6000614c0887828801614bcb565b9450506020614c1987828801614bcb565b9350506040614c2a87828801614bcb565b9250506060614c3b87828801614bcb565b91505092959194509250565b600060208284031215614c5d57614c5c6147d9565b5b6000614c6b848285016149bb565b91505092915050565b614c7d8161495c565b82525050565b6000602082019050614c986000830184614c74565b92915050565b600080600060608486031215614cb757614cb66147d9565b5b6000614cc586828701614985565b9350506020614cd686828701614985565b9250506040614ce786828701614985565b9150509250925092565b60008060408385031215614d0857614d076147d9565b5b6000614d1685828601614bcb565b9250506020614d2785828601614bcb565b9150509250929050565b60008060408385031215614d4857614d476147d9565b5b6000614d5685828601614985565b9250506020614d6785828601614985565b9150509250929050565b614d7a81614ba6565b82525050565b6000602082019050614d956000830184614d71565b92915050565b6000614da68261493c565b9050919050565b614db681614d9b565b8114614dc157600080fd5b50565b600081359050614dd381614dad565b92915050565b600060208284031215614def57614dee6147d9565b5b6000614dfd84828501614dc4565b91505092915050565b7f3430330000000000000000000000000000000000000000000000000000000000600082015250565b6000614e3c60038361488c565b9150614e4782614e06565b602082019050919050565b60006020820190508181036000830152614e6b81614e2f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115614ef857808604811115614ed457614ed3614e72565b5b6001851615614ee35780820291505b8081029050614ef185614ea1565b9450614eb8565b94509492505050565b600082614f115760019050614fcd565b81614f1f5760009050614fcd565b8160018114614f355760028114614f3f57614f6e565b6001915050614fcd565b60ff841115614f5157614f50614e72565b5b8360020a915084821115614f6857614f67614e72565b5b50614fcd565b5060208310610133831016604e8410600b8410161715614fa35782820a905083811115614f9e57614f9d614e72565b5b614fcd565b614fb08484846001614eae565b92509050818404811115614fc757614fc6614e72565b5b81810290505b9392505050565b6000614fdf8261499a565b9150614fea83614af0565b92506150177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614f01565b905092915050565b600061502a8261499a565b91506150358361499a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561506e5761506d614e72565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006150b38261499a565b91506150be8361499a565b9250826150ce576150cd615079565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061512057607f821691505b60208210811415615134576151336150d9565b5b50919050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000615196602a8361488c565b91506151a18261513a565b604082019050919050565b600060208201905081810360008301526151c581615189565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b600061520260108361488c565b915061520d826151cc565b602082019050919050565b60006020820190508181036000830152615231816151f5565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b600061526e60098361488c565b915061527982615238565b602082019050919050565b6000602082019050818103600083015261529d81615261565b9050919050565b7f4e657720746178206d757374206265206c6f7765720000000000000000000000600082015250565b60006152da60158361488c565b91506152e5826152a4565b602082019050919050565b60006020820190508181036000830152615309816152cd565b9050919050565b600061531b82614ba6565b915061532683614ba6565b92508261ffff0382111561533d5761533c614e72565b5b828201905092915050565b7f53756d206d757374206265203130303000000000000000000000000000000000600082015250565b600061537e60108361488c565b915061538982615348565b602082019050919050565b600060208201905081810360008301526153ad81615371565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b60006153ea60148361488c565b91506153f5826153b4565b602082019050919050565b60006020820190508181036000830152615419816153dd565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b6000615456600f8361488c565b915061546182615420565b602082019050919050565b6000602082019050818103600083015261548581615449565b9050919050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b60006154c2600e8361488c565b91506154cd8261548c565b602082019050919050565b600060208201905081810360008301526154f1816154b5565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b600061552e60098361488c565b9150615539826154f8565b602082019050919050565b6000602082019050818103600083015261555d81615521565b9050919050565b6000815190506155738161496e565b92915050565b60006020828403121561558f5761558e6147d9565b5b600061559d84828501615564565b91505092915050565b60006040820190506155bb6000830185614c74565b6155c86020830184614c74565b9392505050565b7f74726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b600061560560108361488c565b9150615610826155cf565b602082019050919050565b60006020820190508181036000830152615634816155f8565b9050919050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b600061567160108361488c565b915061567c8261563b565b602082019050919050565b600060208201905081810360008301526156a081615664565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b60006156dd60148361488c565b91506156e8826156a7565b602082019050919050565b6000602082019050818103600083015261570c816156d0565b9050919050565b7f6e6f74206120736e697065720000000000000000000000000000000000000000600082015250565b6000615749600c8361488c565b915061575482615713565b602082019050919050565b600060208201905081810360008301526157788161573c565b9050919050565b600061578a8261499a565b91506157958361499a565b9250828210156157a8576157a7614e72565b5b828203905092915050565b6000819050919050565b60006157d86157d36157ce8461493c565b6157b3565b61493c565b9050919050565b60006157ea826157bd565b9050919050565b60006157fc826157df565b9050919050565b61580c816157f1565b82525050565b60006020820190506158276000830184615803565b92915050565b600061583882614ba6565b915061ffff82141561584d5761584c614e72565b5b600182019050919050565b60006158638261499a565b915061586e8361499a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156158a3576158a2614e72565b5b828201905092915050565b60006158b98261493c565b91506158c48361493c565b9250826158d4576158d3615079565b5b828206905092915050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000615915600b8361488c565b9150615920826158df565b602082019050919050565b6000602082019050818103600083015261594481615908565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b600061598160118361488c565b915061598c8261594b565b602082019050919050565b600060208201905081810360008301526159b081615974565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000615a3a615a35615a3084615a15565b6157b3565b61499a565b9050919050565b615a4a81615a1f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615a858161495c565b82525050565b6000615a978383615a7c565b60208301905092915050565b6000602082019050919050565b6000615abb82615a50565b615ac58185615a5b565b9350615ad083615a6c565b8060005b83811015615b01578151615ae88882615a8b565b9750615af383615aa3565b925050600181019050615ad4565b5085935050505092915050565b600060a082019050615b236000830188614a73565b615b306020830187615a41565b8181036040830152615b428186615ab0565b9050615b516060830185614c74565b615b5e6080830184614a73565b9695505050505050565b600060c082019050615b7d6000830189614c74565b615b8a6020830188614a73565b615b976040830187615a41565b615ba46060830186615a41565b615bb16080830185614c74565b615bbe60a0830184614a73565b979650505050505050565b600081519050615bd8816149a4565b92915050565b600080600060608486031215615bf757615bf66147d9565b5b6000615c0586828701615bc9565b9350506020615c1686828701615bc9565b9250506040615c2786828701615bc9565b9150509250925092565b7f4c50206e6f742073657400000000000000000000000000000000000000000000600082015250565b6000615c67600a8361488c565b9150615c7282615c31565b602082019050919050565b60006020820190508181036000830152615c9681615c5a565b9050919050565b7f4164646974696f6e206f766572666c6f77000000000000000000000000000000600082015250565b6000615cd360118361488c565b9150615cde82615c9d565b602082019050919050565b60006020820190508181036000830152615d0281615cc6565b9050919050565b7f4d756c7469706c69636174696f6e206f766572666c6f77000000000000000000600082015250565b6000615d3f60178361488c565b9150615d4a82615d09565b602082019050919050565b60006020820190508181036000830152615d6e81615d32565b905091905056fea26469706673582212201b9b5f2f9b8215bcdeea612e677612de76973bf8343d924dc733275cbf60782364736f6c634300080b00330000000000000000000000000000000000000000000000000000000028f925b100000000000000000000000000000000000000000000000000000000112494f0

Deployed Bytecode

0x6080604052600436106101f15760003560e01c806370a082311161010d578063c9567bf9116100a0578063e79d41601161006f578063e79d4160146106a7578063f2fde38b146106d2578063f32383e9146106fb578063fd9d000014610712578063ffb54a991461074f576101f8565b8063c9567bf914610613578063d0e1f6e71461062a578063d9f0b37014610641578063dd62ed3e1461066a576101f8565b80639fda0581116100dc5780639fda058114610559578063a9059cbb14610582578063aa4bde28146105bf578063b1421803146105ea576101f8565b806370a082311461049b578063893d20e8146104d85780638c0b5e221461050357806395d89b411461052e576101f8565b8063268f72dd116101855780635524a738116101545780635524a738146103f757806360a1f3931461042057806362d79328146104495780636969c1a414610472576101f8565b8063268f72dd14610361578063313ce5671461038c57806331b14d71146103b75780634cdc8da4146103e0576101f8565b806310bf6029116101c157806310bf6029146102cb57806318160ddd146102e25780631cbbe3e41461030d57806323b872dd14610324576101f8565b8062fffc9d146101fd57806306fdde0314610226578063095ea7b3146102515780630f3a325f1461028e576101f8565b366101f857005b600080fd5b34801561020957600080fd5b50610224600480360381019061021f919061481a565b61077a565b005b34801561023257600080fd5b5061023b6108f2565b604051610248919061491a565b60405180910390f35b34801561025d57600080fd5b50610278600480360381019061027391906149d0565b610984565b6040516102859190614a2b565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b09190614a46565b610ae7565b6040516102c29190614a2b565b60405180910390f35b3480156102d757600080fd5b506102e0610b42565b005b3480156102ee57600080fd5b506102f7610c54565b6040516103049190614a82565b60405180910390f35b34801561031957600080fd5b50610322610c79565b005b34801561033057600080fd5b5061034b60048036038101906103469190614a9d565b610d13565b6040516103589190614a2b565b60405180910390f35b34801561036d57600080fd5b50610376610f5a565b6040516103839190614a2b565b60405180910390f35b34801561039857600080fd5b506103a1610f6d565b6040516103ae9190614b0c565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d99190614a46565b610f76565b005b3480156103ec57600080fd5b506103f56110b7565b005b34801561040357600080fd5b5061041e60048036038101906104199190614b53565b611301565b005b34801561042c57600080fd5b5061044760048036038101906104429190614be0565b6114d7565b005b34801561045557600080fd5b50610470600480360381019061046b9190614a46565b6116a0565b005b34801561047e57600080fd5b5061049960048036038101906104949190614c47565b6117e1565b005b3480156104a757600080fd5b506104c260048036038101906104bd9190614a46565b611eb4565b6040516104cf9190614a82565b60405180910390f35b3480156104e457600080fd5b506104ed611efd565b6040516104fa9190614c83565b60405180910390f35b34801561050f57600080fd5b50610518611f26565b6040516105259190614a82565b60405180910390f35b34801561053a57600080fd5b50610543611f2c565b604051610550919061491a565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b9190614c9e565b611fbe565b005b34801561058e57600080fd5b506105a960048036038101906105a491906149d0565b612274565b6040516105b69190614a2b565b60405180910390f35b3480156105cb57600080fd5b506105d46122d0565b6040516105e19190614a82565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190614cf1565b6122d6565b005b34801561061f57600080fd5b506106286124d6565b005b34801561063657600080fd5b5061063f61256e565b005b34801561064d57600080fd5b5061066860048036038101906106639190614a46565b612767565b005b34801561067657600080fd5b50610691600480360381019061068c9190614d31565b612ae4565b60405161069e9190614a82565b60405180910390f35b3480156106b357600080fd5b506106bc612b6b565b6040516106c99190614d80565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190614dd9565b612b7f565b005b34801561070757600080fd5b50610710612c87565b005b34801561071e57600080fd5b5061073960048036038101906107349190614a46565b612d77565b6040516107469190614a82565b60405180910390f35b34801561075b57600080fd5b50610764612dc0565b6040516107719190614a2b565b60405180910390f35b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610821575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085790614e52565b60405180910390fd5b8263ffffffff168463ffffffff166009600a61087c9190614fd4565b64e8d4a5100061088c919061501f565b610896919061501f565b6108a091906150a8565b600a819055508063ffffffff168263ffffffff166009600a6108c29190614fd4565b64e8d4a510006108d2919061501f565b6108dc919061501f565b6108e691906150a8565b600b8190555050505050565b60606001805461090190615108565b80601f016020809104026020016040519081016040528092919081815260200182805461092d90615108565b801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050905090565b6000436010541180156109e7575060001515601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b156109f7576109f63343612dd3565b5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ad59190614a82565b60405180910390a36001905092915050565b600080601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b385760019050610b3d565b600090505b919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610be9575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1f90614e52565b60405180910390fd5b600760019054906101000a900460ff1615600760016101000a81548160ff021916908315150217905550565b60006009600a610c649190614fd4565b64e8d4a51000610c74919061501f565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe906151ac565b60405180910390fd5b610d116000612efb565b565b6000610d1d612f2b565b610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5390615218565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f4657610ec5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fb89092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f5184848461301c565b90509392505050565b600760019054906101000a900460ff1681565b60006009905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061101d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61105c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105390614e52565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111605750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806111b85750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806112105750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611266575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90614e52565b60405180910390fd5b60006112b030611eb4565b9050600081116112f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ec90615284565b60405180910390fd5b6112fe816136db565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113a8575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90614e52565b60405180910390fd5b600d60179054906101000a900460ff1660ff168360ff16111580156114215750600d60189054906101000a900460ff1660ff168260ff1611155b80156114425750600d60199054906101000a900460ff1660ff168160ff1611155b611481576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611478906152f0565b60405180910390fd5b82600d60176101000a81548160ff021916908360ff16021790555081600d60186101000a81548160ff021916908360ff16021790555080600d60196101000a81548160ff021916908360ff160217905550505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061157e575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6115bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b490614e52565b60405180910390fd5b6103e8818385876115ce9190615310565b6115d89190615310565b6115e29190615310565b61ffff1614611626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161d90615394565b60405180910390fd5b83600d601a6101000a81548161ffff021916908361ffff16021790555082600d601c6101000a81548161ffff021916908361ffff16021790555081600d601e6101000a81548161ffff021916908361ffff16021790555080600e60006101000a81548161ffff021916908361ffff16021790555050505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611747575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d90614e52565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461186f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611866906151ac565b60405180910390fd5b600760009054906101000a900460ff16156118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b690615400565b60405180910390fd5b60008111611902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f99061546c565b60405180910390fd5b6001601160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160116000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ba13060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16606460196009600a611b789190614fd4565b64e8d4a51000611b88919061501f565b611b92919061501f565b611b9c91906150a8565b61301c565b50600047905081811015611bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be1906154d8565b60405180910390fd5b6000611bf530611eb4565b905060008111611c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3190615544565b60405180910390fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ca7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccb9190615579565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d789190615579565b6040518363ffffffff1660e01b8152600401611d959291906155a6565b6020604051808303816000875af1158015611db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd89190615579565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160116000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611e9b816138fa565b611ea781846000613ae4565b611eaf613bc9565b505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b606060028054611f3b90615108565b80601f0160208091040260200160405190810160405280929190818152602001828054611f6790615108565b8015611fb45780601f10611f8957610100808354040283529160200191611fb4565b820191906000526020600020905b815481529060010190602001808311611f9757829003601f168201915b5050505050905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612065575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6120a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209b90614e52565b60405180910390fd5b82601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b600061227e612f2b565b6122bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b49061561b565b60405180910390fd5b6122c833848461301c565b905092915050565b60095481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061237d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6123bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123b390614e52565b60405180910390fd5b60006103e88361ffff166009600a6123d49190614fd4565b64e8d4a510006123e4919061501f565b6123ee919061501f565b6123f891906150a8565b905060085481101561243f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243690615687565b60405180910390fd5b8060088190555060006103e88361ffff166009600a61245e9190614fd4565b64e8d4a5100061246e919061501f565b612478919061501f565b61248291906150a8565b90506009548110156124c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c0906156f3565b60405180910390fd5b8060098190555050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b906151ac565b60405180910390fd5b61256c613bc9565b565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806126175750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061266f5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806126c75750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061271d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61275c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161275390614e52565b60405180910390fd5b61276547613d52565b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ec906151ac565b60405180910390fd5b6001601660146101000a81548160ff0219169083151502179055506000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161288a9061575f565b60405180910390fd5b600061289e82611eb4565b9050600081116128e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128da90615544565b60405180910390fd5b61293581600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613fc090919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129ca81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a6a9190614a82565b60405180910390a360006001600283612a8391906150a8565b612a8d919061577f565b90506000479050612a9d826136db565b60008147612aab919061577f565b9050612ab6836138fa565b612ac283826001613ae4565b505050506000601660146101000a81548160ff02191690831515021790555050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60149054906101000a900461ffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c04906151ac565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051612c7c9190615812565b60405180910390a150565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612d2e575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b612d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6490614e52565b60405180910390fd5b612d75614068565b565b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600760009054906101000a900460ff1681565b60001515601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015612e7257506000601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612ef75780601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d601481819054906101000a900461ffff1680929190612edb9061582d565b91906101000a81548161ffff021916908361ffff160217905550505b5050565b436010541180612f0d57506000601054145b15612f28578060ff1643612f219190615858565b6010819055505b50565b6000806000905060011515600760009054906101000a900460ff1615151415612f575760019050612fb1565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161415612fb057600190505b5b8091505090565b6000838311158290613000576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff7919061491a565b60405180910390fd5b506000838561300f919061577f565b9050809150509392505050565b600043601054111561313757600360049054906101000a900463ffffffff1663ffffffff16600360009054906101000a900463ffffffff1663ffffffff168461306591906158ae565b73ffffffffffffffffffffffffffffffffffffffff1614156130905761308b6001612efb565b613132565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156130e7576130e28343612dd3565b613131565b61313083601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd3565b5b5b6131c9565b6000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146131c8576131c783601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612dd3565b5b5b60011515600760009054906101000a900460ff16151514801561322c57506000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b8015613276575043601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b156132b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ad9061592b565b60405180910390fd5b60001515601660149054906101000a900460ff1615151480156133265750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15613334576133336140e8565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561339c57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156133f4575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15613443576134038383614274565b613442576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161343990615997565b60405180910390fd5b5b6000613450858585614370565b905060006134678285613fc090919063ffffffff16565b90506134f2846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fb89092919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008211156135d45761359082600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61362681600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516136c69190614a82565b60405180910390a36001925050509392505050565b6136e4816138fa565b6000600267ffffffffffffffff811115613701576137006159b7565b5b60405190808252806020026020018201604052801561372f5781602001602082028036833780820191505090505b5090503081600081518110613747576137466159e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138129190615579565b81600181518110613826576138256159e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016138c4959493929190615b0e565b600060405180830381600087803b1580156138de57600080fd5b505af11580156138f2573d6000803e3d6000fd5b505050505050565b80600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613ae1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051613ad89190614a82565b60405180910390a35b50565b60008015158215151415613b165760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b8152600401613b7d96959493929190615b68565b60606040518083038185885af1158015613b9b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613bc09190615bde565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c5290615c7d565b60405180910390fd5b426013819055506001601354600f54613c749190615858565b613c7e919061577f565b600f81905550600543613c91919061501f565b6010819055506103e86009600a613ca89190614fd4565b64e8d4a51000613cb8919061501f565b6005613cc4919061501f565b613cce91906150a8565b6008819055506103e86009600a613ce59190614fd4565b64e8d4a51000613cf5919061501f565b6005613d01919061501f565b613d0b91906150a8565b600981905550613d19614068565b6019600d60186101000a81548160ff021916908360ff1602179055506001600760006101000a81548160ff021916908315150217905550565b6000600e60009054906101000a900461ffff16600d601e9054906101000a900461ffff16600d601c9054906101000a900461ffff16613d919190615310565b613d9b9190615310565b90506000600d601c9054906101000a900461ffff1661ffff161115613e5257601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d601c9054906101000a900461ffff1661ffff1685613e1b919061501f565b613e2591906150a8565b9081150290604051600060405180830381858888f19350505050158015613e50573d6000803e3d6000fd5b505b6000600d601e9054906101000a900461ffff1661ffff161115613f0757601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600d601e9054906101000a900461ffff1661ffff1685613ed0919061501f565b613eda91906150a8565b9081150290604051600060405180830381858888f19350505050158015613f05573d6000803e3d6000fd5b505b6000600e60009054906101000a900461ffff1661ffff161115613fbc57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8261ffff16600e60009054906101000a900461ffff1661ffff1685613f85919061501f565b613f8f91906150a8565b9081150290604051600060405180830381858888f19350505050158015613fba573d6000803e3d6000fd5b505b5050565b600061400283836040518060400160405280601481526020017f5375627472616374696f6e206f766572666c6f77000000000000000000000000815250612fb8565b905092915050565b60008082846140199190615858565b90508381101561405e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161405590615ce9565b60405180910390fd5b8091505092915050565b600d60169054906101000a900460ff16600d60176101000a81548160ff021916908360ff160217905550600d60169054906101000a900460ff16600d60186101000a81548160ff021916908360ff160217905550600d60169054906101000a900460ff16600d60196101000a81548160ff021916908360ff160217905550565b6001601660146101000a81548160ff021916908315150217905550600061410e30611eb4565b9050600a548110158015614135575060011515600760009054906101000a900460ff161515145b8015614154575060001515600760019054906101000a900460ff161515145b1561425657600b54811061416857600b5490505b600060026103e8600d601a9054906101000a900461ffff1661ffff168461418f919061501f565b61419991906150a8565b6141a391906150a8565b9050600081836141b3919061577f565b905060004790506141c3826136db565b600081476141d1919061577f565b90506000600d601a9054906101000a900461ffff1661ffff1611156142385760006103e8600d601a9054906101000a900461ffff1661ffff1683614215919061501f565b61421f91906150a8565b905061422a856138fa565b61423685826001613ae4565b505b600047905060008111156142505761424f81613d52565b5b50505050505b506000601660146101000a81548160ff021916908315150217905550565b6000806001905060011515600760009054906101000a900460ff1615151415614366576008548311156142aa5760009050614365565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561435a575060095461435884600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461400a90919063ffffffff16565b115b1561436457600090505b5b5b8091505092915050565b60008060011515600760009054906101000a900460ff1615151480156143975750600f5442105b156143ca576143c360646143b56062866146b190919063ffffffff16565b61472c90919063ffffffff16565b90506146a6565b60011515600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480614479575060011515600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80614497575060001515600760009054906101000a900460ff161515145b806144b5575060011515600760019054906101000a900460ff161515145b156144c357600090506146a5565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015614521575042601354115b1561452f57600090506146a4565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561458e57504260135411155b156145d2576145cb60646145bd600d60179054906101000a900460ff1660ff16866146b190919063ffffffff16565b61472c90919063ffffffff16565b90506146a3565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614667576146606064614652600d60189054906101000a900460ff1660ff16866146b190919063ffffffff16565b61472c90919063ffffffff16565b90506146a2565b61469f6064614691600d60199054906101000a900460ff1660ff16866146b190919063ffffffff16565b61472c90919063ffffffff16565b90505b5b5b5b5b809150509392505050565b6000808314156146c45760009050614726565b600082846146d2919061501f565b90508284826146e191906150a8565b14614721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161471890615d55565b60405180910390fd5b809150505b92915050565b600061476e83836040518060400160405280601081526020017f4469766973696f6e206279207a65726f00000000000000000000000000000000815250614776565b905092915050565b600080831182906147bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016147b4919061491a565b60405180910390fd5b50600083856147cc91906150a8565b9050809150509392505050565b600080fd5b600063ffffffff82169050919050565b6147f7816147de565b811461480257600080fd5b50565b600081359050614814816147ee565b92915050565b60008060008060808587031215614834576148336147d9565b5b600061484287828801614805565b945050602061485387828801614805565b935050604061486487828801614805565b925050606061487587828801614805565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b60005b838110156148bb5780820151818401526020810190506148a0565b838111156148ca576000848401525b50505050565b6000601f19601f8301169050919050565b60006148ec82614881565b6148f6818561488c565b935061490681856020860161489d565b61490f816148d0565b840191505092915050565b6000602082019050818103600083015261493481846148e1565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006149678261493c565b9050919050565b6149778161495c565b811461498257600080fd5b50565b6000813590506149948161496e565b92915050565b6000819050919050565b6149ad8161499a565b81146149b857600080fd5b50565b6000813590506149ca816149a4565b92915050565b600080604083850312156149e7576149e66147d9565b5b60006149f585828601614985565b9250506020614a06858286016149bb565b9150509250929050565b60008115159050919050565b614a2581614a10565b82525050565b6000602082019050614a406000830184614a1c565b92915050565b600060208284031215614a5c57614a5b6147d9565b5b6000614a6a84828501614985565b91505092915050565b614a7c8161499a565b82525050565b6000602082019050614a976000830184614a73565b92915050565b600080600060608486031215614ab657614ab56147d9565b5b6000614ac486828701614985565b9350506020614ad586828701614985565b9250506040614ae6868287016149bb565b9150509250925092565b600060ff82169050919050565b614b0681614af0565b82525050565b6000602082019050614b216000830184614afd565b92915050565b614b3081614af0565b8114614b3b57600080fd5b50565b600081359050614b4d81614b27565b92915050565b600080600060608486031215614b6c57614b6b6147d9565b5b6000614b7a86828701614b3e565b9350506020614b8b86828701614b3e565b9250506040614b9c86828701614b3e565b9150509250925092565b600061ffff82169050919050565b614bbd81614ba6565b8114614bc857600080fd5b50565b600081359050614bda81614bb4565b92915050565b60008060008060808587031215614bfa57614bf96147d9565b5b6000614c0887828801614bcb565b9450506020614c1987828801614bcb565b9350506040614c2a87828801614bcb565b9250506060614c3b87828801614bcb565b91505092959194509250565b600060208284031215614c5d57614c5c6147d9565b5b6000614c6b848285016149bb565b91505092915050565b614c7d8161495c565b82525050565b6000602082019050614c986000830184614c74565b92915050565b600080600060608486031215614cb757614cb66147d9565b5b6000614cc586828701614985565b9350506020614cd686828701614985565b9250506040614ce786828701614985565b9150509250925092565b60008060408385031215614d0857614d076147d9565b5b6000614d1685828601614bcb565b9250506020614d2785828601614bcb565b9150509250929050565b60008060408385031215614d4857614d476147d9565b5b6000614d5685828601614985565b9250506020614d6785828601614985565b9150509250929050565b614d7a81614ba6565b82525050565b6000602082019050614d956000830184614d71565b92915050565b6000614da68261493c565b9050919050565b614db681614d9b565b8114614dc157600080fd5b50565b600081359050614dd381614dad565b92915050565b600060208284031215614def57614dee6147d9565b5b6000614dfd84828501614dc4565b91505092915050565b7f3430330000000000000000000000000000000000000000000000000000000000600082015250565b6000614e3c60038361488c565b9150614e4782614e06565b602082019050919050565b60006020820190508181036000830152614e6b81614e2f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115614ef857808604811115614ed457614ed3614e72565b5b6001851615614ee35780820291505b8081029050614ef185614ea1565b9450614eb8565b94509492505050565b600082614f115760019050614fcd565b81614f1f5760009050614fcd565b8160018114614f355760028114614f3f57614f6e565b6001915050614fcd565b60ff841115614f5157614f50614e72565b5b8360020a915084821115614f6857614f67614e72565b5b50614fcd565b5060208310610133831016604e8410600b8410161715614fa35782820a905083811115614f9e57614f9d614e72565b5b614fcd565b614fb08484846001614eae565b92509050818404811115614fc757614fc6614e72565b5b81810290505b9392505050565b6000614fdf8261499a565b9150614fea83614af0565b92506150177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614f01565b905092915050565b600061502a8261499a565b91506150358361499a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561506e5761506d614e72565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006150b38261499a565b91506150be8361499a565b9250826150ce576150cd615079565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061512057607f821691505b60208210811415615134576151336150d9565b5b50919050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000615196602a8361488c565b91506151a18261513a565b604082019050919050565b600060208201905081810360008301526151c581615189565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b600061520260108361488c565b915061520d826151cc565b602082019050919050565b60006020820190508181036000830152615231816151f5565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b600061526e60098361488c565b915061527982615238565b602082019050919050565b6000602082019050818103600083015261529d81615261565b9050919050565b7f4e657720746178206d757374206265206c6f7765720000000000000000000000600082015250565b60006152da60158361488c565b91506152e5826152a4565b602082019050919050565b60006020820190508181036000830152615309816152cd565b9050919050565b600061531b82614ba6565b915061532683614ba6565b92508261ffff0382111561533d5761533c614e72565b5b828201905092915050565b7f53756d206d757374206265203130303000000000000000000000000000000000600082015250565b600061537e60108361488c565b915061538982615348565b602082019050919050565b600060208201905081810360008301526153ad81615371565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b60006153ea60148361488c565b91506153f5826153b4565b602082019050919050565b60006020820190508181036000830152615419816153dd565b9050919050565b7f6574682063616e6e6f7420626520300000000000000000000000000000000000600082015250565b6000615456600f8361488c565b915061546182615420565b602082019050919050565b6000602082019050818103600083015261548581615449565b9050919050565b7f6e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b60006154c2600e8361488c565b91506154cd8261548c565b602082019050919050565b600060208201905081810360008301526154f1816154b5565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b600061552e60098361488c565b9150615539826154f8565b602082019050919050565b6000602082019050818103600083015261555d81615521565b9050919050565b6000815190506155738161496e565b92915050565b60006020828403121561558f5761558e6147d9565b5b600061559d84828501615564565b91505092915050565b60006040820190506155bb6000830185614c74565b6155c86020830184614c74565b9392505050565b7f74726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b600061560560108361488c565b9150615610826155cf565b602082019050919050565b60006020820190508181036000830152615634816155f8565b9050919050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b600061567160108361488c565b915061567c8261563b565b602082019050919050565b600060208201905081810360008301526156a081615664565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b60006156dd60148361488c565b91506156e8826156a7565b602082019050919050565b6000602082019050818103600083015261570c816156d0565b9050919050565b7f6e6f74206120736e697065720000000000000000000000000000000000000000600082015250565b6000615749600c8361488c565b915061575482615713565b602082019050919050565b600060208201905081810360008301526157788161573c565b9050919050565b600061578a8261499a565b91506157958361499a565b9250828210156157a8576157a7614e72565b5b828203905092915050565b6000819050919050565b60006157d86157d36157ce8461493c565b6157b3565b61493c565b9050919050565b60006157ea826157bd565b9050919050565b60006157fc826157df565b9050919050565b61580c816157f1565b82525050565b60006020820190506158276000830184615803565b92915050565b600061583882614ba6565b915061ffff82141561584d5761584c614e72565b5b600182019050919050565b60006158638261499a565b915061586e8361499a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156158a3576158a2614e72565b5b828201905092915050565b60006158b98261493c565b91506158c48361493c565b9250826158d4576158d3615079565b5b828206905092915050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000615915600b8361488c565b9150615920826158df565b602082019050919050565b6000602082019050818103600083015261594481615908565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b600061598160118361488c565b915061598c8261594b565b602082019050919050565b600060208201905081810360008301526159b081615974565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000615a3a615a35615a3084615a15565b6157b3565b61499a565b9050919050565b615a4a81615a1f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615a858161495c565b82525050565b6000615a978383615a7c565b60208301905092915050565b6000602082019050919050565b6000615abb82615a50565b615ac58185615a5b565b9350615ad083615a6c565b8060005b83811015615b01578151615ae88882615a8b565b9750615af383615aa3565b925050600181019050615ad4565b5085935050505092915050565b600060a082019050615b236000830188614a73565b615b306020830187615a41565b8181036040830152615b428186615ab0565b9050615b516060830185614c74565b615b5e6080830184614a73565b9695505050505050565b600060c082019050615b7d6000830189614c74565b615b8a6020830188614a73565b615b976040830187615a41565b615ba46060830186615a41565b615bb16080830185614c74565b615bbe60a0830184614a73565b979650505050505050565b600081519050615bd8816149a4565b92915050565b600080600060608486031215615bf757615bf66147d9565b5b6000615c0586828701615bc9565b9350506020615c1686828701615bc9565b9250506040615c2786828701615bc9565b9150509250925092565b7f4c50206e6f742073657400000000000000000000000000000000000000000000600082015250565b6000615c67600a8361488c565b9150615c7282615c31565b602082019050919050565b60006020820190508181036000830152615c9681615c5a565b9050919050565b7f4164646974696f6e206f766572666c6f77000000000000000000000000000000600082015250565b6000615cd360118361488c565b9150615cde82615c9d565b602082019050919050565b60006020820190508181036000830152615d0281615cc6565b9050919050565b7f4d756c7469706c69636174696f6e206f766572666c6f77000000000000000000600082015250565b6000615d3f60178361488c565b9150615d4a82615d09565b602082019050919050565b60006020820190508181036000830152615d6e81615d32565b905091905056fea26469706673582212201b9b5f2f9b8215bcdeea612e677612de76973bf8343d924dc733275cbf60782364736f6c634300080b0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000000000000000028f925b100000000000000000000000000000000000000000000000000000000112494f0

-----Decoded View---------------
Arg [0] : smd (uint32): 687416753
Arg [1] : smr (uint32): 287610096

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000028f925b1
Arg [1] : 00000000000000000000000000000000000000000000000000000000112494f0


Deployed Bytecode Sourcemap

7231:15502:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11589:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9928:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14010:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12134:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22599:129;;;;;;;;;;;;;:::i;:::-;;9667:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15858:66;;;;;;;;;;;;;:::i;:::-;;16104:397;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7682:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9758:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12393:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22020:337;;;;;;;;;;;;;:::i;:::-;;12722:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13101:464;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12555:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10338:914;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10092:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10011:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7710:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9841:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13577:428;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14332:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7738:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14547:514;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15069:71;;;;;;;;;;;;;:::i;:::-;;22362:232;;;;;;;;;;;;;:::i;:::-;;17739:735;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10200:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7900:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6408:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11882:117;;;;;;;;;;;;;:::i;:::-;;12283:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7652:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11589:288;11722:9;;;;;;;;;;;11708:23;;:10;:23;;;:46;;;;11749:5;;;;;;;;;;11735:19;;:10;:19;;;11708:46;11700:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;11807:10;11781:36;;11796:8;11781:23;;7449:1;7402:2;:15;;;;:::i;:::-;7386:12;:32;;;;:::i;:::-;11781:23;;;;:::i;:::-;:36;;;;:::i;:::-;11767:11;:50;;;;11862:10;11836:36;;11851:8;11836:23;;7449:1;7402:2;:15;;;;:::i;:::-;7386:12;:32;;;;:::i;:::-;11836:23;;;;:::i;:::-;:36;;;;:::i;:::-;11822:11;:50;;;;11589:288;;;;:::o;9928:80::-;9976:13;10000:5;9993:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9928:80;:::o;14010:317::-;14085:4;14114:12;14100:11;;:26;:61;;;;;14156:5;14130:31;;:10;:22;14141:10;14130:22;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;14100:61;14096:116;;;14169:37;14181:10;14193:12;14169:11;:37::i;:::-;14096:116;14253:6;14218:11;:23;14230:10;14218:23;;;;;;;;;;;;;;;:32;14242:7;14218:32;;;;;;;;;;;;;;;:41;;;;14290:7;14269:37;;14278:10;14269:37;;;14299:6;14269:37;;;;;;:::i;:::-;;;;;;;;14318:4;14311:11;;14010:317;;;;:::o;12134:144::-;12190:4;12229:1;12205:12;:20;12218:6;12205:20;;;;;;;;;;;;;;;;:25;12201:73;;12241:4;12234:11;;;;12201:73;12266:5;12259:12;;12134:144;;;;:::o;22599:129::-;22656:9;;;;;;;;;;;22642:23;;:10;:23;;;:46;;;;22683:5;;;;;;;;;;22669:19;;:10;:19;;;22642:46;22634:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;22714:9;;;;;;;;;;;22713:10;22701:9;;:22;;;;;;;;;;;;;;;;;;22599:129::o;9667:88::-;9722:7;7449:1;7402:2;:15;;;;:::i;:::-;7386:12;:32;;;;:::i;:::-;9733:19;;9667:88;:::o;15858:66::-;6347:5;;;;;;;;;;6333:19;;:10;:19;;;6325:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15907:12:::1;15917:1;15907:9;:12::i;:::-;15858:66::o:0;16104:397::-;16204:4;16229:19;:17;:19::i;:::-;16221:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;16312:17;16277:11;:19;16289:6;16277:19;;;;;;;;;;;;;;;:31;16297:10;16277:31;;;;;;;;;;;;;;;;:52;16274:171;;16370:69;16406:6;16370:69;;;;;;;;;;;;;;;;;:11;:19;16382:6;16370:19;;;;;;;;;;;;;;;:31;16390:10;16370:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;16336:11;:19;16348:6;16336:19;;;;;;;;;;;;;;;:31;16356:10;16336:31;;;;;;;;;;;;;;;:103;;;;16274:171;16456:40;16470:6;16478:9;16489:6;16456:13;:40::i;:::-;16449:47;;16104:397;;;;;:::o;7682:21::-;;;;;;;;;;;;;:::o;9758:80::-;9810:5;7449:1;9819:16;;9758:80;:::o;12393:159::-;12469:9;;;;;;;;;;;12455:23;;:10;:23;;;:46;;;;12496:5;;;;;;;;;;12482:19;;:10;:19;;;12455:46;12447:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;12543:4;12514:16;:26;12532:6;12514:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;12393:159;:::o;22020:337::-;22075:11;;;;;;;;;;;22061:25;;:10;:25;;;:54;;;;22104:11;;;;;;;;;;;22090:25;;:10;:25;;;22061:54;:83;;;;22133:11;;;;;;;;;;;22119:25;;:10;:25;;;22061:83;:110;;;;22162:9;;;;;;;;;;;22148:23;;:10;:23;;;22061:110;:133;;;;22189:5;;;;;;;;;;22175:19;;:10;:19;;;22061:133;22053:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;22208:23;22234:24;22252:4;22234:9;:24::i;:::-;22208:50;;22295:1;22277:15;:19;22269:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;22315:37;22336:15;22315:20;:37::i;:::-;22048:309;22020:337::o;12722:369::-;12834:9;;;;;;;;;;;12820:23;;:10;:23;;;:46;;;;12861:5;;;;;;;;;;12847:19;;:10;:19;;;12820:46;12812:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;12906:11;;;;;;;;;;;12893:24;;:9;:24;;;;:54;;;;;12935:12;;;;;;;;;;;12921:26;;:10;:26;;;;12893:54;:80;;;;;12963:10;;;;;;;;;;;12951:22;;:8;:22;;;;12893:80;12885:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;13018:9;13004:11;;:23;;;;;;;;;;;;;;;;;;13047:10;13032:12;;:25;;;;;;;;;;;;;;;;;;13075:8;13062:10;;:21;;;;;;;;;;;;;;;;;;12722:369;;;:::o;13101:464::-;13255:9;;;;;;;;;;;13241:23;;:10;:23;;;:46;;;;13282:5;;;;;;;;;;13268:19;;:10;:19;;;13241:46;13233:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;13378:4;13361:13;13345;13329;13314:12;:28;;;;:::i;:::-;:44;;;;:::i;:::-;:60;;;;:::i;:::-;:68;;;13306:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;13431:12;13415:13;;:28;;;;;;;;;;;;;;;;;;13468:13;13454:11;;:27;;;;;;;;;;;;;;;;;;13506:13;13492:11;;:27;;;;;;;;;;;;;;;;;;13544:13;13530:11;;:27;;;;;;;;;;;;;;;;;;13101:464;;;;:::o;12555:159::-;12630:9;;;;;;;;;;;12616:23;;:10;:23;;;:46;;;;12657:5;;;;;;;;;;12643:19;;:10;:19;;;12616:46;12608:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;12704:5;12675:16;:26;12693:6;12675:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12555:159;:::o;10338:914::-;6347:5;;;;;;;;;;6333:19;;:10;:19;;;6325:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10409:11:::1;;;;;;;;;;;10408:12;10400:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;10473:1;10458:12;:16;10450:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;10529:4;10501:10;:25;10520:4;10501:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10558:4;10538:10;:17;10549:5:::0;::::1;;;;;;;;;;10538:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;10593:4;10567:10;:23;10578:11;;;;;;;;;;;10567:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;10628:4;10602:10;:23;10613:11;;;;;;;;;;;10602:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;10663:4;10637:10;:23;10648:11;;;;;;;;;;;10637:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;10674:60;10696:4;10703:5;::::0;::::1;;;;;;;;10730:3;10725:2;7449:1;7402:2;:15;;;;:::i;:::-;7386:12;:32;;;;:::i;:::-;10710:17;;;;:::i;:::-;:23;;;;:::i;:::-;10674:13;:60::i;:::-;;10739:27;10769:21;10739:51;;10826:12;10803:19;:35;;10795:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10862:29;10894:24;10912:4;10894:9;:24::i;:::-;10862:56;;10955:1;10931:21;:25;10923:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11006:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10988:56;;;11053:4;11060:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10988:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10975:10;;:109;;;;;;;;;;;;;;;;;;11116:4;11091:10;:22;11102:10;;;;;;;;;;;11091:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;11127:37;11142:21;11127:14;:37::i;:::-;11169:57;11183:21;11206:12;11220:5;11169:13;:57::i;:::-;11233:14;:12;:14::i;:::-;10395:857;;10338:914:::0;:::o;10092:105::-;10158:7;10176:9;:18;10186:7;10176:18;;;;;;;;;;;;;;;;10169:25;;10092:105;;;:::o;10011:78::-;10063:7;10081:5;;;;;;;;;;;10074:12;;10011:78;:::o;7710:26::-;;;;:::o;9841:84::-;9891:13;9915:7;9908:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9841:84;:::o;13577:428::-;13699:9;;;;;;;;;;;13685:23;;:10;:23;;;:46;;;;13726:5;;;;;;;;;;13712:19;;:10;:19;;;13685:46;13677:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;13772:11;13750;;:34;;;;;;;;;;;;;;;;;;13817:11;13795;;:34;;;;;;;;;;;;;;;;;;13862:11;13840;;:34;;;;;;;;;;;;;;;;;;13911:4;13879:16;:29;13896:11;13879:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;13952:4;13920:16;:29;13937:11;13920:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;13993:4;13961:16;:29;13978:11;13961:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;13577:428;;;:::o;14332:203::-;14412:4;14434:19;:17;:19::i;:::-;14426:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;14486:44;14500:10;14512:9;14523:6;14486:13;:44::i;:::-;14479:51;;14332:203;;;;:::o;7738:30::-;;;;:::o;14547:514::-;14659:9;;;;;;;;;;;14645:23;;:10;:23;;;:46;;;;14686:5;;;;;;;;;;14672:19;;:10;:19;;;14645:46;14637:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;14710:16;14762:4;14744:15;14729:30;;7449:1;7402:2;:15;;;;:::i;:::-;7386:12;:32;;;;:::i;:::-;14729:30;;;;:::i;:::-;:37;;;;:::i;:::-;14710:56;;14797:11;;14785:8;:23;;14777:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;14854:8;14840:11;:22;;;;14873:20;14933:4;14911:19;14896:34;;7449:1;7402:2;:15;;;;:::i;:::-;7386:12;:32;;;;:::i;:::-;14896:34;;;;:::i;:::-;:41;;;;:::i;:::-;14873:64;;14972:15;;14956:12;:31;;14948:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15041:12;15023:15;:30;;;;14632:429;;14547:514;;:::o;15069:71::-;6347:5;;;;;;;;;;6333:19;;:10;:19;;;6325:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15121:14:::1;:12;:14::i;:::-;15069:71::o:0;22362:232::-;22418:11;;;;;;;;;;;22404:25;;:10;:25;;;:54;;;;22447:11;;;;;;;;;;;22433:25;;:10;:25;;;22404:54;:83;;;;22476:11;;;;;;;;;;;22462:25;;:10;:25;;;22404:83;:110;;;;22505:9;;;;;;;;;;;22491:23;;:10;:23;;;22404:110;:133;;;;22532:5;;;;;;;;;;22518:19;;:10;:19;;;22404:133;22396:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;22551:37;22566:21;22551:14;:37::i;:::-;22362:232::o;17739:735::-;6347:5;;;;;;;;;;6333:19;;:10;:19;;;6325:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8930:4:::1;8917:10;;:17;;;;;;;;;;;;;;;;;;17849:1:::2;17825:12;:20;17838:6;17825:20;;;;;;;;;;;;;;;;:25;;17817:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;17875:21;17899:17;17909:6;17899:9;:17::i;:::-;17875:41;;17948:1;17932:13;:17;17924:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;17993:36;18015:13;17993:9;:17;18003:6;17993:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;17973:9;:17;17983:6;17973:17;;;;;;;;;;;;;;;:56;;;;18064:43;18093:13;18064:9;:24;18082:4;18064:24;;;;;;;;;;;;;;;;:28;;:43;;;;:::i;:::-;18037:9;:24;18055:4;18037:24;;;;;;;;;;;;;;;:70;;;;18142:4;18117:46;;18126:6;18117:46;;;18149:13;18117:46;;;;;;:::i;:::-;;;;;;;;18170:23;18214:1;18210;18196:13;:15;;;;:::i;:::-;:19;;;;:::i;:::-;18170:45;;18220:19;18242:21;18220:43;;18271:37;18292:15;18271:20;:37::i;:::-;18316:19;18362:11;18338:21;:35;;;;:::i;:::-;18316:57;;18381:31;18396:15;18381:14;:31::i;:::-;18417:49;18431:15;18448:11;18461:4;18417:13;:49::i;:::-;17809:665;;;;8952:5:::1;8939:10;;:18;;;;;;;;;;;;;;;;;;17739:735:::0;:::o;10200:133::-;10284:7;10302:11;:19;10314:6;10302:19;;;;;;;;;;;;;;;:28;10322:7;10302:28;;;;;;;;;;;;;;;;10295:35;;10200:133;;;;:::o;7900:31::-;;;;;;;;;;;;;:::o;6408:130::-;6347:5;;;;;;;;;;6333:19;;:10;:19;;;6325:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6490:8:::1;6482:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;6505:30;6526:8;6505:30;;;;;;:::i;:::-;;;;;;;;6408:130:::0;:::o;11882:117::-;11938:9;;;;;;;;;;;11924:23;;:10;:23;;;:46;;;;11965:5;;;;;;;;;;11951:19;;:10;:19;;;11924:46;11916:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;11983:11;:9;:11::i;:::-;11882:117::o;12283:105::-;12342:7;12363:12;:20;12376:6;12363:20;;;;;;;;;;;;;;;;12356:27;;12283:105;;;:::o;7652:23::-;;;;;;;;;;;;;:::o;19423:212::-;19523:5;19501:27;;:10;:18;19512:6;19501:18;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;:56;;;;;19556:1;19532:12;:20;19545:6;19532:20;;;;;;;;;;;;;;;;:25;19501:56;19497:134;;;19589:13;19566:12;:20;19579:6;19566:20;;;;;;;;;;;;;;;:36;;;;19609:13;;:16;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;19497:134;19423:212;;:::o;15932:163::-;16002:12;15988:11;;:26;:46;;;;16033:1;16018:11;;:16;15988:46;15984:107;;;16074:8;16059:23;;:12;:23;;;;:::i;:::-;16045:11;:37;;;;15984:107;15932:163;:::o;15598:252::-;15649:4;15665:16;15684:5;15665:24;;15719:4;15704:19;;:11;;;;;;;;;;;:19;;;15700:111;;;15741:4;15727:18;;15700:111;;;15781:5;;;;;;;;;;15768:18;;:9;:18;;;15764:47;;;15804:4;15790:18;;15764:47;15700:111;15831:11;15824:18;;;15598:252;:::o;4454:158::-;4540:7;4564:1;4559;:6;;4567:12;4551:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4582:9;4598:1;4594;:5;;;;:::i;:::-;4582:17;;4608:1;4601:8;;;4454:158;;;;;:::o;19640:1285::-;19732:4;19761:12;19747:11;;:26;19743:352;;;19824:4;;;;;;;;;;;19786:42;;19816:4;;;;;;;;;;;19786:34;;19802:9;19786:34;;;;:::i;:::-;:42;;;19781:210;;;19833:12;19843:1;19833:9;:12::i;:::-;19781:210;;;19887:1;19863:12;:20;19876:6;19863:20;;;;;;;;;;;;;;;;:25;19858:133;;;19893:36;19905:9;19916:12;19893:11;:36::i;:::-;19858:133;;;19944:44;19956:9;19967:12;:20;19980:6;19967:20;;;;;;;;;;;;;;;;19944:11;:44::i;:::-;19858:133;19781:210;19743:352;;;20037:1;20013:12;:20;20026:6;20013:20;;;;;;;;;;;;;;;;:25;20008:82;;20043:44;20055:9;20066:12;:20;20079:6;20066:20;;;;;;;;;;;;;;;;20043:11;:44::i;:::-;20008:82;19743:352;20121:4;20106:19;;:11;;;;;;;;;;;:19;;;:48;;;;;20153:1;20129:12;:20;20142:6;20129:20;;;;;;;;;;;;;;;;:25;;20106:48;:87;;;;;20181:12;20158;:20;20171:6;20158:20;;;;;;;;;;;;;;;;:35;20106:87;20101:128;;;20202:21;;;;;;;;;;:::i;:::-;;;;;;;;20101:128;20259:5;20245:19;;:10;;;;;;;;;;;:19;;;:46;;;;;20281:10;;;;;;;;;;;20268:23;;:9;:23;;;20245:46;20241:90;;;20305:20;:18;:20::i;:::-;20241:90;20364:4;20346:23;;:6;:23;;;;:53;;;;;20394:4;20373:26;;:9;:26;;;;20346:53;:72;;;;;20413:5;;;;;;;;;;20403:15;;:6;:15;;;;20346:72;20341:145;;;20430:31;20443:9;20454:6;20430:12;:31::i;:::-;20422:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;20341:145;20493:18;20514:40;20528:6;20536:9;20547:6;20514:13;:40::i;:::-;20493:61;;20562:23;20588:22;20599:10;20588:6;:10;;:22;;;;:::i;:::-;20562:48;;20638:53;20660:6;20638:53;;;;;;;;;;;;;;;;;:9;:17;20648:6;20638:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;20618:9;:17;20628:6;20618:17;;;;;;;;;;;;;;;:73;;;;20716:1;20703:10;:14;20699:92;;;20748:40;20777:10;20748:9;:24;20766:4;20748:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;20721:9;:24;20739:4;20721:24;;;;;;;;;;;;;;;:67;;;;20699:92;20818:41;20843:15;20818:9;:20;20828:9;20818:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;20795:9;:20;20805:9;20795:20;;;;;;;;;;;;;;;:64;;;;20886:9;20869:35;;20878:6;20869:35;;;20897:6;20869:35;;;;;;:::i;:::-;;;;;;;;20916:4;20909:11;;;;19640:1285;;;;;:::o;21232:359::-;21297:28;21312:12;21297:14;:28::i;:::-;21336:21;21374:1;21360:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21336:40;;21405:4;21387;21392:1;21387:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21431:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21421:4;21426:1;21421:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;21465:16;;;;;;;;;;;:67;;;21533:12;21546:1;21548:4;21561;21567:15;21465:118;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21292:299;21232:359;:::o;20930:297::-;21048:12;20994:11;:26;21014:4;20994:26;;;;;;;;;;;;;;;:51;8784:42;20994:51;;;;;;;;;;;;;;;;:66;20990:233;;;21122:17;21068:11;:26;21088:4;21068:26;;;;;;;;;;;;;;;:51;8784:42;21068:51;;;;;;;;;;;;;;;:71;;;;8784:42;21150:67;;21167:4;21150:67;;;21199:17;21150:67;;;;;;:::i;:::-;;;;;;;;20990:233;20930:297;:::o;11257:327::-;11354:24;11412:5;11400:17;;:8;:17;;;11396:52;;;11440:5;;;;;;;;;;11421:24;;11396:52;11452:16;;;;;;;;;;;:32;;;11492:13;11517:4;11524:12;11538:1;11541;11544:16;11562:15;11452:127;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11349:235;11257:327;;;:::o;15149:437::-;15223:1;15201:24;;:10;;;;;;;;;;;:24;;;;15193:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;15266:15;15251:12;:30;;;;15321:1;15306:12;;15299:4;;:19;;;;:::i;:::-;:23;;;;:::i;:::-;15292:4;:30;;;;15362:1;15347:12;:16;;;;:::i;:::-;15333:11;:30;;;;15405:4;7449:1;7402:2;:15;;;;:::i;:::-;7386:12;:32;;;;:::i;:::-;15386:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;15368:11;:41;;;;15452:4;7449:1;7402:2;:15;;;;:::i;:::-;7386:12;:32;;;;:::i;:::-;15433:1;:16;;;;:::i;:::-;:23;;;;:::i;:::-;15415:15;:41;;;;15461:11;:9;:11::i;:::-;15492:2;15477:12;;:17;;;;;;;;;;;;;;;;;;15572:4;15558:11;;:18;;;;;;;;;;;;;;;;;;15149:437::o;21599:416::-;21656:21;21708:11;;;;;;;;;;;21694;;;;;;;;;;;21680;;;;;;;;;;;:25;;;;:::i;:::-;:39;;;;:::i;:::-;21656:63;;21748:1;21734:11;;;;;;;;;;;:15;;;21730:86;;;21753:11;;;;;;;;;;;:20;;:60;21798:14;21774:38;;21784:11;;;;;;;;;;;21774:21;;:7;:21;;;;:::i;:::-;:38;;;;:::i;:::-;21753:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21730:86;21844:1;21830:11;;;;;;;;;;;:15;;;21826:86;;;21849:11;;;;;;;;;;;:20;;:60;21894:14;21870:38;;21880:11;;;;;;;;;;;21870:21;;:7;:21;;;;:::i;:::-;:38;;;;:::i;:::-;21849:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21826:86;21940:1;21926:11;;;;;;;;;;;:15;;;21922:86;;;21945:11;;;;;;;;;;;:20;;:60;21990:14;21966:38;;21976:11;;;;;;;;;;;21966:21;;:7;:21;;;;:::i;:::-;:38;;;;:::i;:::-;21945:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21922:86;21648:367;21599:416;:::o;4339:112::-;4397:7;4415:33;4419:1;4422;4415:33;;;;;;;;;;;;;;;;;:3;:33::i;:::-;4408:40;;4339:112;;;;:::o;4199:137::-;4257:7;4268:9;4284:1;4280;:5;;;;:::i;:::-;4268:17;;4300:1;4295;:6;;4287:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;4332:1;4325:8;;;4199:137;;;;:::o;12004:125::-;12053:11;;;;;;;;;;;12039;;:25;;;;;;;;;;;;;;;;;;12084:11;;;;;;;;;;;12069:12;;:26;;;;;;;;;;;;;;;;;;12113:11;;;;;;;;;;;12100:10;;:24;;;;;;;;;;;;;;;;;;12004:125::o;18479:939::-;8930:4;8917:10;;:17;;;;;;;;;;;;;;;;;;18534:27:::1;18564:24;18582:4;18564:9;:24::i;:::-;18534:54;;18620:11;;18597:19;:34;;:57;;;;;18650:4;18635:19;;:11;;;;;;;;;;;:19;;;18597:57;:79;;;;;18671:5;18658:18;;:9;;;;;;;;;;;:18;;;18597:79;18593:821;;;18712:11;;18689:19;:34;18685:78;;18749:11;;18727:33;;18685:78;18768:20;18836:1;18829:4;18813:13;;;;;;;;;;;18791:35;;:19;:35;;;;:::i;:::-;:42;;;;:::i;:::-;:46;;;;:::i;:::-;18768:69;;18846:21;18892:12;18870:19;:34;;;;:::i;:::-;18846:58;;18913:19;18935:21;18913:43;;18965:35;18986:13;18965:20;:35::i;:::-;19009:19;19055:11;19031:21;:35;;;;:::i;:::-;19009:57;;19095:1;19079:13;;;;;;;;;;;:17;;;19075:198;;;19108:21;19162:4;19146:13;;;;;;;;;;;19132:27;;:11;:27;;;;:::i;:::-;:34;;;;:::i;:::-;19108:58;;19177:28;19192:12;19177:14;:28::i;:::-;19215:48;19229:12;19243:13;19258:4;19215:13;:48::i;:::-;19098:175;19075:198;19281:27;19311:21;19281:51;;19366:1;19344:19;:23;19341:68;;;19371:35;19386:19;19371:14;:35::i;:::-;19341:68;18679:735;;;;;18593:821;18529:889;8952:5:::0;8939:10;;:18;;;;;;;;;;;;;;;;;;18479:939::o;16507:446::-;16595:4;16612:21;16636:4;16612:28;;16671:4;16656:19;;:11;;;;;;;;;;;:19;;;16651:261;;;16715:11;;16698:14;:28;16693:208;;;16750:5;16731:24;;16693:208;;;16795:10;;;;;;;;;;;16782:23;;:9;:23;;;;:87;;;;;16853:15;;16810:40;16835:14;16810:9;:20;16820:9;16810:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;:58;16782:87;16777:124;;;16893:5;16874:24;;16777:124;16693:208;16651:261;16929:16;16922:23;;;16507:446;;;;:::o;16961:770::-;17058:7;17078:17;17126:4;17111:19;;:11;;;;;;;;;;;:19;;;:45;;;;;17152:4;;17134:15;:22;17111:45;17106:597;;;17173:23;17192:3;17173:14;17184:2;17173:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;17161:35;;17106:597;;;17240:4;17212:32;;:16;:24;17229:6;17212:24;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;:71;;;;17279:4;17248:35;;:16;:27;17265:9;17248:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;17212:71;:95;;;;17302:5;17287:20;;:11;;;;;;;;;;;:20;;;17212:95;:116;;;;17324:4;17311:17;;:9;;;;;;;;;;;:17;;;17212:116;17207:496;;;17344:1;17332:13;;17207:496;;;17372:10;;;;;;;;;;;17362:20;;:6;:20;;;:54;;;;;17401:15;17386:12;;:30;17362:54;17357:346;;;17432:1;17420:13;;17357:346;;;17460:10;;;;;;;;;;;17450:20;;:6;:20;;;:55;;;;;17490:15;17474:12;;:31;;17450:55;17445:258;;;17521:32;17549:3;17521:23;17532:11;;;;;;;;;;;17521:23;;:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;17509:44;;17445:258;;;17583:10;;;;;;;;;;;17570:23;;:9;:23;;;17565:138;;;17610:33;17639:3;17610:24;17621:12;;;;;;;;;;;17610:24;;:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;17598:45;;17565:138;;;17669:31;17696:3;17669:22;17680:10;;;;;;;;;;;17669:22;;:6;:10;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;17657:43;;17565:138;17445:258;17357:346;17207:496;17106:597;17714:9;17707:16;;;16961:770;;;;;:::o;4615:173::-;4673:7;4693:1;4688;:6;4684:25;;;4705:1;4698:8;;;;4684:25;4710:9;4726:1;4722;:5;;;;:::i;:::-;4710:17;;4746:1;4741;4737;:5;;;;:::i;:::-;:10;4729:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4784:1;4777:8;;;4615:173;;;;;:::o;4791:108::-;4849:7;4867:29;4871:1;4874;4867:29;;;;;;;;;;;;;;;;;:3;:29::i;:::-;4860:36;;4791:108;;;;:::o;4902:157::-;4988:7;5011:1;5007;:5;5014:12;4999:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5029:9;5045:1;5041;:5;;;;:::i;:::-;5029:17;;5055:1;5048:8;;;4902:157;;;;;:::o;88:117:1:-;197:1;194;187:12;334:93;370:7;410:10;403:5;399:22;388:33;;334:93;;;:::o;433:120::-;505:23;522:5;505:23;:::i;:::-;498:5;495:34;485:62;;543:1;540;533:12;485:62;433:120;:::o;559:137::-;604:5;642:6;629:20;620:29;;658:32;684:5;658:32;:::i;:::-;559:137;;;;:::o;702:757::-;784:6;792;800;808;857:3;845:9;836:7;832:23;828:33;825:120;;;864:79;;:::i;:::-;825:120;984:1;1009:52;1053:7;1044:6;1033:9;1029:22;1009:52;:::i;:::-;999:62;;955:116;1110:2;1136:52;1180:7;1171:6;1160:9;1156:22;1136:52;:::i;:::-;1126:62;;1081:117;1237:2;1263:52;1307:7;1298:6;1287:9;1283:22;1263:52;:::i;:::-;1253:62;;1208:117;1364:2;1390:52;1434:7;1425:6;1414:9;1410:22;1390:52;:::i;:::-;1380:62;;1335:117;702:757;;;;;;;:::o;1465:99::-;1517:6;1551:5;1545:12;1535:22;;1465:99;;;:::o;1570:169::-;1654:11;1688:6;1683:3;1676:19;1728:4;1723:3;1719:14;1704:29;;1570:169;;;;:::o;1745:307::-;1813:1;1823:113;1837:6;1834:1;1831:13;1823:113;;;1922:1;1917:3;1913:11;1907:18;1903:1;1898:3;1894:11;1887:39;1859:2;1856:1;1852:10;1847:15;;1823:113;;;1954:6;1951:1;1948:13;1945:101;;;2034:1;2025:6;2020:3;2016:16;2009:27;1945:101;1794:258;1745:307;;;:::o;2058:102::-;2099:6;2150:2;2146:7;2141:2;2134:5;2130:14;2126:28;2116:38;;2058:102;;;:::o;2166:364::-;2254:3;2282:39;2315:5;2282:39;:::i;:::-;2337:71;2401:6;2396:3;2337:71;:::i;:::-;2330:78;;2417:52;2462:6;2457:3;2450:4;2443:5;2439:16;2417:52;:::i;:::-;2494:29;2516:6;2494:29;:::i;:::-;2489:3;2485:39;2478:46;;2258:272;2166:364;;;;:::o;2536:313::-;2649:4;2687:2;2676:9;2672:18;2664:26;;2736:9;2730:4;2726:20;2722:1;2711:9;2707:17;2700:47;2764:78;2837:4;2828:6;2764:78;:::i;:::-;2756:86;;2536:313;;;;:::o;2855:126::-;2892:7;2932:42;2925:5;2921:54;2910:65;;2855:126;;;:::o;2987:96::-;3024:7;3053:24;3071:5;3053:24;:::i;:::-;3042:35;;2987:96;;;:::o;3089:122::-;3162:24;3180:5;3162:24;:::i;:::-;3155:5;3152:35;3142:63;;3201:1;3198;3191:12;3142:63;3089:122;:::o;3217:139::-;3263:5;3301:6;3288:20;3279:29;;3317:33;3344:5;3317:33;:::i;:::-;3217:139;;;;:::o;3362:77::-;3399:7;3428:5;3417:16;;3362:77;;;:::o;3445:122::-;3518:24;3536:5;3518:24;:::i;:::-;3511:5;3508:35;3498:63;;3557:1;3554;3547:12;3498:63;3445:122;:::o;3573:139::-;3619:5;3657:6;3644:20;3635:29;;3673:33;3700:5;3673:33;:::i;:::-;3573:139;;;;:::o;3718:474::-;3786:6;3794;3843:2;3831:9;3822:7;3818:23;3814:32;3811:119;;;3849:79;;:::i;:::-;3811:119;3969:1;3994:53;4039:7;4030:6;4019:9;4015:22;3994:53;:::i;:::-;3984:63;;3940:117;4096:2;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4067:118;3718:474;;;;;:::o;4198:90::-;4232:7;4275:5;4268:13;4261:21;4250:32;;4198:90;;;:::o;4294:109::-;4375:21;4390:5;4375:21;:::i;:::-;4370:3;4363:34;4294:109;;:::o;4409:210::-;4496:4;4534:2;4523:9;4519:18;4511:26;;4547:65;4609:1;4598:9;4594:17;4585:6;4547:65;:::i;:::-;4409:210;;;;:::o;4625:329::-;4684:6;4733:2;4721:9;4712:7;4708:23;4704:32;4701:119;;;4739:79;;:::i;:::-;4701:119;4859:1;4884:53;4929:7;4920:6;4909:9;4905:22;4884:53;:::i;:::-;4874:63;;4830:117;4625:329;;;;:::o;4960:118::-;5047:24;5065:5;5047:24;:::i;:::-;5042:3;5035:37;4960:118;;:::o;5084:222::-;5177:4;5215:2;5204:9;5200:18;5192:26;;5228:71;5296:1;5285:9;5281:17;5272:6;5228:71;:::i;:::-;5084:222;;;;:::o;5312:619::-;5389:6;5397;5405;5454:2;5442:9;5433:7;5429:23;5425:32;5422:119;;;5460:79;;:::i;:::-;5422:119;5580:1;5605:53;5650:7;5641:6;5630:9;5626:22;5605:53;:::i;:::-;5595:63;;5551:117;5707:2;5733:53;5778:7;5769:6;5758:9;5754:22;5733:53;:::i;:::-;5723:63;;5678:118;5835:2;5861:53;5906:7;5897:6;5886:9;5882:22;5861:53;:::i;:::-;5851:63;;5806:118;5312:619;;;;;:::o;5937:86::-;5972:7;6012:4;6005:5;6001:16;5990:27;;5937:86;;;:::o;6029:112::-;6112:22;6128:5;6112:22;:::i;:::-;6107:3;6100:35;6029:112;;:::o;6147:214::-;6236:4;6274:2;6263:9;6259:18;6251:26;;6287:67;6351:1;6340:9;6336:17;6327:6;6287:67;:::i;:::-;6147:214;;;;:::o;6367:118::-;6438:22;6454:5;6438:22;:::i;:::-;6431:5;6428:33;6418:61;;6475:1;6472;6465:12;6418:61;6367:118;:::o;6491:135::-;6535:5;6573:6;6560:20;6551:29;;6589:31;6614:5;6589:31;:::i;:::-;6491:135;;;;:::o;6632:607::-;6703:6;6711;6719;6768:2;6756:9;6747:7;6743:23;6739:32;6736:119;;;6774:79;;:::i;:::-;6736:119;6894:1;6919:51;6962:7;6953:6;6942:9;6938:22;6919:51;:::i;:::-;6909:61;;6865:115;7019:2;7045:51;7088:7;7079:6;7068:9;7064:22;7045:51;:::i;:::-;7035:61;;6990:116;7145:2;7171:51;7214:7;7205:6;7194:9;7190:22;7171:51;:::i;:::-;7161:61;;7116:116;6632:607;;;;;:::o;7245:89::-;7281:7;7321:6;7314:5;7310:18;7299:29;;7245:89;;;:::o;7340:120::-;7412:23;7429:5;7412:23;:::i;:::-;7405:5;7402:34;7392:62;;7450:1;7447;7440:12;7392:62;7340:120;:::o;7466:137::-;7511:5;7549:6;7536:20;7527:29;;7565:32;7591:5;7565:32;:::i;:::-;7466:137;;;;:::o;7609:757::-;7691:6;7699;7707;7715;7764:3;7752:9;7743:7;7739:23;7735:33;7732:120;;;7771:79;;:::i;:::-;7732:120;7891:1;7916:52;7960:7;7951:6;7940:9;7936:22;7916:52;:::i;:::-;7906:62;;7862:116;8017:2;8043:52;8087:7;8078:6;8067:9;8063:22;8043:52;:::i;:::-;8033:62;;7988:117;8144:2;8170:52;8214:7;8205:6;8194:9;8190:22;8170:52;:::i;:::-;8160:62;;8115:117;8271:2;8297:52;8341:7;8332:6;8321:9;8317:22;8297:52;:::i;:::-;8287:62;;8242:117;7609:757;;;;;;;:::o;8372:329::-;8431:6;8480:2;8468:9;8459:7;8455:23;8451:32;8448:119;;;8486:79;;:::i;:::-;8448:119;8606:1;8631:53;8676:7;8667:6;8656:9;8652:22;8631:53;:::i;:::-;8621:63;;8577:117;8372:329;;;;:::o;8707:118::-;8794:24;8812:5;8794:24;:::i;:::-;8789:3;8782:37;8707:118;;:::o;8831:222::-;8924:4;8962:2;8951:9;8947:18;8939:26;;8975:71;9043:1;9032:9;9028:17;9019:6;8975:71;:::i;:::-;8831:222;;;;:::o;9059:619::-;9136:6;9144;9152;9201:2;9189:9;9180:7;9176:23;9172:32;9169:119;;;9207:79;;:::i;:::-;9169:119;9327:1;9352:53;9397:7;9388:6;9377:9;9373:22;9352:53;:::i;:::-;9342:63;;9298:117;9454:2;9480:53;9525:7;9516:6;9505:9;9501:22;9480:53;:::i;:::-;9470:63;;9425:118;9582:2;9608:53;9653:7;9644:6;9633:9;9629:22;9608:53;:::i;:::-;9598:63;;9553:118;9059:619;;;;;:::o;9684:470::-;9750:6;9758;9807:2;9795:9;9786:7;9782:23;9778:32;9775:119;;;9813:79;;:::i;:::-;9775:119;9933:1;9958:52;10002:7;9993:6;9982:9;9978:22;9958:52;:::i;:::-;9948:62;;9904:116;10059:2;10085:52;10129:7;10120:6;10109:9;10105:22;10085:52;:::i;:::-;10075:62;;10030:117;9684:470;;;;;:::o;10160:474::-;10228:6;10236;10285:2;10273:9;10264:7;10260:23;10256:32;10253:119;;;10291:79;;:::i;:::-;10253:119;10411:1;10436:53;10481:7;10472:6;10461:9;10457:22;10436:53;:::i;:::-;10426:63;;10382:117;10538:2;10564:53;10609:7;10600:6;10589:9;10585:22;10564:53;:::i;:::-;10554:63;;10509:118;10160:474;;;;;:::o;10640:115::-;10725:23;10742:5;10725:23;:::i;:::-;10720:3;10713:36;10640:115;;:::o;10761:218::-;10852:4;10890:2;10879:9;10875:18;10867:26;;10903:69;10969:1;10958:9;10954:17;10945:6;10903:69;:::i;:::-;10761:218;;;;:::o;10985:104::-;11030:7;11059:24;11077:5;11059:24;:::i;:::-;11048:35;;10985:104;;;:::o;11095:138::-;11176:32;11202:5;11176:32;:::i;:::-;11169:5;11166:43;11156:71;;11223:1;11220;11213:12;11156:71;11095:138;:::o;11239:155::-;11293:5;11331:6;11318:20;11309:29;;11347:41;11382:5;11347:41;:::i;:::-;11239:155;;;;:::o;11400:345::-;11467:6;11516:2;11504:9;11495:7;11491:23;11487:32;11484:119;;;11522:79;;:::i;:::-;11484:119;11642:1;11667:61;11720:7;11711:6;11700:9;11696:22;11667:61;:::i;:::-;11657:71;;11613:125;11400:345;;;;:::o;11751:153::-;11891:5;11887:1;11879:6;11875:14;11868:29;11751:153;:::o;11910:365::-;12052:3;12073:66;12137:1;12132:3;12073:66;:::i;:::-;12066:73;;12148:93;12237:3;12148:93;:::i;:::-;12266:2;12261:3;12257:12;12250:19;;11910:365;;;:::o;12281:419::-;12447:4;12485:2;12474:9;12470:18;12462:26;;12534:9;12528:4;12524:20;12520:1;12509:9;12505:17;12498:47;12562:131;12688:4;12562:131;:::i;:::-;12554:139;;12281:419;;;:::o;12706:180::-;12754:77;12751:1;12744:88;12851:4;12848:1;12841:15;12875:4;12872:1;12865:15;12892:102;12934:8;12981:5;12978:1;12974:13;12953:34;;12892:102;;;:::o;13000:848::-;13061:5;13068:4;13092:6;13083:15;;13116:5;13107:14;;13130:712;13151:1;13141:8;13138:15;13130:712;;;13246:4;13241:3;13237:14;13231:4;13228:24;13225:50;;;13255:18;;:::i;:::-;13225:50;13305:1;13295:8;13291:16;13288:451;;;13720:4;13713:5;13709:16;13700:25;;13288:451;13770:4;13764;13760:15;13752:23;;13800:32;13823:8;13800:32;:::i;:::-;13788:44;;13130:712;;;13000:848;;;;;;;:::o;13854:1073::-;13908:5;14099:8;14089:40;;14120:1;14111:10;;14122:5;;14089:40;14148:4;14138:36;;14165:1;14156:10;;14167:5;;14138:36;14234:4;14282:1;14277:27;;;;14318:1;14313:191;;;;14227:277;;14277:27;14295:1;14286:10;;14297:5;;;14313:191;14358:3;14348:8;14345:17;14342:43;;;14365:18;;:::i;:::-;14342:43;14414:8;14411:1;14407:16;14398:25;;14449:3;14442:5;14439:14;14436:40;;;14456:18;;:::i;:::-;14436:40;14489:5;;;14227:277;;14613:2;14603:8;14600:16;14594:3;14588:4;14585:13;14581:36;14563:2;14553:8;14550:16;14545:2;14539:4;14536:12;14532:35;14516:111;14513:246;;;14669:8;14663:4;14659:19;14650:28;;14704:3;14697:5;14694:14;14691:40;;;14711:18;;:::i;:::-;14691:40;14744:5;;14513:246;14784:42;14822:3;14812:8;14806:4;14803:1;14784:42;:::i;:::-;14769:57;;;;14858:4;14853:3;14849:14;14842:5;14839:25;14836:51;;;14867:18;;:::i;:::-;14836:51;14916:4;14909:5;14905:16;14896:25;;13854:1073;;;;;;:::o;14933:281::-;14991:5;15015:23;15033:4;15015:23;:::i;:::-;15007:31;;15059:25;15075:8;15059:25;:::i;:::-;15047:37;;15103:104;15140:66;15130:8;15124:4;15103:104;:::i;:::-;15094:113;;14933:281;;;;:::o;15220:348::-;15260:7;15283:20;15301:1;15283:20;:::i;:::-;15278:25;;15317:20;15335:1;15317:20;:::i;:::-;15312:25;;15505:1;15437:66;15433:74;15430:1;15427:81;15422:1;15415:9;15408:17;15404:105;15401:131;;;15512:18;;:::i;:::-;15401:131;15560:1;15557;15553:9;15542:20;;15220:348;;;;:::o;15574:180::-;15622:77;15619:1;15612:88;15719:4;15716:1;15709:15;15743:4;15740:1;15733:15;15760:185;15800:1;15817:20;15835:1;15817:20;:::i;:::-;15812:25;;15851:20;15869:1;15851:20;:::i;:::-;15846:25;;15890:1;15880:35;;15895:18;;:::i;:::-;15880:35;15937:1;15934;15930:9;15925:14;;15760:185;;;;:::o;15951:180::-;15999:77;15996:1;15989:88;16096:4;16093:1;16086:15;16120:4;16117:1;16110:15;16137:320;16181:6;16218:1;16212:4;16208:12;16198:22;;16265:1;16259:4;16255:12;16286:18;16276:81;;16342:4;16334:6;16330:17;16320:27;;16276:81;16404:2;16396:6;16393:14;16373:18;16370:38;16367:84;;;16423:18;;:::i;:::-;16367:84;16188:269;16137:320;;;:::o;16463:229::-;16603:34;16599:1;16591:6;16587:14;16580:58;16672:12;16667:2;16659:6;16655:15;16648:37;16463:229;:::o;16698:366::-;16840:3;16861:67;16925:2;16920:3;16861:67;:::i;:::-;16854:74;;16937:93;17026:3;16937:93;:::i;:::-;17055:2;17050:3;17046:12;17039:19;;16698:366;;;:::o;17070:419::-;17236:4;17274:2;17263:9;17259:18;17251:26;;17323:9;17317:4;17313:20;17309:1;17298:9;17294:17;17287:47;17351:131;17477:4;17351:131;:::i;:::-;17343:139;;17070:419;;;:::o;17495:166::-;17635:18;17631:1;17623:6;17619:14;17612:42;17495:166;:::o;17667:366::-;17809:3;17830:67;17894:2;17889:3;17830:67;:::i;:::-;17823:74;;17906:93;17995:3;17906:93;:::i;:::-;18024:2;18019:3;18015:12;18008:19;;17667:366;;;:::o;18039:419::-;18205:4;18243:2;18232:9;18228:18;18220:26;;18292:9;18286:4;18282:20;18278:1;18267:9;18263:17;18256:47;18320:131;18446:4;18320:131;:::i;:::-;18312:139;;18039:419;;;:::o;18464:159::-;18604:11;18600:1;18592:6;18588:14;18581:35;18464:159;:::o;18629:365::-;18771:3;18792:66;18856:1;18851:3;18792:66;:::i;:::-;18785:73;;18867:93;18956:3;18867:93;:::i;:::-;18985:2;18980:3;18976:12;18969:19;;18629:365;;;:::o;19000:419::-;19166:4;19204:2;19193:9;19189:18;19181:26;;19253:9;19247:4;19243:20;19239:1;19228:9;19224:17;19217:47;19281:131;19407:4;19281:131;:::i;:::-;19273:139;;19000:419;;;:::o;19425:171::-;19565:23;19561:1;19553:6;19549:14;19542:47;19425:171;:::o;19602:366::-;19744:3;19765:67;19829:2;19824:3;19765:67;:::i;:::-;19758:74;;19841:93;19930:3;19841:93;:::i;:::-;19959:2;19954:3;19950:12;19943:19;;19602:366;;;:::o;19974:419::-;20140:4;20178:2;20167:9;20163:18;20155:26;;20227:9;20221:4;20217:20;20213:1;20202:9;20198:17;20191:47;20255:131;20381:4;20255:131;:::i;:::-;20247:139;;19974:419;;;:::o;20399:242::-;20438:3;20457:19;20474:1;20457:19;:::i;:::-;20452:24;;20490:19;20507:1;20490:19;:::i;:::-;20485:24;;20583:1;20575:6;20571:14;20568:1;20565:21;20562:47;;;20589:18;;:::i;:::-;20562:47;20633:1;20630;20626:9;20619:16;;20399:242;;;;:::o;20647:166::-;20787:18;20783:1;20775:6;20771:14;20764:42;20647:166;:::o;20819:366::-;20961:3;20982:67;21046:2;21041:3;20982:67;:::i;:::-;20975:74;;21058:93;21147:3;21058:93;:::i;:::-;21176:2;21171:3;21167:12;21160:19;;20819:366;;;:::o;21191:419::-;21357:4;21395:2;21384:9;21380:18;21372:26;;21444:9;21438:4;21434:20;21430:1;21419:9;21415:17;21408:47;21472:131;21598:4;21472:131;:::i;:::-;21464:139;;21191:419;;;:::o;21616:170::-;21756:22;21752:1;21744:6;21740:14;21733:46;21616:170;:::o;21792:366::-;21934:3;21955:67;22019:2;22014:3;21955:67;:::i;:::-;21948:74;;22031:93;22120:3;22031:93;:::i;:::-;22149:2;22144:3;22140:12;22133:19;;21792:366;;;:::o;22164:419::-;22330:4;22368:2;22357:9;22353:18;22345:26;;22417:9;22411:4;22407:20;22403:1;22392:9;22388:17;22381:47;22445:131;22571:4;22445:131;:::i;:::-;22437:139;;22164:419;;;:::o;22589:165::-;22729:17;22725:1;22717:6;22713:14;22706:41;22589:165;:::o;22760:366::-;22902:3;22923:67;22987:2;22982:3;22923:67;:::i;:::-;22916:74;;22999:93;23088:3;22999:93;:::i;:::-;23117:2;23112:3;23108:12;23101:19;;22760:366;;;:::o;23132:419::-;23298:4;23336:2;23325:9;23321:18;23313:26;;23385:9;23379:4;23375:20;23371:1;23360:9;23356:17;23349:47;23413:131;23539:4;23413:131;:::i;:::-;23405:139;;23132:419;;;:::o;23557:164::-;23697:16;23693:1;23685:6;23681:14;23674:40;23557:164;:::o;23727:366::-;23869:3;23890:67;23954:2;23949:3;23890:67;:::i;:::-;23883:74;;23966:93;24055:3;23966:93;:::i;:::-;24084:2;24079:3;24075:12;24068:19;;23727:366;;;:::o;24099:419::-;24265:4;24303:2;24292:9;24288:18;24280:26;;24352:9;24346:4;24342:20;24338:1;24327:9;24323:17;24316:47;24380:131;24506:4;24380:131;:::i;:::-;24372:139;;24099:419;;;:::o;24524:159::-;24664:11;24660:1;24652:6;24648:14;24641:35;24524:159;:::o;24689:365::-;24831:3;24852:66;24916:1;24911:3;24852:66;:::i;:::-;24845:73;;24927:93;25016:3;24927:93;:::i;:::-;25045:2;25040:3;25036:12;25029:19;;24689:365;;;:::o;25060:419::-;25226:4;25264:2;25253:9;25249:18;25241:26;;25313:9;25307:4;25303:20;25299:1;25288:9;25284:17;25277:47;25341:131;25467:4;25341:131;:::i;:::-;25333:139;;25060:419;;;:::o;25485:143::-;25542:5;25573:6;25567:13;25558:22;;25589:33;25616:5;25589:33;:::i;:::-;25485:143;;;;:::o;25634:351::-;25704:6;25753:2;25741:9;25732:7;25728:23;25724:32;25721:119;;;25759:79;;:::i;:::-;25721:119;25879:1;25904:64;25960:7;25951:6;25940:9;25936:22;25904:64;:::i;:::-;25894:74;;25850:128;25634:351;;;;:::o;25991:332::-;26112:4;26150:2;26139:9;26135:18;26127:26;;26163:71;26231:1;26220:9;26216:17;26207:6;26163:71;:::i;:::-;26244:72;26312:2;26301:9;26297:18;26288:6;26244:72;:::i;:::-;25991:332;;;;;:::o;26329:166::-;26469:18;26465:1;26457:6;26453:14;26446:42;26329:166;:::o;26501:366::-;26643:3;26664:67;26728:2;26723:3;26664:67;:::i;:::-;26657:74;;26740:93;26829:3;26740:93;:::i;:::-;26858:2;26853:3;26849:12;26842:19;;26501:366;;;:::o;26873:419::-;27039:4;27077:2;27066:9;27062:18;27054:26;;27126:9;27120:4;27116:20;27112:1;27101:9;27097:17;27090:47;27154:131;27280:4;27154:131;:::i;:::-;27146:139;;26873:419;;;:::o;27298:166::-;27438:18;27434:1;27426:6;27422:14;27415:42;27298:166;:::o;27470:366::-;27612:3;27633:67;27697:2;27692:3;27633:67;:::i;:::-;27626:74;;27709:93;27798:3;27709:93;:::i;:::-;27827:2;27822:3;27818:12;27811:19;;27470:366;;;:::o;27842:419::-;28008:4;28046:2;28035:9;28031:18;28023:26;;28095:9;28089:4;28085:20;28081:1;28070:9;28066:17;28059:47;28123:131;28249:4;28123:131;:::i;:::-;28115:139;;27842:419;;;:::o;28267:170::-;28407:22;28403:1;28395:6;28391:14;28384:46;28267:170;:::o;28443:366::-;28585:3;28606:67;28670:2;28665:3;28606:67;:::i;:::-;28599:74;;28682:93;28771:3;28682:93;:::i;:::-;28800:2;28795:3;28791:12;28784:19;;28443:366;;;:::o;28815:419::-;28981:4;29019:2;29008:9;29004:18;28996:26;;29068:9;29062:4;29058:20;29054:1;29043:9;29039:17;29032:47;29096:131;29222:4;29096:131;:::i;:::-;29088:139;;28815:419;;;:::o;29240:162::-;29380:14;29376:1;29368:6;29364:14;29357:38;29240:162;:::o;29408:366::-;29550:3;29571:67;29635:2;29630:3;29571:67;:::i;:::-;29564:74;;29647:93;29736:3;29647:93;:::i;:::-;29765:2;29760:3;29756:12;29749:19;;29408:366;;;:::o;29780:419::-;29946:4;29984:2;29973:9;29969:18;29961:26;;30033:9;30027:4;30023:20;30019:1;30008:9;30004:17;29997:47;30061:131;30187:4;30061:131;:::i;:::-;30053:139;;29780:419;;;:::o;30205:191::-;30245:4;30265:20;30283:1;30265:20;:::i;:::-;30260:25;;30299:20;30317:1;30299:20;:::i;:::-;30294:25;;30338:1;30335;30332:8;30329:34;;;30343:18;;:::i;:::-;30329:34;30388:1;30385;30381:9;30373:17;;30205:191;;;;:::o;30402:60::-;30430:3;30451:5;30444:12;;30402:60;;;:::o;30468:142::-;30518:9;30551:53;30569:34;30578:24;30596:5;30578:24;:::i;:::-;30569:34;:::i;:::-;30551:53;:::i;:::-;30538:66;;30468:142;;;:::o;30616:126::-;30666:9;30699:37;30730:5;30699:37;:::i;:::-;30686:50;;30616:126;;;:::o;30748:134::-;30806:9;30839:37;30870:5;30839:37;:::i;:::-;30826:50;;30748:134;;;:::o;30888:147::-;30983:45;31022:5;30983:45;:::i;:::-;30978:3;30971:58;30888:147;;:::o;31041:238::-;31142:4;31180:2;31169:9;31165:18;31157:26;;31193:79;31269:1;31258:9;31254:17;31245:6;31193:79;:::i;:::-;31041:238;;;;:::o;31285:171::-;31323:3;31346:23;31363:5;31346:23;:::i;:::-;31337:32;;31391:6;31384:5;31381:17;31378:43;;;31401:18;;:::i;:::-;31378:43;31448:1;31441:5;31437:13;31430:20;;31285:171;;;:::o;31462:305::-;31502:3;31521:20;31539:1;31521:20;:::i;:::-;31516:25;;31555:20;31573:1;31555:20;:::i;:::-;31550:25;;31709:1;31641:66;31637:74;31634:1;31631:81;31628:107;;;31715:18;;:::i;:::-;31628:107;31759:1;31756;31752:9;31745:16;;31462:305;;;;:::o;31773:176::-;31805:1;31822:20;31840:1;31822:20;:::i;:::-;31817:25;;31856:20;31874:1;31856:20;:::i;:::-;31851:25;;31895:1;31885:35;;31900:18;;:::i;:::-;31885:35;31941:1;31938;31934:9;31929:14;;31773:176;;;;:::o;31955:161::-;32095:13;32091:1;32083:6;32079:14;32072:37;31955:161;:::o;32122:366::-;32264:3;32285:67;32349:2;32344:3;32285:67;:::i;:::-;32278:74;;32361:93;32450:3;32361:93;:::i;:::-;32479:2;32474:3;32470:12;32463:19;;32122:366;;;:::o;32494:419::-;32660:4;32698:2;32687:9;32683:18;32675:26;;32747:9;32741:4;32737:20;32733:1;32722:9;32718:17;32711:47;32775:131;32901:4;32775:131;:::i;:::-;32767:139;;32494:419;;;:::o;32919:167::-;33059:19;33055:1;33047:6;33043:14;33036:43;32919:167;:::o;33092:366::-;33234:3;33255:67;33319:2;33314:3;33255:67;:::i;:::-;33248:74;;33331:93;33420:3;33331:93;:::i;:::-;33449:2;33444:3;33440:12;33433:19;;33092:366;;;:::o;33464:419::-;33630:4;33668:2;33657:9;33653:18;33645:26;;33717:9;33711:4;33707:20;33703:1;33692:9;33688:17;33681:47;33745:131;33871:4;33745:131;:::i;:::-;33737:139;;33464:419;;;:::o;33889:180::-;33937:77;33934:1;33927:88;34034:4;34031:1;34024:15;34058:4;34055:1;34048:15;34075:180;34123:77;34120:1;34113:88;34220:4;34217:1;34210:15;34244:4;34241:1;34234:15;34261:85;34306:7;34335:5;34324:16;;34261:85;;;:::o;34352:158::-;34410:9;34443:61;34461:42;34470:32;34496:5;34470:32;:::i;:::-;34461:42;:::i;:::-;34443:61;:::i;:::-;34430:74;;34352:158;;;:::o;34516:147::-;34611:45;34650:5;34611:45;:::i;:::-;34606:3;34599:58;34516:147;;:::o;34669:114::-;34736:6;34770:5;34764:12;34754:22;;34669:114;;;:::o;34789:184::-;34888:11;34922:6;34917:3;34910:19;34962:4;34957:3;34953:14;34938:29;;34789:184;;;;:::o;34979:132::-;35046:4;35069:3;35061:11;;35099:4;35094:3;35090:14;35082:22;;34979:132;;;:::o;35117:108::-;35194:24;35212:5;35194:24;:::i;:::-;35189:3;35182:37;35117:108;;:::o;35231:179::-;35300:10;35321:46;35363:3;35355:6;35321:46;:::i;:::-;35399:4;35394:3;35390:14;35376:28;;35231:179;;;;:::o;35416:113::-;35486:4;35518;35513:3;35509:14;35501:22;;35416:113;;;:::o;35565:732::-;35684:3;35713:54;35761:5;35713:54;:::i;:::-;35783:86;35862:6;35857:3;35783:86;:::i;:::-;35776:93;;35893:56;35943:5;35893:56;:::i;:::-;35972:7;36003:1;35988:284;36013:6;36010:1;36007:13;35988:284;;;36089:6;36083:13;36116:63;36175:3;36160:13;36116:63;:::i;:::-;36109:70;;36202:60;36255:6;36202:60;:::i;:::-;36192:70;;36048:224;36035:1;36032;36028:9;36023:14;;35988:284;;;35992:14;36288:3;36281:10;;35689:608;;;35565:732;;;;:::o;36303:831::-;36566:4;36604:3;36593:9;36589:19;36581:27;;36618:71;36686:1;36675:9;36671:17;36662:6;36618:71;:::i;:::-;36699:80;36775:2;36764:9;36760:18;36751:6;36699:80;:::i;:::-;36826:9;36820:4;36816:20;36811:2;36800:9;36796:18;36789:48;36854:108;36957:4;36948:6;36854:108;:::i;:::-;36846:116;;36972:72;37040:2;37029:9;37025:18;37016:6;36972:72;:::i;:::-;37054:73;37122:3;37111:9;37107:19;37098:6;37054:73;:::i;:::-;36303:831;;;;;;;;:::o;37140:807::-;37389:4;37427:3;37416:9;37412:19;37404:27;;37441:71;37509:1;37498:9;37494:17;37485:6;37441:71;:::i;:::-;37522:72;37590:2;37579:9;37575:18;37566:6;37522:72;:::i;:::-;37604:80;37680:2;37669:9;37665:18;37656:6;37604:80;:::i;:::-;37694;37770:2;37759:9;37755:18;37746:6;37694:80;:::i;:::-;37784:73;37852:3;37841:9;37837:19;37828:6;37784:73;:::i;:::-;37867;37935:3;37924:9;37920:19;37911:6;37867:73;:::i;:::-;37140:807;;;;;;;;;:::o;37953:143::-;38010:5;38041:6;38035:13;38026:22;;38057:33;38084:5;38057:33;:::i;:::-;37953:143;;;;:::o;38102:663::-;38190:6;38198;38206;38255:2;38243:9;38234:7;38230:23;38226:32;38223:119;;;38261:79;;:::i;:::-;38223:119;38381:1;38406:64;38462:7;38453:6;38442:9;38438:22;38406:64;:::i;:::-;38396:74;;38352:128;38519:2;38545:64;38601:7;38592:6;38581:9;38577:22;38545:64;:::i;:::-;38535:74;;38490:129;38658:2;38684:64;38740:7;38731:6;38720:9;38716:22;38684:64;:::i;:::-;38674:74;;38629:129;38102:663;;;;;:::o;38771:160::-;38911:12;38907:1;38899:6;38895:14;38888:36;38771:160;:::o;38937:366::-;39079:3;39100:67;39164:2;39159:3;39100:67;:::i;:::-;39093:74;;39176:93;39265:3;39176:93;:::i;:::-;39294:2;39289:3;39285:12;39278:19;;38937:366;;;:::o;39309:419::-;39475:4;39513:2;39502:9;39498:18;39490:26;;39562:9;39556:4;39552:20;39548:1;39537:9;39533:17;39526:47;39590:131;39716:4;39590:131;:::i;:::-;39582:139;;39309:419;;;:::o;39734:167::-;39874:19;39870:1;39862:6;39858:14;39851:43;39734:167;:::o;39907:366::-;40049:3;40070:67;40134:2;40129:3;40070:67;:::i;:::-;40063:74;;40146:93;40235:3;40146:93;:::i;:::-;40264:2;40259:3;40255:12;40248:19;;39907:366;;;:::o;40279:419::-;40445:4;40483:2;40472:9;40468:18;40460:26;;40532:9;40526:4;40522:20;40518:1;40507:9;40503:17;40496:47;40560:131;40686:4;40560:131;:::i;:::-;40552:139;;40279:419;;;:::o;40704:173::-;40844:25;40840:1;40832:6;40828:14;40821:49;40704:173;:::o;40883:366::-;41025:3;41046:67;41110:2;41105:3;41046:67;:::i;:::-;41039:74;;41122:93;41211:3;41122:93;:::i;:::-;41240:2;41235:3;41231:12;41224:19;;40883:366;;;:::o;41255:419::-;41421:4;41459:2;41448:9;41444:18;41436:26;;41508:9;41502:4;41498:20;41494:1;41483:9;41479:17;41472:47;41536:131;41662:4;41536:131;:::i;:::-;41528:139;;41255:419;;;:::o

Swarm Source

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