ETH Price: $2,506.98 (+0.21%)

Token

RESISTANCE (RESIST)
 

Overview

Max Total Supply

1,000,000 RESIST

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,110.475474817 RESIST

Value
$0.00
0x7c022365906d6d97c324fa202c107f77c87c2303
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:
RESISTANCE

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-30
*/

/**
telegram : https://t.me/resisterc

Twitter : https://twitter.com/resistanceerc

5% buy 8% sell taxes will be used for buy backs

6% burns and 4% will go to the lp 
*/

//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 RESISTANCE is IERC20, Auth {
	string constant _name = "RESISTANCE"; 
	string constant _symbol = "RESIST"; 
	uint8 constant _decimals = 9;
	uint256 constant _totalSupply = 1_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_sharesBurn; uint16 private fee_sharesDevelopment; uint16 private fee_sharesTOTAL;

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

	address payable private wlt_development;
	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 development);
	event TaxDistributionChanged(uint16 autoLP, uint16 burn, uint16 development);
	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 = 8;
		lim_maxTxAmount = _totalSupply;
		lim_maxWalletAmount = _totalSupply;
		lim_taxSwapMin = _totalSupply * 1 / 10000;
		lim_taxSwapMax = _totalSupply * 50 / 10000;
		fee_sharesAutoLP = 400;
		fee_sharesBurn = 600;
		fee_sharesDevelopment = 300;
		fee_sharesTOTAL = fee_sharesAutoLP + fee_sharesBurn + fee_sharesDevelopment;
		_uniswapV2Router = IUniswapV2Router02(_uniswapV2RouterAddress);

		wlt_development = payable(0x1Cfb9a86556263134B7cd87A649768F382dDAef2);

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

		exm_noLimits[owner] = true;
		exm_noLimits[address(this)] = true;
		exm_noLimits[_uniswapV2RouterAddress] = true;
		exm_noLimits[wlt_development] = 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 addLP() external onlyOwner {
		require(!_tradingOpen(), "trading already open");
		require(_liquidityPool == address(0), "LP already added");

		_nonSniper[address(this)] = true;
		_nonSniper[owner] = true;
		_nonSniper[wlt_development] = 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 = 14;
		_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 = 5;
		fee_taxRateSell = 8;
		fee_taxRateTransfer = 0; 
		_tradingOpenBlock = block.number + blks;
		_humanBlock = _tradingOpenBlock + 9;
	}

	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 sharesBurn, uint16 sharesDevelopment ) {
		return (fee_taxRateMaxLimit, fee_taxRateBuy, fee_taxRateSell, fee_taxRateTransfer, fee_sharesAutoLP, fee_sharesBurn, fee_sharesDevelopment);
	}

	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 sharesBurn, uint16 sharesDevelopment) external onlyOwner {
		fee_sharesAutoLP = sharesAutoLP;
		fee_sharesBurn = sharesBurn;
		fee_sharesDevelopment = sharesDevelopment;
		fee_sharesTOTAL = fee_sharesAutoLP + fee_sharesBurn + fee_sharesDevelopment;
		emit TaxDistributionChanged(sharesAutoLP, sharesBurn, sharesDevelopment);
	}
	
	function getWallets() external view returns(address contractOwner, address liquidityPool, address development) {
		return (owner, _liquidityPool, wlt_development);
	}

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

	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 _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 _tokensToBurn = _taxTokensAvailable * fee_sharesBurn / fee_sharesTOTAL;
			_burnTokens(_tokensToBurn, address(this));

			uint256 _tokensToSwap = _taxTokensAvailable - _tokensToBurn - _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_sharesDevelopment > 0 ) { wlt_development.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":"burn","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"development","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":"development","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":[],"name":"addLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"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":"sharesBurn","type":"uint16"},{"internalType":"uint16","name":"sharesDevelopment","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":"development","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":"sharesBurn","type":"uint16"},{"internalType":"uint16","name":"sharesDevelopment","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":"newDevelopmentWallet","type":"address"}],"name":"setTaxWallets","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"}]

60806040526005805461ffff191690556000600e55601180546001600160a81b03191674c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2001790553480156200004857600080fd5b50600080546001600160a01b03191633179055600019600355600580546208000062ff000019909116179055620000826009600a62000475565b6200009190620f42406200048d565b600655620000a26009600a62000475565b620000b190620f42406200048d565b600755612710620000c56009600a62000475565b620000d490620f42406200048d565b620000e19060016200048d565b620000ed9190620004af565b600855612710620001016009600a62000475565b6200011090620f42406200048d565b6200011d9060326200048d565b620001299190620004af565b6009556005805465ffffffffffff60301b19166b012c02580190000000000000179081905561ffff6a0100000000000000000000820481169162000187916801000000000000000082048116916601000000000000900416620004d2565b620001939190620004d2565b6005805461ffff929092166c010000000000000000000000000261ffff60601b19909216919091179055601280546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17909155600a8054909116731cfb9a86556263134b7cd87a649768f382ddaef2178155600080546001600160a01b039081168252600c60209081526040808420805460ff1990811660019081179092553080875283872080548316841790557f0ec9aca9afadc09fc0bd96ec7d7d6cfbb5408a5bc5bcf87bc0656b65508e559a80548316841790558754861687528387208054831684179055865486168752600d909452828620805482168317905592855281852080548416821790557fe491d3ddab46a3ddc2b907c015f7e2686859fac31a4f174b9b79a82620b0324e8054841682179055855490931684529092208054909216179055620002e89060099062000475565b620002f790620f42406200048d565b30600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200033a6009600a62000475565b6200034990620f42406200048d565b60405190815260200160405180910390a3620004fb565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003b75781600019048211156200039b576200039b62000360565b80851615620003a957918102915b93841c93908002906200037b565b509250929050565b600082620003d0575060016200046f565b81620003df575060006200046f565b8160018114620003f85760028114620004035762000423565b60019150506200046f565b60ff84111562000417576200041762000360565b50506001821b6200046f565b5060208310610133831016604e8410600b841016171562000448575081810a6200046f565b62000454838362000376565b80600019048211156200046b576200046b62000360565b0290505b92915050565b60006200048660ff841683620003bf565b9392505050565b6000816000190483118215151615620004aa57620004aa62000360565b500290565b600082620004cd57634e487b7160e01b600052601260045260246000fd5b500490565b600061ffff808316818516808303821115620004f257620004f262000360565b01949350505050565b6125e3806200050b6000396000f3fe60806040526004361061016a5760003560e01c80638c194bd9116100d1578063d01dc84b1161008a578063de1a356c11610064578063de1a356c1461058e578063e4dbc45b146105ae578063f2fde38b146105ce578063ffb54a99146105ee57600080fd5b8063d01dc84b146104e8578063db7a460514610508578063dd62ed3e1461054857600080fd5b80638c194bd9146103e3578063931b68ea1461040357806395d89b4114610464578063a9059cbb14610493578063b1421803146104b3578063bc37e1a3146104d357600080fd5b80632b38400e116101235780632b38400e14610270578063313ce567146102f757806358d2b4a5146103135780636d1b229d146103545780636f89e4091461037457806370a08231146103ad57600080fd5b806306fdde0314610176578063095ea7b3146101bb57806309ef509f146101eb57806318160ddd1461020d57806318839bc31461023057806323b872dd1461025057600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201909152600a815269524553495354414e434560b01b60208201525b6040516101b29190611f94565b60405180910390f35b3480156101c757600080fd5b506101db6101d6366004611ffe565b610603565b60405190151581526020016101b2565b3480156101f757600080fd5b5061020b61020636600461203b565b61069c565b005b34801561021957600080fd5b5061022261081a565b6040519081526020016101b2565b34801561023c57600080fd5b5061020b61024b36600461208e565b61083a565b34801561025c57600080fd5b506101db61026b3660046120ca565b6108db565b34801561027c57600080fd5b506005546040805160ff6201000084048116825263010000008404811660208301526401000000008404811692820192909252650100000000008304909116606082015261ffff600160301b830481166080830152600160401b8304811660a0830152600160501b90920490911660c082015260e0016101b2565b34801561030357600080fd5b50604051600981526020016101b2565b34801561031f57600080fd5b5061033361032e36600461210b565b6109b7565b604080519315158452602084019290925261ffff16908201526060016101b2565b34801561036057600080fd5b5061020b61036f366004612128565b610a0c565b34801561038057600080fd5b506006546007546008546009546040805194855260208501939093529183015260608201526080016101b2565b3480156103b957600080fd5b506102226103c836600461210b565b6001600160a01b031660009081526001602052604090205490565b3480156103ef57600080fd5b5061020b6103fe366004612141565b610a72565b34801561040f57600080fd5b5061044d61041e36600461210b565b6001600160a01b03166000908152600c6020908152604080832054600d9092529091205460ff91821692911690565b6040805192151583529015156020830152016101b2565b34801561047057600080fd5b50604080518082019091526006815265149154d254d560d21b60208201526101a5565b34801561049f57600080fd5b506101db6104ae366004611ffe565b610b05565b3480156104bf57600080fd5b5061020b6104ce366004612186565b610b60565b3480156104df57600080fd5b5061020b610ced565b3480156104f457600080fd5b5061020b61050336600461210b565b611021565b34801561051457600080fd5b50600054600b54600a54604080516001600160a01b03948516815292841660208401529216918101919091526060016101b2565b34801561055457600080fd5b506102226105633660046121b0565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561059a57600080fd5b5061020b6105a93660046121e9565b6110ce565b3480156105ba57600080fd5b5061020b6105c9366004612237565b6111cd565b3480156105da57600080fd5b5061020b6105e936600461210b565b6112ba565b3480156105fa57600080fd5b506101db611332565b600043600e541180156106265750336000908152600f602052604090205460ff16155b156106375761063733436001611368565b3360008181526002602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b6000546001600160a01b031633146106cf5760405162461bcd60e51b81526004016106c69061228b565b60405180910390fd5b6005546106e69062010000900460ff1660026122eb565b60ff166106f38385612314565b60ff1611156107375760405162461bcd60e51b815260206004820152601060248201526f082ecce40e8c2f040e8dede40d0d2ced60831b60448201526064016106c6565b60055460ff62010000909104811690821611156107855760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b60448201526064016106c6565b6005805464ffff0000001916630100000060ff86811691820264ff000000001916929092176401000000008684169081029190911765ff000000000019166501000000000093861693840217909355604080519182526020820193909352918201527f3936da96a2d6c0884221e809bd19e72c2f0ac9e9d7e63d75e371a66e8f71144a906060015b60405180910390a1505050565b60006108286009600a612415565b61083590620f4240612424565b905090565b6000546001600160a01b031633146108645760405162461bcd60e51b81526004016106c69061228b565b6001600160a01b0383166000818152600c60209081526040808320805487151560ff199182168117909255600d84529382902080548715159516851790558151948552918401919091528201527fd1210f82d8da3a4173d7d74f8a9f5c81b8f83b77529ac2684baff199241f4ed09060600161080d565b60006108e5611401565b6109245760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016106c6565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146109a4576001600160a01b038416600090815260026020908152604080832033845290915290205461097f908390612443565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6109af848484611434565b949350505050565b6001600160a01b038116600090815260106020526040812054819081908190156109df575060015b6001600160a01b03949094166000908152601060205260409020546005549495909461ffff169350915050565b3360009081526001602052604090205480821115610a645760405162461bcd60e51b8152602060048201526015602482015274546f6b656e2062616c616e636520746f6f206c6f7760581b60448201526064016106c6565b610a6e82336117aa565b5050565b6000546001600160a01b03163314610a9c5760405162461bcd60e51b81526004016106c69061228b565b8115610af6573060009081526001602052604090205480610aeb5760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b60448201526064016106c6565b610af4816118a4565b505b8015610a6e57610a6e47611996565b6000610b0f611401565b610b4e5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016106c6565b610b59338484611434565b9392505050565b6000546001600160a01b03163314610b8a5760405162461bcd60e51b81526004016106c69061228b565b60006103e861ffff8416610ba06009600a612415565b610bad90620f4240612424565b610bb79190612424565b610bc1919061245a565b610bcc90600161247c565b9050600654811015610c135760405162461bcd60e51b815260206004820152601060248201526f7478206c696d697420746f6f206c6f7760801b60448201526064016106c6565b600681905560006103e861ffff8416610c2e6009600a612415565b610c3b90620f4240612424565b610c459190612424565b610c4f919061245a565b610c5a90600161247c565b9050600754811015610ca55760405162461bcd60e51b815260206004820152601460248201527377616c6c6574206c696d697420746f6f206c6f7760601b60448201526064016106c6565b600781905560065460408051918252602082018390527f72c1c0546833bfc2a43408333cd18ef1d9c882e9d46f89002a3fd40bceffe5f791015b60405180910390a150505050565b6000546001600160a01b03163314610d175760405162461bcd60e51b81526004016106c69061228b565b610d1f6119e6565b15610d635760405162461bcd60e51b81526020600482015260146024820152733a3930b234b7339030b63932b0b23c9037b832b760611b60448201526064016106c6565b600b546001600160a01b031615610daf5760405162461bcd60e51b815260206004820152601060248201526f131408185b1c9958591e48185919195960821b60448201526064016106c6565b306000908152600f602090815260408083208054600160ff19918216811790925584546001600160a01b0390811686528386208054831684179055600a5481168652948390208054909116909117905560125481516315ab88c960e31b8152915193169263ad5c4648926004808401939192918290030181865afa158015610e3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5f9190612494565b60118054610100600160a81b0319166101006001600160a01b03938416021790556012546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee69190612494565b6011546040516364e329cb60e11b81523060048201526001600160a01b036101009092048216602482015291169063c9c65396906044016020604051808303816000875af1158015610f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f609190612494565b600b80546001600160a01b0319166001600160a01b0392831690811782556000908152600460209081526040808320805460ff19908116600190811790925594549095168352600f82528083208054909416851790935530825292909252902054479080610ffc5760405162461bcd60e51b81526020600482015260096024820152686e6f20746f6b656e7360b81b60448201526064016106c6565b611005816119fc565b61101181836000611aa0565b600e61101c81611b51565b505050565b6000546001600160a01b0316331461104b5760405162461bcd60e51b81526004016106c69061228b565b600a80546001600160a01b0319166001600160a01b0383169081179091556000818152600c60209081526040808320805460ff199081166001908117909255600d84529382902080549094161790925590519182527ea263b61aab5ebdcff20c4c0c74c2589ea5ab52149abde19eca17ad5221789991015b60405180910390a150565b6000546001600160a01b031633146110f85760405162461bcd60e51b81526004016106c69061228b565b6005805469ffffffff0000000000001916600160301b61ffff868116820269ffff0000000000000000191692909217600160401b86841681029190911761ffff60501b1916600160501b868516810291909117948590558404831693611166939181048216929004166124b1565b61117091906124b1565b6005805461ffff60601b1916600160601b61ffff938416021790556040805185831681528483166020820152918316908201527f09d1c6e0dc7290333e3eb301ba9b06f7ec15ce885a8a1efc702befd956c1bd939060600161080d565b6000546001600160a01b031633146111f75760405162461bcd60e51b81526004016106c69061228b565b63ffffffff80841690851661120e6009600a612415565b61121b90620f4240612424565b6112259190612424565b61122f919061245a565b60085563ffffffff8082169083166112496009600a612415565b61125690620f4240612424565b6112609190612424565b61126a919061245a565b60098190556008541061127c57600080fd5b7f325d25781eb858cfe3b3ede984fc8a66dd8e8be0b4a349189e05d0a35e6803bb600854600954604051610cdf929190918252602082015260400190565b6000546001600160a01b031633146112e45760405162461bcd60e51b81526004016106c69061228b565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163906020016110c3565b600061133c6119e6565b80156113555750600e5461135190600a61247c565b4310155b15611362576108356119e6565b50600090565b6001600160a01b0383166000908152600f602052604090205460ff161580156113a757506001600160a01b038316600090815260106020526040902054155b1561101c576001600160a01b0383166000908152601060205260409020829055801561101c576005805461ffff169060006113e1836124d7565b91906101000a81548161ffff021916908361ffff16021790555050505050565b60008061140c6119e6565b1561141957506001919050565b6000546001600160a01b0316320361142f575060015b919050565b60006001600160a01b0384161580159061145657506001600160a01b03831615155b6114a25760405162461bcd60e51b815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f776564000000000000000060448201526064016106c6565b43600e541115611501576001600160a01b03841660009081526010602052604081205490036114dc576114d783436001611368565b611544565b6001600160a01b0384166000908152601060205260408120546114d791859190611368565b6001600160a01b03841660009081526010602052604090205415611544576001600160a01b03841660009081526010602052604081205461154491859190611368565b61154c6119e6565b801561156f57506001600160a01b03841660009081526010602052604090205415155b801561159257506001600160a01b03841660009081526010602052604090205443115b156115cd5760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b60448201526064016106c6565b60115460ff161580156115f857506001600160a01b03831660009081526004602052604090205460ff165b1561160557611605611c1b565b6001600160a01b038416301480159061162757506001600160a01b0383163014155b801561164157506000546001600160a01b03858116911614155b1561169157611651848484611db4565b6116915760405162461bcd60e51b815260206004820152601160248201527054582065786365656473206c696d69747360781b60448201526064016106c6565b600061169e858585611e7e565b905060006116ac8285612443565b6001600160a01b0387166000908152600160205260409020549091506116d3908590612443565b6001600160a01b038716600090815260016020526040902055811561171e573060009081526001602052604090205461170d90839061247c565b306000908152600160205260409020555b6001600160a01b03851660009081526001602052604090205461174290829061247c565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117969088815260200190565b60405180910390a350600195945050505050565b8115610a6e576001600160a01b038116600090815260016020526040812080548492906117d8908490612443565b9091555050600080805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49805484929061181890849061247c565b90915550506040518281526000906001600160a01b038316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3604080516001600160a01b0383168152602081018490527ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb6910160405180910390a15050565b6118ad816119fc565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118e2576118e26124f8565b6001600160a01b0392831660209182029290920101526011548251610100909104909116908290600190811061191a5761191a6124f8565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac9479061196090859060009086903090429060040161250e565b600060405180830381600087803b15801561197a57600080fd5b505af115801561198e573d6000803e3d6000fd5b505050505050565b600554600160501b900461ffff16156119e357600a546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610a6e573d6000803e3d6000fd5b50565b6003546000908190431061142f57506001919050565b306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156119e357306000818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190206000199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350565b600081611ab557506000546001600160a01b03165b60125460405163f305d71960e01b81523060048201526024810186905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990859060c40160606040518083038185885af1158015611b23573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b48919061257f565b50505050505050565b611b5d6009600a612415565b612710611b6c6009600a612415565b611b7990620f4240612424565b611b84906064612424565b611b8e919061245a565b611b98919061247c565b600655611ba76009600a612415565b612710611bb66009600a612415565b611bc390620f4240612424565b611bce906064612424565b611bd8919061245a565b611be2919061247c565b6007556005805465ffffff0000001916640805000000179055611c05814361247c565b6003819055611c1590600961247c565b600e5550565b6011805460ff191660011790556000611c49306001600160a01b031660009081526001602052604090205490565b90506008548110158015611c605750611c606119e6565b15611da7576009548110611c7357506009545b60055460009060029061ffff600160601b8204811691611c9c91600160301b9091041685612424565b611ca6919061245a565b611cb0919061245a565b60055490915060009061ffff600160601b8204811691611cd991600160401b9091041685612424565b611ce3919061245a565b9050611cef81306117aa565b600082611cfc8386612443565b611d069190612443565b9050611d146009600a612415565b8110611d925747611d24826118a4565b6000611d308247612443565b600554909150600160301b900461ffff1615611d8f5760055460009061ffff600160601b8204811691611d6c91600160301b9091041684612424565b611d76919061245a565b9050611d81866119fc565b611d8d86826000611aa0565b505b50505b478015611da257611da281611996565b505050505b506011805460ff19169055565b60006001611dc06119e6565b8015611de557506001600160a01b0384166000908152600d602052604090205460ff16155b8015611e0a57506001600160a01b0385166000908152600d602052604090205460ff16155b156109af57600654831115611e21575060006109af565b6001600160a01b03841660009081526004602052604090205460ff16158015611e6e57506007546001600160a01b038516600090815260016020526040902054611e6c90859061247c565b115b156109af57506000949350505050565b600080611e896119e6565b1580611ead57506001600160a01b0385166000908152600c602052604090205460ff165b80611ed057506001600160a01b0384166000908152600c602052604090205460ff165b15611edd575060006109af565b6001600160a01b03851660009081526004602052604090205460ff1615611f2957600554606490611f18906301000000900460ff1685612424565b611f22919061245a565b90506109af565b6001600160a01b03841660009081526004602052604090205460ff1615611f6557600554606490611f1890640100000000900460ff1685612424565b600554606490611f819065010000000000900460ff1685612424565b611f8b919061245a565b95945050505050565b600060208083528351808285015260005b81811015611fc157858101830151858201604001528201611fa5565b81811115611fd3576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146119e357600080fd5b6000806040838503121561201157600080fd5b823561201c81611fe9565b946020939093013593505050565b803560ff8116811461142f57600080fd5b60008060006060848603121561205057600080fd5b6120598461202a565b92506120676020850161202a565b91506120756040850161202a565b90509250925092565b8035801515811461142f57600080fd5b6000806000606084860312156120a357600080fd5b83356120ae81611fe9565b92506120bc6020850161207e565b91506120756040850161207e565b6000806000606084860312156120df57600080fd5b83356120ea81611fe9565b925060208401356120fa81611fe9565b929592945050506040919091013590565b60006020828403121561211d57600080fd5b8135610b5981611fe9565b60006020828403121561213a57600080fd5b5035919050565b6000806040838503121561215457600080fd5b61215d8361207e565b915061216b6020840161207e565b90509250929050565b803561ffff8116811461142f57600080fd5b6000806040838503121561219957600080fd5b6121a283612174565b915061216b60208401612174565b600080604083850312156121c357600080fd5b82356121ce81611fe9565b915060208301356121de81611fe9565b809150509250929050565b6000806000606084860312156121fe57600080fd5b61220784612174565b925061221560208501612174565b915061207560408501612174565b803563ffffffff8116811461142f57600080fd5b6000806000806080858703121561224d57600080fd5b61225685612223565b935061226460208601612223565b925061227260408601612223565b915061228060608601612223565b905092959194509250565b6020808252602a908201527f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c207468696040820152693990333ab731ba34b7b760b11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168160ff048111821515161561230c5761230c6122d5565b029392505050565b600060ff821660ff84168060ff03821115612331576123316122d5565b019392505050565b600181815b8085111561237457816000190482111561235a5761235a6122d5565b8085161561236757918102915b93841c939080029061233e565b509250929050565b60008261238b57506001610696565b8161239857506000610696565b81600181146123ae57600281146123b8576123d4565b6001915050610696565b60ff8411156123c9576123c96122d5565b50506001821b610696565b5060208310610133831016604e8410600b84101617156123f7575081810a610696565b6124018383612339565b806000190482111561230c5761230c6122d5565b6000610b5960ff84168361237c565b600081600019048311821515161561243e5761243e6122d5565b500290565b600082821015612455576124556122d5565b500390565b60008261247757634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561248f5761248f6122d5565b500190565b6000602082840312156124a657600080fd5b8151610b5981611fe9565b600061ffff8083168185168083038211156124ce576124ce6122d5565b01949350505050565b600061ffff8083168181036124ee576124ee6122d5565b6001019392505050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561255e5784516001600160a01b031683529383019391830191600101612539565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561259457600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212206cc4428cb59d7ffa87571608cbb1b4e687990faa79c2121a240a8e3428a7302764736f6c634300080f0033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80638c194bd9116100d1578063d01dc84b1161008a578063de1a356c11610064578063de1a356c1461058e578063e4dbc45b146105ae578063f2fde38b146105ce578063ffb54a99146105ee57600080fd5b8063d01dc84b146104e8578063db7a460514610508578063dd62ed3e1461054857600080fd5b80638c194bd9146103e3578063931b68ea1461040357806395d89b4114610464578063a9059cbb14610493578063b1421803146104b3578063bc37e1a3146104d357600080fd5b80632b38400e116101235780632b38400e14610270578063313ce567146102f757806358d2b4a5146103135780636d1b229d146103545780636f89e4091461037457806370a08231146103ad57600080fd5b806306fdde0314610176578063095ea7b3146101bb57806309ef509f146101eb57806318160ddd1461020d57806318839bc31461023057806323b872dd1461025057600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201909152600a815269524553495354414e434560b01b60208201525b6040516101b29190611f94565b60405180910390f35b3480156101c757600080fd5b506101db6101d6366004611ffe565b610603565b60405190151581526020016101b2565b3480156101f757600080fd5b5061020b61020636600461203b565b61069c565b005b34801561021957600080fd5b5061022261081a565b6040519081526020016101b2565b34801561023c57600080fd5b5061020b61024b36600461208e565b61083a565b34801561025c57600080fd5b506101db61026b3660046120ca565b6108db565b34801561027c57600080fd5b506005546040805160ff6201000084048116825263010000008404811660208301526401000000008404811692820192909252650100000000008304909116606082015261ffff600160301b830481166080830152600160401b8304811660a0830152600160501b90920490911660c082015260e0016101b2565b34801561030357600080fd5b50604051600981526020016101b2565b34801561031f57600080fd5b5061033361032e36600461210b565b6109b7565b604080519315158452602084019290925261ffff16908201526060016101b2565b34801561036057600080fd5b5061020b61036f366004612128565b610a0c565b34801561038057600080fd5b506006546007546008546009546040805194855260208501939093529183015260608201526080016101b2565b3480156103b957600080fd5b506102226103c836600461210b565b6001600160a01b031660009081526001602052604090205490565b3480156103ef57600080fd5b5061020b6103fe366004612141565b610a72565b34801561040f57600080fd5b5061044d61041e36600461210b565b6001600160a01b03166000908152600c6020908152604080832054600d9092529091205460ff91821692911690565b6040805192151583529015156020830152016101b2565b34801561047057600080fd5b50604080518082019091526006815265149154d254d560d21b60208201526101a5565b34801561049f57600080fd5b506101db6104ae366004611ffe565b610b05565b3480156104bf57600080fd5b5061020b6104ce366004612186565b610b60565b3480156104df57600080fd5b5061020b610ced565b3480156104f457600080fd5b5061020b61050336600461210b565b611021565b34801561051457600080fd5b50600054600b54600a54604080516001600160a01b03948516815292841660208401529216918101919091526060016101b2565b34801561055457600080fd5b506102226105633660046121b0565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561059a57600080fd5b5061020b6105a93660046121e9565b6110ce565b3480156105ba57600080fd5b5061020b6105c9366004612237565b6111cd565b3480156105da57600080fd5b5061020b6105e936600461210b565b6112ba565b3480156105fa57600080fd5b506101db611332565b600043600e541180156106265750336000908152600f602052604090205460ff16155b156106375761063733436001611368565b3360008181526002602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b6000546001600160a01b031633146106cf5760405162461bcd60e51b81526004016106c69061228b565b60405180910390fd5b6005546106e69062010000900460ff1660026122eb565b60ff166106f38385612314565b60ff1611156107375760405162461bcd60e51b815260206004820152601060248201526f082ecce40e8c2f040e8dede40d0d2ced60831b60448201526064016106c6565b60055460ff62010000909104811690821611156107855760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b60448201526064016106c6565b6005805464ffff0000001916630100000060ff86811691820264ff000000001916929092176401000000008684169081029190911765ff000000000019166501000000000093861693840217909355604080519182526020820193909352918201527f3936da96a2d6c0884221e809bd19e72c2f0ac9e9d7e63d75e371a66e8f71144a906060015b60405180910390a1505050565b60006108286009600a612415565b61083590620f4240612424565b905090565b6000546001600160a01b031633146108645760405162461bcd60e51b81526004016106c69061228b565b6001600160a01b0383166000818152600c60209081526040808320805487151560ff199182168117909255600d84529382902080548715159516851790558151948552918401919091528201527fd1210f82d8da3a4173d7d74f8a9f5c81b8f83b77529ac2684baff199241f4ed09060600161080d565b60006108e5611401565b6109245760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016106c6565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146109a4576001600160a01b038416600090815260026020908152604080832033845290915290205461097f908390612443565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6109af848484611434565b949350505050565b6001600160a01b038116600090815260106020526040812054819081908190156109df575060015b6001600160a01b03949094166000908152601060205260409020546005549495909461ffff169350915050565b3360009081526001602052604090205480821115610a645760405162461bcd60e51b8152602060048201526015602482015274546f6b656e2062616c616e636520746f6f206c6f7760581b60448201526064016106c6565b610a6e82336117aa565b5050565b6000546001600160a01b03163314610a9c5760405162461bcd60e51b81526004016106c69061228b565b8115610af6573060009081526001602052604090205480610aeb5760405162461bcd60e51b81526020600482015260096024820152684e6f20746f6b656e7360b81b60448201526064016106c6565b610af4816118a4565b505b8015610a6e57610a6e47611996565b6000610b0f611401565b610b4e5760405162461bcd60e51b815260206004820152601060248201526f2a3930b234b733903737ba1037b832b760811b60448201526064016106c6565b610b59338484611434565b9392505050565b6000546001600160a01b03163314610b8a5760405162461bcd60e51b81526004016106c69061228b565b60006103e861ffff8416610ba06009600a612415565b610bad90620f4240612424565b610bb79190612424565b610bc1919061245a565b610bcc90600161247c565b9050600654811015610c135760405162461bcd60e51b815260206004820152601060248201526f7478206c696d697420746f6f206c6f7760801b60448201526064016106c6565b600681905560006103e861ffff8416610c2e6009600a612415565b610c3b90620f4240612424565b610c459190612424565b610c4f919061245a565b610c5a90600161247c565b9050600754811015610ca55760405162461bcd60e51b815260206004820152601460248201527377616c6c6574206c696d697420746f6f206c6f7760601b60448201526064016106c6565b600781905560065460408051918252602082018390527f72c1c0546833bfc2a43408333cd18ef1d9c882e9d46f89002a3fd40bceffe5f791015b60405180910390a150505050565b6000546001600160a01b03163314610d175760405162461bcd60e51b81526004016106c69061228b565b610d1f6119e6565b15610d635760405162461bcd60e51b81526020600482015260146024820152733a3930b234b7339030b63932b0b23c9037b832b760611b60448201526064016106c6565b600b546001600160a01b031615610daf5760405162461bcd60e51b815260206004820152601060248201526f131408185b1c9958591e48185919195960821b60448201526064016106c6565b306000908152600f602090815260408083208054600160ff19918216811790925584546001600160a01b0390811686528386208054831684179055600a5481168652948390208054909116909117905560125481516315ab88c960e31b8152915193169263ad5c4648926004808401939192918290030181865afa158015610e3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5f9190612494565b60118054610100600160a81b0319166101006001600160a01b03938416021790556012546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015610ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee69190612494565b6011546040516364e329cb60e11b81523060048201526001600160a01b036101009092048216602482015291169063c9c65396906044016020604051808303816000875af1158015610f3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f609190612494565b600b80546001600160a01b0319166001600160a01b0392831690811782556000908152600460209081526040808320805460ff19908116600190811790925594549095168352600f82528083208054909416851790935530825292909252902054479080610ffc5760405162461bcd60e51b81526020600482015260096024820152686e6f20746f6b656e7360b81b60448201526064016106c6565b611005816119fc565b61101181836000611aa0565b600e61101c81611b51565b505050565b6000546001600160a01b0316331461104b5760405162461bcd60e51b81526004016106c69061228b565b600a80546001600160a01b0319166001600160a01b0383169081179091556000818152600c60209081526040808320805460ff199081166001908117909255600d84529382902080549094161790925590519182527ea263b61aab5ebdcff20c4c0c74c2589ea5ab52149abde19eca17ad5221789991015b60405180910390a150565b6000546001600160a01b031633146110f85760405162461bcd60e51b81526004016106c69061228b565b6005805469ffffffff0000000000001916600160301b61ffff868116820269ffff0000000000000000191692909217600160401b86841681029190911761ffff60501b1916600160501b868516810291909117948590558404831693611166939181048216929004166124b1565b61117091906124b1565b6005805461ffff60601b1916600160601b61ffff938416021790556040805185831681528483166020820152918316908201527f09d1c6e0dc7290333e3eb301ba9b06f7ec15ce885a8a1efc702befd956c1bd939060600161080d565b6000546001600160a01b031633146111f75760405162461bcd60e51b81526004016106c69061228b565b63ffffffff80841690851661120e6009600a612415565b61121b90620f4240612424565b6112259190612424565b61122f919061245a565b60085563ffffffff8082169083166112496009600a612415565b61125690620f4240612424565b6112609190612424565b61126a919061245a565b60098190556008541061127c57600080fd5b7f325d25781eb858cfe3b3ede984fc8a66dd8e8be0b4a349189e05d0a35e6803bb600854600954604051610cdf929190918252602082015260400190565b6000546001600160a01b031633146112e45760405162461bcd60e51b81526004016106c69061228b565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163906020016110c3565b600061133c6119e6565b80156113555750600e5461135190600a61247c565b4310155b15611362576108356119e6565b50600090565b6001600160a01b0383166000908152600f602052604090205460ff161580156113a757506001600160a01b038316600090815260106020526040902054155b1561101c576001600160a01b0383166000908152601060205260409020829055801561101c576005805461ffff169060006113e1836124d7565b91906101000a81548161ffff021916908361ffff16021790555050505050565b60008061140c6119e6565b1561141957506001919050565b6000546001600160a01b0316320361142f575060015b919050565b60006001600160a01b0384161580159061145657506001600160a01b03831615155b6114a25760405162461bcd60e51b815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f776564000000000000000060448201526064016106c6565b43600e541115611501576001600160a01b03841660009081526010602052604081205490036114dc576114d783436001611368565b611544565b6001600160a01b0384166000908152601060205260408120546114d791859190611368565b6001600160a01b03841660009081526010602052604090205415611544576001600160a01b03841660009081526010602052604081205461154491859190611368565b61154c6119e6565b801561156f57506001600160a01b03841660009081526010602052604090205415155b801561159257506001600160a01b03841660009081526010602052604090205443115b156115cd5760405162461bcd60e51b815260206004820152600b60248201526a189b1858dadb1a5cdd195960aa1b60448201526064016106c6565b60115460ff161580156115f857506001600160a01b03831660009081526004602052604090205460ff165b1561160557611605611c1b565b6001600160a01b038416301480159061162757506001600160a01b0383163014155b801561164157506000546001600160a01b03858116911614155b1561169157611651848484611db4565b6116915760405162461bcd60e51b815260206004820152601160248201527054582065786365656473206c696d69747360781b60448201526064016106c6565b600061169e858585611e7e565b905060006116ac8285612443565b6001600160a01b0387166000908152600160205260409020549091506116d3908590612443565b6001600160a01b038716600090815260016020526040902055811561171e573060009081526001602052604090205461170d90839061247c565b306000908152600160205260409020555b6001600160a01b03851660009081526001602052604090205461174290829061247c565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117969088815260200190565b60405180910390a350600195945050505050565b8115610a6e576001600160a01b038116600090815260016020526040812080548492906117d8908490612443565b9091555050600080805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49805484929061181890849061247c565b90915550506040518281526000906001600160a01b038316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3604080516001600160a01b0383168152602081018490527ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb6910160405180910390a15050565b6118ad816119fc565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118e2576118e26124f8565b6001600160a01b0392831660209182029290920101526011548251610100909104909116908290600190811061191a5761191a6124f8565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac9479061196090859060009086903090429060040161250e565b600060405180830381600087803b15801561197a57600080fd5b505af115801561198e573d6000803e3d6000fd5b505050505050565b600554600160501b900461ffff16156119e357600a546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610a6e573d6000803e3d6000fd5b50565b6003546000908190431061142f57506001919050565b306000908152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156119e357306000818152600260209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190206000199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350565b600081611ab557506000546001600160a01b03165b60125460405163f305d71960e01b81523060048201526024810186905260006044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990859060c40160606040518083038185885af1158015611b23573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b48919061257f565b50505050505050565b611b5d6009600a612415565b612710611b6c6009600a612415565b611b7990620f4240612424565b611b84906064612424565b611b8e919061245a565b611b98919061247c565b600655611ba76009600a612415565b612710611bb66009600a612415565b611bc390620f4240612424565b611bce906064612424565b611bd8919061245a565b611be2919061247c565b6007556005805465ffffff0000001916640805000000179055611c05814361247c565b6003819055611c1590600961247c565b600e5550565b6011805460ff191660011790556000611c49306001600160a01b031660009081526001602052604090205490565b90506008548110158015611c605750611c606119e6565b15611da7576009548110611c7357506009545b60055460009060029061ffff600160601b8204811691611c9c91600160301b9091041685612424565b611ca6919061245a565b611cb0919061245a565b60055490915060009061ffff600160601b8204811691611cd991600160401b9091041685612424565b611ce3919061245a565b9050611cef81306117aa565b600082611cfc8386612443565b611d069190612443565b9050611d146009600a612415565b8110611d925747611d24826118a4565b6000611d308247612443565b600554909150600160301b900461ffff1615611d8f5760055460009061ffff600160601b8204811691611d6c91600160301b9091041684612424565b611d76919061245a565b9050611d81866119fc565b611d8d86826000611aa0565b505b50505b478015611da257611da281611996565b505050505b506011805460ff19169055565b60006001611dc06119e6565b8015611de557506001600160a01b0384166000908152600d602052604090205460ff16155b8015611e0a57506001600160a01b0385166000908152600d602052604090205460ff16155b156109af57600654831115611e21575060006109af565b6001600160a01b03841660009081526004602052604090205460ff16158015611e6e57506007546001600160a01b038516600090815260016020526040902054611e6c90859061247c565b115b156109af57506000949350505050565b600080611e896119e6565b1580611ead57506001600160a01b0385166000908152600c602052604090205460ff165b80611ed057506001600160a01b0384166000908152600c602052604090205460ff165b15611edd575060006109af565b6001600160a01b03851660009081526004602052604090205460ff1615611f2957600554606490611f18906301000000900460ff1685612424565b611f22919061245a565b90506109af565b6001600160a01b03841660009081526004602052604090205460ff1615611f6557600554606490611f1890640100000000900460ff1685612424565b600554606490611f819065010000000000900460ff1685612424565b611f8b919061245a565b95945050505050565b600060208083528351808285015260005b81811015611fc157858101830151858201604001528201611fa5565b81811115611fd3576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146119e357600080fd5b6000806040838503121561201157600080fd5b823561201c81611fe9565b946020939093013593505050565b803560ff8116811461142f57600080fd5b60008060006060848603121561205057600080fd5b6120598461202a565b92506120676020850161202a565b91506120756040850161202a565b90509250925092565b8035801515811461142f57600080fd5b6000806000606084860312156120a357600080fd5b83356120ae81611fe9565b92506120bc6020850161207e565b91506120756040850161207e565b6000806000606084860312156120df57600080fd5b83356120ea81611fe9565b925060208401356120fa81611fe9565b929592945050506040919091013590565b60006020828403121561211d57600080fd5b8135610b5981611fe9565b60006020828403121561213a57600080fd5b5035919050565b6000806040838503121561215457600080fd5b61215d8361207e565b915061216b6020840161207e565b90509250929050565b803561ffff8116811461142f57600080fd5b6000806040838503121561219957600080fd5b6121a283612174565b915061216b60208401612174565b600080604083850312156121c357600080fd5b82356121ce81611fe9565b915060208301356121de81611fe9565b809150509250929050565b6000806000606084860312156121fe57600080fd5b61220784612174565b925061221560208501612174565b915061207560408501612174565b803563ffffffff8116811461142f57600080fd5b6000806000806080858703121561224d57600080fd5b61225685612223565b935061226460208601612223565b925061227260408601612223565b915061228060608601612223565b905092959194509250565b6020808252602a908201527f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c207468696040820152693990333ab731ba34b7b760b11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff84168160ff048111821515161561230c5761230c6122d5565b029392505050565b600060ff821660ff84168060ff03821115612331576123316122d5565b019392505050565b600181815b8085111561237457816000190482111561235a5761235a6122d5565b8085161561236757918102915b93841c939080029061233e565b509250929050565b60008261238b57506001610696565b8161239857506000610696565b81600181146123ae57600281146123b8576123d4565b6001915050610696565b60ff8411156123c9576123c96122d5565b50506001821b610696565b5060208310610133831016604e8410600b84101617156123f7575081810a610696565b6124018383612339565b806000190482111561230c5761230c6122d5565b6000610b5960ff84168361237c565b600081600019048311821515161561243e5761243e6122d5565b500290565b600082821015612455576124556122d5565b500390565b60008261247757634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561248f5761248f6122d5565b500190565b6000602082840312156124a657600080fd5b8151610b5981611fe9565b600061ffff8083168185168083038211156124ce576124ce6122d5565b01949350505050565b600061ffff8083168181036124ee576124ee6122d5565b6001019392505050565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561255e5784516001600160a01b031683529383019391830191600101612539565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561259457600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212206cc4428cb59d7ffa87571608cbb1b4e687990faa79c2121a240a8e3428a7302764736f6c634300080f0033

Deployed Bytecode Sourcemap

2084:15247:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5408:80;;;;;;;;;;-1:-1:-1;5480:5:0;;;;;;;;;;;;-1:-1:-1;;;5480:5:0;;;;5408:80;;;;;;;:::i;:::-;;;;;;;;5737:319;;;;;;;;;;-1:-1:-1;5737:319:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;5737:319:0;1072:187:1;12582:393:0;;;;;;;;;;-1:-1:-1;12582:393:0;;;;;:::i;:::-;;:::i;:::-;;5147:88;;;;;;;;;;;;;:::i;:::-;;;1898:25:1;;;1886:2;1871:18;5147:88:0;1752:177:1;12011:214:0;;;;;;;;;;-1:-1:-1;12011:214:0;;;;;:::i;:::-;;:::i;6266:363::-;;;;;;;;;;-1:-1:-1;6266:363:0;;;;;:::i;:::-;;:::i;12230:347::-;;;;;;;;;;-1:-1:-1;12441:19:0;;12230:347;;;12441:19;;;;;;3241:36:1;;12462:14:0;;;;;3308:2:1;3293:18;;3286:45;12478:15:0;;;;;3347:18:1;;;3340:45;;;;12495:19:0;;;;;;3416:2:1;3401:18;;3394:45;12516:16:0;-1:-1:-1;;;12516:16:0;;;;3495:3:1;3480:19;;3473:44;-1:-1:-1;;;12534:14:0;;;;3548:3:1;3533:19;;3526:44;-1:-1:-1;;;12550:21:0;;;;;;3601:3:1;3586:19;;3579:44;3228:3;3213:19;12230:347:0;2948:681:1;5238:80:0;;;;;;;;;;-1:-1:-1;5238:80:0;;2231:1;3776:36:1;;3764:2;3749:18;5238:80:0;3634:184:1;11540:313:0;;;;;;;;;;-1:-1:-1;11540:313:0;;;;;:::i;:::-;;:::i;:::-;;;;4294:14:1;;4287:22;4269:41;;4341:2;4326:18;;4319:34;;;;4401:6;4389:19;4369:18;;;4362:47;4257:2;4242:18;11540:313:0;4075:340:1;17124:204:0;;;;;;;;;;-1:-1:-1;17124:204:0;;;;;:::i;:::-;;:::i;13820:216::-;;;;;;;;;;-1:-1:-1;13962:15:0;;13979:19;;14000:14;;14016;;13820:216;;;4836:25:1;;;4892:2;4877:18;;4870:34;;;;4920:18;;;4913:34;4978:2;4963:18;;4956:34;4823:3;4808:19;13820:216:0;4605:391:1;5491:105:0;;;;;;;;;;-1:-1:-1;5491:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;5575:18:0;5557:7;5575:18;;;:9;:18;;;;;;;5491:105;16791:328;;;;;;;;;;-1:-1:-1;16791:328:0;;;;;:::i;:::-;;:::i;11858:148::-;;;;;;;;;;-1:-1:-1;11858:148:0;;;;;:::i;:::-;-1:-1:-1;;;;;11960:18:0;11919:11;11960:18;;;:10;:18;;;;;;;;;11980:12;:20;;;;;;;11960:18;;;;;11980:20;;;11858:148;;;;;5441:14:1;;5434:22;5416:41;;5500:14;;5493:22;5488:2;5473:18;;5466:50;5389:18;11858:148:0;5254:268:1;5321:84:0;;;;;;;;;;-1:-1:-1;5395:7:0;;;;;;;;;;;;-1:-1:-1;;;5395:7:0;;;;5321:84;;6061:200;;;;;;;;;;-1:-1:-1;6061:200:0;;;;;:::i;:::-;;:::i;14041:505::-;;;;;;;;;;-1:-1:-1;14041:505:0;;;;;:::i;:::-;;:::i;6634:874::-;;;;;;;;;;;;;:::i;13548:267::-;;;;;;;;;;-1:-1:-1;13548:267:0;;;;;:::i;:::-;;:::i;13375:168::-;;;;;;;;;;-1:-1:-1;13419:21:0;13499:5;13506:14;;13522:15;;13375:168;;;-1:-1:-1;;;;;13499:5:0;;;6192:34:1;;13506:14:0;;;6257:2:1;6242:18;;6235:43;13522:15:0;;6294:18:1;;;6287:43;;;;6142:2;6127:18;13375:168:0;5952:384:1;5599:133:0;;;;;;;;;;-1:-1:-1;5599:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5701:19:0;;;5683:7;5701:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5599:133;12980:389;;;;;;;;;;-1:-1:-1;12980:389:0;;;;;:::i;:::-;;:::i;14551:347::-;;;;;;;;;;-1:-1:-1;14551:347:0;;;;;:::i;:::-;;:::i;1273:130::-;;;;;;;;;;-1:-1:-1;1273:130:0;;;;;:::i;:::-;;:::i;8497:169::-;;;;;;;;;;;;;:::i;5737:319::-;5812:4;5842:12;5828:11;;:26;:53;;;;-1:-1:-1;5870:10:0;5859:22;;;;:10;:22;;;;;;;;5858:23;5828:53;5823:118;;;5890:45;5904:10;5916:12;5930:4;5890:13;:45::i;:::-;5959:10;5947:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5947:32:0;;;;;;;;;;;;:41;;;5998:37;1898:25:1;;;5947:32:0;;5959:10;5998:37;;1871:18:1;5998:37:0;;;;;;;-1:-1:-1;6047:4:0;5737:319;;;;;:::o;12582:393::-;1212:5;;-1:-1:-1;;;;;1212:5:0;1198:10;:19;1190:74;;;;-1:-1:-1;;;1190:74:0;;;;;;;:::i;:::-;;;;;;;;;12712:19:::1;::::0;12710:21:::1;::::0;12712:19;;::::1;;;;12710:21;:::i;:::-;12686:45;;:20;12696:10:::0;12686:9;:20:::1;:::i;:::-;:45;;;;12678:74;;;::::0;-1:-1:-1;;;12678:74:0;;9098:2:1;12678:74:0::1;::::0;::::1;9080:21:1::0;9137:2;9117:18;;;9110:30;-1:-1:-1;;;9156:18:1;;;9149:46;9212:18;;12678:74:0::1;8896:340:1::0;12678:74:0::1;12777:19;::::0;::::1;::::0;;;::::1;::::0;::::1;12765:31:::0;;::::1;;;12757:56;;;::::0;-1:-1:-1;;;12757:56:0;;9443:2:1;12757:56:0::1;::::0;::::1;9425:21:1::0;9482:2;9462:18;;;9455:30;-1:-1:-1;;;9501:18:1;;;9494:42;9553:18;;12757:56:0::1;9241:336:1::0;12757:56:0::1;12818:14;:26:::0;;-1:-1:-1;;12849:28:0;12818:26;::::1;::::0;;::::1;::::0;;::::1;-1:-1:-1::0;;12849:28:0;;;;;;;;::::1;::::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;12882:30:0::1;::::0;;;::::1;::::0;;::::1;;::::0;;;12922:48:::1;::::0;;9772:36:1;;;9839:2;9824:18;;9817:45;;;;9878:18;;;9871:45;12922:48:0::1;::::0;9760:2:1;9745:18;12922:48:0::1;;;;;;;;12582:393:::0;;;:::o;5147:88::-;5202:7;2280:13;2231:1;2280:2;:13;:::i;:::-;2268:25;;:9;:25;:::i;:::-;5213:19;;5147:88;:::o;12011:214::-;1212:5;;-1:-1:-1;;;;;1212:5:0;1198:10;:19;1190:74;;;;-1:-1:-1;;;1190:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12102:18:0;::::1;;::::0;;;:10:::1;:18;::::0;;;;;;;:27;;;::::1;;-1:-1:-1::0;;12102:27:0;;::::1;::::0;::::1;::::0;;;12134:12:::1;:20:::0;;;;;;:31;;;::::1;;::::0;::::1;::::0;::::1;::::0;;12175:45;;11673:51:1;;;11740:18;;;11733:50;;;;11799:18;;11792:50;12175:45:0::1;::::0;11661:2:1;11646:18;12175:45:0::1;11483:365:1::0;6266:363:0;6366:4;6385:19;:17;:19::i;:::-;6377:48;;;;-1:-1:-1;;;6377:48:0;;12055:2:1;6377:48:0;;;12037:21:1;12094:2;12074:18;;;12067:30;-1:-1:-1;;;12113:18:1;;;12106:46;12169:18;;6377:48:0;11853:340:1;6377:48:0;-1:-1:-1;;;;;6434:19:0;;;;;;:11;:19;;;;;;;;6454:10;6434:31;;;;;;;;-1:-1:-1;;6434:52:0;6430:143;;-1:-1:-1;;;;;6527:19:0;;;;;;:11;:19;;;;;;;;6547:10;6527:31;;;;;;;;:40;;6561:6;;6527:40;:::i;:::-;-1:-1:-1;;;;;6493:19:0;;;;;;:11;:19;;;;;;;;6513:10;6493:31;;;;;;;:74;6430:143;6584:40;6598:6;6606:9;6617:6;6584:13;:40::i;:::-;6577:47;6266:363;-1:-1:-1;;;;6266:363:0:o;11540:313::-;-1:-1:-1;;;;;11716:23:0;;11606:18;11716:23;;;:15;:23;;;;;;11606:18;;;;;;11716:28;11711:62;;-1:-1:-1;11766:4:0;11711:62;-1:-1:-1;;;;;11802:23:0;;;;;;;;:15;:23;;;;;;11827:19;;11786:14;;11802:23;;11827:19;;;-1:-1:-1;11540:313:0;-1:-1:-1;;11540:313:0:o;17124:204::-;17211:10;17174:24;5575:18;;;:9;:18;;;;;;17235:26;;;;17227:60;;;;-1:-1:-1;;;17227:60:0;;12530:2:1;17227:60:0;;;12512:21:1;12569:2;12549:18;;;12542:30;-1:-1:-1;;;12588:18:1;;;12581:51;12649:18;;17227:60:0;12328:345:1;17227:60:0;17292:31;17304:6;17312:10;17292:11;:31::i;:::-;17169:159;17124:204;:::o;16791:328::-;1212:5;;-1:-1:-1;;;;;1212:5:0;1198:10;:19;1190:74;;;;-1:-1:-1;;;1190:74:0;;;;;;;:::i;:::-;16877:10:::1;16873:168;;;16939:4;16895:23;5575:18:::0;;;:9;:18;;;;;;16959:19;16951:41:::1;;;::::0;-1:-1:-1;;;16951:41:0;;12880:2:1;16951:41:0::1;::::0;::::1;12862:21:1::0;12919:1;12899:18;;;12892:29;-1:-1:-1;;;12937:18:1;;;12930:39;12986:18;;16951:41:0::1;12678:332:1::0;16951:41:0::1;16998:37;17019:15;16998:20;:37::i;:::-;16889:152;16873:168;17053:7;17049:66;;;17068:40;17086:21;17068:17;:40::i;6061:200::-:0;6141:4;6160:19;:17;:19::i;:::-;6152:48;;;;-1:-1:-1;;;6152:48:0;;12055:2:1;6152:48:0;;;12037:21:1;12094:2;12074:18;;;12067:30;-1:-1:-1;;;12113:18:1;;;12106:46;12169:18;;6152:48:0;11853:340:1;6152:48:0;6212:44;6226:10;6238:9;6249:6;6212:13;:44::i;:::-;6205:51;6061:200;-1:-1:-1;;;6061:200:0:o;14041:505::-;1212:5;;-1:-1:-1;;;;;1212:5:0;1198:10;:19;1190:74;;;;-1:-1:-1;;;1190:74:0;;;;;;;:::i;:::-;14141:16:::1;14193:4;14160:30;::::0;::::1;2280:13;2231:1;2280:2;:13;:::i;:::-;2268:25;::::0;:9:::1;:25;:::i;:::-;14160:30;;;;:::i;:::-;:37;;;;:::i;:::-;:41;::::0;14200:1:::1;14160:41;:::i;:::-;14141:60;;14226:15;;14214:8;:27;;14206:56;;;::::0;-1:-1:-1;;;14206:56:0;;13572:2:1;14206:56:0::1;::::0;::::1;13554:21:1::0;13611:2;13591:18;;;13584:30;-1:-1:-1;;;13630:18:1;;;13623:46;13686:18;;14206:56:0::1;13370:340:1::0;14206:56:0::1;14267:15;:26:::0;;;14298:20:::1;14358:4;14321:34;::::0;::::1;2280:13;2231:1;2280:2;:13;:::i;:::-;2268:25;::::0;:9:::1;:25;:::i;:::-;14321:34;;;;:::i;:::-;:41;;;;:::i;:::-;:45;::::0;14365:1:::1;14321:45;:::i;:::-;14298:68;;14395:19;;14379:12;:35;;14371:68;;;::::0;-1:-1:-1;;;14371:68:0;;13917:2:1;14371:68:0::1;::::0;::::1;13899:21:1::0;13956:2;13936:18;;;13929:30;-1:-1:-1;;;13975:18:1;;;13968:50;14035:18;;14371:68:0::1;13715:344:1::0;14371:68:0::1;14444:19;:34:::0;;;14504:15:::1;::::0;14488:53:::1;::::0;;14238:25:1;;;14294:2;14279:18;;14272:34;;;14488:53:0::1;::::0;14211:18:1;14488:53:0::1;;;;;;;;14136:410;;14041:505:::0;;:::o;6634:874::-;1212:5;;-1:-1:-1;;;;;1212:5:0;1198:10;:19;1190:74;;;;-1:-1:-1;;;1190:74:0;;;;;;;:::i;:::-;6684:14:::1;:12;:14::i;:::-;6683:15;6675:48;;;::::0;-1:-1:-1;;;6675:48:0;;14519:2:1;6675:48:0::1;::::0;::::1;14501:21:1::0;14558:2;14538:18;;;14531:30;-1:-1:-1;;;14577:18:1;;;14570:50;14637:18;;6675:48:0::1;14317:344:1::0;6675:48:0::1;6736:14;::::0;-1:-1:-1;;;;;6736:14:0::1;:28:::0;6728:57:::1;;;::::0;-1:-1:-1;;;6728:57:0;;14868:2:1;6728:57:0::1;::::0;::::1;14850:21:1::0;14907:2;14887:18;;;14880:30;-1:-1:-1;;;14926:18:1;;;14919:46;14982:18;;6728:57:0::1;14666:340:1::0;6728:57:0::1;6811:4;6792:25;::::0;;;:10:::1;:25;::::0;;;;;;;:32;;6820:4:::1;-1:-1:-1::0;;6792:32:0;;::::1;::::0;::::1;::::0;;;6840:5;;-1:-1:-1;;;;;6840:5:0;;::::1;6829:17:::0;;;;;:24;;;::::1;::::0;::::1;::::0;;6869:15:::1;::::0;;::::1;6858:27:::0;;;;;;:34;;;;::::1;::::0;;::::1;::::0;;6914:16:::1;::::0;:23;;-1:-1:-1;;;6914:23:0;;;;:16;::::1;::::0;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;6792:25;;6914:23;;;;;;:16;:23:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6899:12;:38:::0;;-1:-1:-1;;;;;;6899:38:0::1;;-1:-1:-1::0;;;;;6899:38:0;;::::1;;;::::0;;6977:16:::1;::::0;:26:::1;::::0;;-1:-1:-1;;;6977:26:0;;;;:16;;;::::1;::::0;:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:16;:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7031:12;::::0;6959:85:::1;::::0;-1:-1:-1;;;6959:85:0;;7024:4:::1;6959:85;::::0;::::1;15479:34:1::0;-1:-1:-1;;;;;7031:12:0::1;::::0;;::::1;::::0;::::1;15529:18:1::0;;;15522:43;6959:56:0;::::1;::::0;::::1;::::0;15414:18:1;;6959:85:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6942:14;:102:::0;;-1:-1:-1;;;;;;6942:102:0::1;-1:-1:-1::0;;;;;6942:102:0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7051:26:0;;;:10:::1;:26;::::0;;;;;;;:33;;-1:-1:-1;;7051:33:0;;::::1;-1:-1:-1::0;7051:33:0;;::::1;::::0;;;7100:14;;;;::::1;7089:26:::0;;:10:::1;:26:::0;;;;;:33;;;;::::1;::::0;::::1;::::0;;;7285:4:::1;5575:18:::0;;;;;;;;;7159:21:::1;::::0;5575:18;7296:47:::1;;;::::0;-1:-1:-1;;;7296:47:0;;16112:2:1;7296:47:0::1;::::0;::::1;16094:21:1::0;16151:1;16131:18;;;16124:29;-1:-1:-1;;;16169:18:1;;;16162:39;16218:18;;7296:47:0::1;15910:332:1::0;7296:47:0::1;7350:37;7365:21;7350:14;:37::i;:::-;7392:64;7406:21;7429:19;7450:5;7392:13;:64::i;:::-;7477:2;7484:19;7477:2:::0;7484:12:::1;:19::i;:::-;6670:838;;;6634:874::o:0;13548:267::-;1212:5;;-1:-1:-1;;;;;1212:5:0;1198:10;:19;1190:74;;;;-1:-1:-1;;;1190:74:0;;;;;;;:::i;:::-;13625:15:::1;:47:::0;;-1:-1:-1;;;;;;13625:47:0::1;-1:-1:-1::0;;;;;13625:47:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;13677:32:0;;;:10:::1;:32;::::0;;;;;;;:39;;-1:-1:-1;;13677:39:0;;::::1;-1:-1:-1::0;13677:39:0;;::::1;::::0;;;13721:12:::1;:34:::0;;;;;;:41;;;;::::1;;::::0;;;13772:38;;16393:51:1;;;13772:38:0::1;::::0;16366:18:1;13772:38:0::1;;;;;;;;13548:267:::0;:::o;12980:389::-;1212:5;;-1:-1:-1;;;;;1212:5:0;1198:10;:19;1190:74;;;;-1:-1:-1;;;1190:74:0;;;;;;;:::i;:::-;13098:16:::1;:31:::0;;-1:-1:-1;;13134:27:0;-1:-1:-1;;;13098:31:0::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;13134:27:0;;;;;-1:-1:-1;;;13134:27:0;;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;;;13166:41:0::1;-1:-1:-1::0;;;13166:41:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;13266:21;::::1;::::0;::::1;::::0;13230:33:::1;::::0;13249:14;;::::1;::::0;::::1;::::0;13230:16;::::1;;:33;:::i;:::-;:57;;;;:::i;:::-;13212:15;:75:::0;;-1:-1:-1;;;;13212:75:0::1;-1:-1:-1::0;;;13212:75:0::1;::::0;;::::1;;;::::0;;13297:67:::1;::::0;;16923:15:1;;;16905:34;;16975:15;;;16970:2;16955:18;;16948:43;17027:15;;;17007:18;;;17000:43;13297:67:0::1;::::0;16868:2:1;16853:18;13297:67:0::1;16684:365:1::0;14551:347:0;1212:5;;-1:-1:-1;;;;;1212:5:0;1198:10;:19;1190:74;;;;-1:-1:-1;;;1190:74:0;;;;;;;:::i;:::-;14690:36:::1;::::0;;::::1;::::0;:23;::::1;2280:13;2231:1;2280:2;:13;:::i;:::-;2268:25;::::0;:9:::1;:25;:::i;:::-;14690:23;;;;:::i;:::-;:36;;;;:::i;:::-;14673:14;:53:::0;14748:36:::1;::::0;;::::1;::::0;:23;::::1;2280:13;2231:1;2280:2;:13;:::i;:::-;2268:25;::::0;:9:::1;:25;:::i;:::-;14748:23;;;;:::i;:::-;:36;;;;:::i;:::-;14731:14;:53:::0;;;14814:14:::1;::::0;-1:-1:-1;14789:40:0::1;;;::::0;::::1;;14839:54;14862:14;;14878;;14839:54;;;;;;14238:25:1::0;;;14294:2;14279:18;;14272:34;14226:2;14211:18;;14064:248;1273:130:0;1212:5;;-1:-1:-1;;;;;1212:5:0;1198:10;:19;1190:74;;;;-1:-1:-1;;;1190:74:0;;;;;;;:::i;:::-;1347:5:::1;:16:::0;;-1:-1:-1;;;;;;1347:16:0::1;-1:-1:-1::0;;;;;1347:16:0;::::1;::::0;;::::1;::::0;;;1370:30:::1;::::0;16393:51:1;;;1370:30:0::1;::::0;16381:2:1;16366:18;1370:30:0::1;16247:203:1::0;8497:169:0;8543:4;8558:14;:12;:14::i;:::-;:50;;;;-1:-1:-1;8592:11:0;;:16;;8606:2;8592:16;:::i;:::-;8576:12;:32;;8558:50;8554:108;;;8619:14;:12;:14::i;8554:108::-;-1:-1:-1;8654:5:0;;8497:169::o;9935:256::-;-1:-1:-1;;;;;10033:18:0;;;;;;:10;:18;;;;;;;;10032:19;:51;;;;-1:-1:-1;;;;;;10055:23:0;;;;;;:15;:23;;;;;;:28;10032:51;10027:160;;;-1:-1:-1;;;;;10093:23:0;;;;;;:15;:23;;;;;:39;;;10139:43;;;;10157:19;:22;;;;;:19;:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;9935:256;;;:::o;10836:222::-;10887:4;;10931:14;:12;:14::i;:::-;10926:104;;;-1:-1:-1;10964:4:0;11042:11;10836:222;-1:-1:-1;10836:222:0:o;10926:104::-;10999:5;;-1:-1:-1;;;;;10999:5:0;10986:9;:18;10981:49;;-1:-1:-1;11023:4:0;10981:49;11042:11;10836:222;-1:-1:-1;10836:222:0:o;8671:1259::-;8763:4;-1:-1:-1;;;;;8782:18:0;;;;;;:43;;-1:-1:-1;;;;;;8804:21:0;;;;8782:43;8774:80;;;;-1:-1:-1;;;8774:80:0;;17674:2:1;8774:80:0;;;17656:21:1;17713:2;17693:18;;;17686:30;17752:26;17732:18;;;17725:54;17796:18;;8774:80:0;17472:348:1;8774:80:0;8878:12;8864:11;;:26;8859:315;;;-1:-1:-1;;;;;8904:23:0;;;;;;:15;:23;;;;;;:28;;8899:156;;8937:44;8951:9;8962:12;8976:4;8937:13;:44::i;:::-;8859:315;;8899:156;-1:-1:-1;;;;;9021:23:0;;;;;;:15;:23;;;;;;8996:56;;9010:9;;9021:23;8996:13;:56::i;8859:315::-;-1:-1:-1;;;;;9077:23:0;;;;;;:15;:23;;;;;;:28;9072:97;;-1:-1:-1;;;;;9135:23:0;;;;;;:15;:23;;;;;;9110:56;;9124:9;;9135:23;9110:13;:56::i;:::-;9185:14;:12;:14::i;:::-;:46;;;;-1:-1:-1;;;;;;9203:23:0;;;;;;:15;:23;;;;;;:28;;9185:46;:88;;;;-1:-1:-1;;;;;;9235:23:0;;;;;;:15;:23;;;;;;9261:12;-1:-1:-1;9185:88:0;9180:122;;;9278:21;;-1:-1:-1;;;9278:21:0;;18027:2:1;9278:21:0;;;18009::1;18066:2;18046:18;;;18039:30;-1:-1:-1;;;18085:18:1;;;18078:41;18136:18;;9278:21:0;17825:335:1;9180:122:0;9314:10;;;;9313:11;:36;;;;-1:-1:-1;;;;;;9328:21:0;;;;;;:10;:21;;;;;;;;9313:36;9308:69;;;9354:20;:18;:20::i;:::-;-1:-1:-1;;;;;9388:23:0;;9406:4;9388:23;;;;:53;;-1:-1:-1;;;;;;9415:26:0;;9436:4;9415:26;;9388:53;:72;;;;-1:-1:-1;9455:5:0;;-1:-1:-1;;;;;9445:15:0;;;9455:5;;9445:15;;9388:72;9383:154;;;9473:39;9486:6;9494:9;9505:6;9473:12;:39::i;:::-;9465:69;;;;-1:-1:-1;;;9465:69:0;;18367:2:1;9465:69:0;;;18349:21:1;18406:2;18386:18;;;18379:30;-1:-1:-1;;;18425:18:1;;;18418:47;18482:18;;9465:69:0;18165:341:1;9465:69:0;9541:18;9562:40;9576:6;9584:9;9595:6;9562:13;:40::i;:::-;9541:61;-1:-1:-1;9607:23:0;9633:19;9541:61;9633:6;:19;:::i;:::-;-1:-1:-1;;;;;9677:17:0;;;;;;:9;:17;;;;;;9607:45;;-1:-1:-1;9677:26:0;;9697:6;;9677:26;:::i;:::-;-1:-1:-1;;;;;9657:17:0;;;;;;:9;:17;;;;;:46;9713:14;;9708:91;;9777:4;9759:24;;;;:9;:24;;;;;;:37;;9786:10;;9759:37;:::i;:::-;9750:4;9732:24;;;;:9;:24;;;;;:64;9708:91;-1:-1:-1;;;;;9826:20:0;;;;;;:9;:20;;;;;;:38;;9849:15;;9826:38;:::i;:::-;-1:-1:-1;;;;;9803:20:0;;;;;;;:9;:20;;;;;;;:61;;;;9874:35;;;;;;;;;;9902:6;1898:25:1;;1886:2;1871:18;;1752:177;9874:35:0;;;;;;;;-1:-1:-1;9921:4:0;;8671:1259;-1:-1:-1;;;;;8671:1259:0:o;14903:266::-;14978:10;;14973:192;;-1:-1:-1;;;;;14997:21:0;;;;;;:9;:21;;;;;:31;;15022:6;;14997:21;:31;;15022:6;;14997:31;:::i;:::-;;;;-1:-1:-1;;15034:21:0;;;;:9;:21;;;:31;;15059:6;;15034:21;:31;;15059:6;;15034:31;:::i;:::-;;;;-1:-1:-1;;15076:40:0;;1898:25:1;;;15105:1:0;;-1:-1:-1;;;;;15076:40:0;;;;;1886:2:1;1871:18;15076:40:0;;;;;;;15127:32;;;-1:-1:-1;;;;;18703:32:1;;18685:51;;18767:2;18752:18;;18745:34;;;15127:32:0;;18658:18:1;15127:32:0;;;;;;;14903:266;;:::o;16328:321::-;16393:28;16408:12;16393:14;:28::i;:::-;16450:16;;;16464:1;16450:16;;;;;;;;16426:21;;16450:16;;;;;;;;;;-1:-1:-1;16450:16:0;16426:40;;16489:4;16471;16476:1;16471:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16471:23:0;;;:7;;;;;;;;;:23;16509:12;;16499:7;;16509:12;;;;;;;;16499:4;;16509:12;;16499:7;;;;;;:::i;:::-;-1:-1:-1;;;;;16499:22:0;;;:7;;;;;;;;;:22;16526:16;;:118;;-1:-1:-1;;;16526:118:0;;:16;;;:67;;:118;;16594:12;;16526:16;;16609:4;;16622;;16628:15;;16526:118;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16388:261;16328:321;:::o;16654:132::-;16716:21;;-1:-1:-1;;;16716:21:0;;;;:25;16711:71;;16746:15;;:33;;-1:-1:-1;;;;;16746:15:0;;;;:33;;;;;16771:7;;16746:15;:33;:15;:33;16771:7;16746:15;:33;;;;;;;;;;;;;;;;;;;16711:71;16654:132;:::o;10671:160::-;10772:17;;10717:4;;;;10756:12;:33;10752:57;;-1:-1:-1;10802:4:0;10820:6;10671:160;-1:-1:-1;10671:160:0:o;7513:299::-;7598:4;7578:26;;;;:11;:26;;;;;;;;3357:42;7578:51;;;;;;;;:66;-1:-1:-1;7573:235:0;;;7673:4;7653:26;;;;:11;:26;;;;;;;;3357:42;7653:51;;;;;;;;;;-1:-1:-1;;7653:71:0;;;;7735:67;;1898:25:1;;;3357:42:0;;7673:4;7735:67;;1871:18:1;7735:67:0;;;;;;;7513:299;:::o;7817:321::-;7914:24;7962:8;7956:46;;-1:-1:-1;7994:5:0;;-1:-1:-1;;;;;7994:5:0;7956:46;8006:16;;:127;;-1:-1:-1;;;8006:127:0;;8071:4;8006:127;;;20380:34:1;20430:18;;;20423:34;;;8006:16:0;20473:18:1;;;20466:34;;;20516:18;;;20509:34;-1:-1:-1;;;;;20580:15:1;;;20559:19;;;20552:44;8116:15:0;20612:19:1;;;20605:35;8006:16:0;;;;:32;;8046:13;;20314:19:1;;8006:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7909:229;7817:321;;;:::o;8143:349::-;8244:13;2231:1;8244:2;:13;:::i;:::-;8236:5;2280:13;2231:1;2280:2;:13;:::i;:::-;2268:25;;:9;:25;:::i;:::-;8215:18;;:3;:18;:::i;:::-;:26;;;;:::i;:::-;:42;;;;:::i;:::-;8193:15;:64;8314:13;2231:1;8314:2;:13;:::i;:::-;8306:5;2280:13;2231:1;2280:2;:13;:::i;:::-;2268:25;;:9;:25;:::i;:::-;8285:18;;:3;:18;:::i;:::-;:26;;;;:::i;:::-;:42;;;;:::i;:::-;8263:19;:64;8349:1;8332:18;;-1:-1:-1;;8379:23:0;8355:19;8379:23;;;8428:19;8443:4;8428:12;:19;:::i;:::-;8408:17;:39;;;8466:21;;8486:1;8466:21;:::i;:::-;8452:11;:35;-1:-1:-1;8143:349:0:o;15174:1149::-;3560:10;:17;;-1:-1:-1;;3560:17:0;3573:4;3560:17;;;:10;15259:24:::1;15277:4;-1:-1:-1::0;;;;;5575:18:0;5557:7;5575:18;;;:9;:18;;;;;;;5491:105;15259:24:::1;15229:54;;15318:14;;15295:19;:37;;:55;;;;;15336:14;:12;:14::i;:::-;15290:1029;;;15387:14;;15364:19;:37;15359:86;;-1:-1:-1::0;15428:14:0::1;::::0;15359:86:::1;15519:15;::::0;15455:20:::1;::::0;15537:1:::1;::::0;15519:15:::1;-1:-1:-1::0;;;15519:15:0;::::1;::::0;::::1;::::0;15478:38:::1;::::0;-1:-1:-1;;;15500:16:0;;::::1;;15478:19:::0;:38:::1;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;15612:15;::::0;15455:83;;-1:-1:-1;15549:21:0::1;::::0;15612:15:::1;-1:-1:-1::0;;;15612:15:0;::::1;::::0;::::1;::::0;15573:36:::1;::::0;-1:-1:-1;;;15595:14:0;;::::1;;15573:19:::0;:36:::1;:::i;:::-;:54;;;;:::i;:::-;15549:78;;15633:41;15645:13;15668:4;15633:11;:41::i;:::-;15682:21;15744:12:::0;15706:35:::1;15728:13:::0;15706:19;:35:::1;:::i;:::-;:50;;;;:::i;:::-;15682:74:::0;-1:-1:-1;15783:13:0::1;2231:1;15783:2;:13;:::i;:::-;15766;:30;15762:415;;15827:21;15855:35;15876:13:::0;15855:20:::1;:35::i;:::-;15897:19;15919:35;15943:11:::0;15919:21:::1;:35;:::i;:::-;15966:16;::::0;15897:57;;-1:-1:-1;;;;15966:16:0;::::1;;;:20:::0;15961:210:::1;;16054:15;::::0;15997:21:::1;::::0;16054:15:::1;-1:-1:-1::0;;;16054:15:0;::::1;::::0;::::1;::::0;16021:30:::1;::::0;-1:-1:-1;;;16035:16:0;;::::1;;16021:11:::0;:30:::1;:::i;:::-;:48;;;;:::i;:::-;15997:72;;16078:28;16093:12;16078:14;:28::i;:::-;16114:49;16128:12;16142:13;16157:5;16114:13;:49::i;:::-;15989:182;15961:210;15798:379;;15762:415;16212:21;16246:23:::0;;16242:72:::1;;16273:38;16291:19;16273:17;:38::i;:::-;15353:966;;;;15290:1029;-1:-1:-1::0;3582:10:0;:18;;-1:-1:-1;;3582:18:0;;;15174:1149::o;10197:469::-;10301:4;10336;10350:14;:12;:14::i;:::-;:42;;;;-1:-1:-1;;;;;;10369:23:0;;;;;;:12;:23;;;;;;;;10368:24;10350:42;:67;;;;-1:-1:-1;;;;;;10397:20:0;;;;;;:12;:20;;;;;;;;10396:21;10350:67;10345:289;;;10448:15;;10431:14;:32;10426:203;;;-1:-1:-1;10487:5:0;10426:203;;;-1:-1:-1;;;;;10511:21:0;;;;;;:10;:21;;;;;;;;10510:22;:87;;;;-1:-1:-1;10577:19:0;;-1:-1:-1;;;;;10537:20:0;;;;;;:9;:20;;;;;;:37;;10560:14;;10537:37;:::i;:::-;:59;10510:87;10505:124;;;-1:-1:-1;10621:5:0;10645:16;10197:469;-1:-1:-1;;;;10197:469:0:o;11063:472::-;11160:7;11174:17;11202:14;:12;:14::i;:::-;11201:15;:37;;;-1:-1:-1;;;;;;11220:18:0;;;;;;:10;:18;;;;;;;;11201:37;:62;;;-1:-1:-1;;;;;;11242:21:0;;;;;;:10;:21;;;;;;;;11201:62;11196:314;;;-1:-1:-1;11280:1:0;11196:314;;;-1:-1:-1;;;;;11298:18:0;;;;;;:10;:18;;;;;;;;11293:217;;;11342:14;;11359:3;;11333:23;;11342:14;;;;;11333:6;:23;:::i;:::-;:29;;;;:::i;:::-;11321:41;;11293:217;;;-1:-1:-1;;;;;11379:21:0;;;;;;:10;:21;;;;;;;;11374:136;;;11426:15;;11444:3;;11417:24;;11426:15;;;;;11417:6;:24;:::i;11374:136::-;11482:19;;11504:3;;11473:28;;11482:19;;;;;11473:6;:28;:::i;:::-;:34;;;;:::i;:::-;11461:46;11063:472;-1:-1:-1;;;;;11063:472:0:o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:156::-;1330:20;;1390:4;1379:16;;1369:27;;1359:55;;1410:1;1407;1400:12;1425:322;1496:6;1504;1512;1565:2;1553:9;1544:7;1540:23;1536:32;1533:52;;;1581:1;1578;1571:12;1533:52;1604:27;1621:9;1604:27;:::i;:::-;1594:37;;1650:36;1682:2;1671:9;1667:18;1650:36;:::i;:::-;1640:46;;1705:36;1737:2;1726:9;1722:18;1705:36;:::i;:::-;1695:46;;1425:322;;;;;:::o;1934:160::-;1999:20;;2055:13;;2048:21;2038:32;;2028:60;;2084:1;2081;2074:12;2099:383;2170:6;2178;2186;2239:2;2227:9;2218:7;2214:23;2210:32;2207:52;;;2255:1;2252;2245:12;2207:52;2294:9;2281:23;2313:31;2338:5;2313:31;:::i;:::-;2363:5;-1:-1:-1;2387:35:1;2418:2;2403:18;;2387:35;:::i;:::-;2377:45;;2441:35;2472:2;2461:9;2457:18;2441:35;:::i;2487:456::-;2564:6;2572;2580;2633:2;2621:9;2612:7;2608:23;2604:32;2601:52;;;2649:1;2646;2639:12;2601:52;2688:9;2675:23;2707:31;2732:5;2707:31;:::i;:::-;2757:5;-1:-1:-1;2814:2:1;2799:18;;2786:32;2827:33;2786:32;2827:33;:::i;:::-;2487:456;;2879:7;;-1:-1:-1;;;2933:2:1;2918:18;;;;2905:32;;2487:456::o;3823:247::-;3882:6;3935:2;3923:9;3914:7;3910:23;3906:32;3903:52;;;3951:1;3948;3941:12;3903:52;3990:9;3977:23;4009:31;4034:5;4009:31;:::i;4420:180::-;4479:6;4532:2;4520:9;4511:7;4507:23;4503:32;4500:52;;;4548:1;4545;4538:12;4500:52;-1:-1:-1;4571:23:1;;4420:180;-1:-1:-1;4420:180:1:o;5001:248::-;5063:6;5071;5124:2;5112:9;5103:7;5099:23;5095:32;5092:52;;;5140:1;5137;5130:12;5092:52;5163:26;5179:9;5163:26;:::i;:::-;5153:36;;5208:35;5239:2;5228:9;5224:18;5208:35;:::i;:::-;5198:45;;5001:248;;;;;:::o;5527:159::-;5594:20;;5654:6;5643:18;;5633:29;;5623:57;;5676:1;5673;5666:12;5691:256;5757:6;5765;5818:2;5806:9;5797:7;5793:23;5789:32;5786:52;;;5834:1;5831;5824:12;5786:52;5857:28;5875:9;5857:28;:::i;:::-;5847:38;;5904:37;5937:2;5926:9;5922:18;5904:37;:::i;6341:388::-;6409:6;6417;6470:2;6458:9;6449:7;6445:23;6441:32;6438:52;;;6486:1;6483;6476:12;6438:52;6525:9;6512:23;6544:31;6569:5;6544:31;:::i;:::-;6594:5;-1:-1:-1;6651:2:1;6636:18;;6623:32;6664:33;6623:32;6664:33;:::i;:::-;6716:7;6706:17;;;6341:388;;;;;:::o;6734:328::-;6808:6;6816;6824;6877:2;6865:9;6856:7;6852:23;6848:32;6845:52;;;6893:1;6890;6883:12;6845:52;6916:28;6934:9;6916:28;:::i;:::-;6906:38;;6963:37;6996:2;6985:9;6981:18;6963:37;:::i;:::-;6953:47;;7019:37;7052:2;7041:9;7037:18;7019:37;:::i;7067:163::-;7134:20;;7194:10;7183:22;;7173:33;;7163:61;;7220:1;7217;7210:12;7235:401;7317:6;7325;7333;7341;7394:3;7382:9;7373:7;7369:23;7365:33;7362:53;;;7411:1;7408;7401:12;7362:53;7434:28;7452:9;7434:28;:::i;:::-;7424:38;;7481:37;7514:2;7503:9;7499:18;7481:37;:::i;:::-;7471:47;;7537:37;7570:2;7559:9;7555:18;7537:37;:::i;:::-;7527:47;;7593:37;7626:2;7615:9;7611:18;7593:37;:::i;:::-;7583:47;;7235:401;;;;;;;:::o;7901:406::-;8103:2;8085:21;;;8142:2;8122:18;;;8115:30;8181:34;8176:2;8161:18;;8154:62;-1:-1:-1;;;8247:2:1;8232:18;;8225:40;8297:3;8282:19;;7901:406::o;8312:127::-;8373:10;8368:3;8364:20;8361:1;8354:31;8404:4;8401:1;8394:15;8428:4;8425:1;8418:15;8444:238;8482:7;8522:4;8519:1;8515:12;8554:4;8551:1;8547:12;8614:3;8608:4;8604:14;8599:3;8596:23;8589:3;8582:11;8575:19;8571:49;8568:75;;;8623:18;;:::i;:::-;8663:13;;8444:238;-1:-1:-1;;;8444:238:1:o;8687:204::-;8725:3;8761:4;8758:1;8754:12;8793:4;8790:1;8786:12;8828:3;8822:4;8818:14;8813:3;8810:23;8807:49;;;8836:18;;:::i;:::-;8872:13;;8687:204;-1:-1:-1;;;8687:204:1:o;9927:422::-;10016:1;10059:5;10016:1;10073:270;10094:7;10084:8;10081:21;10073:270;;;10153:4;10149:1;10145:6;10141:17;10135:4;10132:27;10129:53;;;10162:18;;:::i;:::-;10212:7;10202:8;10198:22;10195:55;;;10232:16;;;;10195:55;10311:22;;;;10271:15;;;;10073:270;;;10077:3;9927:422;;;;;:::o;10354:806::-;10403:5;10433:8;10423:80;;-1:-1:-1;10474:1:1;10488:5;;10423:80;10522:4;10512:76;;-1:-1:-1;10559:1:1;10573:5;;10512:76;10604:4;10622:1;10617:59;;;;10690:1;10685:130;;;;10597:218;;10617:59;10647:1;10638:10;;10661:5;;;10685:130;10722:3;10712:8;10709:17;10706:43;;;10729:18;;:::i;:::-;-1:-1:-1;;10785:1:1;10771:16;;10800:5;;10597:218;;10899:2;10889:8;10886:16;10880:3;10874:4;10871:13;10867:36;10861:2;10851:8;10848:16;10843:2;10837:4;10834:12;10830:35;10827:77;10824:159;;;-1:-1:-1;10936:19:1;;;10968:5;;10824:159;11015:34;11040:8;11034:4;11015:34;:::i;:::-;11085:6;11081:1;11077:6;11073:19;11064:7;11061:32;11058:58;;;11096:18;;:::i;11165:140::-;11223:5;11252:47;11293:4;11283:8;11279:19;11273:4;11252:47;:::i;11310:168::-;11350:7;11416:1;11412;11408:6;11404:14;11401:1;11398:21;11393:1;11386:9;11379:17;11375:45;11372:71;;;11423:18;;:::i;:::-;-1:-1:-1;11463:9:1;;11310:168::o;12198:125::-;12238:4;12266:1;12263;12260:8;12257:34;;;12271:18;;:::i;:::-;-1:-1:-1;12308:9:1;;12198:125::o;13015:217::-;13055:1;13081;13071:132;;13125:10;13120:3;13116:20;13113:1;13106:31;13160:4;13157:1;13150:15;13188:4;13185:1;13178:15;13071:132;-1:-1:-1;13217:9:1;;13015:217::o;13237:128::-;13277:3;13308:1;13304:6;13301:1;13298:13;13295:39;;;13314:18;;:::i;:::-;-1:-1:-1;13350:9:1;;13237:128::o;15011:251::-;15081:6;15134:2;15122:9;15113:7;15109:23;15105:32;15102:52;;;15150:1;15147;15140:12;15102:52;15182:9;15176:16;15201:31;15226:5;15201:31;:::i;16455:224::-;16494:3;16522:6;16555:2;16552:1;16548:10;16585:2;16582:1;16578:10;16616:3;16612:2;16608:12;16603:3;16600:21;16597:47;;;16624:18;;:::i;:::-;16660:13;;16455:224;-1:-1:-1;;;;16455:224:1:o;17270:197::-;17308:3;17336:6;17377:2;17370:5;17366:14;17404:2;17395:7;17392:15;17389:41;;17410:18;;:::i;:::-;17459:1;17446:15;;17270:197;-1:-1:-1;;;17270:197:1:o;18922:127::-;18983:10;18978:3;18974:20;18971:1;18964:31;19014:4;19011:1;19004:15;19038:4;19035:1;19028:15;19054:980;19316:4;19364:3;19353:9;19349:19;19395:6;19384:9;19377:25;19421:2;19459:6;19454:2;19443:9;19439:18;19432:34;19502:3;19497:2;19486:9;19482:18;19475:31;19526:6;19561;19555:13;19592:6;19584;19577:22;19630:3;19619:9;19615:19;19608:26;;19669:2;19661:6;19657:15;19643:29;;19690:1;19700:195;19714:6;19711:1;19708:13;19700:195;;;19779:13;;-1:-1:-1;;;;;19775:39:1;19763:52;;19870:15;;;;19835:12;;;;19811:1;19729:9;19700:195;;;-1:-1:-1;;;;;;;19951:32:1;;;;19946:2;19931:18;;19924:60;-1:-1:-1;;;20015:3:1;20000:19;19993:35;19912:3;19054:980;-1:-1:-1;;;19054:980:1:o;20651:306::-;20739:6;20747;20755;20808:2;20796:9;20787:7;20783:23;20779:32;20776:52;;;20824:1;20821;20814:12;20776:52;20853:9;20847:16;20837:26;;20903:2;20892:9;20888:18;20882:25;20872:35;;20947:2;20936:9;20932:18;20926:25;20916:35;;20651:306;;;;;:::o

Swarm Source

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