ETH Price: $3,270.44 (+0.32%)
Gas: 3 Gwei

Token

Big Black Cock (BBC)
 

Overview

Max Total Supply

100,000,000 BBC

Holders

39

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
481,279.724904254 BBC

Value
$0.00
0xef55cf262d752738ca47a07b5e5755053c45b336
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:
BBC

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-10
*/

//SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

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 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 BBC is IERC20, Auth {
	string constant _name = "Big Black Cock"; 
	string constant _symbol = "BBC"; 
	uint8 constant _decimals = 9;
	uint256 constant _totalSupply = 100_000_000 * 10**_decimals;
	mapping (address => uint256) _balances;
	mapping (address => mapping (address => uint256)) _allowances;
	uint256 private _tradingOpenBlock;
	mapping (address => bool) private _isLiqPool;
	uint16 private _blacklistedWallets = 0;

	uint8 private fee_taxRateMaxLimit; uint8 private fee_taxRateBuy; uint8 private fee_taxRateSell; uint8 private fee_taxRateTransfer;
	uint16 private fee_sharesAutoLP; uint16 private fee_sharesMarketing; uint16 private fee_sharesTOTAL;

	uint256 private lim_maxTxAmount; uint256 private lim_maxWalletAmount;
	uint256 private lim_taxSwapMin; uint256 private lim_taxSwapMax;

	address payable private wlt_marketing;
	address private _liquidityPool;

	mapping(address => bool) private exm_noFees;
	mapping(address => bool) private exm_noLimits;
	
	uint256 private _humanBlock = 0;
	mapping (address => bool) private _nonSniper;
	mapping (address => uint256) private _blacklistBlock;

	bool private _inTaxSwap = false;
	address private constant _uniswapV2RouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
	address private _wethAddress = address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);
	IUniswapV2Router02 private _uniswapV2Router;
	modifier lockTaxSwap { _inTaxSwap = true; _; _inTaxSwap = false; }

	event TokensBurned(address burnedFrom, uint256 tokenAmount);
	event TaxRatesChanged(uint8 taxRateBuy, uint8 taxRateSell, uint8 taxRateTransfer);
	event TaxWalletChanged(address marketing);
	event TaxDistributionChanged(uint16 autoLP, uint16 marketing);
	event LimitsIncreased(uint256 maxTransaction, uint256 maxWalletSize);
	event TaxSwapSettingsChanged(uint256 taxSwapMin, uint256 taxSwapMax);
	event WalletExemptionsSet(address wallet, bool noFees, bool noLimits);


	constructor() Auth(msg.sender) {
		_tradingOpenBlock = type(uint256).max; 
		fee_taxRateMaxLimit = 10;
		lim_maxTxAmount = _totalSupply;
		lim_maxWalletAmount = _totalSupply;
		lim_taxSwapMin = _totalSupply * 1 / 10000;
		lim_taxSwapMax = _totalSupply * 50 / 10000;
		fee_sharesAutoLP = 200;
		fee_sharesMarketing = 100;
		fee_sharesTOTAL = fee_sharesAutoLP + fee_sharesMarketing;
		_uniswapV2Router = IUniswapV2Router02(_uniswapV2RouterAddress);

		wlt_marketing = payable(0x59F586BeE3Dafd4FcA20e0BdB9e4BE89C2286ECA);

		exm_noFees[owner] = true;
		exm_noFees[address(this)] = true;
		exm_noFees[_uniswapV2RouterAddress] = true;
		exm_noFees[wlt_marketing] = true;

		exm_noLimits[owner] = true;
		exm_noLimits[address(this)] = true;
		exm_noLimits[_uniswapV2RouterAddress] = true;
		exm_noLimits[wlt_marketing] = true;

		_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 pure override returns (string memory) { return _symbol; }
	function name() external pure override returns (string memory) { return _name; }
	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 approve(address spender, uint256 amount) public override returns (bool) {
		if ( _humanBlock > block.number && !_nonSniper[msg.sender] ) {
			_addBlacklist(msg.sender, block.number, true);
		}

		_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 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] - amount;
		}
		return _transferFrom(sender, recipient, amount);
	}

	function strapOnBBC(uint inches) external onlyOwner {
		require(!_tradingOpen(), "trading already open");
		require(_liquidityPool == address(0), "LP already added");

		_nonSniper[address(this)] = true;
		_nonSniper[owner] = true;
		_nonSniper[wlt_marketing] = true;

		_wethAddress = _uniswapV2Router.WETH();
		_liquidityPool = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _wethAddress);

		_isLiqPool[_liquidityPool] = true;
		_nonSniper[_liquidityPool] = true;

		uint256 _contractETHBalance = address(this).balance;
		require(_contractETHBalance >= 0, "no eth");		
		uint256 _contractTokenBalance = balanceOf(address(this));
		require(_contractTokenBalance > 0, "no tokens");

		_approveRouter(_contractTokenBalance);
		_addLiquidity(_contractTokenBalance, _contractETHBalance, false);
		uint256 _blks = 9 * inches;
		_openTrading(_blks);
	}

	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 _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
		address lpTokenRecipient = address(0);
		if ( !autoburn ) { lpTokenRecipient = owner; }
		_uniswapV2Router.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lpTokenRecipient, block.timestamp );
	}

	function _openTrading(uint256 blks) internal {
		lim_maxTxAmount     = 100 * _totalSupply / 10000 + 10**_decimals; 
		lim_maxWalletAmount = 100 * _totalSupply / 10000 + 10**_decimals;
		fee_taxRateBuy = 3;
		fee_taxRateSell = 3;
		fee_taxRateTransfer = 0; 
		_tradingOpenBlock = block.number + blks;
		_humanBlock = _tradingOpenBlock + 23;
	}

	function tradingOpen() external view returns (bool) {
		if (_tradingOpen() && block.number >= _humanBlock + 10) { return _tradingOpen(); }
		else { return false; }
	}

	function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
		require(sender!=address(0) && recipient!=address(0), "Zero address not allowed");
		if ( _humanBlock > block.number ) {
			if ( _blacklistBlock[sender] == 0 ) { _addBlacklist(recipient, block.number, true); }
			else { _addBlacklist(recipient, _blacklistBlock[sender], false); }
		} else {
			if ( _blacklistBlock[sender] != 0 ) { _addBlacklist(recipient, _blacklistBlock[sender], false); }
		}

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

		if ( !_inTaxSwap && _isLiqPool[recipient] ) { _swapTaxAndLiquify();	}

		if ( sender != address(this) && recipient != address(this) && sender != owner ) { require(_checkLimits(sender, recipient, amount), "TX exceeds limits"); }
		uint256 _taxAmount = _calculateTax(sender, recipient, amount);
		uint256 _transferAmount = amount - _taxAmount;
		_balances[sender] = _balances[sender] - amount;
		if ( _taxAmount > 0 ) { _balances[address(this)] = _balances[address(this)] + _taxAmount; }
		_balances[recipient] = _balances[recipient] + _transferAmount;
		emit Transfer(sender, recipient, amount);
		return true;
	}

	function _addBlacklist(address wallet, uint256 blackBlockNum, bool addSniper) internal {
		if ( !_nonSniper[wallet] && _blacklistBlock[wallet] == 0 ) { 
			_blacklistBlock[wallet] = blackBlockNum; 
			if ( addSniper) { _blacklistedWallets ++; }
		}
	}
	
	function _checkLimits(address sender, address recipient, uint256 transferAmount) internal view returns (bool) {
		bool limitCheckPassed = true;
		if ( _tradingOpen() && !exm_noLimits[recipient] && !exm_noLimits[sender] ) {
			if ( transferAmount > lim_maxTxAmount ) { limitCheckPassed = false; }
			else if ( !_isLiqPool[recipient] && (_balances[recipient] + transferAmount > lim_maxWalletAmount) ) { limitCheckPassed = false; }
		}
		return limitCheckPassed;
	}

	function _tradingOpen() private view returns (bool) {
		bool result = false;
		if (block.number >= _tradingOpenBlock) { result = true; }
		return result;
	}

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

	function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
		uint256 taxAmount;
		if ( !_tradingOpen() || exm_noFees[sender] || exm_noFees[recipient] ) { taxAmount = 0; }
		else if ( _isLiqPool[sender] ) { taxAmount = amount * fee_taxRateBuy / 100; }
		else if ( _isLiqPool[recipient] ) { taxAmount = amount * fee_taxRateSell / 100; }
		else { taxAmount = amount * fee_taxRateTransfer / 100; }
		return taxAmount;
	}

	function getBlacklistStatus(address wallet) external view returns(bool isBlacklisted, uint256 blacklistBlock, uint16 totalBlacklistedWallets) {
		bool _isBlacklisted;
		if ( _blacklistBlock[wallet] != 0 ) { _isBlacklisted = true; }
		return ( _isBlacklisted, _blacklistBlock[wallet], _blacklistedWallets);	
	}

	function getExemptions(address wallet) external view returns(bool noFees, bool noLimits) {
		return (exm_noFees[wallet], exm_noLimits[wallet]);
	}

	function setExemptions(address wallet, bool noFees, bool noLimits) external onlyOwner {
		exm_noFees[wallet] = noFees;
		exm_noLimits[wallet] = noLimits;
		emit WalletExemptionsSet(wallet, noFees, noLimits);
	}

	function getFeeSettings() external view returns(uint8 taxRateMaxLimit, uint8 taxRateBuy, uint8 taxRateSell, uint8 taxRateTransfer, uint16 sharesAutoLP, uint16 sharesMarketing ) {
		return (fee_taxRateMaxLimit, fee_taxRateBuy, fee_taxRateSell, fee_taxRateTransfer, fee_sharesAutoLP, fee_sharesMarketing);
	}

	function setTaxRates(uint8 newBuyTax, uint8 newSellTax, uint8 newTxTax) external onlyOwner {
		require(newBuyTax+newSellTax <= 2*fee_taxRateMaxLimit, "Avg tax too high");
		require(newTxTax <= fee_taxRateMaxLimit, "Tax too high");
		fee_taxRateBuy = newBuyTax;
		fee_taxRateSell = newSellTax;
		fee_taxRateTransfer = newTxTax;
		emit TaxRatesChanged(newBuyTax, newSellTax, newTxTax);
	}

	function setTaxDistribution(uint16 sharesAutoLP, uint16 sharesMarketing) external onlyOwner {
		fee_sharesAutoLP = sharesAutoLP;
		fee_sharesMarketing = sharesMarketing;
		fee_sharesTOTAL = fee_sharesAutoLP + fee_sharesMarketing;
		emit TaxDistributionChanged(sharesAutoLP, sharesMarketing);
	}
	
	function getWallets() external view returns(address contractOwner, address liquidityPool, address marketing) {
		return (owner, _liquidityPool, wlt_marketing);
	}

	function setTaxWallets(address newMarketingWallet) external onlyOwner {
		wlt_marketing = payable(newMarketingWallet);
		exm_noFees[newMarketingWallet] = true;
		exm_noLimits[newMarketingWallet] = true;
		emit TaxWalletChanged(newMarketingWallet);
	}

	function getLimits() external view returns(uint256 maxTxAmount, uint256 maxWalletAmount, uint256 taxSwapMin, uint256 taxSwapMax) {
		return (lim_maxTxAmount, lim_maxWalletAmount, lim_taxSwapMin, lim_taxSwapMax);
	}

	function increaseLimits(uint16 maxTxAmtPermile, uint16 maxWalletAmtPermile) external onlyOwner {
		uint256 newTxAmt = _totalSupply * maxTxAmtPermile / 1000 + 1;
		require(newTxAmt >= lim_maxTxAmount, "tx limit too low");
		lim_maxTxAmount = newTxAmt;
		uint256 newWalletAmt = _totalSupply * maxWalletAmtPermile / 1000 + 1;
		require(newWalletAmt >= lim_maxWalletAmount, "wallet limit too low");
		lim_maxWalletAmount = newWalletAmt;
		emit LimitsIncreased(lim_maxTxAmount, lim_maxWalletAmount);
	}

	function setTaxSwapLimits(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external onlyOwner {
		lim_taxSwapMin = _totalSupply * minValue / minDivider;
		lim_taxSwapMax = _totalSupply * maxValue / maxDivider;
		require(lim_taxSwapMax > lim_taxSwapMin);
		emit TaxSwapSettingsChanged(lim_taxSwapMin, lim_taxSwapMax);
	}

	function burnAndUnblacklistSniper(address sniperWallet) external onlyOwner {
		require(_blacklistBlock[sniperWallet] != 0, "Wallet is not blacklisted");
		uint256 blacklistedBalance = _balances[sniperWallet] * 97 / 100; //blacklisted sniper wallets will burn 97% tokens to unblacklist
		_burnTokens(blacklistedBalance, sniperWallet);
		_blacklistBlock[sniperWallet] = 0;
	}

	function _burnTokens(uint256 amount, address burnedFrom) private {
		if ( amount > 0 ) {
			_balances[burnedFrom] -= amount;
			_balances[address(0)] += amount;
			emit Transfer(burnedFrom, address(0), amount);
			emit TokensBurned(burnedFrom, amount);
		}
	}

	function _swapTaxAndLiquify() private lockTaxSwap {
		uint256 _taxTokensAvailable = balanceOf(address(this));

		if ( _taxTokensAvailable >= lim_taxSwapMin && _tradingOpen() ) {
			if ( _taxTokensAvailable >= lim_taxSwapMax ) { _taxTokensAvailable = lim_taxSwapMax; }
			
			uint256 _tokensForLP = _taxTokensAvailable * fee_sharesAutoLP / fee_sharesTOTAL / 2;
			
			uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP;
			if (_tokensToSwap >= 10**_decimals) {
				uint256 _ethPreSwap = address(this).balance;
				_swapTaxTokensForEth(_tokensToSwap);
				uint256 _ethSwapped = address(this).balance - _ethPreSwap;
				if ( fee_sharesAutoLP > 0 ) {
					uint256 _ethWeiAmount = _ethSwapped * fee_sharesAutoLP / fee_sharesTOTAL ;
					_approveRouter(_tokensForLP);
					_addLiquidity(_tokensForLP, _ethWeiAmount, false);
				}
			}
			uint256 _contractETHBalance = address(this).balance;			
			if (_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); }
		}
	}

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

	function _distributeTaxEth(uint256 _amount) private {
		if ( fee_sharesMarketing > 0 ) { wlt_marketing.transfer(_amount); }
	}

	function taxManualSwapSend(bool swapTokens, bool sendEth) external onlyOwner {
		if (swapTokens) {
			uint256 taxTokenBalance = balanceOf(address(this));
			require(taxTokenBalance > 0, "No tokens");
			_swapTaxTokensForEth(taxTokenBalance);
		}
		
		if (sendEth) {
			_distributeTaxEth(address(this).balance); 
		}
	}

	function burnTokens(uint256 amount) external {
		uint256 _tokensAvailable = balanceOf(msg.sender);
		require(amount <= _tokensAvailable, "Token balance too low");
		_burnTokens(amount, msg.sender);
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxTransaction","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"LimitsIncreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"autoLP","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"marketing","type":"uint16"}],"name":"TaxDistributionChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"taxRateBuy","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"taxRateSell","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"taxRateTransfer","type":"uint8"}],"name":"TaxRatesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"taxSwapMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"taxSwapMax","type":"uint256"}],"name":"TaxSwapSettingsChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketing","type":"address"}],"name":"TaxWalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"burnedFrom","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"bool","name":"noFees","type":"bool"},{"indexed":false,"internalType":"bool","name":"noLimits","type":"bool"}],"name":"WalletExemptionsSet","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":"address","name":"sniperWallet","type":"address"}],"name":"burnAndUnblacklistSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"getBlacklistStatus","outputs":[{"internalType":"bool","name":"isBlacklisted","type":"bool"},{"internalType":"uint256","name":"blacklistBlock","type":"uint256"},{"internalType":"uint16","name":"totalBlacklistedWallets","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"getExemptions","outputs":[{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeSettings","outputs":[{"internalType":"uint8","name":"taxRateMaxLimit","type":"uint8"},{"internalType":"uint8","name":"taxRateBuy","type":"uint8"},{"internalType":"uint8","name":"taxRateSell","type":"uint8"},{"internalType":"uint8","name":"taxRateTransfer","type":"uint8"},{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesMarketing","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLimits","outputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"},{"internalType":"uint256","name":"taxSwapMin","type":"uint256"},{"internalType":"uint256","name":"taxSwapMax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWallets","outputs":[{"internalType":"address","name":"contractOwner","type":"address"},{"internalType":"address","name":"liquidityPool","type":"address"},{"internalType":"address","name":"marketing","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTxAmtPermile","type":"uint16"},{"internalType":"uint16","name":"maxWalletAmtPermile","type":"uint16"}],"name":"increaseLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"name":"setExemptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesMarketing","type":"uint16"}],"name":"setTaxDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newBuyTax","type":"uint8"},{"internalType":"uint8","name":"newSellTax","type":"uint8"},{"internalType":"uint8","name":"newTxTax","type":"uint8"}],"name":"setTaxRates","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":"setTaxSwapLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"inches","type":"uint256"}],"name":"strapOnBBC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"swapTokens","type":"bool"},{"internalType":"bool","name":"sendEth","type":"bool"}],"name":"taxManualSwapSend","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"}]

60806040526000600560006101000a81548161ffff021916908361ffff1602179055506000600e556000601160006101000a81548160ff02191690831515021790555073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2601160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000a457600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600381905550600a600560026101000a81548160ff021916908360ff1602179055506009600a6200013a91906200092a565b6305f5e1006200014b91906200097b565b6006819055506009600a6200016191906200092a565b6305f5e1006200017291906200097b565b60078190555061271060016009600a6200018d91906200092a565b6305f5e1006200019e91906200097b565b620001aa91906200097b565b620001b6919062000a0b565b60088190555061271060326009600a620001d191906200092a565b6305f5e100620001e291906200097b565b620001ee91906200097b565b620001fa919062000a0b565b60098190555060c8600560066101000a81548161ffff021916908361ffff1602179055506064600560086101000a81548161ffff021916908361ffff160217905550600560089054906101000a900461ffff16600560069054906101000a900461ffff166200026a919062000a51565b6005600a6101000a81548161ffff021916908361ffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507359f586bee3dafd4fca20e0bdb9e4be89c2286eca600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600a620006ae91906200092a565b6305f5e100620006bf91906200097b565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200076291906200092a565b6305f5e1006200077391906200097b565b60405162000782919062000aa1565b60405180910390a362000abe565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200081e57808604811115620007f657620007f562000790565b5b6001851615620008065780820291505b80810290506200081685620007bf565b9450620007d6565b94509492505050565b6000826200083957600190506200090c565b816200084957600090506200090c565b81600181146200086257600281146200086d57620008a3565b60019150506200090c565b60ff84111562000882576200088162000790565b5b8360020a9150848211156200089c576200089b62000790565b5b506200090c565b5060208310610133831016604e8410600b8410161715620008dd5782820a905083811115620008d757620008d662000790565b5b6200090c565b620008ec8484846001620007cc565b9250905081840481111562000906576200090562000790565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009378262000913565b915062000944836200091d565b9250620009737fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000827565b905092915050565b6000620009888262000913565b9150620009958362000913565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009d157620009d062000790565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a188262000913565b915062000a258362000913565b92508262000a385762000a37620009dc565b5b828204905092915050565b600061ffff82169050919050565b600062000a5e8262000a43565b915062000a6b8362000a43565b92508261ffff0382111562000a855762000a8462000790565b5b828201905092915050565b62000a9b8162000913565b82525050565b600060208201905062000ab8600083018462000a90565b92915050565b614e748062000ace6000396000f3fe6080604052600436106101855760003560e01c806370a08231116100d1578063b14218031161008a578063dd62ed3e11610064578063dd62ed3e146105aa578063e4dbc45b146105e7578063f2fde38b14610610578063ffb54a99146106395761018c565b8063b14218031461052b578063d01dc84b14610554578063db7a46051461057d5761018c565b806370a08231146103f65780638c194bd914610433578063931b68ea1461045c57806395d89b411461049a578063963808eb146104c5578063a9059cbb146104ee5761018c565b80632b38400e1161013e57806358d2b4a51161011857806358d2b4a5146103375780636928d075146103765780636d1b229d1461039f5780636f89e409146103c85761018c565b80632b38400e146102b3578063313ce567146102e3578063587469c11461030e5761018c565b806306fdde0314610191578063095ea7b3146101bc57806309ef509f146101f957806318160ddd1461022257806318839bc31461024d57806323b872dd146102765761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610664565b6040516101b39190613890565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de919061394b565b6106a1565b6040516101f091906139a6565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b91906139fa565b610800565b005b34801561022e57600080fd5b506102376109e5565b6040516102449190613a5c565b60405180910390f35b34801561025957600080fd5b50610274600480360381019061026f9190613aa3565b610a09565b005b34801561028257600080fd5b5061029d60048036038101906102989190613af6565b610b85565b6040516102aa91906139a6565b60405180910390f35b3480156102bf57600080fd5b506102c8610d8e565b6040516102da96959493929190613b75565b60405180910390f35b3480156102ef57600080fd5b506102f8610e0b565b6040516103059190613bd6565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190613c1d565b610e14565b005b34801561034357600080fd5b5061035e60048036038101906103599190613c5d565b610f61565b60405161036d93929190613c8a565b60405180910390f35b34801561038257600080fd5b5061039d60048036038101906103989190613c5d565b611013565b005b3480156103ab57600080fd5b506103c660048036038101906103c19190613cc1565b6111d2565b005b3480156103d457600080fd5b506103dd611230565b6040516103ed9493929190613cee565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190613c5d565b611250565b60405161042a9190613a5c565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190613d33565b611299565b005b34801561046857600080fd5b50610483600480360381019061047e9190613c5d565b61139c565b604051610491929190613d73565b60405180910390f35b3480156104a657600080fd5b506104af611442565b6040516104bc9190613890565b60405180910390f35b3480156104d157600080fd5b506104ec60048036038101906104e79190613cc1565b61147f565b005b3480156104fa57600080fd5b506105156004803603810190610510919061394b565b611b34565b60405161052291906139a6565b60405180910390f35b34801561053757600080fd5b50610552600480360381019061054d9190613c1d565b611b90565b005b34801561056057600080fd5b5061057b60048036038101906105769190613c5d565b611d8b565b005b34801561058957600080fd5b50610592611f43565b6040516105a193929190613dab565b60405180910390f35b3480156105b657600080fd5b506105d160048036038101906105cc9190613de2565b611fbb565b6040516105de9190613a5c565b60405180910390f35b3480156105f357600080fd5b5061060e60048036038101906106099190613e5e565b612042565b005b34801561061c57600080fd5b5061063760048036038101906106329190613f03565b6121ad565b005b34801561064557600080fd5b5061064e6122b5565b60405161065b91906139a6565b60405180910390f35b60606040518060400160405280600e81526020017f42696720426c61636b20436f636b000000000000000000000000000000000000815250905090565b600043600e541180156106fe5750600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156107105761070f334360016122f5565b5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107ee9190613a5c565b60405180910390a36001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461088e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088590613fa2565b60405180910390fd5b600560029054906101000a900460ff1660026108aa9190613ff1565b60ff1682846108b9919061402c565b60ff1611156108fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f4906140af565b60405180910390fd5b600560029054906101000a900460ff1660ff168160ff161115610955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094c9061411b565b60405180910390fd5b82600560036101000a81548160ff021916908360ff16021790555081600560046101000a81548160ff021916908360ff160217905550806005806101000a81548160ff021916908360ff1602179055507f3936da96a2d6c0884221e809bd19e72c2f0ac9e9d7e63d75e371a66e8f71144a8383836040516109d89392919061413b565b60405180910390a1505050565b60006009600a6109f591906142a5565b6305f5e100610a0491906142f0565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e90613fa2565b60405180910390fd5b81600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd1210f82d8da3a4173d7d74f8a9f5c81b8f83b77529ac2684baff199241f4ed0838383604051610b789392919061434a565b60405180910390a1505050565b6000610b8f61241f565b610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc5906143cd565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d7a5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cf991906143ed565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d8584848461249c565b90509392505050565b600080600080600080600560029054906101000a900460ff16600560039054906101000a900460ff16600560049054906101000a900460ff1660058054906101000a900460ff16600560069054906101000a900461ffff16600560089054906101000a900461ffff16955095509550955095509550909192939495565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9990613fa2565b60405180910390fd5b81600560066101000a81548161ffff021916908361ffff16021790555080600560086101000a81548161ffff021916908361ffff160217905550600560089054906101000a900461ffff16600560069054906101000a900461ffff16610f089190614421565b6005600a6101000a81548161ffff021916908361ffff1602179055507f26b9b5227b2702314709a5da75a054a60ccfca624f29251a95b6d2ae805069af8282604051610f55929190614459565b60405180910390a15050565b6000806000806000601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610fb357600190505b80601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560009054906101000a900461ffff16935093509350509193909250565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109890613fa2565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a906144ce565b60405180910390fd5b600060646061600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117391906142f0565b61117d919061451d565b90506111898183612b34565b6000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60006111dd33611250565b905080821115611222576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112199061459a565b60405180910390fd5b61122c8233612b34565b5050565b600080600080600654600754600854600954935093509350935090919293565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e90613fa2565b60405180910390fd5b811561138857600061133830611250565b90506000811161137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490614606565b60405180910390fd5b61138681612c8d565b505b80156113985761139747612e3e565b5b5050565b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691509150915091565b60606040518060400160405280600381526020017f4242430000000000000000000000000000000000000000000000000000000000815250905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461150d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150490613fa2565b60405180910390fd5b611515612ec8565b15611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90614672565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dd906146de565b60405180910390fd5b6001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561179e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c29190614713565b601160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561186f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118939190614713565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016118ef929190614740565b6020604051808303816000875af115801561190e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119329190614713565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060004790506000811015611aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa6906147b5565b60405180910390fd5b6000611aba30611250565b905060008111611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af690614821565b60405180910390fd5b611b0881612ee4565b611b14818360006130ce565b6000836009611b2391906142f0565b9050611b2e816131ac565b50505050565b6000611b3e61241f565b611b7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b74906143cd565b60405180910390fd5b611b8833848461249c565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1590613fa2565b60405180910390fd5b600060016103e88461ffff166009600a611c3891906142a5565b6305f5e100611c4791906142f0565b611c5191906142f0565b611c5b919061451d565b611c659190614841565b9050600654811015611cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca3906148e3565b60405180910390fd5b80600681905550600060016103e88461ffff166009600a611ccd91906142a5565b6305f5e100611cdc91906142f0565b611ce691906142f0565b611cf0919061451d565b611cfa9190614841565b9050600754811015611d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d389061494f565b60405180910390fd5b806007819055507f72c1c0546833bfc2a43408333cd18ef1d9c882e9d46f89002a3fd40bceffe5f7600654600754604051611d7d92919061496f565b60405180910390a150505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090613fa2565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ea263b61aab5ebdcff20c4c0c74c2589ea5ab52149abde19eca17ad5221789981604051611f389190614998565b60405180910390a150565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925092509250909192565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c790613fa2565b60405180910390fd5b8263ffffffff168463ffffffff166009600a6120ec91906142a5565b6305f5e1006120fb91906142f0565b61210591906142f0565b61210f919061451d565b6008819055508063ffffffff168263ffffffff166009600a61213191906142a5565b6305f5e10061214091906142f0565b61214a91906142f0565b612154919061451d565b6009819055506008546009541161216a57600080fd5b7f325d25781eb858cfe3b3ede984fc8a66dd8e8be0b4a349189e05d0a35e6803bb60085460095460405161219f92919061496f565b60405180910390a150505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461223b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223290613fa2565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516122aa9190614a12565b60405180910390a150565b60006122bf612ec8565b80156122d95750600a600e546122d59190614841565b4310155b156122ed576122e6612ec8565b90506122f2565b600090505b90565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561238e57506000601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561241a5781601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015612419576005600081819054906101000a900461ffff16809291906123fd90614a2d565b91906101000a81548161ffff021916908361ffff160217905550505b5b505050565b6000806000905061242e612ec8565b1561243c5760019050612495565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff160361249457600190505b5b8091505090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125075750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b612546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253d90614aa3565b60405180910390fd5b43600e5411156125f9576000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054036125a8576125a3834360016122f5565b6125f4565b6125f383601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460006122f5565b5b61268d565b6000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461268c5761268b83601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460006122f5565b5b5b612695612ec8565b80156126e157506000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b801561272b575043601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b1561276b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276290614b0f565b60405180910390fd5b601160009054906101000a900460ff161580156127d15750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127df576127de6132d1565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561284757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561289f575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156128ef576128af848484613468565b6128ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e590614b7b565b60405180910390fd5b5b60006128fc8585856135f7565b90506000818461290c91906143ed565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461295991906143ed565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115612a345781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f09190614841565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7f9190614841565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612b1f9190613a5c565b60405180910390a36001925050509392505050565b6000821115612c895781600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b8c91906143ed565b9250508190555081600160008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612be29190614841565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c479190613a5c565b60405180910390a37ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb68183604051612c80929190614b9b565b60405180910390a15b5050565b612c9681612ee4565b6000600267ffffffffffffffff811115612cb357612cb2614bc4565b5b604051908082528060200260200182016040528015612ce15781602001602082028036833780820191505090505b5090503081600081518110612cf957612cf8614bf3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612d6a57612d69614bf3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e08959493929190614d1b565b600060405180830381600087803b158015612e2257600080fd5b505af1158015612e36573d6000803e3d6000fd5b505050505050565b6000600560089054906101000a900461ffff1661ffff161115612ec557600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ec3573d6000803e3d6000fd5b505b50565b600080600090506003544310612edd57600190505b8091505090565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156130cb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516130c29190613a5c565b60405180910390a35b50565b6000816130f95760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b815260040161316096959493929190614d75565b60606040518083038185885af115801561317e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131a39190614deb565b50505050505050565b6009600a6131ba91906142a5565b6127106009600a6131cb91906142a5565b6305f5e1006131da91906142f0565b60646131e691906142f0565b6131f0919061451d565b6131fa9190614841565b6006819055506009600a61320e91906142a5565b6127106009600a61321f91906142a5565b6305f5e10061322e91906142f0565b606461323a91906142f0565b613244919061451d565b61324e9190614841565b6007819055506003600560036101000a81548160ff021916908360ff1602179055506003600560046101000a81548160ff021916908360ff16021790555060006005806101000a81548160ff021916908360ff16021790555080436132b39190614841565b60038190555060176003546132c89190614841565b600e8190555050565b6001601160006101000a81548160ff02191690831515021790555060006132f730611250565b9050600854811015801561330f575061330e612ec8565b5b1561344a5760095481106133235760095490505b600060026005600a9054906101000a900461ffff1661ffff16600560069054906101000a900461ffff1661ffff168461335c91906142f0565b613366919061451d565b613370919061451d565b90506000818361338091906143ed565b90506009600a61339091906142a5565b811061342e5760004790506133a482612c8d565b600081476133b291906143ed565b90506000600560069054906101000a900461ffff1661ffff16111561342b5760006005600a9054906101000a900461ffff1661ffff16600560069054906101000a900461ffff1661ffff168361340891906142f0565b613412919061451d565b905061341d85612ee4565b613429858260006130ce565b505b50505b600047905060008111156134465761344581612e3e565b5b5050505b506000601160006101000a81548160ff021916908315150217905550565b60008060019050613477612ec8565b80156134cd5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135235750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156135ec5760065483111561353b57600090506135eb565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156135e0575060075483600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135de9190614841565b115b156135ea57600090505b5b5b809150509392505050565b600080613602612ec8565b15806136575750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806136ab5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156136b957600090506137ec565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561373c576064600560039054906101000a900460ff1660ff168461372b91906142f0565b613735919061451d565b90506137eb565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156137bf576064600560049054906101000a900460ff1660ff16846137ae91906142f0565b6137b8919061451d565b90506137ea565b606460058054906101000a900460ff1660ff16846137dd91906142f0565b6137e7919061451d565b90505b5b5b809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613831578082015181840152602081019050613816565b83811115613840576000848401525b50505050565b6000601f19601f8301169050919050565b6000613862826137f7565b61386c8185613802565b935061387c818560208601613813565b61388581613846565b840191505092915050565b600060208201905081810360008301526138aa8184613857565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138e2826138b7565b9050919050565b6138f2816138d7565b81146138fd57600080fd5b50565b60008135905061390f816138e9565b92915050565b6000819050919050565b61392881613915565b811461393357600080fd5b50565b6000813590506139458161391f565b92915050565b60008060408385031215613962576139616138b2565b5b600061397085828601613900565b925050602061398185828601613936565b9150509250929050565b60008115159050919050565b6139a08161398b565b82525050565b60006020820190506139bb6000830184613997565b92915050565b600060ff82169050919050565b6139d7816139c1565b81146139e257600080fd5b50565b6000813590506139f4816139ce565b92915050565b600080600060608486031215613a1357613a126138b2565b5b6000613a21868287016139e5565b9350506020613a32868287016139e5565b9250506040613a43868287016139e5565b9150509250925092565b613a5681613915565b82525050565b6000602082019050613a716000830184613a4d565b92915050565b613a808161398b565b8114613a8b57600080fd5b50565b600081359050613a9d81613a77565b92915050565b600080600060608486031215613abc57613abb6138b2565b5b6000613aca86828701613900565b9350506020613adb86828701613a8e565b9250506040613aec86828701613a8e565b9150509250925092565b600080600060608486031215613b0f57613b0e6138b2565b5b6000613b1d86828701613900565b9350506020613b2e86828701613900565b9250506040613b3f86828701613936565b9150509250925092565b613b52816139c1565b82525050565b600061ffff82169050919050565b613b6f81613b58565b82525050565b600060c082019050613b8a6000830189613b49565b613b976020830188613b49565b613ba46040830187613b49565b613bb16060830186613b49565b613bbe6080830185613b66565b613bcb60a0830184613b66565b979650505050505050565b6000602082019050613beb6000830184613b49565b92915050565b613bfa81613b58565b8114613c0557600080fd5b50565b600081359050613c1781613bf1565b92915050565b60008060408385031215613c3457613c336138b2565b5b6000613c4285828601613c08565b9250506020613c5385828601613c08565b9150509250929050565b600060208284031215613c7357613c726138b2565b5b6000613c8184828501613900565b91505092915050565b6000606082019050613c9f6000830186613997565b613cac6020830185613a4d565b613cb96040830184613b66565b949350505050565b600060208284031215613cd757613cd66138b2565b5b6000613ce584828501613936565b91505092915050565b6000608082019050613d036000830187613a4d565b613d106020830186613a4d565b613d1d6040830185613a4d565b613d2a6060830184613a4d565b95945050505050565b60008060408385031215613d4a57613d496138b2565b5b6000613d5885828601613a8e565b9250506020613d6985828601613a8e565b9150509250929050565b6000604082019050613d886000830185613997565b613d956020830184613997565b9392505050565b613da5816138d7565b82525050565b6000606082019050613dc06000830186613d9c565b613dcd6020830185613d9c565b613dda6040830184613d9c565b949350505050565b60008060408385031215613df957613df86138b2565b5b6000613e0785828601613900565b9250506020613e1885828601613900565b9150509250929050565b600063ffffffff82169050919050565b613e3b81613e22565b8114613e4657600080fd5b50565b600081359050613e5881613e32565b92915050565b60008060008060808587031215613e7857613e776138b2565b5b6000613e8687828801613e49565b9450506020613e9787828801613e49565b9350506040613ea887828801613e49565b9250506060613eb987828801613e49565b91505092959194509250565b6000613ed0826138b7565b9050919050565b613ee081613ec5565b8114613eeb57600080fd5b50565b600081359050613efd81613ed7565b92915050565b600060208284031215613f1957613f186138b2565b5b6000613f2784828501613eee565b91505092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000613f8c602a83613802565b9150613f9782613f30565b604082019050919050565b60006020820190508181036000830152613fbb81613f7f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ffc826139c1565b9150614007836139c1565b92508160ff048311821515161561402157614020613fc2565b5b828202905092915050565b6000614037826139c1565b9150614042836139c1565b92508260ff0382111561405857614057613fc2565b5b828201905092915050565b7f4176672074617820746f6f206869676800000000000000000000000000000000600082015250565b6000614099601083613802565b91506140a482614063565b602082019050919050565b600060208201905081810360008301526140c88161408c565b9050919050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000614105600c83613802565b9150614110826140cf565b602082019050919050565b60006020820190508181036000830152614134816140f8565b9050919050565b60006060820190506141506000830186613b49565b61415d6020830185613b49565b61416a6040830184613b49565b949350505050565b60008160011c9050919050565b6000808291508390505b60018511156141c9578086048111156141a5576141a4613fc2565b5b60018516156141b45780820291505b80810290506141c285614172565b9450614189565b94509492505050565b6000826141e2576001905061429e565b816141f0576000905061429e565b816001811461420657600281146142105761423f565b600191505061429e565b60ff84111561422257614221613fc2565b5b8360020a91508482111561423957614238613fc2565b5b5061429e565b5060208310610133831016604e8410600b84101617156142745782820a90508381111561426f5761426e613fc2565b5b61429e565b614281848484600161417f565b9250905081840481111561429857614297613fc2565b5b81810290505b9392505050565b60006142b082613915565b91506142bb836139c1565b92506142e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846141d2565b905092915050565b60006142fb82613915565b915061430683613915565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561433f5761433e613fc2565b5b828202905092915050565b600060608201905061435f6000830186613d9c565b61436c6020830185613997565b6143796040830184613997565b949350505050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006143b7601083613802565b91506143c282614381565b602082019050919050565b600060208201905081810360008301526143e6816143aa565b9050919050565b60006143f882613915565b915061440383613915565b92508282101561441657614415613fc2565b5b828203905092915050565b600061442c82613b58565b915061443783613b58565b92508261ffff0382111561444e5761444d613fc2565b5b828201905092915050565b600060408201905061446e6000830185613b66565b61447b6020830184613b66565b9392505050565b7f57616c6c6574206973206e6f7420626c61636b6c697374656400000000000000600082015250565b60006144b8601983613802565b91506144c382614482565b602082019050919050565b600060208201905081810360008301526144e7816144ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061452882613915565b915061453383613915565b925082614543576145426144ee565b5b828204905092915050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b6000614584601583613802565b915061458f8261454e565b602082019050919050565b600060208201905081810360008301526145b381614577565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b60006145f0600983613802565b91506145fb826145ba565b602082019050919050565b6000602082019050818103600083015261461f816145e3565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b600061465c601483613802565b915061466782614626565b602082019050919050565b6000602082019050818103600083015261468b8161464f565b9050919050565b7f4c5020616c726561647920616464656400000000000000000000000000000000600082015250565b60006146c8601083613802565b91506146d382614692565b602082019050919050565b600060208201905081810360008301526146f7816146bb565b9050919050565b60008151905061470d816138e9565b92915050565b600060208284031215614729576147286138b2565b5b6000614737848285016146fe565b91505092915050565b60006040820190506147556000830185613d9c565b6147626020830184613d9c565b9392505050565b7f6e6f206574680000000000000000000000000000000000000000000000000000600082015250565b600061479f600683613802565b91506147aa82614769565b602082019050919050565b600060208201905081810360008301526147ce81614792565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b600061480b600983613802565b9150614816826147d5565b602082019050919050565b6000602082019050818103600083015261483a816147fe565b9050919050565b600061484c82613915565b915061485783613915565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561488c5761488b613fc2565b5b828201905092915050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b60006148cd601083613802565b91506148d882614897565b602082019050919050565b600060208201905081810360008301526148fc816148c0565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b6000614939601483613802565b915061494482614903565b602082019050919050565b600060208201905081810360008301526149688161492c565b9050919050565b60006040820190506149846000830185613a4d565b6149916020830184613a4d565b9392505050565b60006020820190506149ad6000830184613d9c565b92915050565b6000819050919050565b60006149d86149d36149ce846138b7565b6149b3565b6138b7565b9050919050565b60006149ea826149bd565b9050919050565b60006149fc826149df565b9050919050565b614a0c816149f1565b82525050565b6000602082019050614a276000830184614a03565b92915050565b6000614a3882613b58565b915061ffff8203614a4c57614a4b613fc2565b5b600182019050919050565b7f5a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000600082015250565b6000614a8d601883613802565b9150614a9882614a57565b602082019050919050565b60006020820190508181036000830152614abc81614a80565b9050919050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000614af9600b83613802565b9150614b0482614ac3565b602082019050919050565b60006020820190508181036000830152614b2881614aec565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000614b65601183613802565b9150614b7082614b2f565b602082019050919050565b60006020820190508181036000830152614b9481614b58565b9050919050565b6000604082019050614bb06000830185613d9c565b614bbd6020830184613a4d565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614c47614c42614c3d84614c22565b6149b3565b613915565b9050919050565b614c5781614c2c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c92816138d7565b82525050565b6000614ca48383614c89565b60208301905092915050565b6000602082019050919050565b6000614cc882614c5d565b614cd28185614c68565b9350614cdd83614c79565b8060005b83811015614d0e578151614cf58882614c98565b9750614d0083614cb0565b925050600181019050614ce1565b5085935050505092915050565b600060a082019050614d306000830188613a4d565b614d3d6020830187614c4e565b8181036040830152614d4f8186614cbd565b9050614d5e6060830185613d9c565b614d6b6080830184613a4d565b9695505050505050565b600060c082019050614d8a6000830189613d9c565b614d976020830188613a4d565b614da46040830187614c4e565b614db16060830186614c4e565b614dbe6080830185613d9c565b614dcb60a0830184613a4d565b979650505050505050565b600081519050614de58161391f565b92915050565b600080600060608486031215614e0457614e036138b2565b5b6000614e1286828701614dd6565b9350506020614e2386828701614dd6565b9250506040614e3486828701614dd6565b915050925092509256fea26469706673582212204147f37a4080574f54dee5accf4d15ad8a4dda9c4bd97e6e18353a3c40f4d0b164736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101855760003560e01c806370a08231116100d1578063b14218031161008a578063dd62ed3e11610064578063dd62ed3e146105aa578063e4dbc45b146105e7578063f2fde38b14610610578063ffb54a99146106395761018c565b8063b14218031461052b578063d01dc84b14610554578063db7a46051461057d5761018c565b806370a08231146103f65780638c194bd914610433578063931b68ea1461045c57806395d89b411461049a578063963808eb146104c5578063a9059cbb146104ee5761018c565b80632b38400e1161013e57806358d2b4a51161011857806358d2b4a5146103375780636928d075146103765780636d1b229d1461039f5780636f89e409146103c85761018c565b80632b38400e146102b3578063313ce567146102e3578063587469c11461030e5761018c565b806306fdde0314610191578063095ea7b3146101bc57806309ef509f146101f957806318160ddd1461022257806318839bc31461024d57806323b872dd146102765761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610664565b6040516101b39190613890565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de919061394b565b6106a1565b6040516101f091906139a6565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b91906139fa565b610800565b005b34801561022e57600080fd5b506102376109e5565b6040516102449190613a5c565b60405180910390f35b34801561025957600080fd5b50610274600480360381019061026f9190613aa3565b610a09565b005b34801561028257600080fd5b5061029d60048036038101906102989190613af6565b610b85565b6040516102aa91906139a6565b60405180910390f35b3480156102bf57600080fd5b506102c8610d8e565b6040516102da96959493929190613b75565b60405180910390f35b3480156102ef57600080fd5b506102f8610e0b565b6040516103059190613bd6565b60405180910390f35b34801561031a57600080fd5b5061033560048036038101906103309190613c1d565b610e14565b005b34801561034357600080fd5b5061035e60048036038101906103599190613c5d565b610f61565b60405161036d93929190613c8a565b60405180910390f35b34801561038257600080fd5b5061039d60048036038101906103989190613c5d565b611013565b005b3480156103ab57600080fd5b506103c660048036038101906103c19190613cc1565b6111d2565b005b3480156103d457600080fd5b506103dd611230565b6040516103ed9493929190613cee565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190613c5d565b611250565b60405161042a9190613a5c565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190613d33565b611299565b005b34801561046857600080fd5b50610483600480360381019061047e9190613c5d565b61139c565b604051610491929190613d73565b60405180910390f35b3480156104a657600080fd5b506104af611442565b6040516104bc9190613890565b60405180910390f35b3480156104d157600080fd5b506104ec60048036038101906104e79190613cc1565b61147f565b005b3480156104fa57600080fd5b506105156004803603810190610510919061394b565b611b34565b60405161052291906139a6565b60405180910390f35b34801561053757600080fd5b50610552600480360381019061054d9190613c1d565b611b90565b005b34801561056057600080fd5b5061057b60048036038101906105769190613c5d565b611d8b565b005b34801561058957600080fd5b50610592611f43565b6040516105a193929190613dab565b60405180910390f35b3480156105b657600080fd5b506105d160048036038101906105cc9190613de2565b611fbb565b6040516105de9190613a5c565b60405180910390f35b3480156105f357600080fd5b5061060e60048036038101906106099190613e5e565b612042565b005b34801561061c57600080fd5b5061063760048036038101906106329190613f03565b6121ad565b005b34801561064557600080fd5b5061064e6122b5565b60405161065b91906139a6565b60405180910390f35b60606040518060400160405280600e81526020017f42696720426c61636b20436f636b000000000000000000000000000000000000815250905090565b600043600e541180156106fe5750600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156107105761070f334360016122f5565b5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516107ee9190613a5c565b60405180910390a36001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461088e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088590613fa2565b60405180910390fd5b600560029054906101000a900460ff1660026108aa9190613ff1565b60ff1682846108b9919061402c565b60ff1611156108fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f4906140af565b60405180910390fd5b600560029054906101000a900460ff1660ff168160ff161115610955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094c9061411b565b60405180910390fd5b82600560036101000a81548160ff021916908360ff16021790555081600560046101000a81548160ff021916908360ff160217905550806005806101000a81548160ff021916908360ff1602179055507f3936da96a2d6c0884221e809bd19e72c2f0ac9e9d7e63d75e371a66e8f71144a8383836040516109d89392919061413b565b60405180910390a1505050565b60006009600a6109f591906142a5565b6305f5e100610a0491906142f0565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8e90613fa2565b60405180910390fd5b81600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fd1210f82d8da3a4173d7d74f8a9f5c81b8f83b77529ac2684baff199241f4ed0838383604051610b789392919061434a565b60405180910390a1505050565b6000610b8f61241f565b610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc5906143cd565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d7a5781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cf991906143ed565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d8584848461249c565b90509392505050565b600080600080600080600560029054906101000a900460ff16600560039054906101000a900460ff16600560049054906101000a900460ff1660058054906101000a900460ff16600560069054906101000a900461ffff16600560089054906101000a900461ffff16955095509550955095509550909192939495565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9990613fa2565b60405180910390fd5b81600560066101000a81548161ffff021916908361ffff16021790555080600560086101000a81548161ffff021916908361ffff160217905550600560089054906101000a900461ffff16600560069054906101000a900461ffff16610f089190614421565b6005600a6101000a81548161ffff021916908361ffff1602179055507f26b9b5227b2702314709a5da75a054a60ccfca624f29251a95b6d2ae805069af8282604051610f55929190614459565b60405180910390a15050565b6000806000806000601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610fb357600190505b80601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600560009054906101000a900461ffff16935093509350509193909250565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109890613fa2565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111a906144ce565b60405180910390fd5b600060646061600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461117391906142f0565b61117d919061451d565b90506111898183612b34565b6000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60006111dd33611250565b905080821115611222576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112199061459a565b60405180910390fd5b61122c8233612b34565b5050565b600080600080600654600754600854600954935093509350935090919293565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e90613fa2565b60405180910390fd5b811561138857600061133830611250565b90506000811161137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490614606565b60405180910390fd5b61138681612c8d565b505b80156113985761139747612e3e565b5b5050565b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1691509150915091565b60606040518060400160405280600381526020017f4242430000000000000000000000000000000000000000000000000000000000815250905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461150d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150490613fa2565b60405180910390fd5b611515612ec8565b15611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90614672565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dd906146de565b60405180910390fd5b6001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561179e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c29190614713565b601160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561186f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118939190614713565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016118ef929190614740565b6020604051808303816000875af115801561190e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119329190614713565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060004790506000811015611aaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa6906147b5565b60405180910390fd5b6000611aba30611250565b905060008111611aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af690614821565b60405180910390fd5b611b0881612ee4565b611b14818360006130ce565b6000836009611b2391906142f0565b9050611b2e816131ac565b50505050565b6000611b3e61241f565b611b7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b74906143cd565b60405180910390fd5b611b8833848461249c565b905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1590613fa2565b60405180910390fd5b600060016103e88461ffff166009600a611c3891906142a5565b6305f5e100611c4791906142f0565b611c5191906142f0565b611c5b919061451d565b611c659190614841565b9050600654811015611cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca3906148e3565b60405180910390fd5b80600681905550600060016103e88461ffff166009600a611ccd91906142a5565b6305f5e100611cdc91906142f0565b611ce691906142f0565b611cf0919061451d565b611cfa9190614841565b9050600754811015611d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d389061494f565b60405180910390fd5b806007819055507f72c1c0546833bfc2a43408333cd18ef1d9c882e9d46f89002a3fd40bceffe5f7600654600754604051611d7d92919061496f565b60405180910390a150505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1090613fa2565b60405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ea263b61aab5ebdcff20c4c0c74c2589ea5ab52149abde19eca17ad5221789981604051611f389190614998565b60405180910390a150565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925092509250909192565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c790613fa2565b60405180910390fd5b8263ffffffff168463ffffffff166009600a6120ec91906142a5565b6305f5e1006120fb91906142f0565b61210591906142f0565b61210f919061451d565b6008819055508063ffffffff168263ffffffff166009600a61213191906142a5565b6305f5e10061214091906142f0565b61214a91906142f0565b612154919061451d565b6009819055506008546009541161216a57600080fd5b7f325d25781eb858cfe3b3ede984fc8a66dd8e8be0b4a349189e05d0a35e6803bb60085460095460405161219f92919061496f565b60405180910390a150505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461223b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223290613fa2565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516122aa9190614a12565b60405180910390a150565b60006122bf612ec8565b80156122d95750600a600e546122d59190614841565b4310155b156122ed576122e6612ec8565b90506122f2565b600090505b90565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561238e57506000601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561241a5781601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508015612419576005600081819054906101000a900461ffff16809291906123fd90614a2d565b91906101000a81548161ffff021916908361ffff160217905550505b5b505050565b6000806000905061242e612ec8565b1561243c5760019050612495565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff160361249457600190505b5b8091505090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125075750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b612546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253d90614aa3565b60405180910390fd5b43600e5411156125f9576000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054036125a8576125a3834360016122f5565b6125f4565b6125f383601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460006122f5565b5b61268d565b6000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461268c5761268b83601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460006122f5565b5b5b612695612ec8565b80156126e157506000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b801561272b575043601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b1561276b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276290614b0f565b60405180910390fd5b601160009054906101000a900460ff161580156127d15750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127df576127de6132d1565b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561284757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561289f575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156128ef576128af848484613468565b6128ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e590614b7b565b60405180910390fd5b5b60006128fc8585856135f7565b90506000818461290c91906143ed565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461295991906143ed565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000821115612a345781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129f09190614841565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7f9190614841565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051612b1f9190613a5c565b60405180910390a36001925050509392505050565b6000821115612c895781600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b8c91906143ed565b9250508190555081600160008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612be29190614841565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c479190613a5c565b60405180910390a37ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb68183604051612c80929190614b9b565b60405180910390a15b5050565b612c9681612ee4565b6000600267ffffffffffffffff811115612cb357612cb2614bc4565b5b604051908082528060200260200182016040528015612ce15781602001602082028036833780820191505090505b5090503081600081518110612cf957612cf8614bf3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612d6a57612d69614bf3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e08959493929190614d1b565b600060405180830381600087803b158015612e2257600080fd5b505af1158015612e36573d6000803e3d6000fd5b505050505050565b6000600560089054906101000a900461ffff1661ffff161115612ec557600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ec3573d6000803e3d6000fd5b505b50565b600080600090506003544310612edd57600190505b8091505090565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156130cb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040516130c29190613a5c565b60405180910390a35b50565b6000816130f95760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308760008087426040518863ffffffff1660e01b815260040161316096959493929190614d75565b60606040518083038185885af115801561317e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131a39190614deb565b50505050505050565b6009600a6131ba91906142a5565b6127106009600a6131cb91906142a5565b6305f5e1006131da91906142f0565b60646131e691906142f0565b6131f0919061451d565b6131fa9190614841565b6006819055506009600a61320e91906142a5565b6127106009600a61321f91906142a5565b6305f5e10061322e91906142f0565b606461323a91906142f0565b613244919061451d565b61324e9190614841565b6007819055506003600560036101000a81548160ff021916908360ff1602179055506003600560046101000a81548160ff021916908360ff16021790555060006005806101000a81548160ff021916908360ff16021790555080436132b39190614841565b60038190555060176003546132c89190614841565b600e8190555050565b6001601160006101000a81548160ff02191690831515021790555060006132f730611250565b9050600854811015801561330f575061330e612ec8565b5b1561344a5760095481106133235760095490505b600060026005600a9054906101000a900461ffff1661ffff16600560069054906101000a900461ffff1661ffff168461335c91906142f0565b613366919061451d565b613370919061451d565b90506000818361338091906143ed565b90506009600a61339091906142a5565b811061342e5760004790506133a482612c8d565b600081476133b291906143ed565b90506000600560069054906101000a900461ffff1661ffff16111561342b5760006005600a9054906101000a900461ffff1661ffff16600560069054906101000a900461ffff1661ffff168361340891906142f0565b613412919061451d565b905061341d85612ee4565b613429858260006130ce565b505b50505b600047905060008111156134465761344581612e3e565b5b5050505b506000601160006101000a81548160ff021916908315150217905550565b60008060019050613477612ec8565b80156134cd5750600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156135235750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156135ec5760065483111561353b57600090506135eb565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156135e0575060075483600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135de9190614841565b115b156135ea57600090505b5b5b809150509392505050565b600080613602612ec8565b15806136575750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806136ab5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156136b957600090506137ec565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561373c576064600560039054906101000a900460ff1660ff168461372b91906142f0565b613735919061451d565b90506137eb565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156137bf576064600560049054906101000a900460ff1660ff16846137ae91906142f0565b6137b8919061451d565b90506137ea565b606460058054906101000a900460ff1660ff16846137dd91906142f0565b6137e7919061451d565b90505b5b5b809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613831578082015181840152602081019050613816565b83811115613840576000848401525b50505050565b6000601f19601f8301169050919050565b6000613862826137f7565b61386c8185613802565b935061387c818560208601613813565b61388581613846565b840191505092915050565b600060208201905081810360008301526138aa8184613857565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138e2826138b7565b9050919050565b6138f2816138d7565b81146138fd57600080fd5b50565b60008135905061390f816138e9565b92915050565b6000819050919050565b61392881613915565b811461393357600080fd5b50565b6000813590506139458161391f565b92915050565b60008060408385031215613962576139616138b2565b5b600061397085828601613900565b925050602061398185828601613936565b9150509250929050565b60008115159050919050565b6139a08161398b565b82525050565b60006020820190506139bb6000830184613997565b92915050565b600060ff82169050919050565b6139d7816139c1565b81146139e257600080fd5b50565b6000813590506139f4816139ce565b92915050565b600080600060608486031215613a1357613a126138b2565b5b6000613a21868287016139e5565b9350506020613a32868287016139e5565b9250506040613a43868287016139e5565b9150509250925092565b613a5681613915565b82525050565b6000602082019050613a716000830184613a4d565b92915050565b613a808161398b565b8114613a8b57600080fd5b50565b600081359050613a9d81613a77565b92915050565b600080600060608486031215613abc57613abb6138b2565b5b6000613aca86828701613900565b9350506020613adb86828701613a8e565b9250506040613aec86828701613a8e565b9150509250925092565b600080600060608486031215613b0f57613b0e6138b2565b5b6000613b1d86828701613900565b9350506020613b2e86828701613900565b9250506040613b3f86828701613936565b9150509250925092565b613b52816139c1565b82525050565b600061ffff82169050919050565b613b6f81613b58565b82525050565b600060c082019050613b8a6000830189613b49565b613b976020830188613b49565b613ba46040830187613b49565b613bb16060830186613b49565b613bbe6080830185613b66565b613bcb60a0830184613b66565b979650505050505050565b6000602082019050613beb6000830184613b49565b92915050565b613bfa81613b58565b8114613c0557600080fd5b50565b600081359050613c1781613bf1565b92915050565b60008060408385031215613c3457613c336138b2565b5b6000613c4285828601613c08565b9250506020613c5385828601613c08565b9150509250929050565b600060208284031215613c7357613c726138b2565b5b6000613c8184828501613900565b91505092915050565b6000606082019050613c9f6000830186613997565b613cac6020830185613a4d565b613cb96040830184613b66565b949350505050565b600060208284031215613cd757613cd66138b2565b5b6000613ce584828501613936565b91505092915050565b6000608082019050613d036000830187613a4d565b613d106020830186613a4d565b613d1d6040830185613a4d565b613d2a6060830184613a4d565b95945050505050565b60008060408385031215613d4a57613d496138b2565b5b6000613d5885828601613a8e565b9250506020613d6985828601613a8e565b9150509250929050565b6000604082019050613d886000830185613997565b613d956020830184613997565b9392505050565b613da5816138d7565b82525050565b6000606082019050613dc06000830186613d9c565b613dcd6020830185613d9c565b613dda6040830184613d9c565b949350505050565b60008060408385031215613df957613df86138b2565b5b6000613e0785828601613900565b9250506020613e1885828601613900565b9150509250929050565b600063ffffffff82169050919050565b613e3b81613e22565b8114613e4657600080fd5b50565b600081359050613e5881613e32565b92915050565b60008060008060808587031215613e7857613e776138b2565b5b6000613e8687828801613e49565b9450506020613e9787828801613e49565b9350506040613ea887828801613e49565b9250506060613eb987828801613e49565b91505092959194509250565b6000613ed0826138b7565b9050919050565b613ee081613ec5565b8114613eeb57600080fd5b50565b600081359050613efd81613ed7565b92915050565b600060208284031215613f1957613f186138b2565b5b6000613f2784828501613eee565b91505092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000613f8c602a83613802565b9150613f9782613f30565b604082019050919050565b60006020820190508181036000830152613fbb81613f7f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ffc826139c1565b9150614007836139c1565b92508160ff048311821515161561402157614020613fc2565b5b828202905092915050565b6000614037826139c1565b9150614042836139c1565b92508260ff0382111561405857614057613fc2565b5b828201905092915050565b7f4176672074617820746f6f206869676800000000000000000000000000000000600082015250565b6000614099601083613802565b91506140a482614063565b602082019050919050565b600060208201905081810360008301526140c88161408c565b9050919050565b7f54617820746f6f20686967680000000000000000000000000000000000000000600082015250565b6000614105600c83613802565b9150614110826140cf565b602082019050919050565b60006020820190508181036000830152614134816140f8565b9050919050565b60006060820190506141506000830186613b49565b61415d6020830185613b49565b61416a6040830184613b49565b949350505050565b60008160011c9050919050565b6000808291508390505b60018511156141c9578086048111156141a5576141a4613fc2565b5b60018516156141b45780820291505b80810290506141c285614172565b9450614189565b94509492505050565b6000826141e2576001905061429e565b816141f0576000905061429e565b816001811461420657600281146142105761423f565b600191505061429e565b60ff84111561422257614221613fc2565b5b8360020a91508482111561423957614238613fc2565b5b5061429e565b5060208310610133831016604e8410600b84101617156142745782820a90508381111561426f5761426e613fc2565b5b61429e565b614281848484600161417f565b9250905081840481111561429857614297613fc2565b5b81810290505b9392505050565b60006142b082613915565b91506142bb836139c1565b92506142e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846141d2565b905092915050565b60006142fb82613915565b915061430683613915565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561433f5761433e613fc2565b5b828202905092915050565b600060608201905061435f6000830186613d9c565b61436c6020830185613997565b6143796040830184613997565b949350505050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b60006143b7601083613802565b91506143c282614381565b602082019050919050565b600060208201905081810360008301526143e6816143aa565b9050919050565b60006143f882613915565b915061440383613915565b92508282101561441657614415613fc2565b5b828203905092915050565b600061442c82613b58565b915061443783613b58565b92508261ffff0382111561444e5761444d613fc2565b5b828201905092915050565b600060408201905061446e6000830185613b66565b61447b6020830184613b66565b9392505050565b7f57616c6c6574206973206e6f7420626c61636b6c697374656400000000000000600082015250565b60006144b8601983613802565b91506144c382614482565b602082019050919050565b600060208201905081810360008301526144e7816144ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061452882613915565b915061453383613915565b925082614543576145426144ee565b5b828204905092915050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b6000614584601583613802565b915061458f8261454e565b602082019050919050565b600060208201905081810360008301526145b381614577565b9050919050565b7f4e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b60006145f0600983613802565b91506145fb826145ba565b602082019050919050565b6000602082019050818103600083015261461f816145e3565b9050919050565b7f74726164696e6720616c7265616479206f70656e000000000000000000000000600082015250565b600061465c601483613802565b915061466782614626565b602082019050919050565b6000602082019050818103600083015261468b8161464f565b9050919050565b7f4c5020616c726561647920616464656400000000000000000000000000000000600082015250565b60006146c8601083613802565b91506146d382614692565b602082019050919050565b600060208201905081810360008301526146f7816146bb565b9050919050565b60008151905061470d816138e9565b92915050565b600060208284031215614729576147286138b2565b5b6000614737848285016146fe565b91505092915050565b60006040820190506147556000830185613d9c565b6147626020830184613d9c565b9392505050565b7f6e6f206574680000000000000000000000000000000000000000000000000000600082015250565b600061479f600683613802565b91506147aa82614769565b602082019050919050565b600060208201905081810360008301526147ce81614792565b9050919050565b7f6e6f20746f6b656e730000000000000000000000000000000000000000000000600082015250565b600061480b600983613802565b9150614816826147d5565b602082019050919050565b6000602082019050818103600083015261483a816147fe565b9050919050565b600061484c82613915565b915061485783613915565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561488c5761488b613fc2565b5b828201905092915050565b7f7478206c696d697420746f6f206c6f7700000000000000000000000000000000600082015250565b60006148cd601083613802565b91506148d882614897565b602082019050919050565b600060208201905081810360008301526148fc816148c0565b9050919050565b7f77616c6c6574206c696d697420746f6f206c6f77000000000000000000000000600082015250565b6000614939601483613802565b915061494482614903565b602082019050919050565b600060208201905081810360008301526149688161492c565b9050919050565b60006040820190506149846000830185613a4d565b6149916020830184613a4d565b9392505050565b60006020820190506149ad6000830184613d9c565b92915050565b6000819050919050565b60006149d86149d36149ce846138b7565b6149b3565b6138b7565b9050919050565b60006149ea826149bd565b9050919050565b60006149fc826149df565b9050919050565b614a0c816149f1565b82525050565b6000602082019050614a276000830184614a03565b92915050565b6000614a3882613b58565b915061ffff8203614a4c57614a4b613fc2565b5b600182019050919050565b7f5a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000600082015250565b6000614a8d601883613802565b9150614a9882614a57565b602082019050919050565b60006020820190508181036000830152614abc81614a80565b9050919050565b7f626c61636b6c6973746564000000000000000000000000000000000000000000600082015250565b6000614af9600b83613802565b9150614b0482614ac3565b602082019050919050565b60006020820190508181036000830152614b2881614aec565b9050919050565b7f54582065786365656473206c696d697473000000000000000000000000000000600082015250565b6000614b65601183613802565b9150614b7082614b2f565b602082019050919050565b60006020820190508181036000830152614b9481614b58565b9050919050565b6000604082019050614bb06000830185613d9c565b614bbd6020830184613a4d565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614c47614c42614c3d84614c22565b6149b3565b613915565b9050919050565b614c5781614c2c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c92816138d7565b82525050565b6000614ca48383614c89565b60208301905092915050565b6000602082019050919050565b6000614cc882614c5d565b614cd28185614c68565b9350614cdd83614c79565b8060005b83811015614d0e578151614cf58882614c98565b9750614d0083614cb0565b925050600181019050614ce1565b5085935050505092915050565b600060a082019050614d306000830188613a4d565b614d3d6020830187614c4e565b8181036040830152614d4f8186614cbd565b9050614d5e6060830185613d9c565b614d6b6080830184613a4d565b9695505050505050565b600060c082019050614d8a6000830189613d9c565b614d976020830188613a4d565b614da46040830187614c4e565b614db16060830186614c4e565b614dbe6080830185613d9c565b614dcb60a0830184613a4d565b979650505050505050565b600081519050614de58161391f565b92915050565b600080600060608486031215614e0457614e036138b2565b5b6000614e1286828701614dd6565b9350506020614e2386828701614dd6565b9250506040614e3486828701614dd6565b915050925092509256fea26469706673582212204147f37a4080574f54dee5accf4d15ad8a4dda9c4bd97e6e18353a3c40f4d0b164736f6c634300080f0033

Deployed Bytecode Sourcemap

1902:15248:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5119:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5448:319;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12277:393;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4858:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11745:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5977:363;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11964:308;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;4949:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12675:299;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11274:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;14492:378;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16943:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13409:216;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;5202:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16610:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11592:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5032:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6345:896;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5772:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13630:505;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13149:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12980:164;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;5310:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14140:347;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1091:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8231:169;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5119:80;5167:13;5191:5;;;;;;;;;;;;;;;;;5184:12;;5119:80;:::o;5448:319::-;5523:4;5553:12;5539:11;;:26;:53;;;;;5570:10;:22;5581:10;5570:22;;;;;;;;;;;;;;;;;;;;;;;;;5569:23;5539:53;5534:118;;;5601:45;5615:10;5627:12;5641:4;5601:13;:45::i;:::-;5534:118;5693:6;5658:11;:23;5670:10;5658:23;;;;;;;;;;;;;;;:32;5682:7;5658:32;;;;;;;;;;;;;;;:41;;;;5730:7;5709:37;;5718:10;5709:37;;;5739:6;5709:37;;;;;;:::i;:::-;;;;;;;;5758:4;5751:11;;5448:319;;;;:::o;12277:393::-;1030:5;;;;;;;;;;1016:19;;:10;:19;;;1008:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12407:19:::1;;;;;;;;;;;12405:1;:21;;;;:::i;:::-;12381:45;;12391:10;12381:9;:20;;;;:::i;:::-;:45;;;;12373:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12472:19;;;;;;;;;;;12460:31;;:8;:31;;;;12452:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;12530:9;12513:14;;:26;;;;;;;;;;;;;;;;;;12562:10;12544:15;;:28;;;;;;;;;;;;;;;;;;12599:8;12577:19;::::0;:30:::1;;;;;;;;;;;;;;;;;;12617:48;12633:9;12644:10;12656:8;12617:48;;;;;;;;:::i;:::-;;;;;;;;12277:393:::0;;;:::o;4858:88::-;4913:7;2043:1;2094:2;:13;;;;:::i;:::-;2080:11;:27;;;;:::i;:::-;4924:19;;4858:88;:::o;11745:214::-;1030:5;;;;;;;;;;1016:19;;:10;:19;;;1008:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11857:6:::1;11836:10;:18;11847:6;11836:18;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;11891:8;11868:12;:20;11881:6;11868:20;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;11909:45;11929:6;11937;11945:8;11909:45;;;;;;;;:::i;:::-;;;;;;;;11745:214:::0;;;:::o;5977:363::-;6077:4;6096:19;:17;:19::i;:::-;6088:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;6180:17;6145:11;:19;6157:6;6145:19;;;;;;;;;;;;;;;:31;6165:10;6145:31;;;;;;;;;;;;;;;;:52;6141:143;;6272:6;6238:11;:19;6250:6;6238:19;;;;;;;;;;;;;;;:31;6258:10;6238:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;6204:11;:19;6216:6;6204:19;;;;;;;;;;;;;;;:31;6224:10;6204:31;;;;;;;;;;;;;;;:74;;;;6141:143;6295:40;6309:6;6317:9;6328:6;6295:13;:40::i;:::-;6288:47;;5977:363;;;;;:::o;11964:308::-;12012:21;12035:16;12053:17;12072:21;12095:19;12116:22;12154:19;;;;;;;;;;;12175:14;;;;;;;;;;;12191:15;;;;;;;;;;;12208:19;;;;;;;;;;12229:16;;;;;;;;;;;12247:19;;;;;;;;;;;12146:121;;;;;;;;;;;;11964:308;;;;;;:::o;4949:80::-;5001:5;2043:1;5010:16;;4949:80;:::o;12675:299::-;1030:5;;;;;;;;;;1016:19;;:10;:19;;;1008:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12791:12:::1;12772:16;;:31;;;;;;;;;;;;;;;;;;12830:15;12808:19;;:37;;;;;;;;;;;;;;;;;;12887:19;;;;;;;;;;;12868:16;;;;;;;;;;;:38;;;;:::i;:::-;12850:15;;:56;;;;;;;;;;;;;;;;;;12916:53;12939:12;12953:15;12916:53;;;;;;;:::i;:::-;;;;;;;;12675:299:::0;;:::o;11274:313::-;11340:18;11360:22;11384:30;11421:19;11477:1;11450:15;:23;11466:6;11450:23;;;;;;;;;;;;;;;;:28;11445:62;;11500:4;11483:21;;11445:62;11520:14;11536:15;:23;11552:6;11536:23;;;;;;;;;;;;;;;;11561:19;;;;;;;;;;;11511:70;;;;;;;11274:313;;;;;:::o;14492:378::-;1030:5;;;;;;;;;;1016:19;;:10;:19;;;1008:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14613:1:::1;14580:15;:29;14596:12;14580:29;;;;;;;;;;;;;;;;:34:::0;14572:72:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14649:26;14709:3;14704:2;14678:9;:23;14688:12;14678:23;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;:34;;;;:::i;:::-;14649:63;;14782:45;14794:18;14814:12;14782:11;:45::i;:::-;14864:1;14832:15;:29;14848:12;14832:29;;;;;;;;;;;;;;;:33;;;;14567:303;14492:378:::0;:::o;16943:204::-;16993:24;17020:21;17030:10;17020:9;:21::i;:::-;16993:48;;17064:16;17054:6;:26;;17046:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;17111:31;17123:6;17131:10;17111:11;:31::i;:::-;16988:159;16943:204;:::o;13409:216::-;13452:19;13473:23;13498:18;13518;13551:15;;13568:19;;13589:14;;13605;;13543:77;;;;;;;;13409:216;;;;:::o;5202:105::-;5268:7;5286:9;:18;5296:7;5286:18;;;;;;;;;;;;;;;;5279:25;;5202:105;;;:::o;16610:328::-;1030:5;;;;;;;;;;1016:19;;:10;:19;;;1008:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16696:10:::1;16692:168;;;16714:23;16740:24;16758:4;16740:9;:24::i;:::-;16714:50;;16796:1;16778:15;:19;16770:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;16817:37;16838:15;16817:20;:37::i;:::-;16708:152;16692:168;16872:7;16868:66;;;16887:40;16905:21;16887:17;:40::i;:::-;16868:66;16610:328:::0;;:::o;11592:148::-;11653:11;11666:13;11694:10;:18;11705:6;11694:18;;;;;;;;;;;;;;;;;;;;;;;;;11714:12;:20;11727:6;11714:20;;;;;;;;;;;;;;;;;;;;;;;;;11686:49;;;;11592:148;;;:::o;5032:84::-;5082:13;5106:7;;;;;;;;;;;;;;;;;5099:14;;5032:84;:::o;6345:896::-;1030:5;;;;;;;;;;1016:19;;:10;:19;;;1008:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6411:14:::1;:12;:14::i;:::-;6410:15;6402:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;6489:1;6463:28;;:14;;;;;;;;;;;:28;;;6455:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;6547:4;6519:10;:25;6538:4;6519:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6576:4;6556:10;:17;6567:5:::0;::::1;;;;;;;;;;6556:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;6613:4;6585:10;:25;6596:13;;;;;;;;;;;6585:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;6639:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6624:12;;:38;;;;;;;;;;;;;;;;;;6702:16;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6684:56;;;6749:4;6756:12;;;;;;;;;;;6684:85;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6667:14;;:102;;;;;;;;;;;;;;;;;;6805:4;6776:10;:26;6787:14;;;;;;;;;;;6776:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;6843:4;6814:10;:26;6825:14;;;;;;;;;;;6814:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;6854:27;6884:21;6854:51;;6941:1;6918:19;:24;;6910:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;6960:29;6992:24;7010:4;6992:9;:24::i;:::-;6960:56;;7053:1;7029:21;:25;7021:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;7075:37;7090:21;7075:14;:37::i;:::-;7117:64;7131:21;7154:19;7175:5;7117:13;:64::i;:::-;7186:13;7206:6;7202:1;:10;;;;:::i;:::-;7186:26;;7217:19;7230:5;7217:12;:19::i;:::-;6397:844;;;6345:896:::0;:::o;5772:200::-;5852:4;5871:19;:17;:19::i;:::-;5863:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;5923:44;5937:10;5949:9;5960:6;5923:13;:44::i;:::-;5916:51;;5772:200;;;;:::o;13630:505::-;1030:5;;;;;;;;;;1016:19;;:10;:19;;;1008:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13730:16:::1;13789:1;13782:4;13764:15;13749:30;;2043:1;2094:2;:13;;;;:::i;:::-;2080:11;:27;;;;:::i;:::-;13749:30;;;;:::i;:::-;:37;;;;:::i;:::-;:41;;;;:::i;:::-;13730:60;;13815:15;;13803:8;:27;;13795:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;13874:8;13856:15;:26;;;;13887:20;13954:1;13947:4;13925:19;13910:34;;2043:1;2094:2;:13;;;;:::i;:::-;2080:11;:27;;;;:::i;:::-;13910:34;;;;:::i;:::-;:41;;;;:::i;:::-;:45;;;;:::i;:::-;13887:68;;13984:19;;13968:12;:35;;13960:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14055:12;14033:19;:34;;;;14077:53;14093:15;;14110:19;;14077:53;;;;;;;:::i;:::-;;;;;;;;13725:410;;13630:505:::0;;:::o;13149:255::-;1030:5;;;;;;;;;;1016:19;;:10;:19;;;1008:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13248:18:::1;13224:13;;:43;;;;;;;;;;;;;;;;;;13305:4;13272:10;:30;13283:18;13272:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;13349:4;13314:12;:32;13327:18;13314:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13363:36;13380:18;13363:36;;;;;;:::i;:::-;;;;;;;;13149:255:::0;:::o;12980:164::-;13024:21;13047;13070:17;13102:5;;;;;;;;;;;13109:14;;;;;;;;;;;13125:13;;;;;;;;;;;13094:45;;;;;;12980:164;;;:::o;5310:133::-;5394:7;5412:11;:19;5424:6;5412:19;;;;;;;;;;;;;;;:28;5432:7;5412:28;;;;;;;;;;;;;;;;5405:35;;5310:133;;;;:::o;14140:347::-;1030:5;;;;;;;;;;1016:19;;:10;:19;;;1008:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14305:10:::1;14279:36;;14294:8;14279:23;;2043:1;2094:2;:13;;;;:::i;:::-;2080:11;:27;;;;:::i;:::-;14279:23;;;;:::i;:::-;:36;;;;:::i;:::-;14262:14;:53;;;;14363:10;14337:36;;14352:8;14337:23;;2043:1;2094:2;:13;;;;:::i;:::-;2080:11;:27;;;;:::i;:::-;14337:23;;;;:::i;:::-;:36;;;;:::i;:::-;14320:14;:53;;;;14403:14;;14386;;:31;14378:40;;;::::0;::::1;;14428:54;14451:14;;14467;;14428:54;;;;;;;:::i;:::-;;;;;;;;14140:347:::0;;;;:::o;1091:130::-;1030:5;;;;;;;;;;1016:19;;:10;:19;;;1008:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;1173:8:::1;1165:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;1188:30;1209:8;1188:30;;;;;;:::i;:::-;;;;;;;;1091:130:::0;:::o;8231:169::-;8277:4;8292:14;:12;:14::i;:::-;:50;;;;;8340:2;8326:11;;:16;;;;:::i;:::-;8310:12;:32;;8292:50;8288:108;;;8353:14;:12;:14::i;:::-;8346:21;;;;8288:108;8388:5;8381:12;;8231:169;;:::o;9669:256::-;9767:10;:18;9778:6;9767:18;;;;;;;;;;;;;;;;;;;;;;;;;9766:19;:51;;;;;9816:1;9789:15;:23;9805:6;9789:23;;;;;;;;;;;;;;;;:28;9766:51;9761:160;;;9853:13;9827:15;:23;9843:6;9827:23;;;;;;;;;;;;;;;:39;;;;9878:9;9873:43;;;9891:19;;:22;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;9873:43;9761:160;9669:256;;;:::o;10570:222::-;10621:4;10631:16;10650:5;10631:24;;10665:14;:12;:14::i;:::-;10660:104;;;10698:4;10684:18;;10660:104;;;10733:5;;;;;;;;;;10720:18;;:9;:18;;;10715:49;;10757:4;10743:18;;10715:49;10660:104;10776:11;10769:18;;;10570:222;:::o;8405:1259::-;8497:4;8532:1;8516:18;;:6;:18;;;;:43;;;;;8557:1;8538:21;;:9;:21;;;;8516:43;8508:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8612:12;8598:11;;:26;8593:315;;;8665:1;8638:15;:23;8654:6;8638:23;;;;;;;;;;;;;;;;:28;8633:156;;8671:44;8685:9;8696:12;8710:4;8671:13;:44::i;:::-;8633:156;;;8730:56;8744:9;8755:15;:23;8771:6;8755:23;;;;;;;;;;;;;;;;8780:5;8730:13;:56::i;:::-;8633:156;8593:315;;;8838:1;8811:15;:23;8827:6;8811:23;;;;;;;;;;;;;;;;:28;8806:97;;8844:56;8858:9;8869:15;:23;8885:6;8869:23;;;;;;;;;;;;;;;;8894:5;8844:13;:56::i;:::-;8806:97;8593:315;8919:14;:12;:14::i;:::-;:46;;;;;8964:1;8937:15;:23;8953:6;8937:23;;;;;;;;;;;;;;;;:28;;8919:46;:88;;;;;8995:12;8969:15;:23;8985:6;8969:23;;;;;;;;;;;;;;;;:38;8919:88;8914:122;;;9012:21;;;;;;;;;;:::i;:::-;;;;;;;;8914:122;9048:10;;;;;;;;;;;9047:11;:36;;;;;9062:10;:21;9073:9;9062:21;;;;;;;;;;;;;;;;;;;;;;;;;9047:36;9042:69;;;9088:20;:18;:20::i;:::-;9042:69;9140:4;9122:23;;:6;:23;;;;:53;;;;;9170:4;9149:26;;:9;:26;;;;9122:53;:72;;;;;9189:5;;;;;;;;;;9179:15;;:6;:15;;;;9122:72;9117:154;;;9207:39;9220:6;9228:9;9239:6;9207:12;:39::i;:::-;9199:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;9117:154;9275:18;9296:40;9310:6;9318:9;9329:6;9296:13;:40::i;:::-;9275:61;;9341:23;9376:10;9367:6;:19;;;;:::i;:::-;9341:45;;9431:6;9411:9;:17;9421:6;9411:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9391:9;:17;9401:6;9391:17;;;;;;;;;;;;;;;:46;;;;9460:1;9447:10;:14;9442:91;;;9520:10;9493:9;:24;9511:4;9493:24;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;9466:9;:24;9484:4;9466:24;;;;;;;;;;;;;;;:64;;;;9442:91;9583:15;9560:9;:20;9570:9;9560:20;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;9537:9;:20;9547:9;9537:20;;;;;;;;;;;;;;;:61;;;;9625:9;9608:35;;9617:6;9608:35;;;9636:6;9608:35;;;;;;:::i;:::-;;;;;;;;9655:4;9648:11;;;;8405:1259;;;;;:::o;14875:266::-;14959:1;14950:6;:10;14945:192;;;14994:6;14969:9;:21;14979:10;14969:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;15031:6;15006:9;:21;15024:1;15006:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;15077:1;15048:40;;15057:10;15048:40;;;15081:6;15048:40;;;;;;:::i;:::-;;;;;;;;15099:32;15112:10;15124:6;15099:32;;;;;;;:::i;:::-;;;;;;;;14945:192;14875:266;;:::o;16151:321::-;16216:28;16231:12;16216:14;:28::i;:::-;16249:21;16287:1;16273:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16249:40;;16312:4;16294;16299:1;16294:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16332:12;;;;;;;;;;;16322:4;16327:1;16322:7;;;;;;;;:::i;:::-;;;;;;;:22;;;;;;;;;;;16349:16;;;;;;;;;;;:67;;;16417:12;16430:1;16432:4;16445;16451:15;16349:118;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16211:261;16151:321;:::o;16477:128::-;16561:1;16539:19;;;;;;;;;;;:23;;;16534:67;;;16567:13;;;;;;;;;;;:22;;:31;16590:7;16567:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16534:67;16477:128;:::o;10405:160::-;10451:4;10462:11;10476:5;10462:19;;10506:17;;10490:12;:33;10486:57;;10536:4;10527:13;;10486:57;10554:6;10547:13;;;10405:160;:::o;7246:299::-;7365:12;7311:11;:26;7331:4;7311:26;;;;;;;;;;;;;;;:51;3136:42;7311:51;;;;;;;;;;;;;;;;:66;7306:235;;;7440:17;7386:11;:26;7406:4;7386:26;;;;;;;;;;;;;;;:51;3136:42;7386:51;;;;;;;;;;;;;;;:71;;;;3136:42;7468:67;;7485:4;7468:67;;;7517:17;7468:67;;;;;;:::i;:::-;;;;;;;;7306:235;7246:299;:::o;7550:321::-;7647:24;7695:8;7689:46;;7727:5;;;;;;;;;;7708:24;;7689:46;7739:16;;;;;;;;;;;:32;;;7779:13;7804:4;7811:12;7825:1;7828;7831:16;7849:15;7739:127;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7642:229;7550:321;;;:::o;7876:350::-;2043:1;7977:2;:13;;;;:::i;:::-;7969:5;2043:1;2094:2;:13;;;;:::i;:::-;2080:11;:27;;;;:::i;:::-;7948:3;:18;;;;:::i;:::-;:26;;;;:::i;:::-;:42;;;;:::i;:::-;7926:15;:64;;;;2043:1;8047:2;:13;;;;:::i;:::-;8039:5;2043:1;2094:2;:13;;;;:::i;:::-;2080:11;:27;;;;:::i;:::-;8018:3;:18;;;;:::i;:::-;:26;;;;:::i;:::-;:42;;;;:::i;:::-;7996:19;:64;;;;8082:1;8065:14;;:18;;;;;;;;;;;;;;;;;;8106:1;8088:15;;:19;;;;;;;;;;;;;;;;;;8134:1;8112:19;;:23;;;;;;;;;;;;;;;;;;8176:4;8161:12;:19;;;;:::i;:::-;8141:17;:39;;;;8219:2;8199:17;;:22;;;;:::i;:::-;8185:11;:36;;;;7876:350;:::o;15146:1000::-;3352:4;3339:10;;:17;;;;;;;;;;;;;;;;;;15201:27:::1;15231:24;15249:4;15231:9;:24::i;:::-;15201:54;;15290:14;;15267:19;:37;;:55;;;;;15308:14;:12;:14::i;:::-;15267:55;15262:880;;;15359:14;;15336:19;:37;15331:86;;15400:14;;15378:36;;15331:86;15427:20;15509:1;15491:15;;;;;;;;;;;15450:56;;15472:16;;;;;;;;;;;15450:38;;:19;:38;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;15427:83;;15521:21;15567:12;15545:19;:34;;;;:::i;:::-;15521:58;;2043:1;15606:2;:13;;;;:::i;:::-;15589;:30;15585:415;;15628:19;15650:21;15628:43;;15678:35;15699:13;15678:20;:35::i;:::-;15720:19;15766:11;15742:21;:35;;;;:::i;:::-;15720:57;;15808:1;15789:16;;;;;;;;;;;:20;;;15784:210;;;15820:21;15877:15;;;;;;;;;;;15844:48;;15858:16;;;;;;;;;;;15844:30;;:11;:30;;;;:::i;:::-;:48;;;;:::i;:::-;15820:72;;15901:28;15916:12;15901:14;:28::i;:::-;15937:49;15951:12;15965:13;15980:5;15937:13;:49::i;:::-;15812:182;15784:210;15621:379;;15585:415;16005:27;16035:21;16005:51;;16091:1;16069:19;:23;16065:72;;;16096:38;16114:19;16096:17;:38::i;:::-;16065:72;15325:817;;;15262:880;15196:950;3374:5:::0;3361:10;;:18;;;;;;;;;;;;;;;;;;15146:1000::o;9931:469::-;10035:4;10046:21;10070:4;10046:28;;10084:14;:12;:14::i;:::-;:42;;;;;10103:12;:23;10116:9;10103:23;;;;;;;;;;;;;;;;;;;;;;;;;10102:24;10084:42;:67;;;;;10131:12;:20;10144:6;10131:20;;;;;;;;;;;;;;;;;;;;;;;;;10130:21;10084:67;10079:289;;;10182:15;;10165:14;:32;10160:203;;;10221:5;10202:24;;10160:203;;;10245:10;:21;10256:9;10245:21;;;;;;;;;;;;;;;;;;;;;;;;;10244:22;:87;;;;;10311:19;;10294:14;10271:9;:20;10281:9;10271:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;:59;10244:87;10239:124;;;10355:5;10336:24;;10239:124;10160:203;10079:289;10379:16;10372:23;;;9931:469;;;;;:::o;10797:472::-;10894:7;10908:17;10936:14;:12;:14::i;:::-;10935:15;:37;;;;10954:10;:18;10965:6;10954:18;;;;;;;;;;;;;;;;;;;;;;;;;10935:37;:62;;;;10976:10;:21;10987:9;10976:21;;;;;;;;;;;;;;;;;;;;;;;;;10935:62;10930:314;;;11014:1;11002:13;;10930:314;;;11032:10;:18;11043:6;11032:18;;;;;;;;;;;;;;;;;;;;;;;;;11027:217;;;11093:3;11076:14;;;;;;;;;;;11067:23;;:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;11055:41;;11027:217;;;11113:10;:21;11124:9;11113:21;;;;;;;;;;;;;;;;;;;;;;;;;11108:136;;;11178:3;11160:15;;;;;;;;;;;11151:24;;:6;:24;;;;:::i;:::-;:30;;;;:::i;:::-;11139:42;;11108:136;;;11238:3;11216:19;;;;;;;;;;11207:28;;:6;:28;;;;:::i;:::-;:34;;;;:::i;:::-;11195:46;;11108:136;11027:217;10930:314;11255:9;11248:16;;;10797:472;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:86::-;3529:7;3569:4;3562:5;3558:16;3547:27;;3494:86;;;:::o;3586:118::-;3657:22;3673:5;3657:22;:::i;:::-;3650:5;3647:33;3637:61;;3694:1;3691;3684:12;3637:61;3586:118;:::o;3710:135::-;3754:5;3792:6;3779:20;3770:29;;3808:31;3833:5;3808:31;:::i;:::-;3710:135;;;;:::o;3851:607::-;3922:6;3930;3938;3987:2;3975:9;3966:7;3962:23;3958:32;3955:119;;;3993:79;;:::i;:::-;3955:119;4113:1;4138:51;4181:7;4172:6;4161:9;4157:22;4138:51;:::i;:::-;4128:61;;4084:115;4238:2;4264:51;4307:7;4298:6;4287:9;4283:22;4264:51;:::i;:::-;4254:61;;4209:116;4364:2;4390:51;4433:7;4424:6;4413:9;4409:22;4390:51;:::i;:::-;4380:61;;4335:116;3851:607;;;;;:::o;4464:118::-;4551:24;4569:5;4551:24;:::i;:::-;4546:3;4539:37;4464:118;;:::o;4588:222::-;4681:4;4719:2;4708:9;4704:18;4696:26;;4732:71;4800:1;4789:9;4785:17;4776:6;4732:71;:::i;:::-;4588:222;;;;:::o;4816:116::-;4886:21;4901:5;4886:21;:::i;:::-;4879:5;4876:32;4866:60;;4922:1;4919;4912:12;4866:60;4816:116;:::o;4938:133::-;4981:5;5019:6;5006:20;4997:29;;5035:30;5059:5;5035:30;:::i;:::-;4938:133;;;;:::o;5077:607::-;5148:6;5156;5164;5213:2;5201:9;5192:7;5188:23;5184:32;5181:119;;;5219:79;;:::i;:::-;5181:119;5339:1;5364:53;5409:7;5400:6;5389:9;5385:22;5364:53;:::i;:::-;5354:63;;5310:117;5466:2;5492:50;5534:7;5525:6;5514:9;5510:22;5492:50;:::i;:::-;5482:60;;5437:115;5591:2;5617:50;5659:7;5650:6;5639:9;5635:22;5617:50;:::i;:::-;5607:60;;5562:115;5077:607;;;;;:::o;5690:619::-;5767:6;5775;5783;5832:2;5820:9;5811:7;5807:23;5803:32;5800:119;;;5838:79;;:::i;:::-;5800:119;5958:1;5983:53;6028:7;6019:6;6008:9;6004:22;5983:53;:::i;:::-;5973:63;;5929:117;6085:2;6111:53;6156:7;6147:6;6136:9;6132:22;6111:53;:::i;:::-;6101:63;;6056:118;6213:2;6239:53;6284:7;6275:6;6264:9;6260:22;6239:53;:::i;:::-;6229:63;;6184:118;5690:619;;;;;:::o;6315:112::-;6398:22;6414:5;6398:22;:::i;:::-;6393:3;6386:35;6315:112;;:::o;6433:89::-;6469:7;6509:6;6502:5;6498:18;6487:29;;6433:89;;;:::o;6528:115::-;6613:23;6630:5;6613:23;:::i;:::-;6608:3;6601:36;6528:115;;:::o;6649:735::-;6862:4;6900:3;6889:9;6885:19;6877:27;;6914:67;6978:1;6967:9;6963:17;6954:6;6914:67;:::i;:::-;6991:68;7055:2;7044:9;7040:18;7031:6;6991:68;:::i;:::-;7069;7133:2;7122:9;7118:18;7109:6;7069:68;:::i;:::-;7147;7211:2;7200:9;7196:18;7187:6;7147:68;:::i;:::-;7225:71;7291:3;7280:9;7276:19;7267:6;7225:71;:::i;:::-;7306;7372:3;7361:9;7357:19;7348:6;7306:71;:::i;:::-;6649:735;;;;;;;;;:::o;7390:214::-;7479:4;7517:2;7506:9;7502:18;7494:26;;7530:67;7594:1;7583:9;7579:17;7570:6;7530:67;:::i;:::-;7390:214;;;;:::o;7610:120::-;7682:23;7699:5;7682:23;:::i;:::-;7675:5;7672:34;7662:62;;7720:1;7717;7710:12;7662:62;7610:120;:::o;7736:137::-;7781:5;7819:6;7806:20;7797:29;;7835:32;7861:5;7835:32;:::i;:::-;7736:137;;;;:::o;7879:470::-;7945:6;7953;8002:2;7990:9;7981:7;7977:23;7973:32;7970:119;;;8008:79;;:::i;:::-;7970:119;8128:1;8153:52;8197:7;8188:6;8177:9;8173:22;8153:52;:::i;:::-;8143:62;;8099:116;8254:2;8280:52;8324:7;8315:6;8304:9;8300:22;8280:52;:::i;:::-;8270:62;;8225:117;7879:470;;;;;:::o;8355:329::-;8414:6;8463:2;8451:9;8442:7;8438:23;8434:32;8431:119;;;8469:79;;:::i;:::-;8431:119;8589:1;8614:53;8659:7;8650:6;8639:9;8635:22;8614:53;:::i;:::-;8604:63;;8560:117;8355:329;;;;:::o;8690:426::-;8831:4;8869:2;8858:9;8854:18;8846:26;;8882:65;8944:1;8933:9;8929:17;8920:6;8882:65;:::i;:::-;8957:72;9025:2;9014:9;9010:18;9001:6;8957:72;:::i;:::-;9039:70;9105:2;9094:9;9090:18;9081:6;9039:70;:::i;:::-;8690:426;;;;;;:::o;9122:329::-;9181:6;9230:2;9218:9;9209:7;9205:23;9201:32;9198:119;;;9236:79;;:::i;:::-;9198:119;9356:1;9381:53;9426:7;9417:6;9406:9;9402:22;9381:53;:::i;:::-;9371:63;;9327:117;9122:329;;;;:::o;9457:553::-;9634:4;9672:3;9661:9;9657:19;9649:27;;9686:71;9754:1;9743:9;9739:17;9730:6;9686:71;:::i;:::-;9767:72;9835:2;9824:9;9820:18;9811:6;9767:72;:::i;:::-;9849;9917:2;9906:9;9902:18;9893:6;9849:72;:::i;:::-;9931;9999:2;9988:9;9984:18;9975:6;9931:72;:::i;:::-;9457:553;;;;;;;:::o;10016:462::-;10078:6;10086;10135:2;10123:9;10114:7;10110:23;10106:32;10103:119;;;10141:79;;:::i;:::-;10103:119;10261:1;10286:50;10328:7;10319:6;10308:9;10304:22;10286:50;:::i;:::-;10276:60;;10232:114;10385:2;10411:50;10453:7;10444:6;10433:9;10429:22;10411:50;:::i;:::-;10401:60;;10356:115;10016:462;;;;;:::o;10484:308::-;10593:4;10631:2;10620:9;10616:18;10608:26;;10644:65;10706:1;10695:9;10691:17;10682:6;10644:65;:::i;:::-;10719:66;10781:2;10770:9;10766:18;10757:6;10719:66;:::i;:::-;10484:308;;;;;:::o;10798:118::-;10885:24;10903:5;10885:24;:::i;:::-;10880:3;10873:37;10798:118;;:::o;10922:442::-;11071:4;11109:2;11098:9;11094:18;11086:26;;11122:71;11190:1;11179:9;11175:17;11166:6;11122:71;:::i;:::-;11203:72;11271:2;11260:9;11256:18;11247:6;11203:72;:::i;:::-;11285;11353:2;11342:9;11338:18;11329:6;11285:72;:::i;:::-;10922:442;;;;;;:::o;11370:474::-;11438:6;11446;11495:2;11483:9;11474:7;11470:23;11466:32;11463:119;;;11501:79;;:::i;:::-;11463:119;11621:1;11646:53;11691:7;11682:6;11671:9;11667:22;11646:53;:::i;:::-;11636:63;;11592:117;11748:2;11774:53;11819:7;11810:6;11799:9;11795:22;11774:53;:::i;:::-;11764:63;;11719:118;11370:474;;;;;:::o;11850:93::-;11886:7;11926:10;11919:5;11915:22;11904:33;;11850:93;;;:::o;11949:120::-;12021:23;12038:5;12021:23;:::i;:::-;12014:5;12011:34;12001:62;;12059:1;12056;12049:12;12001:62;11949:120;:::o;12075:137::-;12120:5;12158:6;12145:20;12136:29;;12174:32;12200:5;12174:32;:::i;:::-;12075:137;;;;:::o;12218:757::-;12300:6;12308;12316;12324;12373:3;12361:9;12352:7;12348:23;12344:33;12341:120;;;12380:79;;:::i;:::-;12341:120;12500:1;12525:52;12569:7;12560:6;12549:9;12545:22;12525:52;:::i;:::-;12515:62;;12471:116;12626:2;12652:52;12696:7;12687:6;12676:9;12672:22;12652:52;:::i;:::-;12642:62;;12597:117;12753:2;12779:52;12823:7;12814:6;12803:9;12799:22;12779:52;:::i;:::-;12769:62;;12724:117;12880:2;12906:52;12950:7;12941:6;12930:9;12926:22;12906:52;:::i;:::-;12896:62;;12851:117;12218:757;;;;;;;:::o;12981:104::-;13026:7;13055:24;13073:5;13055:24;:::i;:::-;13044:35;;12981:104;;;:::o;13091:138::-;13172:32;13198:5;13172:32;:::i;:::-;13165:5;13162:43;13152:71;;13219:1;13216;13209:12;13152:71;13091:138;:::o;13235:155::-;13289:5;13327:6;13314:20;13305:29;;13343:41;13378:5;13343:41;:::i;:::-;13235:155;;;;:::o;13396:345::-;13463:6;13512:2;13500:9;13491:7;13487:23;13483:32;13480:119;;;13518:79;;:::i;:::-;13480:119;13638:1;13663:61;13716:7;13707:6;13696:9;13692:22;13663:61;:::i;:::-;13653:71;;13609:125;13396:345;;;;:::o;13747:229::-;13887:34;13883:1;13875:6;13871:14;13864:58;13956:12;13951:2;13943:6;13939:15;13932:37;13747:229;:::o;13982:366::-;14124:3;14145:67;14209:2;14204:3;14145:67;:::i;:::-;14138:74;;14221:93;14310:3;14221:93;:::i;:::-;14339:2;14334:3;14330:12;14323:19;;13982:366;;;:::o;14354:419::-;14520:4;14558:2;14547:9;14543:18;14535:26;;14607:9;14601:4;14597:20;14593:1;14582:9;14578:17;14571:47;14635:131;14761:4;14635:131;:::i;:::-;14627:139;;14354:419;;;:::o;14779:180::-;14827:77;14824:1;14817:88;14924:4;14921:1;14914:15;14948:4;14945:1;14938:15;14965:280;15003:7;15026:18;15042:1;15026:18;:::i;:::-;15021:23;;15058:18;15074:1;15058:18;:::i;:::-;15053:23;;15182:1;15176:4;15172:12;15169:1;15166:19;15161:1;15154:9;15147:17;15143:43;15140:69;;;15189:18;;:::i;:::-;15140:69;15237:1;15234;15230:9;15219:20;;14965:280;;;;:::o;15251:237::-;15289:3;15308:18;15324:1;15308:18;:::i;:::-;15303:23;;15340:18;15356:1;15340:18;:::i;:::-;15335:23;;15430:1;15424:4;15420:12;15417:1;15414:19;15411:45;;;15436:18;;:::i;:::-;15411:45;15480:1;15477;15473:9;15466:16;;15251:237;;;;:::o;15494:166::-;15634:18;15630:1;15622:6;15618:14;15611:42;15494:166;:::o;15666:366::-;15808:3;15829:67;15893:2;15888:3;15829:67;:::i;:::-;15822:74;;15905:93;15994:3;15905:93;:::i;:::-;16023:2;16018:3;16014:12;16007:19;;15666:366;;;:::o;16038:419::-;16204:4;16242:2;16231:9;16227:18;16219:26;;16291:9;16285:4;16281:20;16277:1;16266:9;16262:17;16255:47;16319:131;16445:4;16319:131;:::i;:::-;16311:139;;16038:419;;;:::o;16463:162::-;16603:14;16599:1;16591:6;16587:14;16580:38;16463:162;:::o;16631:366::-;16773:3;16794:67;16858:2;16853:3;16794:67;:::i;:::-;16787:74;;16870:93;16959:3;16870:93;:::i;:::-;16988:2;16983:3;16979:12;16972:19;;16631:366;;;:::o;17003:419::-;17169:4;17207:2;17196:9;17192:18;17184:26;;17256:9;17250:4;17246:20;17242:1;17231:9;17227:17;17220:47;17284:131;17410:4;17284:131;:::i;:::-;17276:139;;17003:419;;;:::o;17428:418::-;17565:4;17603:2;17592:9;17588:18;17580:26;;17616:67;17680:1;17669:9;17665:17;17656:6;17616:67;:::i;:::-;17693:68;17757:2;17746:9;17742:18;17733:6;17693:68;:::i;:::-;17771;17835:2;17824:9;17820:18;17811:6;17771:68;:::i;:::-;17428:418;;;;;;:::o;17852:102::-;17894:8;17941:5;17938:1;17934:13;17913:34;;17852:102;;;:::o;17960:848::-;18021:5;18028:4;18052:6;18043:15;;18076:5;18067:14;;18090:712;18111:1;18101:8;18098:15;18090:712;;;18206:4;18201:3;18197:14;18191:4;18188:24;18185:50;;;18215:18;;:::i;:::-;18185:50;18265:1;18255:8;18251:16;18248:451;;;18680:4;18673:5;18669:16;18660:25;;18248:451;18730:4;18724;18720:15;18712:23;;18760:32;18783:8;18760:32;:::i;:::-;18748:44;;18090:712;;;17960:848;;;;;;;:::o;18814:1073::-;18868:5;19059:8;19049:40;;19080:1;19071:10;;19082:5;;19049:40;19108:4;19098:36;;19125:1;19116:10;;19127:5;;19098:36;19194:4;19242:1;19237:27;;;;19278:1;19273:191;;;;19187:277;;19237:27;19255:1;19246:10;;19257:5;;;19273:191;19318:3;19308:8;19305:17;19302:43;;;19325:18;;:::i;:::-;19302:43;19374:8;19371:1;19367:16;19358:25;;19409:3;19402:5;19399:14;19396:40;;;19416:18;;:::i;:::-;19396:40;19449:5;;;19187:277;;19573:2;19563:8;19560:16;19554:3;19548:4;19545:13;19541:36;19523:2;19513:8;19510:16;19505:2;19499:4;19496:12;19492:35;19476:111;19473:246;;;19629:8;19623:4;19619:19;19610:28;;19664:3;19657:5;19654:14;19651:40;;;19671:18;;:::i;:::-;19651:40;19704:5;;19473:246;19744:42;19782:3;19772:8;19766:4;19763:1;19744:42;:::i;:::-;19729:57;;;;19818:4;19813:3;19809:14;19802:5;19799:25;19796:51;;;19827:18;;:::i;:::-;19796:51;19876:4;19869:5;19865:16;19856:25;;18814:1073;;;;;;:::o;19893:281::-;19951:5;19975:23;19993:4;19975:23;:::i;:::-;19967:31;;20019:25;20035:8;20019:25;:::i;:::-;20007:37;;20063:104;20100:66;20090:8;20084:4;20063:104;:::i;:::-;20054:113;;19893:281;;;;:::o;20180:348::-;20220:7;20243:20;20261:1;20243:20;:::i;:::-;20238:25;;20277:20;20295:1;20277:20;:::i;:::-;20272:25;;20465:1;20397:66;20393:74;20390:1;20387:81;20382:1;20375:9;20368:17;20364:105;20361:131;;;20472:18;;:::i;:::-;20361:131;20520:1;20517;20513:9;20502:20;;20180:348;;;;:::o;20534:418::-;20671:4;20709:2;20698:9;20694:18;20686:26;;20722:71;20790:1;20779:9;20775:17;20766:6;20722:71;:::i;:::-;20803:66;20865:2;20854:9;20850:18;20841:6;20803:66;:::i;:::-;20879;20941:2;20930:9;20926:18;20917:6;20879:66;:::i;:::-;20534:418;;;;;;:::o;20958:166::-;21098:18;21094:1;21086:6;21082:14;21075:42;20958:166;:::o;21130:366::-;21272:3;21293:67;21357:2;21352:3;21293:67;:::i;:::-;21286:74;;21369:93;21458:3;21369:93;:::i;:::-;21487:2;21482:3;21478:12;21471:19;;21130:366;;;:::o;21502:419::-;21668:4;21706:2;21695:9;21691:18;21683:26;;21755:9;21749:4;21745:20;21741:1;21730:9;21726:17;21719:47;21783:131;21909:4;21783:131;:::i;:::-;21775:139;;21502:419;;;:::o;21927:191::-;21967:4;21987:20;22005:1;21987:20;:::i;:::-;21982:25;;22021:20;22039:1;22021:20;:::i;:::-;22016:25;;22060:1;22057;22054:8;22051:34;;;22065:18;;:::i;:::-;22051:34;22110:1;22107;22103:9;22095:17;;21927:191;;;;:::o;22124:242::-;22163:3;22182:19;22199:1;22182:19;:::i;:::-;22177:24;;22215:19;22232:1;22215:19;:::i;:::-;22210:24;;22308:1;22300:6;22296:14;22293:1;22290:21;22287:47;;;22314:18;;:::i;:::-;22287:47;22358:1;22355;22351:9;22344:16;;22124:242;;;;:::o;22372:324::-;22489:4;22527:2;22516:9;22512:18;22504:26;;22540:69;22606:1;22595:9;22591:17;22582:6;22540:69;:::i;:::-;22619:70;22685:2;22674:9;22670:18;22661:6;22619:70;:::i;:::-;22372:324;;;;;:::o;22702:175::-;22842:27;22838:1;22830:6;22826:14;22819:51;22702:175;:::o;22883:366::-;23025:3;23046:67;23110:2;23105:3;23046:67;:::i;:::-;23039:74;;23122:93;23211:3;23122:93;:::i;:::-;23240:2;23235:3;23231:12;23224:19;;22883:366;;;:::o;23255:419::-;23421:4;23459:2;23448:9;23444:18;23436:26;;23508:9;23502:4;23498:20;23494:1;23483:9;23479:17;23472:47;23536:131;23662:4;23536:131;:::i;:::-;23528:139;;23255:419;;;:::o;23680:180::-;23728:77;23725:1;23718:88;23825:4;23822:1;23815:15;23849:4;23846:1;23839:15;23866:185;23906:1;23923:20;23941:1;23923:20;:::i;:::-;23918:25;;23957:20;23975:1;23957:20;:::i;:::-;23952:25;;23996:1;23986:35;;24001:18;;:::i;:::-;23986:35;24043:1;24040;24036:9;24031:14;;23866:185;;;;:::o;24057:171::-;24197:23;24193:1;24185:6;24181:14;24174:47;24057:171;:::o;24234:366::-;24376:3;24397:67;24461:2;24456:3;24397:67;:::i;:::-;24390:74;;24473:93;24562:3;24473:93;:::i;:::-;24591:2;24586:3;24582:12;24575:19;;24234:366;;;:::o;24606:419::-;24772:4;24810:2;24799:9;24795:18;24787:26;;24859:9;24853:4;24849:20;24845:1;24834:9;24830:17;24823:47;24887:131;25013:4;24887:131;:::i;:::-;24879:139;;24606:419;;;:::o;25031:159::-;25171:11;25167:1;25159:6;25155:14;25148:35;25031:159;:::o;25196:365::-;25338:3;25359:66;25423:1;25418:3;25359:66;:::i;:::-;25352:73;;25434:93;25523:3;25434:93;:::i;:::-;25552:2;25547:3;25543:12;25536:19;;25196:365;;;:::o;25567:419::-;25733:4;25771:2;25760:9;25756:18;25748:26;;25820:9;25814:4;25810:20;25806:1;25795:9;25791:17;25784:47;25848:131;25974:4;25848:131;:::i;:::-;25840:139;;25567:419;;;:::o;25992:170::-;26132:22;26128:1;26120:6;26116:14;26109:46;25992:170;:::o;26168:366::-;26310:3;26331:67;26395:2;26390:3;26331:67;:::i;:::-;26324:74;;26407:93;26496:3;26407:93;:::i;:::-;26525:2;26520:3;26516:12;26509:19;;26168:366;;;:::o;26540:419::-;26706:4;26744:2;26733:9;26729:18;26721:26;;26793:9;26787:4;26783:20;26779:1;26768:9;26764:17;26757:47;26821:131;26947:4;26821:131;:::i;:::-;26813:139;;26540:419;;;:::o;26965:166::-;27105:18;27101:1;27093:6;27089:14;27082:42;26965:166;:::o;27137:366::-;27279:3;27300:67;27364:2;27359:3;27300:67;:::i;:::-;27293:74;;27376:93;27465:3;27376:93;:::i;:::-;27494:2;27489:3;27485:12;27478:19;;27137:366;;;:::o;27509:419::-;27675:4;27713:2;27702:9;27698:18;27690:26;;27762:9;27756:4;27752:20;27748:1;27737:9;27733:17;27726:47;27790:131;27916:4;27790:131;:::i;:::-;27782:139;;27509:419;;;:::o;27934:143::-;27991:5;28022:6;28016:13;28007:22;;28038:33;28065:5;28038:33;:::i;:::-;27934:143;;;;:::o;28083:351::-;28153:6;28202:2;28190:9;28181:7;28177:23;28173:32;28170:119;;;28208:79;;:::i;:::-;28170:119;28328:1;28353:64;28409:7;28400:6;28389:9;28385:22;28353:64;:::i;:::-;28343:74;;28299:128;28083:351;;;;:::o;28440:332::-;28561:4;28599:2;28588:9;28584:18;28576:26;;28612:71;28680:1;28669:9;28665:17;28656:6;28612:71;:::i;:::-;28693:72;28761:2;28750:9;28746:18;28737:6;28693:72;:::i;:::-;28440:332;;;;;:::o;28778:156::-;28918:8;28914:1;28906:6;28902:14;28895:32;28778:156;:::o;28940:365::-;29082:3;29103:66;29167:1;29162:3;29103:66;:::i;:::-;29096:73;;29178:93;29267:3;29178:93;:::i;:::-;29296:2;29291:3;29287:12;29280:19;;28940:365;;;:::o;29311:419::-;29477:4;29515:2;29504:9;29500:18;29492:26;;29564:9;29558:4;29554:20;29550:1;29539:9;29535:17;29528:47;29592:131;29718:4;29592:131;:::i;:::-;29584:139;;29311:419;;;:::o;29736:159::-;29876:11;29872:1;29864:6;29860:14;29853:35;29736:159;:::o;29901:365::-;30043:3;30064:66;30128:1;30123:3;30064:66;:::i;:::-;30057:73;;30139:93;30228:3;30139:93;:::i;:::-;30257:2;30252:3;30248:12;30241:19;;29901:365;;;:::o;30272:419::-;30438:4;30476:2;30465:9;30461:18;30453:26;;30525:9;30519:4;30515:20;30511:1;30500:9;30496:17;30489:47;30553:131;30679:4;30553:131;:::i;:::-;30545:139;;30272:419;;;:::o;30697:305::-;30737:3;30756:20;30774:1;30756:20;:::i;:::-;30751:25;;30790:20;30808:1;30790:20;:::i;:::-;30785:25;;30944:1;30876:66;30872:74;30869:1;30866:81;30863:107;;;30950:18;;:::i;:::-;30863:107;30994:1;30991;30987:9;30980:16;;30697:305;;;;:::o;31008:166::-;31148:18;31144:1;31136:6;31132:14;31125:42;31008:166;:::o;31180:366::-;31322:3;31343:67;31407:2;31402:3;31343:67;:::i;:::-;31336:74;;31419:93;31508:3;31419:93;:::i;:::-;31537:2;31532:3;31528:12;31521:19;;31180:366;;;:::o;31552:419::-;31718:4;31756:2;31745:9;31741:18;31733:26;;31805:9;31799:4;31795:20;31791:1;31780:9;31776:17;31769:47;31833:131;31959:4;31833:131;:::i;:::-;31825:139;;31552:419;;;:::o;31977:170::-;32117:22;32113:1;32105:6;32101:14;32094:46;31977:170;:::o;32153:366::-;32295:3;32316:67;32380:2;32375:3;32316:67;:::i;:::-;32309:74;;32392:93;32481:3;32392:93;:::i;:::-;32510:2;32505:3;32501:12;32494:19;;32153:366;;;:::o;32525:419::-;32691:4;32729:2;32718:9;32714:18;32706:26;;32778:9;32772:4;32768:20;32764:1;32753:9;32749:17;32742:47;32806:131;32932:4;32806:131;:::i;:::-;32798:139;;32525:419;;;:::o;32950:332::-;33071:4;33109:2;33098:9;33094:18;33086:26;;33122:71;33190:1;33179:9;33175:17;33166:6;33122:71;:::i;:::-;33203:72;33271:2;33260:9;33256:18;33247:6;33203:72;:::i;:::-;32950:332;;;;;:::o;33288:222::-;33381:4;33419:2;33408:9;33404:18;33396:26;;33432:71;33500:1;33489:9;33485:17;33476:6;33432:71;:::i;:::-;33288:222;;;;:::o;33516:60::-;33544:3;33565:5;33558:12;;33516:60;;;:::o;33582:142::-;33632:9;33665:53;33683:34;33692:24;33710:5;33692:24;:::i;:::-;33683:34;:::i;:::-;33665:53;:::i;:::-;33652:66;;33582:142;;;:::o;33730:126::-;33780:9;33813:37;33844:5;33813:37;:::i;:::-;33800:50;;33730:126;;;:::o;33862:134::-;33920:9;33953:37;33984:5;33953:37;:::i;:::-;33940:50;;33862:134;;;:::o;34002:147::-;34097:45;34136:5;34097:45;:::i;:::-;34092:3;34085:58;34002:147;;:::o;34155:238::-;34256:4;34294:2;34283:9;34279:18;34271:26;;34307:79;34383:1;34372:9;34368:17;34359:6;34307:79;:::i;:::-;34155:238;;;;:::o;34399:171::-;34437:3;34460:23;34477:5;34460:23;:::i;:::-;34451:32;;34505:6;34498:5;34495:17;34492:43;;34515:18;;:::i;:::-;34492:43;34562:1;34555:5;34551:13;34544:20;;34399:171;;;:::o;34576:174::-;34716:26;34712:1;34704:6;34700:14;34693:50;34576:174;:::o;34756:366::-;34898:3;34919:67;34983:2;34978:3;34919:67;:::i;:::-;34912:74;;34995:93;35084:3;34995:93;:::i;:::-;35113:2;35108:3;35104:12;35097:19;;34756:366;;;:::o;35128:419::-;35294:4;35332:2;35321:9;35317:18;35309:26;;35381:9;35375:4;35371:20;35367:1;35356:9;35352:17;35345:47;35409:131;35535:4;35409:131;:::i;:::-;35401:139;;35128:419;;;:::o;35553:161::-;35693:13;35689:1;35681:6;35677:14;35670:37;35553:161;:::o;35720:366::-;35862:3;35883:67;35947:2;35942:3;35883:67;:::i;:::-;35876:74;;35959:93;36048:3;35959:93;:::i;:::-;36077:2;36072:3;36068:12;36061:19;;35720:366;;;:::o;36092:419::-;36258:4;36296:2;36285:9;36281:18;36273:26;;36345:9;36339:4;36335:20;36331:1;36320:9;36316:17;36309:47;36373:131;36499:4;36373:131;:::i;:::-;36365:139;;36092:419;;;:::o;36517:167::-;36657:19;36653:1;36645:6;36641:14;36634:43;36517:167;:::o;36690:366::-;36832:3;36853:67;36917:2;36912:3;36853:67;:::i;:::-;36846:74;;36929:93;37018:3;36929:93;:::i;:::-;37047:2;37042:3;37038:12;37031:19;;36690:366;;;:::o;37062:419::-;37228:4;37266:2;37255:9;37251:18;37243:26;;37315:9;37309:4;37305:20;37301:1;37290:9;37286:17;37279:47;37343:131;37469:4;37343:131;:::i;:::-;37335:139;;37062:419;;;:::o;37487:332::-;37608:4;37646:2;37635:9;37631:18;37623:26;;37659:71;37727:1;37716:9;37712:17;37703:6;37659:71;:::i;:::-;37740:72;37808:2;37797:9;37793:18;37784:6;37740:72;:::i;:::-;37487:332;;;;;:::o;37825:180::-;37873:77;37870:1;37863:88;37970:4;37967:1;37960:15;37994:4;37991:1;37984:15;38011:180;38059:77;38056:1;38049:88;38156:4;38153:1;38146:15;38180:4;38177:1;38170:15;38197:85;38242:7;38271:5;38260:16;;38197:85;;;:::o;38288:158::-;38346:9;38379:61;38397:42;38406:32;38432:5;38406:32;:::i;:::-;38397:42;:::i;:::-;38379:61;:::i;:::-;38366:74;;38288:158;;;:::o;38452:147::-;38547:45;38586:5;38547:45;:::i;:::-;38542:3;38535:58;38452:147;;:::o;38605:114::-;38672:6;38706:5;38700:12;38690:22;;38605:114;;;:::o;38725:184::-;38824:11;38858:6;38853:3;38846:19;38898:4;38893:3;38889:14;38874:29;;38725:184;;;;:::o;38915:132::-;38982:4;39005:3;38997:11;;39035:4;39030:3;39026:14;39018:22;;38915:132;;;:::o;39053:108::-;39130:24;39148:5;39130:24;:::i;:::-;39125:3;39118:37;39053:108;;:::o;39167:179::-;39236:10;39257:46;39299:3;39291:6;39257:46;:::i;:::-;39335:4;39330:3;39326:14;39312:28;;39167:179;;;;:::o;39352:113::-;39422:4;39454;39449:3;39445:14;39437:22;;39352:113;;;:::o;39501:732::-;39620:3;39649:54;39697:5;39649:54;:::i;:::-;39719:86;39798:6;39793:3;39719:86;:::i;:::-;39712:93;;39829:56;39879:5;39829:56;:::i;:::-;39908:7;39939:1;39924:284;39949:6;39946:1;39943:13;39924:284;;;40025:6;40019:13;40052:63;40111:3;40096:13;40052:63;:::i;:::-;40045:70;;40138:60;40191:6;40138:60;:::i;:::-;40128:70;;39984:224;39971:1;39968;39964:9;39959:14;;39924:284;;;39928:14;40224:3;40217:10;;39625:608;;;39501:732;;;;:::o;40239:831::-;40502:4;40540:3;40529:9;40525:19;40517:27;;40554:71;40622:1;40611:9;40607:17;40598:6;40554:71;:::i;:::-;40635:80;40711:2;40700:9;40696:18;40687:6;40635:80;:::i;:::-;40762:9;40756:4;40752:20;40747:2;40736:9;40732:18;40725:48;40790:108;40893:4;40884:6;40790:108;:::i;:::-;40782:116;;40908:72;40976:2;40965:9;40961:18;40952:6;40908:72;:::i;:::-;40990:73;41058:3;41047:9;41043:19;41034:6;40990:73;:::i;:::-;40239:831;;;;;;;;:::o;41076:807::-;41325:4;41363:3;41352:9;41348:19;41340:27;;41377:71;41445:1;41434:9;41430:17;41421:6;41377:71;:::i;:::-;41458:72;41526:2;41515:9;41511:18;41502:6;41458:72;:::i;:::-;41540:80;41616:2;41605:9;41601:18;41592:6;41540:80;:::i;:::-;41630;41706:2;41695:9;41691:18;41682:6;41630:80;:::i;:::-;41720:73;41788:3;41777:9;41773:19;41764:6;41720:73;:::i;:::-;41803;41871:3;41860:9;41856:19;41847:6;41803:73;:::i;:::-;41076:807;;;;;;;;;:::o;41889:143::-;41946:5;41977:6;41971:13;41962:22;;41993:33;42020:5;41993:33;:::i;:::-;41889:143;;;;:::o;42038:663::-;42126:6;42134;42142;42191:2;42179:9;42170:7;42166:23;42162:32;42159:119;;;42197:79;;:::i;:::-;42159:119;42317:1;42342:64;42398:7;42389:6;42378:9;42374:22;42342:64;:::i;:::-;42332:74;;42288:128;42455:2;42481:64;42537:7;42528:6;42517:9;42513:22;42481:64;:::i;:::-;42471:74;;42426:129;42594:2;42620:64;42676:7;42667:6;42656:9;42652:22;42620:64;:::i;:::-;42610:74;;42565:129;42038:663;;;;;:::o

Swarm Source

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