Token CRONJA
Overview CRC20
Price
$0.00 @ 0.000000 CRO
Fully Diluted Market Cap
Total Supply:
1,000,000,000 CRJ
Holders:
817 addresses
Contract:
Decimals:
9
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CRONJA
Compiler Version
v0.8.13+commit.abaa5c0e
Contract Source Code (Solidity)
/** *Submitted for verification at cronoscan.com on 2022-04-07 */ //SPDX-License-Identifier: MIT pragma solidity ^0.8.7; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } contract CRONJA is Context, IERC20, Ownable { using Address for address payable; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcluded; mapping (address => bool) public allowedTransfer; mapping (address => bool) private _isBlacklisted; address[] private _excluded; bool public tradingEnabled; bool public swapEnabled; bool private swapping; //Anti Dump mapping(address => uint256) private _lastSell; bool public coolDownEnabled = true; uint256 public coolDownTime = 30 seconds; modifier antiBot(address account){ require(tradingEnabled || allowedTransfer[account], "Trading not enabled yet"); _; } IRouter public router; address public pair; uint8 private constant _decimals = 9; uint256 private constant MAX = ~uint256(0); uint256 private _tTotal = 1_000_000_000 * 10**_decimals; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 public swapTokensAtAmount = 500_000 * 10**9; uint256 public maxBuyLimit = 10_000_000 * 10**9; uint256 public maxSellLimit = 10_000_000 * 10**9; uint256 public maxWalletLimit = 10_000_000 * 10**9; uint256 private genesis_block; uint256 private deadline; address public marketingWallet = 0xA5f66b2189AA844E0CA426de76B9c28550B9750a; string private constant _name = "CRONJA"; string private constant _symbol = "CRJ"; struct Taxes { uint256 rfi; uint256 marketing; uint256 liquidity; } Taxes private launchtax; Taxes public taxes = Taxes(0, 6, 3); Taxes public sellTaxes = Taxes(0, 6, 5); struct TotFeesPaidStruct{ uint256 rfi; uint256 marketing; uint256 liquidity; } TotFeesPaidStruct public totFeesPaid; struct valuesFromGetValues{ uint256 rAmount; uint256 rTransferAmount; uint256 rRfi; uint256 rmarketing; uint256 rLiquidity; uint256 tTransferAmount; uint256 tRfi; uint256 tmarketing; uint256 tLiquidity; } event FeesChanged(); event UpdatedRouter(address oldRouter, address newRouter); modifier lockTheSwap { swapping = true; _; swapping = false; } constructor (address routerAddress) { IRouter _router = IRouter(routerAddress); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; excludeFromReward(pair); _rOwned[owner()] = _rTotal; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[marketingWallet] = true; allowedTransfer[address(this)] = true; allowedTransfer[owner()] = true; allowedTransfer[pair] = true; allowedTransfer[marketingWallet] = true; emit Transfer(address(0), owner(), _tTotal); } //std ERC20: function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } //override ERC20: function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override antiBot(msg.sender) returns(bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override antiBot(sender) returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public antiBot(msg.sender) returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public antiBot(msg.sender) returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function transfer(address recipient, uint256 amount) public override antiBot(msg.sender) returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function isExcludedFromReward(address account) public view returns (bool) { return _isExcluded[account]; } function reflectionFromToken(uint256 tAmount, bool deductTransferRfi) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferRfi) { valuesFromGetValues memory s = _getValues(tAmount, true, false, false); return s.rAmount; } else { valuesFromGetValues memory s = _getValues(tAmount, true, false, false); return s.rTransferAmount; } } function setTradingStatus( bool state, uint256 _deadline, uint256 rfi, uint256 marketing, uint256 liquidity ) external onlyOwner { tradingEnabled = state; swapEnabled = state; deadline = _deadline; launchtax = Taxes(rfi, marketing, liquidity); if (state == true) genesis_block = block.number; } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount/currentRate; } //@development kept original RFI naming -> "reward" as in reflection function excludeFromReward(address account) public onlyOwner() { require(!_isExcluded[account], "Account is already excluded"); if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeInReward(address account) external onlyOwner() { require(_isExcluded[account], "Account is not excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function excludeFromFee(address account) public onlyOwner { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } function setTaxes(uint256 _rfi, uint256 _marketing, uint256 _liquidity) public onlyOwner { taxes = Taxes(_rfi,_marketing,_liquidity); emit FeesChanged(); } function setSellTaxes(uint256 _rfi, uint256 _marketing, uint256 _liquidity) public onlyOwner { sellTaxes = Taxes(_rfi,_marketing,_liquidity); emit FeesChanged(); } function _reflectRfi(uint256 rRfi, uint256 tRfi) private { _rTotal -=rRfi; totFeesPaid.rfi +=tRfi; } function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private { totFeesPaid.liquidity +=tLiquidity; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tLiquidity; } _rOwned[address(this)] +=rLiquidity; } function _takemarketing(uint256 rmarketing, uint256 tmarketing) private { totFeesPaid.marketing +=tmarketing; if(_isExcluded[address(this)]) { _tOwned[address(this)]+=tmarketing; } _rOwned[address(this)] +=rmarketing; } function _getValues(uint256 tAmount, bool takeFee, bool isSell, bool useLaunchTax) private view returns (valuesFromGetValues memory to_return) { to_return = _getTValues(tAmount, takeFee, isSell, useLaunchTax); (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rmarketing, to_return.rLiquidity) = _getRValues1(to_return, tAmount, takeFee, _getRate()); return to_return; } function _getTValues(uint256 tAmount, bool takeFee, bool isSell, bool useLaunchTax) private view returns (valuesFromGetValues memory s) { if(!takeFee) { s.tTransferAmount = tAmount; return s; } Taxes memory temp; if (isSell && !useLaunchTax) temp = sellTaxes; else if (!useLaunchTax) temp = taxes; else temp = launchtax; s.tRfi = tAmount*temp.rfi/100; s.tmarketing = tAmount*temp.marketing/100; s.tLiquidity = tAmount*temp.liquidity/100; s.tTransferAmount = tAmount-s.tRfi-s.tmarketing-s.tLiquidity; return s; } function _getRValues1(valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate) private pure returns (uint256 rAmount, uint256 rTransferAmount, uint256 rRfi,uint256 rmarketing, uint256 rLiquidity){ rAmount = tAmount*currentRate; if(!takeFee) { return(rAmount, rAmount, 0,0,0); } rRfi = s.tRfi*currentRate; rmarketing = s.tmarketing*currentRate; rLiquidity = s.tLiquidity*currentRate; rTransferAmount = rAmount-rRfi-rmarketing-rLiquidity; return (rAmount, rTransferAmount, rRfi,rmarketing,rLiquidity); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply/tSupply; } function _getCurrentSupply() private 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 _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { 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"); require(amount <= balanceOf(from),"You are trying to transfer more than your balance"); require(!_isBlacklisted[from] && !_isBlacklisted[to], "You are a bot"); if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ require(tradingEnabled, "Trading not active"); } if(from == pair && !_isExcludedFromFee[to] && !swapping){ require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit"); require(balanceOf(to) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit"); } if(from != pair && !_isExcludedFromFee[to] && !_isExcludedFromFee[from] && !swapping){ require(amount <= maxSellLimit, "You are exceeding maxSellLimit"); if(to != pair){ require(balanceOf(to) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit"); } if(coolDownEnabled){ uint256 timePassed = block.timestamp - _lastSell[from]; require(timePassed >= coolDownTime, "Cooldown enabled"); _lastSell[from] = block.timestamp; } } if(balanceOf(from) - amount <= 10 * 10**decimals()) amount -= (10 * 10**decimals() + amount - balanceOf(from)); bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount; if(!swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){ if(to == pair) swapAndLiquify(swapTokensAtAmount, sellTaxes); else swapAndLiquify(swapTokensAtAmount, taxes); } bool takeFee = true; bool isSell = false; if(swapping || _isExcludedFromFee[from] || _isExcludedFromFee[to]) takeFee = false; if(to == pair) isSell = true; _tokenTransfer(from, to, amount, takeFee, isSell); } //this method is responsible for taking all fee, if takeFee is true function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isSell) private { bool useLaunchTax = !_isExcludedFromFee[sender] && !_isExcludedFromFee[recipient] && block.number <= genesis_block + deadline; valuesFromGetValues memory s = _getValues(tAmount, takeFee, isSell, useLaunchTax); if (_isExcluded[sender] ) { //from excluded _tOwned[sender] = _tOwned[sender]-tAmount; } if (_isExcluded[recipient]) { //to excluded _tOwned[recipient] = _tOwned[recipient]+s.tTransferAmount; } _rOwned[sender] = _rOwned[sender]-s.rAmount; _rOwned[recipient] = _rOwned[recipient]+s.rTransferAmount; if(s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi); if(s.rLiquidity > 0 || s.tLiquidity > 0) { _takeLiquidity(s.rLiquidity,s.tLiquidity); emit Transfer(sender, address(this), s.tLiquidity + s.tmarketing); } if(s.rmarketing > 0 || s.tmarketing > 0) _takemarketing(s.rmarketing, s.tmarketing); emit Transfer(sender, recipient, s.tTransferAmount); } function swapAndLiquify(uint256 contractBalance, Taxes memory temp) private lockTheSwap{ uint256 denominator = (temp.liquidity + temp.marketing) * 2; uint256 tokensToAddLiquidityWith = contractBalance * temp.liquidity / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForBNB(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance= deltaBalance / (denominator - temp.liquidity); uint256 bnbToAddLiquidityWith = unitBalance * temp.liquidity; if(bnbToAddLiquidityWith > 0){ // Add liquidity to pancake addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * temp.marketing; if(marketingAmt > 0){ payable(marketingWallet).sendValue(marketingAmt); } } function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function swapTokensForBNB(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function bulkExcludeFee(address[] memory accounts, bool state) external onlyOwner{ for(uint256 i = 0; i < accounts.length; i++){ _isExcludedFromFee[accounts[i]] = state; } } function updatemarketingWallet(address newWallet) external onlyOwner{ marketingWallet = newWallet; } function updateCooldown(bool state, uint256 time) external onlyOwner{ coolDownTime = time * 1 seconds; coolDownEnabled = state; } function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{ swapTokensAtAmount = amount * 10**_decimals; } function updateSwapEnabled(bool _enabled) external onlyOwner{ swapEnabled = _enabled; } function updateIsBlacklisted(address account, bool state) external onlyOwner{ _isBlacklisted[account] = state; } function bulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{ for(uint256 i =0; i < accounts.length; i++){ _isBlacklisted[accounts[i]] = state; } } function updateAllowedTransfer(address account, bool state) external onlyOwner{ allowedTransfer[account] = state; } function updateMaxTxLimit(uint256 maxBuy, uint256 maxSell) external onlyOwner{ maxBuyLimit = maxBuy * 10**decimals(); maxSellLimit = maxSell * 10**decimals(); } function updateMaxWalletlimit(uint256 amount) external onlyOwner{ maxWalletLimit = amount * 10**decimals(); } function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{ router = IRouter(newRouter); pair = newPair; } //Use this in case BNB are sent to the contract by mistake function rescueBNB(uint256 weiAmount) external onlyOwner{ require(address(this).balance >= weiAmount, "insufficient BNB balance"); payable(msg.sender).transfer(weiAmount); } function rescueAnyBEP20Tokens(address _tokenAddr, address _to, uint _amount) public onlyOwner { IERC20(_tokenAddr).transfer(_to, _amount); } receive() external payable{ } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"FeesChanged","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":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newRouter","type":"address"}],"name":"UpdatedRouter","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allowedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExcludeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyBEP20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"setTradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"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":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateAllowedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletlimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatemarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600b805460ff19166001179055601e600c55620000246009600a620009a0565b6200003490633b9aca00620009b1565b600f8190556200004790600019620009e9565b620000559060001962000a00565b6010556601c6bf52634000601155662386f26fc1000060128190556013819055601455601780546001600160a01b03191673a5f66b2189aa844e0ca426de76b9c28550b9750a17905560408051606080820183526000808352600660208085018290526003948601859052601b839055601c829055601d9490945584519283018552818352828401819052600592909401829052601e55601f92909255553480156200010057600080fd5b506040516200409938038062004099833981016040819052620001239162000a1a565b6200012e3362000461565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000174573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019a919062000a1a565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020e919062000a1a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000282919062000a1a565b600d80546001600160a01b038086166001600160a01b031992831617909255600e80549284169290911682179055909150620002be90620004b1565b60105460016000620002d86000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120939093553083526004918290528220805460ff1916600190811790915591620003276000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560175490911681526004835281812080548516600190811790915530825260069384905291812080549094168217909355916200039a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600e54821681526006909352818320805485166001908117909155601754909116835291208054909216179055620004086000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f546040516200045091815260200190565b60405180910390a350505062000a8e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620005115760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff16156200057c5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640162000508565b6001600160a01b03811660009081526001602052604090205415620005d9576001600160a01b038116600090815260016020526040902054620005bf906200063f565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000601054821115620006a85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840162000508565b6000620006b4620006c9565b9050620006c2818462000a45565b9392505050565b60008080620006d7620006ef565b9092509050620006e8818362000a45565b9250505090565b601054600f546000918291825b600854811015620008575782600160006008848154811062000722576200072262000a5c565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806200079157508160026000600884815481106200076a576200076a62000a5c565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15620007a857601054600f54945094505050509091565b6001600060088381548110620007c257620007c262000a5c565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620007f3908462000a00565b925060026000600883815481106200080f576200080f62000a5c565b60009182526020808320909101546001600160a01b0316835282019290925260400190205462000840908362000a00565b9150806200084e8162000a72565b915050620006fc565b50600f546010546200086a919062000a45565b8210156200088257601054600f549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008e2578160001904821115620008c657620008c66200088b565b80851615620008d457918102915b93841c9390800290620008a6565b509250929050565b600082620008fb575060016200099a565b816200090a575060006200099a565b81600181146200092357600281146200092e576200094e565b60019150506200099a565b60ff8411156200094257620009426200088b565b50506001821b6200099a565b5060208310610133831016604e8410600b841016171562000973575081810a6200099a565b6200097f8383620008a1565b80600019048211156200099657620009966200088b565b0290505b92915050565b6000620006c260ff841683620008ea565b6000816000190483118215151615620009ce57620009ce6200088b565b500290565b634e487b7160e01b600052601260045260246000fd5b600082620009fb57620009fb620009d3565b500690565b60008282101562000a155762000a156200088b565b500390565b60006020828403121562000a2d57600080fd5b81516001600160a01b0381168114620006c257600080fd5b60008262000a575762000a57620009d3565b500490565b634e487b7160e01b600052603260045260246000fd5b60006001820162000a875762000a876200088b565b5060010190565b6135fb8062000a9e6000396000f3fe60806040526004361061031e5760003560e01c8063715018a6116101ab578063b5c57145116100f7578063e517f2b911610095578063ee36e3591161006f578063ee36e359146109d7578063f2fde38b146109f1578063f66895a314610a11578063f887ea4014610a3057600080fd5b8063e517f2b914610977578063e9dae5ed14610997578063ea2f0b37146109b757600080fd5b8063d2ce0db2116100d1578063d2ce0db2146108e5578063d8672e51146108fb578063dd62ed3e1461091b578063e2f456051461096157600080fd5b8063b5c5714514610885578063bff78169146108a5578063d257b34f146108c557600080fd5b8063905bd2c8116101645780639ba5e4d51161013e5780639ba5e4d514610806578063a457c2d714610825578063a8aa1b3114610845578063a9059cbb1461086557600080fd5b8063905bd2c81461079a578063924de9b7146107ba57806395d89b41146107da57600080fd5b8063715018a61461069c578063728f8eea146106b157806375f0a874146106eb57806388f82020146107235780638da5cb5b1461075c5780638e2839ff1461077a57600080fd5b80634549b0391161026a5780635b24ea5e1161022357806366a88d96116101fd57806366a88d96146106315780636aa5b37f146106475780636ddd17131461065d57806370a082311461067c57600080fd5b80635b24ea5e146105cb57806362695eae146105eb578063652e2f041461061b57600080fd5b80634549b039146104f857806347c23092146105185780634ada218b1461053857806352390c02146105525780635342acb41461057257806359759f61146105ab57600080fd5b80632d838119116102d757806339509351116102b1578063395093511461047857806340b28c2f14610498578063437823ec146104b8578063441b1d30146104d857600080fd5b80632d8381191461041c578063313ce5671461043c5780633685d4191461045857600080fd5b806306fdde031461032a578063087332141461036b578063095ea7b31461038d57806313f97a8e146103bd57806318160ddd146103dd57806323b872dd146103fc57600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5060408051808201909152600681526543524f4e4a4160d01b60208201525b6040516103629190612f46565b60405180910390f35b34801561037757600080fd5b5061038b610386366004612f9b565b610a50565b005b34801561039957600080fd5b506103ad6103a8366004612fec565b610ad7565b6040519015158152602001610362565b3480156103c957600080fd5b5061038b6103d8366004613047565b610b36565b3480156103e957600080fd5b50600f545b604051908152602001610362565b34801561040857600080fd5b506103ad61041736600461311e565b610bcc565b34801561042857600080fd5b506103ee61043736600461315f565b610cc6565b34801561044857600080fd5b5060405160098152602001610362565b34801561046457600080fd5b5061038b610473366004613178565b610d4a565b34801561048457600080fd5b506103ad610493366004612fec565b610f00565b3480156104a457600080fd5b5061038b6104b3366004613195565b610f80565b3480156104c457600080fd5b5061038b6104d3366004613178565b610fd8565b3480156104e457600080fd5b5061038b6104f336600461315f565b611026565b34801561050457600080fd5b506103ee6105133660046131ce565b6110cd565b34801561052457600080fd5b5061038b61053336600461311e565b611163565b34801561054457600080fd5b506009546103ad9060ff1681565b34801561055e57600080fd5b5061038b61056d366004613178565b611206565b34801561057e57600080fd5b506103ad61058d366004613178565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156105b757600080fd5b5061038b6105c63660046131f3565b611359565b3480156105d757600080fd5b5061038b6105e6366004613215565b6113b9565b3480156105f757600080fd5b506103ad610606366004613178565b60066020526000908152604090205460ff1681565b34801561062757600080fd5b506103ee60135481565b34801561063d57600080fd5b506103ee60145481565b34801561065357600080fd5b506103ee60125481565b34801561066957600080fd5b506009546103ad90610100900460ff1681565b34801561068857600080fd5b506103ee610697366004613178565b61140e565b3480156106a857600080fd5b5061038b61146d565b3480156106bd57600080fd5b50601b54601c54601d546106d092919083565b60408051938452602084019290925290820152606001610362565b3480156106f757600080fd5b5060175461070b906001600160a01b031681565b6040516001600160a01b039091168152602001610362565b34801561072f57600080fd5b506103ad61073e366004613178565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561076857600080fd5b506000546001600160a01b031661070b565b34801561078657600080fd5b5061038b610795366004613047565b6114a3565b3480156107a657600080fd5b5061038b6107b5366004613243565b611534565b3480156107c657600080fd5b5061038b6107d5366004613287565b6115bd565b3480156107e657600080fd5b5060408051808201909152600381526221a92560e91b6020820152610355565b34801561081257600080fd5b506021546022546023546106d092919083565b34801561083157600080fd5b506103ad610840366004612fec565b611601565b34801561085157600080fd5b50600e5461070b906001600160a01b031681565b34801561087157600080fd5b506103ad610880366004612fec565b6116e7565b34801561089157600080fd5b5061038b6108a0366004613215565b61173c565b3480156108b157600080fd5b5061038b6108c0366004613178565b611791565b3480156108d157600080fd5b5061038b6108e036600461315f565b6117dd565b3480156108f157600080fd5b506103ee600c5481565b34801561090757600080fd5b5061038b61091636600461315f565b611823565b34801561092757600080fd5b506103ee610936366004613195565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561096d57600080fd5b506103ee60115481565b34801561098357600080fd5b5061038b6109923660046132a4565b611869565b3480156109a357600080fd5b5061038b6109b2366004612f9b565b6118b5565b3480156109c357600080fd5b5061038b6109d2366004613178565b611933565b3480156109e357600080fd5b50600b546103ad9060ff1681565b3480156109fd57600080fd5b5061038b610a0c366004613178565b61197e565b348015610a1d57600080fd5b50601e54601f546020546106d092919083565b348015610a3c57600080fd5b50600d5461070b906001600160a01b031681565b6000546001600160a01b03163314610a835760405162461bcd60e51b8152600401610a7a906132c2565b60405180910390fd5b604080516060810182528481526020808201859052908201839052601e859055601f849055829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a1505050565b600954600090339060ff1680610b0557506001600160a01b03811660009081526006602052604090205460ff165b610b215760405162461bcd60e51b8152600401610a7a906132f7565b610b2c338585611a19565b5060019392505050565b6000546001600160a01b03163314610b605760405162461bcd60e51b8152600401610a7a906132c2565b60005b8251811015610bc7578160076000858481518110610b8357610b8361332e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bbf8161335a565b915050610b63565b505050565b600954600090849060ff1680610bfa57506001600160a01b03811660009081526006602052604090205460ff165b610c165760405162461bcd60e51b8152600401610a7a906132f7565b610c21858585611b3d565b6001600160a01b038516600090815260036020908152604080832033845290915290205483811015610ca65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a7a565b610cba8633610cb58785613373565b611a19565b50600195945050505050565b6000601054821115610d2d5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610a7a565b6000610d376122df565b9050610d43818461338a565b9392505050565b6000546001600160a01b03163314610d745760405162461bcd60e51b8152600401610a7a906132c2565b6001600160a01b03811660009081526005602052604090205460ff16610ddc5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610a7a565b60005b600854811015610efc57816001600160a01b031660088281548110610e0657610e0661332e565b6000918252602090912001546001600160a01b031603610eea5760088054610e3090600190613373565b81548110610e4057610e4061332e565b600091825260209091200154600880546001600160a01b039092169183908110610e6c57610e6c61332e565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556008805480610ec457610ec46133ac565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610ef48161335a565b915050610ddf565b5050565b600954600090339060ff1680610f2e57506001600160a01b03811660009081526006602052604090205460ff165b610f4a5760405162461bcd60e51b8152600401610a7a906132f7565b3360008181526003602090815260408083206001600160a01b0389168452909152902054610b2c91908690610cb59087906133c2565b6000546001600160a01b03163314610faa5760405162461bcd60e51b8152600401610a7a906132c2565b600d80546001600160a01b039384166001600160a01b031991821617909155600e8054929093169116179055565b6000546001600160a01b031633146110025760405162461bcd60e51b8152600401610a7a906132c2565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146110505760405162461bcd60e51b8152600401610a7a906132c2565b804710156110a05760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610a7a565b604051339082156108fc029083906000818181858888f19350505050158015610efc573d6000803e3d6000fd5b6000600f548311156111215760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610a7a565b81611140576000611136846001600080612302565b51915061115d9050565b6000611150846001600080612302565b60200151915061115d9050565b92915050565b6000546001600160a01b0316331461118d5760405162461bcd60e51b8152600401610a7a906132c2565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156111dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120091906133da565b50505050565b6000546001600160a01b031633146112305760405162461bcd60e51b8152600401610a7a906132c2565b6001600160a01b03811660009081526005602052604090205460ff16156112995760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610a7a565b6001600160a01b038116600090815260016020526040902054156112f3576001600160a01b0381166000908152600160205260409020546112d990610cc6565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146113835760405162461bcd60e51b8152600401610a7a906132c2565b61138f6009600a6134db565b61139990836134ea565b6012556113a86009600a6134db565b6113b290826134ea565b6013555050565b6000546001600160a01b031633146113e35760405162461bcd60e51b8152600401610a7a906132c2565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b03811660009081526005602052604081205460ff161561144b57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461115d90610cc6565b6000546001600160a01b031633146114975760405162461bcd60e51b8152600401610a7a906132c2565b6114a1600061234a565b565b6000546001600160a01b031633146114cd5760405162461bcd60e51b8152600401610a7a906132c2565b60005b8251811015610bc75781600460008584815181106114f0576114f061332e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061152c8161335a565b9150506114d0565b6000546001600160a01b0316331461155e5760405162461bcd60e51b8152600401610a7a906132c2565b6009805461ffff191661ff001987151590811691909117610100820217909155601685905560408051606081018252858152602081018590520182905260188490556019839055601a8290556001036115b657436015555b5050505050565b6000546001600160a01b031633146115e75760405162461bcd60e51b8152600401610a7a906132c2565b600980549115156101000261ff0019909216919091179055565b600954600090339060ff168061162f57506001600160a01b03811660009081526006602052604090205460ff165b61164b5760405162461bcd60e51b8152600401610a7a906132f7565b3360009081526003602090815260408083206001600160a01b0388168452909152902054838110156116cd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a7a565b6116dc3386610cb58785613373565b506001949350505050565b600954600090339060ff168061171557506001600160a01b03811660009081526006602052604090205460ff165b6117315760405162461bcd60e51b8152600401610a7a906132f7565b610b2c338585611b3d565b6000546001600160a01b031633146117665760405162461bcd60e51b8152600401610a7a906132c2565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146117bb5760405162461bcd60e51b8152600401610a7a906132c2565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146118075760405162461bcd60e51b8152600401610a7a906132c2565b6118136009600a6134db565b61181d90826134ea565b60115550565b6000546001600160a01b0316331461184d5760405162461bcd60e51b8152600401610a7a906132c2565b6118596009600a6134db565b61186390826134ea565b60145550565b6000546001600160a01b031633146118935760405162461bcd60e51b8152600401610a7a906132c2565b61189e8160016134ea565b600c5550600b805460ff1916911515919091179055565b6000546001600160a01b031633146118df5760405162461bcd60e51b8152600401610a7a906132c2565b60408051606081018252848152602081018490528101829052601b849055601c839055601d829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a1505050565b6000546001600160a01b0316331461195d5760405162461bcd60e51b8152600401610a7a906132c2565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146119a85760405162461bcd60e51b8152600401610a7a906132c2565b6001600160a01b038116611a0d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a7a565b611a168161234a565b50565b6001600160a01b038316611a7b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a7a565b6001600160a01b038216611adc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a7a565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611ba15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a7a565b6001600160a01b038216611c035760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a7a565b60008111611c655760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a7a565b611c6e8361140e565b811115611cd75760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610a7a565b6001600160a01b03831660009081526007602052604090205460ff16158015611d1957506001600160a01b03821660009081526007602052604090205460ff16155b611d555760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610a7a565b6001600160a01b03831660009081526004602052604090205460ff16158015611d9757506001600160a01b03821660009081526004602052604090205460ff16155b15611de35760095460ff16611de35760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610a7a565b600e546001600160a01b038481169116148015611e1957506001600160a01b03821660009081526004602052604090205460ff16155b8015611e2e575060095462010000900460ff16155b15611eea57601254811115611e855760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610a7a565b60145481611e928461140e565b611e9c91906133c2565b1115611eea5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a7a565b600e546001600160a01b03848116911614801590611f2157506001600160a01b03821660009081526004602052604090205460ff16155b8015611f4657506001600160a01b03831660009081526004602052604090205460ff16155b8015611f5b575060095462010000900460ff16155b156120be57601354811115611fb25760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610a7a565b600e546001600160a01b0383811691161461202c5760145481611fd48461140e565b611fde91906133c2565b111561202c5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a7a565b600b5460ff16156120be576001600160a01b0383166000908152600a602052604081205461205a9042613373565b9050600c548110156120a15760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610a7a565b506001600160a01b0383166000908152600a602052604090204290555b6120ca6009600a6134db565b6120d590600a6134ea565b816120df8561140e565b6120e99190613373565b11612130576120f78361140e565b816121046009600a6134db565b61210f90600a6134ea565b61211991906133c2565b6121239190613373565b61212d9082613373565b90505b600060115461213e3061140e565b600954911115915062010000900460ff161580156121635750600954610100900460ff165b801561216c5750805b80156121865750600e546001600160a01b03858116911614155b80156121ab57506001600160a01b03841660009081526004602052604090205460ff16155b80156121d057506001600160a01b03831660009081526004602052604090205460ff16155b1561224e57600e546001600160a01b03908116908416036122205760115460408051606081018252601e548152601f54602080830191909152549181019190915261221b919061239a565b61224e565b60115460408051606081018252601b548152601c546020820152601d549181019190915261224e919061239a565b60095460019060009062010000900460ff168061228357506001600160a01b03861660009081526004602052604090205460ff165b806122a657506001600160a01b03851660009081526004602052604090205460ff165b156122b057600091505b600e546001600160a01b03908116908616036122ca575060015b6122d786868685856124a8565b505050505050565b60008060006122ec612793565b90925090506122fb818361338a565b9250505090565b61230a612efa565b61231685858585612916565b905061232b8186866123266122df565b612a74565b608086015260608501526040840152602083015281525b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6009805462ff0000191662010000179055602081015160408201516000916123c1916133c2565b6123cc9060026134ea565b90506000818360400151856123e191906134ea565b6123eb919061338a565b905060006123f98286613373565b90504761240582612b01565b60006124118247613373565b905060008660400151866124259190613373565b61242f908361338a565b9050600087604001518261244391906134ea565b90508015612455576124558682612c53565b60208801516000906124688460026134ea565b61247291906134ea565b9050801561249057601754612490906001600160a01b031682612d21565b50506009805462ff0000191690555050505050505050565b6001600160a01b03851660009081526004602052604081205460ff161580156124ea57506001600160a01b03851660009081526004602052604090205460ff16155b8015612505575060165460155461250191906133c2565b4311155b9050600061251585858585612302565b6001600160a01b03881660009081526005602052604090205490915060ff1615612577576001600160a01b03871660009081526002602052604090205461255d908690613373565b6001600160a01b0388166000908152600260205260409020555b6001600160a01b03861660009081526005602052604090205460ff16156125da5760a08101516001600160a01b0387166000908152600260205260409020546125c091906133c2565b6001600160a01b0387166000908152600260205260409020555b80516001600160a01b0388166000908152600160205260409020546125ff9190613373565b6001600160a01b038089166000908152600160209081526040808320949094558401519189168152919091205461263691906133c2565b6001600160a01b0387166000908152600160205260409081902091909155810151151580612668575060008160c00151115b1561267f5761267f81604001518260c00151612e3a565b60008160800151118061269757506000816101000151115b1561270b576126af8160800151826101000151612e6f565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e001518461010001516126f991906133c2565b60405190815260200160405180910390a35b600081606001511180612722575060008160e00151115b156127395761273981606001518260e00151612ee5565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a0015160405161278291815260200190565b60405180910390a350505050505050565b601054600f546000918291825b6008548110156128e5578260016000600884815481106127c2576127c261332e565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061282d57508160026000600884815481106128065761280661332e565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561284357601054600f54945094505050509091565b600160006008838154811061285a5761285a61332e565b60009182526020808320909101546001600160a01b031683528201929092526040019020546128899084613373565b925060026000600883815481106128a2576128a261332e565b60009182526020808320909101546001600160a01b031683528201929092526040019020546128d19083613373565b9150806128dd8161335a565b9150506127a0565b50600f546010546128f6919061338a565b82101561290d57601054600f549350935050509091565b90939092509050565b61291e612efa565b8361292f5760a08101859052612342565b61295360405180606001604052806000815260200160008152602001600081525090565b83801561295e575082155b1561298c575060408051606081018252601e548152601f5460208083019190915254918101919091526129db565b826129b8575060408051606081018252601b548152601c546020820152601d54918101919091526129db565b506040805160608101825260185481526019546020820152601a54918101919091525b80516064906129ea90886134ea565b6129f4919061338a565b60c08301526020810151606490612a0b90886134ea565b612a15919061338a565b60e08301526040810151606490612a2c90886134ea565b612a36919061338a565b610100830181905260e083015160c0840151612a529089613373565b612a5c9190613373565b612a669190613373565b60a083015250949350505050565b600080808080612a8486896134ea565b945086612a9c57508392506000915081905080612af6565b858960c00151612aac91906134ea565b9250858960e00151612abe91906134ea565b915085896101000151612ad191906134ea565b90508082612adf8588613373565b612ae99190613373565b612af39190613373565b93505b945094509450945094565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612b3657612b3661332e565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb39190613509565b81600181518110612bc657612bc661332e565b6001600160a01b039283166020918202929092010152600d54612bec9130911684611a19565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790612c25908590600090869030904290600401613526565b600060405180830381600087803b158015612c3f57600080fd5b505af11580156122d7573d6000803e3d6000fd5b600d54612c6b9030906001600160a01b031684611a19565b600d546001600160a01b031663f305d719823085600080612c946000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612cfc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115b69190613597565b80471015612d715760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a7a565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612dbe576040519150601f19603f3d011682016040523d82523d6000602084013e612dc3565b606091505b5050905080610bc75760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a7a565b8160106000828254612e4c9190613373565b909155505060218054829190600090612e669084906133c2565b90915550505050565b8060216002016000828254612e8491906133c2565b90915550503060009081526005602052604090205460ff1615612ec6573060009081526002602052604081208054839290612ec09084906133c2565b90915550505b3060009081526001602052604081208054849290612e669084906133c2565b8060216001016000828254612e8491906133c2565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b81811015612f7357858101830151858201604001528201612f57565b81811115612f85576000604083870101525b50601f01601f1916929092016040019392505050565b600080600060608486031215612fb057600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114611a1657600080fd5b8035612fe781612fc7565b919050565b60008060408385031215612fff57600080fd5b823561300a81612fc7565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b8015158114611a1657600080fd5b8035612fe78161302e565b6000806040838503121561305a57600080fd5b823567ffffffffffffffff8082111561307257600080fd5b818501915085601f83011261308657600080fd5b813560208282111561309a5761309a613018565b8160051b604051601f19603f830116810181811086821117156130bf576130bf613018565b6040529283528183019350848101820192898411156130dd57600080fd5b948201945b83861015613102576130f386612fdc565b855294820194938201936130e2565b9650613111905087820161303c565b9450505050509250929050565b60008060006060848603121561313357600080fd5b833561313e81612fc7565b9250602084013561314e81612fc7565b929592945050506040919091013590565b60006020828403121561317157600080fd5b5035919050565b60006020828403121561318a57600080fd5b8135610d4381612fc7565b600080604083850312156131a857600080fd5b82356131b381612fc7565b915060208301356131c381612fc7565b809150509250929050565b600080604083850312156131e157600080fd5b8235915060208301356131c38161302e565b6000806040838503121561320657600080fd5b50508035926020909101359150565b6000806040838503121561322857600080fd5b823561323381612fc7565b915060208301356131c38161302e565b600080600080600060a0868803121561325b57600080fd5b85356132668161302e565b97602087013597506040870135966060810135965060800135945092505050565b60006020828403121561329957600080fd5b8135610d438161302e565b600080604083850312156132b757600080fd5b823561300a8161302e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161336c5761336c613344565b5060010190565b60008282101561338557613385613344565b500390565b6000826133a757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603160045260246000fd5b600082198211156133d5576133d5613344565b500190565b6000602082840312156133ec57600080fd5b8151610d438161302e565b600181815b8085111561343257816000190482111561341857613418613344565b8085161561342557918102915b93841c93908002906133fc565b509250929050565b6000826134495750600161115d565b816134565750600061115d565b816001811461346c576002811461347657613492565b600191505061115d565b60ff84111561348757613487613344565b50506001821b61115d565b5060208310610133831016604e8410600b84101617156134b5575081810a61115d565b6134bf83836133f7565b80600019048211156134d3576134d3613344565b029392505050565b6000610d4360ff84168361343a565b600081600019048311821515161561350457613504613344565b500290565b60006020828403121561351b57600080fd5b8151610d4381612fc7565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156135765784516001600160a01b031683529383019391830191600101613551565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156135ac57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122000e3f6a16903dfa30b79e5a7f8de926dfb82ba09b32158cab599cf4cf573ce6e64736f6c634300080d0033000000000000000000000000145677fc4d9b8f19b5d56d1820c48e0443049a30
Deployed Bytecode
0x60806040526004361061031e5760003560e01c8063715018a6116101ab578063b5c57145116100f7578063e517f2b911610095578063ee36e3591161006f578063ee36e359146109d7578063f2fde38b146109f1578063f66895a314610a11578063f887ea4014610a3057600080fd5b8063e517f2b914610977578063e9dae5ed14610997578063ea2f0b37146109b757600080fd5b8063d2ce0db2116100d1578063d2ce0db2146108e5578063d8672e51146108fb578063dd62ed3e1461091b578063e2f456051461096157600080fd5b8063b5c5714514610885578063bff78169146108a5578063d257b34f146108c557600080fd5b8063905bd2c8116101645780639ba5e4d51161013e5780639ba5e4d514610806578063a457c2d714610825578063a8aa1b3114610845578063a9059cbb1461086557600080fd5b8063905bd2c81461079a578063924de9b7146107ba57806395d89b41146107da57600080fd5b8063715018a61461069c578063728f8eea146106b157806375f0a874146106eb57806388f82020146107235780638da5cb5b1461075c5780638e2839ff1461077a57600080fd5b80634549b0391161026a5780635b24ea5e1161022357806366a88d96116101fd57806366a88d96146106315780636aa5b37f146106475780636ddd17131461065d57806370a082311461067c57600080fd5b80635b24ea5e146105cb57806362695eae146105eb578063652e2f041461061b57600080fd5b80634549b039146104f857806347c23092146105185780634ada218b1461053857806352390c02146105525780635342acb41461057257806359759f61146105ab57600080fd5b80632d838119116102d757806339509351116102b1578063395093511461047857806340b28c2f14610498578063437823ec146104b8578063441b1d30146104d857600080fd5b80632d8381191461041c578063313ce5671461043c5780633685d4191461045857600080fd5b806306fdde031461032a578063087332141461036b578063095ea7b31461038d57806313f97a8e146103bd57806318160ddd146103dd57806323b872dd146103fc57600080fd5b3661032557005b600080fd5b34801561033657600080fd5b5060408051808201909152600681526543524f4e4a4160d01b60208201525b6040516103629190612f46565b60405180910390f35b34801561037757600080fd5b5061038b610386366004612f9b565b610a50565b005b34801561039957600080fd5b506103ad6103a8366004612fec565b610ad7565b6040519015158152602001610362565b3480156103c957600080fd5b5061038b6103d8366004613047565b610b36565b3480156103e957600080fd5b50600f545b604051908152602001610362565b34801561040857600080fd5b506103ad61041736600461311e565b610bcc565b34801561042857600080fd5b506103ee61043736600461315f565b610cc6565b34801561044857600080fd5b5060405160098152602001610362565b34801561046457600080fd5b5061038b610473366004613178565b610d4a565b34801561048457600080fd5b506103ad610493366004612fec565b610f00565b3480156104a457600080fd5b5061038b6104b3366004613195565b610f80565b3480156104c457600080fd5b5061038b6104d3366004613178565b610fd8565b3480156104e457600080fd5b5061038b6104f336600461315f565b611026565b34801561050457600080fd5b506103ee6105133660046131ce565b6110cd565b34801561052457600080fd5b5061038b61053336600461311e565b611163565b34801561054457600080fd5b506009546103ad9060ff1681565b34801561055e57600080fd5b5061038b61056d366004613178565b611206565b34801561057e57600080fd5b506103ad61058d366004613178565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156105b757600080fd5b5061038b6105c63660046131f3565b611359565b3480156105d757600080fd5b5061038b6105e6366004613215565b6113b9565b3480156105f757600080fd5b506103ad610606366004613178565b60066020526000908152604090205460ff1681565b34801561062757600080fd5b506103ee60135481565b34801561063d57600080fd5b506103ee60145481565b34801561065357600080fd5b506103ee60125481565b34801561066957600080fd5b506009546103ad90610100900460ff1681565b34801561068857600080fd5b506103ee610697366004613178565b61140e565b3480156106a857600080fd5b5061038b61146d565b3480156106bd57600080fd5b50601b54601c54601d546106d092919083565b60408051938452602084019290925290820152606001610362565b3480156106f757600080fd5b5060175461070b906001600160a01b031681565b6040516001600160a01b039091168152602001610362565b34801561072f57600080fd5b506103ad61073e366004613178565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561076857600080fd5b506000546001600160a01b031661070b565b34801561078657600080fd5b5061038b610795366004613047565b6114a3565b3480156107a657600080fd5b5061038b6107b5366004613243565b611534565b3480156107c657600080fd5b5061038b6107d5366004613287565b6115bd565b3480156107e657600080fd5b5060408051808201909152600381526221a92560e91b6020820152610355565b34801561081257600080fd5b506021546022546023546106d092919083565b34801561083157600080fd5b506103ad610840366004612fec565b611601565b34801561085157600080fd5b50600e5461070b906001600160a01b031681565b34801561087157600080fd5b506103ad610880366004612fec565b6116e7565b34801561089157600080fd5b5061038b6108a0366004613215565b61173c565b3480156108b157600080fd5b5061038b6108c0366004613178565b611791565b3480156108d157600080fd5b5061038b6108e036600461315f565b6117dd565b3480156108f157600080fd5b506103ee600c5481565b34801561090757600080fd5b5061038b61091636600461315f565b611823565b34801561092757600080fd5b506103ee610936366004613195565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561096d57600080fd5b506103ee60115481565b34801561098357600080fd5b5061038b6109923660046132a4565b611869565b3480156109a357600080fd5b5061038b6109b2366004612f9b565b6118b5565b3480156109c357600080fd5b5061038b6109d2366004613178565b611933565b3480156109e357600080fd5b50600b546103ad9060ff1681565b3480156109fd57600080fd5b5061038b610a0c366004613178565b61197e565b348015610a1d57600080fd5b50601e54601f546020546106d092919083565b348015610a3c57600080fd5b50600d5461070b906001600160a01b031681565b6000546001600160a01b03163314610a835760405162461bcd60e51b8152600401610a7a906132c2565b60405180910390fd5b604080516060810182528481526020808201859052908201839052601e859055601f849055829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a1505050565b600954600090339060ff1680610b0557506001600160a01b03811660009081526006602052604090205460ff165b610b215760405162461bcd60e51b8152600401610a7a906132f7565b610b2c338585611a19565b5060019392505050565b6000546001600160a01b03163314610b605760405162461bcd60e51b8152600401610a7a906132c2565b60005b8251811015610bc7578160076000858481518110610b8357610b8361332e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bbf8161335a565b915050610b63565b505050565b600954600090849060ff1680610bfa57506001600160a01b03811660009081526006602052604090205460ff165b610c165760405162461bcd60e51b8152600401610a7a906132f7565b610c21858585611b3d565b6001600160a01b038516600090815260036020908152604080832033845290915290205483811015610ca65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a7a565b610cba8633610cb58785613373565b611a19565b50600195945050505050565b6000601054821115610d2d5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610a7a565b6000610d376122df565b9050610d43818461338a565b9392505050565b6000546001600160a01b03163314610d745760405162461bcd60e51b8152600401610a7a906132c2565b6001600160a01b03811660009081526005602052604090205460ff16610ddc5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610a7a565b60005b600854811015610efc57816001600160a01b031660088281548110610e0657610e0661332e565b6000918252602090912001546001600160a01b031603610eea5760088054610e3090600190613373565b81548110610e4057610e4061332e565b600091825260209091200154600880546001600160a01b039092169183908110610e6c57610e6c61332e565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556008805480610ec457610ec46133ac565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610ef48161335a565b915050610ddf565b5050565b600954600090339060ff1680610f2e57506001600160a01b03811660009081526006602052604090205460ff165b610f4a5760405162461bcd60e51b8152600401610a7a906132f7565b3360008181526003602090815260408083206001600160a01b0389168452909152902054610b2c91908690610cb59087906133c2565b6000546001600160a01b03163314610faa5760405162461bcd60e51b8152600401610a7a906132c2565b600d80546001600160a01b039384166001600160a01b031991821617909155600e8054929093169116179055565b6000546001600160a01b031633146110025760405162461bcd60e51b8152600401610a7a906132c2565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146110505760405162461bcd60e51b8152600401610a7a906132c2565b804710156110a05760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420424e422062616c616e636500000000000000006044820152606401610a7a565b604051339082156108fc029083906000818181858888f19350505050158015610efc573d6000803e3d6000fd5b6000600f548311156111215760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610a7a565b81611140576000611136846001600080612302565b51915061115d9050565b6000611150846001600080612302565b60200151915061115d9050565b92915050565b6000546001600160a01b0316331461118d5760405162461bcd60e51b8152600401610a7a906132c2565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156111dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120091906133da565b50505050565b6000546001600160a01b031633146112305760405162461bcd60e51b8152600401610a7a906132c2565b6001600160a01b03811660009081526005602052604090205460ff16156112995760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610a7a565b6001600160a01b038116600090815260016020526040902054156112f3576001600160a01b0381166000908152600160205260409020546112d990610cc6565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146113835760405162461bcd60e51b8152600401610a7a906132c2565b61138f6009600a6134db565b61139990836134ea565b6012556113a86009600a6134db565b6113b290826134ea565b6013555050565b6000546001600160a01b031633146113e35760405162461bcd60e51b8152600401610a7a906132c2565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b03811660009081526005602052604081205460ff161561144b57506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461115d90610cc6565b6000546001600160a01b031633146114975760405162461bcd60e51b8152600401610a7a906132c2565b6114a1600061234a565b565b6000546001600160a01b031633146114cd5760405162461bcd60e51b8152600401610a7a906132c2565b60005b8251811015610bc75781600460008584815181106114f0576114f061332e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061152c8161335a565b9150506114d0565b6000546001600160a01b0316331461155e5760405162461bcd60e51b8152600401610a7a906132c2565b6009805461ffff191661ff001987151590811691909117610100820217909155601685905560408051606081018252858152602081018590520182905260188490556019839055601a8290556001036115b657436015555b5050505050565b6000546001600160a01b031633146115e75760405162461bcd60e51b8152600401610a7a906132c2565b600980549115156101000261ff0019909216919091179055565b600954600090339060ff168061162f57506001600160a01b03811660009081526006602052604090205460ff165b61164b5760405162461bcd60e51b8152600401610a7a906132f7565b3360009081526003602090815260408083206001600160a01b0388168452909152902054838110156116cd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a7a565b6116dc3386610cb58785613373565b506001949350505050565b600954600090339060ff168061171557506001600160a01b03811660009081526006602052604090205460ff165b6117315760405162461bcd60e51b8152600401610a7a906132f7565b610b2c338585611b3d565b6000546001600160a01b031633146117665760405162461bcd60e51b8152600401610a7a906132c2565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146117bb5760405162461bcd60e51b8152600401610a7a906132c2565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146118075760405162461bcd60e51b8152600401610a7a906132c2565b6118136009600a6134db565b61181d90826134ea565b60115550565b6000546001600160a01b0316331461184d5760405162461bcd60e51b8152600401610a7a906132c2565b6118596009600a6134db565b61186390826134ea565b60145550565b6000546001600160a01b031633146118935760405162461bcd60e51b8152600401610a7a906132c2565b61189e8160016134ea565b600c5550600b805460ff1916911515919091179055565b6000546001600160a01b031633146118df5760405162461bcd60e51b8152600401610a7a906132c2565b60408051606081018252848152602081018490528101829052601b849055601c839055601d829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a1505050565b6000546001600160a01b0316331461195d5760405162461bcd60e51b8152600401610a7a906132c2565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146119a85760405162461bcd60e51b8152600401610a7a906132c2565b6001600160a01b038116611a0d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a7a565b611a168161234a565b50565b6001600160a01b038316611a7b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a7a565b6001600160a01b038216611adc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a7a565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611ba15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a7a565b6001600160a01b038216611c035760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a7a565b60008111611c655760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a7a565b611c6e8361140e565b811115611cd75760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610a7a565b6001600160a01b03831660009081526007602052604090205460ff16158015611d1957506001600160a01b03821660009081526007602052604090205460ff16155b611d555760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610a7a565b6001600160a01b03831660009081526004602052604090205460ff16158015611d9757506001600160a01b03821660009081526004602052604090205460ff16155b15611de35760095460ff16611de35760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610a7a565b600e546001600160a01b038481169116148015611e1957506001600160a01b03821660009081526004602052604090205460ff16155b8015611e2e575060095462010000900460ff16155b15611eea57601254811115611e855760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610a7a565b60145481611e928461140e565b611e9c91906133c2565b1115611eea5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a7a565b600e546001600160a01b03848116911614801590611f2157506001600160a01b03821660009081526004602052604090205460ff16155b8015611f4657506001600160a01b03831660009081526004602052604090205460ff16155b8015611f5b575060095462010000900460ff16155b156120be57601354811115611fb25760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610a7a565b600e546001600160a01b0383811691161461202c5760145481611fd48461140e565b611fde91906133c2565b111561202c5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610a7a565b600b5460ff16156120be576001600160a01b0383166000908152600a602052604081205461205a9042613373565b9050600c548110156120a15760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610a7a565b506001600160a01b0383166000908152600a602052604090204290555b6120ca6009600a6134db565b6120d590600a6134ea565b816120df8561140e565b6120e99190613373565b11612130576120f78361140e565b816121046009600a6134db565b61210f90600a6134ea565b61211991906133c2565b6121239190613373565b61212d9082613373565b90505b600060115461213e3061140e565b600954911115915062010000900460ff161580156121635750600954610100900460ff165b801561216c5750805b80156121865750600e546001600160a01b03858116911614155b80156121ab57506001600160a01b03841660009081526004602052604090205460ff16155b80156121d057506001600160a01b03831660009081526004602052604090205460ff16155b1561224e57600e546001600160a01b03908116908416036122205760115460408051606081018252601e548152601f54602080830191909152549181019190915261221b919061239a565b61224e565b60115460408051606081018252601b548152601c546020820152601d549181019190915261224e919061239a565b60095460019060009062010000900460ff168061228357506001600160a01b03861660009081526004602052604090205460ff165b806122a657506001600160a01b03851660009081526004602052604090205460ff165b156122b057600091505b600e546001600160a01b03908116908616036122ca575060015b6122d786868685856124a8565b505050505050565b60008060006122ec612793565b90925090506122fb818361338a565b9250505090565b61230a612efa565b61231685858585612916565b905061232b8186866123266122df565b612a74565b608086015260608501526040840152602083015281525b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6009805462ff0000191662010000179055602081015160408201516000916123c1916133c2565b6123cc9060026134ea565b90506000818360400151856123e191906134ea565b6123eb919061338a565b905060006123f98286613373565b90504761240582612b01565b60006124118247613373565b905060008660400151866124259190613373565b61242f908361338a565b9050600087604001518261244391906134ea565b90508015612455576124558682612c53565b60208801516000906124688460026134ea565b61247291906134ea565b9050801561249057601754612490906001600160a01b031682612d21565b50506009805462ff0000191690555050505050505050565b6001600160a01b03851660009081526004602052604081205460ff161580156124ea57506001600160a01b03851660009081526004602052604090205460ff16155b8015612505575060165460155461250191906133c2565b4311155b9050600061251585858585612302565b6001600160a01b03881660009081526005602052604090205490915060ff1615612577576001600160a01b03871660009081526002602052604090205461255d908690613373565b6001600160a01b0388166000908152600260205260409020555b6001600160a01b03861660009081526005602052604090205460ff16156125da5760a08101516001600160a01b0387166000908152600260205260409020546125c091906133c2565b6001600160a01b0387166000908152600260205260409020555b80516001600160a01b0388166000908152600160205260409020546125ff9190613373565b6001600160a01b038089166000908152600160209081526040808320949094558401519189168152919091205461263691906133c2565b6001600160a01b0387166000908152600160205260409081902091909155810151151580612668575060008160c00151115b1561267f5761267f81604001518260c00151612e3a565b60008160800151118061269757506000816101000151115b1561270b576126af8160800151826101000151612e6f565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e001518461010001516126f991906133c2565b60405190815260200160405180910390a35b600081606001511180612722575060008160e00151115b156127395761273981606001518260e00151612ee5565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a0015160405161278291815260200190565b60405180910390a350505050505050565b601054600f546000918291825b6008548110156128e5578260016000600884815481106127c2576127c261332e565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061282d57508160026000600884815481106128065761280661332e565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561284357601054600f54945094505050509091565b600160006008838154811061285a5761285a61332e565b60009182526020808320909101546001600160a01b031683528201929092526040019020546128899084613373565b925060026000600883815481106128a2576128a261332e565b60009182526020808320909101546001600160a01b031683528201929092526040019020546128d19083613373565b9150806128dd8161335a565b9150506127a0565b50600f546010546128f6919061338a565b82101561290d57601054600f549350935050509091565b90939092509050565b61291e612efa565b8361292f5760a08101859052612342565b61295360405180606001604052806000815260200160008152602001600081525090565b83801561295e575082155b1561298c575060408051606081018252601e548152601f5460208083019190915254918101919091526129db565b826129b8575060408051606081018252601b548152601c546020820152601d54918101919091526129db565b506040805160608101825260185481526019546020820152601a54918101919091525b80516064906129ea90886134ea565b6129f4919061338a565b60c08301526020810151606490612a0b90886134ea565b612a15919061338a565b60e08301526040810151606490612a2c90886134ea565b612a36919061338a565b610100830181905260e083015160c0840151612a529089613373565b612a5c9190613373565b612a669190613373565b60a083015250949350505050565b600080808080612a8486896134ea565b945086612a9c57508392506000915081905080612af6565b858960c00151612aac91906134ea565b9250858960e00151612abe91906134ea565b915085896101000151612ad191906134ea565b90508082612adf8588613373565b612ae99190613373565b612af39190613373565b93505b945094509450945094565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612b3657612b3661332e565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb39190613509565b81600181518110612bc657612bc661332e565b6001600160a01b039283166020918202929092010152600d54612bec9130911684611a19565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790612c25908590600090869030904290600401613526565b600060405180830381600087803b158015612c3f57600080fd5b505af11580156122d7573d6000803e3d6000fd5b600d54612c6b9030906001600160a01b031684611a19565b600d546001600160a01b031663f305d719823085600080612c946000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612cfc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115b69190613597565b80471015612d715760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610a7a565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612dbe576040519150601f19603f3d011682016040523d82523d6000602084013e612dc3565b606091505b5050905080610bc75760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610a7a565b8160106000828254612e4c9190613373565b909155505060218054829190600090612e669084906133c2565b90915550505050565b8060216002016000828254612e8491906133c2565b90915550503060009081526005602052604090205460ff1615612ec6573060009081526002602052604081208054839290612ec09084906133c2565b90915550505b3060009081526001602052604081208054849290612e669084906133c2565b8060216001016000828254612e8491906133c2565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b81811015612f7357858101830151858201604001528201612f57565b81811115612f85576000604083870101525b50601f01601f1916929092016040019392505050565b600080600060608486031215612fb057600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114611a1657600080fd5b8035612fe781612fc7565b919050565b60008060408385031215612fff57600080fd5b823561300a81612fc7565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b8015158114611a1657600080fd5b8035612fe78161302e565b6000806040838503121561305a57600080fd5b823567ffffffffffffffff8082111561307257600080fd5b818501915085601f83011261308657600080fd5b813560208282111561309a5761309a613018565b8160051b604051601f19603f830116810181811086821117156130bf576130bf613018565b6040529283528183019350848101820192898411156130dd57600080fd5b948201945b83861015613102576130f386612fdc565b855294820194938201936130e2565b9650613111905087820161303c565b9450505050509250929050565b60008060006060848603121561313357600080fd5b833561313e81612fc7565b9250602084013561314e81612fc7565b929592945050506040919091013590565b60006020828403121561317157600080fd5b5035919050565b60006020828403121561318a57600080fd5b8135610d4381612fc7565b600080604083850312156131a857600080fd5b82356131b381612fc7565b915060208301356131c381612fc7565b809150509250929050565b600080604083850312156131e157600080fd5b8235915060208301356131c38161302e565b6000806040838503121561320657600080fd5b50508035926020909101359150565b6000806040838503121561322857600080fd5b823561323381612fc7565b915060208301356131c38161302e565b600080600080600060a0868803121561325b57600080fd5b85356132668161302e565b97602087013597506040870135966060810135965060800135945092505050565b60006020828403121561329957600080fd5b8135610d438161302e565b600080604083850312156132b757600080fd5b823561300a8161302e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161336c5761336c613344565b5060010190565b60008282101561338557613385613344565b500390565b6000826133a757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603160045260246000fd5b600082198211156133d5576133d5613344565b500190565b6000602082840312156133ec57600080fd5b8151610d438161302e565b600181815b8085111561343257816000190482111561341857613418613344565b8085161561342557918102915b93841c93908002906133fc565b509250929050565b6000826134495750600161115d565b816134565750600061115d565b816001811461346c576002811461347657613492565b600191505061115d565b60ff84111561348757613487613344565b50506001821b61115d565b5060208310610133831016604e8410600b84101617156134b5575081810a61115d565b6134bf83836133f7565b80600019048211156134d3576134d3613344565b029392505050565b6000610d4360ff84168361343a565b600081600019048311821515161561350457613504613344565b500290565b60006020828403121561351b57600080fd5b8151610d4381612fc7565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156135765784516001600160a01b031683529383019391830191600101613551565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156135ac57600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122000e3f6a16903dfa30b79e5a7f8de926dfb82ba09b32158cab599cf4cf573ce6e64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000145677fc4d9b8f19b5d56d1820c48e0443049a30
-----Decoded View---------------
Arg [0] : routerAddress (address): 0x145677fc4d9b8f19b5d56d1820c48e0443049a30
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000145677fc4d9b8f19b5d56d1820c48e0443049a30
Deployed ByteCode Sourcemap
3192:19844:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6522:83;;;;;;;;;;-1:-1:-1;6592:5:0;;;;;;;;;;;;-1:-1:-1;;;6592:5:0;;;;6522:83;;;;;;;:::i;:::-;;;;;;;;11479:185;;;;;;;;;;-1:-1:-1;11479:185:0;;;;;:::i;:::-;;:::i;:::-;;7282:181;;;;;;;;;;-1:-1:-1;7282:181:0;;;;;:::i;:::-;;:::i;:::-;;;1697:14:1;;1690:22;1672:41;;1660:2;1645:18;7282:181:0;1532:187:1;21709:209:0;;;;;;;;;;-1:-1:-1;21709:209:0;;;;;:::i;:::-;;:::i;6818:95::-;;;;;;;;;;-1:-1:-1;6898:7:0;;6818:95;;;3454:25:1;;;3442:2;3427:18;6818:95:0;3308:177:1;7471:430:0;;;;;;;;;;-1:-1:-1;7471:430:0;;;;;:::i;:::-;;:::i;9764:248::-;;;;;;;;;;-1:-1:-1;9764:248:0;;;;;:::i;:::-;;:::i;6704:83::-;;;;;;;;;;-1:-1:-1;6704:83:0;;4233:1;4278:36:1;;4266:2;4251:18;6704:83:0;4136:184:1;10435:475:0;;;;;;;;;;-1:-1:-1;10435:475:0;;;;;:::i;:::-;;:::i;7909:228::-;;;;;;;;;;-1:-1:-1;7909:228:0;;;;;:::i;:::-;;:::i;22397:154::-;;;;;;;;;;-1:-1:-1;22397:154:0;;;;;:::i;:::-;;:::i;10920:111::-;;;;;;;;;;-1:-1:-1;10920:111:0;;;;;:::i;:::-;;:::i;22627:196::-;;;;;;;;;;-1:-1:-1;22627:196:0;;;;;:::i;:::-;;:::i;8870:484::-;;;;;;;;;;-1:-1:-1;8870:484:0;;;;;:::i;:::-;;:::i;22837:154::-;;;;;;;;;;-1:-1:-1;22837:154:0;;;;;:::i;:::-;;:::i;3726:26::-;;;;;;;;;;-1:-1:-1;3726:26:0;;;;;;;;10094:333;;;;;;;;;;-1:-1:-1;10094:333:0;;;;;:::i;:::-;;:::i;11159:123::-;;;;;;;;;;-1:-1:-1;11159:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;11247:27:0;11223:4;11247:27;;;:18;:27;;;;;;;;;11159:123;22071:183;;;;;;;;;;-1:-1:-1;22071:183:0;;;;;:::i;:::-;;:::i;21571:126::-;;;;;;;;;;-1:-1:-1;21571:126:0;;;;;:::i;:::-;;:::i;3578:48::-;;;;;;;;;;-1:-1:-1;3578:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4524;;;;;;;;;;;;;;;;4579:50;;;;;;;;;;;;;;;;4470:47;;;;;;;;;;;;;;;;3759:23;;;;;;;;;;-1:-1:-1;3759:23:0;;;;;;;;;;;6921:198;;;;;;;;;;-1:-1:-1;6921:198:0;;;;;:::i;:::-;;:::i;1621:94::-;;;;;;;;;;;;;:::i;5030:35::-;;;;;;;;;;-1:-1:-1;5030:35:0;;;;;;;;;;;;;;;;6126:25:1;;;6182:2;6167:18;;6160:34;;;;6210:18;;;6203:34;6114:2;6099:18;5030:35:0;5924:319:1;4715:75:0;;;;;;;;;;-1:-1:-1;4715:75:0;;;;-1:-1:-1;;;;;4715:75:0;;;;;;-1:-1:-1;;;;;6412:32:1;;;6394:51;;6382:2;6367:18;4715:75:0;6248:203:1;8742:120:0;;;;;;;;;;-1:-1:-1;8742:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;8834:20:0;8810:4;8834:20;;;:11;:20;;;;;;;;;8742:120;1398:87;;;;;;;;;;-1:-1:-1;1444:7:0;1471:6;-1:-1:-1;;;;;1471:6:0;1398:87;;20817:209;;;;;;;;;;-1:-1:-1;20817:209:0;;;;;:::i;:::-;;:::i;9362:394::-;;;;;;;;;;-1:-1:-1;9362:394:0;;;;;:::i;:::-;;:::i;21458:101::-;;;;;;;;;;-1:-1:-1;21458:101:0;;;;;:::i;:::-;;:::i;6611:87::-;;;;;;;;;;-1:-1:-1;6683:7:0;;;;;;;;;;;;-1:-1:-1;;;6683:7:0;;;;6611:87;;5243:36;;;;;;;;;;-1:-1:-1;5243:36:0;;;;;;;;;;;;8145:390;;;;;;;;;;-1:-1:-1;8145:390:0;;;;;:::i;:::-;;:::i;4170:19::-;;;;;;;;;;-1:-1:-1;4170:19:0;;;;-1:-1:-1;;;;;4170:19:0;;;8547:187;;;;;;;;;;-1:-1:-1;8547:187:0;;;;;:::i;:::-;;:::i;21930:129::-;;;;;;;;;;-1:-1:-1;21930:129:0;;;;;:::i;:::-;;:::i;21034:114::-;;;;;;;;;;-1:-1:-1;21034:114:0;;;;;:::i;:::-;;:::i;21320:130::-;;;;;;;;;;-1:-1:-1;21320:130:0;;;;;:::i;:::-;;:::i;3939:40::-;;;;;;;;;;;;;;;;22266:123;;;;;;;;;;-1:-1:-1;22266:123:0;;;;;:::i;:::-;;:::i;7131:143::-;;;;;;;;;;-1:-1:-1;7131:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7239:18:0;;;7212:7;7239:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7131:143;4412:51;;;;;;;;;;;;;;;;21160:152;;;;;;;;;;-1:-1:-1;21160:152:0;;;;;:::i;:::-;;:::i;11290:177::-;;;;;;;;;;-1:-1:-1;11290:177:0;;;;;:::i;:::-;;:::i;11039:110::-;;;;;;;;;;-1:-1:-1;11039:110:0;;;;;:::i;:::-;;:::i;3898:34::-;;;;;;;;;;-1:-1:-1;3898:34:0;;;;;;;;1723:192;;;;;;;;;;-1:-1:-1;1723:192:0;;;;;:::i;:::-;;:::i;5072:39::-;;;;;;;;;;-1:-1:-1;5072:39:0;;;;;;;;;;;;4142:21;;;;;;;;;;-1:-1:-1;4142:21:0;;;;-1:-1:-1;;;;;4142:21:0;;;11479:185;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;;;;;;;;;11594:33:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;11582:9:::1;:45:::0;;;;;;;;;;11643:13;::::1;::::0;-1:-1:-1;;11643:13:0::1;11479:185:::0;;;:::o;7282:181::-;4044:14;;7377:4;;7357:10;;4044:14;;;:42;;-1:-1:-1;;;;;;4062:24:0;;;;;;:15;:24;;;;;;;;4044:42;4036:78;;;;-1:-1:-1;;;4036:78:0;;;;;;;:::i;:::-;7394:39:::1;899:10:::0;7417:7:::1;7426:6;7394:8;:39::i;:::-;-1:-1:-1::0;7451:4:0::1;::::0;7282:181;-1:-1:-1;;;7282:181:0:o;21709:209::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;21808:9:::1;21804:107;21826:8;:15;21822:1;:19;21804:107;;;21892:5;21862:14;:27;21877:8;21886:1;21877:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;21862:27:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;21862:27:0;:35;;-1:-1:-1;;21862:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21843:3;::::1;::::0;::::1;:::i;:::-;;;;21804:107;;;;21709:209:::0;;:::o;7471:430::-;4044:14;;7585:4;;7568:6;;4044:14;;;:42;;-1:-1:-1;;;;;;4062:24:0;;;;;;:15;:24;;;;;;;;4044:42;4036:78;;;;-1:-1:-1;;;4036:78:0;;;;;;;:::i;:::-;7602:36:::1;7612:6;7620:9;7631:6;7602:9;:36::i;:::-;-1:-1:-1::0;;;;;7678:19:0;::::1;7651:24;7678:19:::0;;;:11:::1;:19;::::0;;;;;;;899:10;7678:33;;;;;;;;7730:26;;::::1;;7722:79;;;::::0;-1:-1:-1;;;7722:79:0;;9078:2:1;7722:79:0::1;::::0;::::1;9060:21:1::0;9117:2;9097:18;;;9090:30;9156:34;9136:18;;;9129:62;-1:-1:-1;;;9207:18:1;;;9200:38;9255:19;;7722:79:0::1;8876:404:1::0;7722:79:0::1;7812:57;7821:6:::0;899:10;7843:25:::1;7862:6:::0;7843:16;:25:::1;:::i;:::-;7812:8;:57::i;:::-;-1:-1:-1::0;7889:4:0::1;::::0;7471:430;-1:-1:-1;;;;;7471:430:0:o;9764:248::-;9830:7;9869;;9858;:18;;9850:73;;;;-1:-1:-1;;;9850:73:0;;9617:2:1;9850:73:0;;;9599:21:1;9656:2;9636:18;;;9629:30;9695:34;9675:18;;;9668:62;-1:-1:-1;;;9746:18:1;;;9739:40;9796:19;;9850:73:0;9415:406:1;9850:73:0;9934:19;9957:10;:8;:10::i;:::-;9934:33;-1:-1:-1;9985:19:0;9934:33;9985:7;:19;:::i;:::-;9978:26;9764:248;-1:-1:-1;;;9764:248:0:o;10435:475::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10517:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10509:56;;;::::0;-1:-1:-1;;;10509:56:0;;10250:2:1;10509:56:0::1;::::0;::::1;10232:21:1::0;10289:2;10269:18;;;10262:30;10328:25;10308:18;;;10301:53;10371:18;;10509:56:0::1;10048:347:1::0;10509:56:0::1;10581:9;10576:327;10600:9;:16:::0;10596:20;::::1;10576:327;;;10658:7;-1:-1:-1::0;;;;;10642:23:0::1;:9;10652:1;10642:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;10642:12:0::1;:23:::0;10638:254:::1;;10701:9;10711:16:::0;;:20:::1;::::0;10730:1:::1;::::0;10711:20:::1;:::i;:::-;10701:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;10686:9:::1;:12:::0;;-1:-1:-1;;;;;10701:31:0;;::::1;::::0;10696:1;;10686:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;10686:46:0::1;-1:-1:-1::0;;;;;10686:46:0;;::::1;;::::0;;10751:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;10790:11:::1;:20:::0;;;;:28;;-1:-1:-1;;10790:28:0::1;::::0;;10837:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;10837:15:0;;;;;-1:-1:-1;;;;;;10837:15:0::1;::::0;;;;;10576:327:::1;10435:475:::0;:::o;10638:254::-:1;10618:3:::0;::::1;::::0;::::1;:::i;:::-;;;;10576:327;;;;10435:475:::0;:::o;7909:228::-;4044:14;;8010:4;;7989:10;;4044:14;;;:42;;-1:-1:-1;;;;;;4062:24:0;;;;;;:15;:24;;;;;;;;4044:42;4036:78;;;;-1:-1:-1;;;4036:78:0;;;;;;;:::i;:::-;899:10;8059:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8059:34:0;::::1;::::0;;;;;;;;8027:80:::1;::::0;899:10;8050:7;;8059:47:::1;::::0;8096:10;;8059:47:::1;:::i;22397:154::-:0;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;22491:6:::1;:27:::0;;-1:-1:-1;;;;;22491:27:0;;::::1;-1:-1:-1::0;;;;;;22491:27:0;;::::1;;::::0;;;22529:4:::1;:14:::0;;;;;::::1;::::0;::::1;;::::0;;22397:154::o;10920:111::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10989:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;10989:34:0::1;11019:4;10989:34;::::0;;10920:111::o;22627:196::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;22727:9:::1;22702:21;:34;;22694:71;;;::::0;-1:-1:-1;;;22694:71:0;;10867:2:1;22694:71:0::1;::::0;::::1;10849:21:1::0;10906:2;10886:18;;;10879:30;10945:26;10925:18;;;10918:54;10989:18;;22694:71:0::1;10665:348:1::0;22694:71:0::1;22776:39;::::0;22784:10:::1;::::0;22776:39;::::1;;;::::0;22805:9;;22776:39:::1;::::0;;;22805:9;22784:10;22776:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;8870:484:::0;8960:7;8999;;8988;:18;;8980:62;;;;-1:-1:-1;;;8980:62:0;;11220:2:1;8980:62:0;;;11202:21:1;11259:2;11239:18;;;11232:30;11298:33;11278:18;;;11271:61;11349:18;;8980:62:0;11018:355:1;8980:62:0;9058:17;9053:294;;9092:28;9123:39;9134:7;9143:4;9149:5;9156;9123:10;:39::i;:::-;9184:9;;-1:-1:-1;9177:16:0;;-1:-1:-1;9177:16:0;9053:294;9226:28;9257:39;9268:7;9277:4;9283:5;9290;9257:10;:39::i;:::-;9318:17;;;;-1:-1:-1;9311:24:0;;-1:-1:-1;9311:24:0;9053:294;8870:484;;;;:::o;22837:154::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;22942:41:::1;::::0;-1:-1:-1;;;22942:41:0;;-1:-1:-1;;;;;11570:32:1;;;22942:41:0::1;::::0;::::1;11552:51:1::0;11619:18;;;11612:34;;;22942:27:0;::::1;::::0;::::1;::::0;11525:18:1;;22942:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22837:154:::0;;;:::o;10094:333::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10177:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10176:21;10168:61;;;::::0;-1:-1:-1;;;10168:61:0;;12109:2:1;10168:61:0::1;::::0;::::1;12091:21:1::0;12148:2;12128:18;;;12121:30;12187:29;12167:18;;;12160:57;12234:18;;10168:61:0::1;11907:351:1::0;10168:61:0::1;-1:-1:-1::0;;;;;10243:16:0;::::1;10262:1;10243:16:::0;;;:7:::1;:16;::::0;;;;;:20;10240:108:::1;;-1:-1:-1::0;;;;;10319:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;10299:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;10280:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;10240:108:::1;-1:-1:-1::0;;;;;10358:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;10358:27:0::1;10381:4;10358:27:::0;;::::1;::::0;;;10396:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;10396:23:0::1;::::0;;::::1;::::0;;10094:333::o;22071:183::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;22182:14:::1;4233:1:::0;22182:2:::1;:14;:::i;:::-;22173:23;::::0;:6;:23:::1;:::i;:::-;22159:11;:37:::0;22232:14:::1;4233:1:::0;22232:2:::1;:14;:::i;:::-;22222:24;::::0;:7;:24:::1;:::i;:::-;22207:12;:39:::0;-1:-1:-1;;22071:183:0:o;21571:126::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21658:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;21658:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21571:126::o;6921:198::-;-1:-1:-1;;;;;7011:20:0;;6987:7;7011:20;;;:11;:20;;;;;;;;7007:49;;;-1:-1:-1;;;;;;7040:16:0;;;;;:7;:16;;;;;;;6921:198::o;7007:49::-;-1:-1:-1;;;;;7094:16:0;;;;;;:7;:16;;;;;;7074:37;;:19;:37::i;1621:94::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;1686:21:::1;1704:1;1686:9;:21::i;:::-;1621:94::o:0;20817:209::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;20913:9:::1;20909:110;20932:8;:15;20928:1;:19;20909:110;;;21002:5;20968:18;:31;20987:8;20996:1;20987:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;20968:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;20968:31:0;:39;;-1:-1:-1;;20968:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20949:3;::::1;::::0;::::1;:::i;:::-;;;;20909:110;;9362:394:::0;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;9552:14:::1;:22:::0;;-1:-1:-1;;9585:19:0;-1:-1:-1;;9552:22:0;::::1;;9585:19:::0;;;;;;;9552:22:::1;9585:19:::0;::::1;;::::0;;;9615:8:::1;:20:::0;;;9658:32:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;9646:9:::1;:44:::0;;;;;;;;;;;-1:-1:-1;9705:13:0;9701:47:::1;;9736:12;9720:13;:28:::0;9701:47:::1;9362:394:::0;;;;;:::o;21458:101::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;21529:11:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;21529:22:0;;::::1;::::0;;;::::1;::::0;;21458:101::o;8145:390::-;4044:14;;8251:4;;8230:10;;4044:14;;;:42;;-1:-1:-1;;;;;;4062:24:0;;;;;;:15;:24;;;;;;;;4044:42;4036:78;;;;-1:-1:-1;;;4036:78:0;;;;;;;:::i;:::-;899:10;8268:24:::1;8295:25:::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;8295:34:0;::::1;::::0;;;;;;;;8348:35;;::::1;;8340:85;;;::::0;-1:-1:-1;;;8340:85:0;;14021:2:1;8340:85:0::1;::::0;::::1;14003:21:1::0;14060:2;14040:18;;;14033:30;14099:34;14079:18;;;14072:62;-1:-1:-1;;;14150:18:1;;;14143:35;14195:19;;8340:85:0::1;13819:401:1::0;8340:85:0::1;8436:67;899:10:::0;8459:7;8468:34:::1;8487:15:::0;8468:16;:34:::1;:::i;8436:67::-;-1:-1:-1::0;8523:4:0::1;::::0;8145:390;-1:-1:-1;;;;8145:390:0:o;8547:187::-;4044:14;;8645:4;;8624:10;;4044:14;;;:42;;-1:-1:-1;;;;;;4062:24:0;;;;;;:15;:24;;;;;;;;4044:42;4036:78;;;;-1:-1:-1;;;4036:78:0;;;;;;;:::i;:::-;8666:40:::1;8676:10;8688:9;8699:6;8666:9;:40::i;21930:129::-:0;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22019:24:0;;;::::1;;::::0;;;:15:::1;:24;::::0;;;;:32;;-1:-1:-1;;22019:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21930:129::o;21034:114::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;21113:15:::1;:27:::0;;-1:-1:-1;;;;;;21113:27:0::1;-1:-1:-1::0;;;;;21113:27:0;;;::::1;::::0;;;::::1;::::0;;21034:114::o;21320:130::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;21429:13:::1;4233:1;21429:2;:13;:::i;:::-;21420:22;::::0;:6;:22:::1;:::i;:::-;21399:18;:43:::0;-1:-1:-1;21320:130:0:o;22266:123::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;22367:14:::1;4233:1:::0;22367:2:::1;:14;:::i;:::-;22358:23;::::0;:6;:23:::1;:::i;:::-;22341:14;:40:::0;-1:-1:-1;22266:123:0:o;21160:152::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;21254:16:::1;:4:::0;21261:9:::1;21254:16;:::i;:::-;21239:12;:31:::0;-1:-1:-1;21281:15:0::1;:23:::0;;-1:-1:-1;;21281:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21160:152::o;11290:177::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;11397:33:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;11389:5:::1;:41:::0;;;;;;;;;;;11446:13;::::1;::::0;-1:-1:-1;;11446:13:0::1;11290:177:::0;;;:::o;11039:110::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11106:27:0::1;11136:5;11106:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;11106:35:0::1;::::0;;11039:110::o;1723:192::-;1444:7;1471:6;-1:-1:-1;;;;;1471:6:0;899:10;1533:23;1525:68;;;;-1:-1:-1;;;1525:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1812:22:0;::::1;1804:73;;;::::0;-1:-1:-1;;;1804:73:0;;14427:2:1;1804:73:0::1;::::0;::::1;14409:21:1::0;14466:2;14446:18;;;14439:30;14505:34;14485:18;;;14478:62;-1:-1:-1;;;14556:18:1;;;14549:36;14602:19;;1804:73:0::1;14225:402:1::0;1804:73:0::1;1888:19;1898:8;1888:9;:19::i;:::-;1723:192:::0;:::o;14822:335::-;-1:-1:-1;;;;;14915:19:0;;14907:68;;;;-1:-1:-1;;;14907:68:0;;14834:2:1;14907:68:0;;;14816:21:1;14873:2;14853:18;;;14846:30;14912:34;14892:18;;;14885:62;-1:-1:-1;;;14963:18:1;;;14956:34;15007:19;;14907:68:0;14632:400:1;14907:68:0;-1:-1:-1;;;;;14994:21:0;;14986:68;;;;-1:-1:-1;;;14986:68:0;;15239:2:1;14986:68:0;;;15221:21:1;15278:2;15258:18;;;15251:30;15317:34;15297:18;;;15290:62;-1:-1:-1;;;15368:18:1;;;15361:32;15410:19;;14986:68:0;15037:398:1;14986:68:0;-1:-1:-1;;;;;15065:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15117:32;;3454:25:1;;;15117:32:0;;3427:18:1;15117:32:0;;;;;;;14822:335;;;:::o;15165:2256::-;-1:-1:-1;;;;;15253:18:0;;15245:68;;;;-1:-1:-1;;;15245:68:0;;15642:2:1;15245:68:0;;;15624:21:1;15681:2;15661:18;;;15654:30;15720:34;15700:18;;;15693:62;-1:-1:-1;;;15771:18:1;;;15764:35;15816:19;;15245:68:0;15440:401:1;15245:68:0;-1:-1:-1;;;;;15332:16:0;;15324:64;;;;-1:-1:-1;;;15324:64:0;;16048:2:1;15324:64:0;;;16030:21:1;16087:2;16067:18;;;16060:30;16126:34;16106:18;;;16099:62;-1:-1:-1;;;16177:18:1;;;16170:33;16220:19;;15324:64:0;15846:399:1;15324:64:0;15416:1;15407:6;:10;15399:64;;;;-1:-1:-1;;;15399:64:0;;16452:2:1;15399:64:0;;;16434:21:1;16491:2;16471:18;;;16464:30;16530:34;16510:18;;;16503:62;-1:-1:-1;;;16581:18:1;;;16574:39;16630:19;;15399:64:0;16250:405:1;15399:64:0;15492:15;15502:4;15492:9;:15::i;:::-;15482:6;:25;;15474:86;;;;-1:-1:-1;;;15474:86:0;;16862:2:1;15474:86:0;;;16844:21:1;16901:2;16881:18;;;16874:30;16940:34;16920:18;;;16913:62;-1:-1:-1;;;16991:18:1;;;16984:47;17048:19;;15474:86:0;16660:413:1;15474:86:0;-1:-1:-1;;;;;15580:20:0;;;;;;:14;:20;;;;;;;;15579:21;:44;;;;-1:-1:-1;;;;;;15605:18:0;;;;;;:14;:18;;;;;;;;15604:19;15579:44;15571:70;;;;-1:-1:-1;;;15571:70:0;;17280:2:1;15571:70:0;;;17262:21:1;17319:2;17299:18;;;17292:30;-1:-1:-1;;;17338:18:1;;;17331:43;17391:18;;15571:70:0;17078:337:1;15571:70:0;-1:-1:-1;;;;;15666:24:0;;;;;;:18;:24;;;;;;;;15665:25;:52;;;;-1:-1:-1;;;;;;15695:22:0;;;;;;:18;:22;;;;;;;;15694:23;15665:52;15662:128;;;15741:14;;;;15733:45;;;;-1:-1:-1;;;15733:45:0;;17622:2:1;15733:45:0;;;17604:21:1;17661:2;17641:18;;;17634:30;-1:-1:-1;;;17680:18:1;;;17673:48;17738:18;;15733:45:0;17420:342:1;15733:45:0;15828:4;;-1:-1:-1;;;;;15820:12:0;;;15828:4;;15820:12;:39;;;;-1:-1:-1;;;;;;15837:22:0;;;;;;:18;:22;;;;;;;;15836:23;15820:39;:52;;;;-1:-1:-1;15864:8:0;;;;;;;15863:9;15820:52;15817:246;;;15906:11;;15896:6;:21;;15888:63;;;;-1:-1:-1;;;15888:63:0;;17969:2:1;15888:63:0;;;17951:21:1;18008:2;17988:18;;;17981:30;18047:31;18027:18;;;18020:59;18096:18;;15888:63:0;17767:353:1;15888:63:0;16000:14;;15990:6;15974:13;15984:2;15974:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;15966:85;;;;-1:-1:-1;;;15966:85:0;;18327:2:1;15966:85:0;;;18309:21:1;;;18346:18;;;18339:30;18405:34;18385:18;;;18378:62;18457:18;;15966:85:0;18125:356:1;15966:85:0;16094:4;;-1:-1:-1;;;;;16086:12:0;;;16094:4;;16086:12;;;;:39;;-1:-1:-1;;;;;;16103:22:0;;;;;;:18;:22;;;;;;;;16102:23;16086:39;:68;;;;-1:-1:-1;;;;;;16130:24:0;;;;;;:18;:24;;;;;;;;16129:25;16086:68;:81;;;;-1:-1:-1;16159:8:0;;;;;;;16158:9;16086:81;16083:573;;;16201:12;;16191:6;:22;;16183:65;;;;-1:-1:-1;;;16183:65:0;;18688:2:1;16183:65:0;;;18670:21:1;18727:2;18707:18;;;18700:30;18766:32;18746:18;;;18739:60;18816:18;;16183:65:0;18486:354:1;16183:65:0;16272:4;;-1:-1:-1;;;;;16266:10:0;;;16272:4;;16266:10;16263:134;;16330:14;;16320:6;16304:13;16314:2;16304:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;16296:85;;;;-1:-1:-1;;;16296:85:0;;18327:2:1;16296:85:0;;;18309:21:1;;;18346:18;;;18339:30;18405:34;18385:18;;;18378:62;18457:18;;16296:85:0;18125:356:1;16296:85:0;16414:15;;;;16411:234;;;-1:-1:-1;;;;;16488:15:0;;16449:18;16488:15;;;:9;:15;;;;;;16470:33;;:15;:33;:::i;:::-;16449:54;;16544:12;;16530:10;:26;;16522:55;;;;-1:-1:-1;;;16522:55:0;;19047:2:1;16522:55:0;;;19029:21:1;19086:2;19066:18;;;19059:30;-1:-1:-1;;;19105:18:1;;;19098:46;19161:18;;16522:55:0;18845:340:1;16522:55:0;-1:-1:-1;;;;;;16596:15:0;;;;;;:9;:15;;;;;16614;16596:33;;16411:234;16723:14;4233:1;16723:2;:14;:::i;:::-;16717:20;;:2;:20;:::i;:::-;16707:6;16689:15;16699:4;16689:9;:15::i;:::-;:24;;;;:::i;:::-;:48;16686:111;;16781:15;16791:4;16781:9;:15::i;:::-;16772:6;16755:14;4233:1;16755:2;:14;:::i;:::-;16750:19;;:2;:19;:::i;:::-;:28;;;;:::i;:::-;:46;;;;:::i;:::-;16739:58;;;;:::i;:::-;;;16686:111;16827:12;16870:18;;16842:24;16860:4;16842:9;:24::i;:::-;16903:8;;-1:-1:-1;;16842:46:0;;-1:-1:-1;16903:8:0;;;;;16902:9;:24;;;;-1:-1:-1;16915:11:0;;;;;;;16902:24;:35;;;;;16930:7;16902:35;:51;;;;-1:-1:-1;16949:4:0;;-1:-1:-1;;;;;16941:12:0;;;16949:4;;16941:12;;16902:51;:80;;;;-1:-1:-1;;;;;;16958:24:0;;;;;;:18;:24;;;;;;;;16957:25;16902:80;:107;;;;-1:-1:-1;;;;;;16987:22:0;;;;;;:18;:22;;;;;;;;16986:23;16902:107;16899:261;;;17034:4;;-1:-1:-1;;;;;17034:4:0;;;17028:10;;;;17025:123;;17056:18;;17041:45;;;;;;;;17076:9;17041:45;;;;;;;;;;;;;;;;;;;;;;;17056:18;17041:14;:45::i;:::-;17025:123;;;17122:18;;17107:41;;;;;;;;17142:5;17107:41;;;;;;;;;;;;;;;;;;;;17122:18;17107:14;:41::i;:::-;17233:8;;17185:4;;17170:12;;17233:8;;;;;;:36;;-1:-1:-1;;;;;;17245:24:0;;;;;;:18;:24;;;;;;;;17233:36;:62;;;-1:-1:-1;;;;;;17273:22:0;;;;;;:18;:22;;;;;;;;17233:62;17230:82;;;17307:5;17297:15;;17230:82;17332:4;;-1:-1:-1;;;;;17332:4:0;;;17326:10;;;;17323:28;;-1:-1:-1;17347:4:0;17323:28;17364:49;17379:4;17385:2;17389:6;17397:7;17406:6;17364:14;:49::i;:::-;15234:2187;;;15165:2256;;;:::o;14108:158::-;14149:7;14170:15;14187;14206:19;:17;:19::i;:::-;14169:56;;-1:-1:-1;14169:56:0;-1:-1:-1;14243:15:0;14169:56;;14243:15;:::i;:::-;14236:22;;;;14108:158;:::o;12391:425::-;12496:36;;:::i;:::-;12557:51;12569:7;12578;12587:6;12595:12;12557:11;:51::i;:::-;12545:63;;12728:53;12741:9;12752:7;12761;12770:10;:8;:10::i;:::-;12728:12;:53::i;:::-;12704:20;;;12619:162;12682:20;;;12619:162;12666:14;;;12619:162;12639:25;;;12619:162;;;12391:425;;;;;;;:::o;1923:173::-;1979:16;1998:6;;-1:-1:-1;;;;;2015:17:0;;;-1:-1:-1;;;;;;2015:17:0;;;;;;2048:40;;1998:6;;;;;;;2048:40;;1979:16;2048:40;1968:128;1923:173;:::o;18724:1002::-;5692:8;:15;;-1:-1:-1;;5692:15:0;;;;;18862:14:::1;::::0;::::1;::::0;18845::::1;::::0;::::1;::::0;5692:15;;18845:31:::1;::::0;::::1;:::i;:::-;18844:37;::::0;18880:1:::1;18844:37;:::i;:::-;18822:59;;18892:32;18962:11;18945:4;:14;;;18927:15;:32;;;;:::i;:::-;:46;;;;:::i;:::-;18892:81:::0;-1:-1:-1;18984:14:0::1;19001:42;18892:81:::0;19001:15;:42:::1;:::i;:::-;18984:59:::0;-1:-1:-1;19081:21:0::1;19115:24;18984:59:::0;19115:16:::1;:24::i;:::-;19152:20;19175:38;19199:14:::0;19175:21:::1;:38;:::i;:::-;19152:61;;19224:19;19275:4;:14;;;19261:11;:28;;;;:::i;:::-;19245:45;::::0;:12;:45:::1;:::i;:::-;19224:66;;19301:29;19347:4;:14;;;19333:11;:28;;;;:::i;:::-;19301:60:::0;-1:-1:-1;19377:25:0;;19374:158:::1;;19459:61;19472:24;19498:21;19459:12;:61::i;:::-;19585:14;::::0;::::1;::::0;19544:20:::1;::::0;19567:15:::1;:11:::0;19581:1:::1;19567:15;:::i;:::-;:32;;;;:::i;:::-;19544:55:::0;-1:-1:-1;19613:16:0;;19610:95:::1;;19653:15;::::0;19645:48:::1;::::0;-1:-1:-1;;;;;19653:15:0::1;19680:12:::0;19645:34:::1;:48::i;:::-;-1:-1:-1::0;;5730:8:0;:16;;-1:-1:-1;;5730:16:0;;;-1:-1:-1;;;;;;;;18724:1002:0:o;17504:1212::-;-1:-1:-1;;;;;17651:26:0;;17630:17;17651:26;;;:18;:26;;;;;;;;17650:27;:74;;;;-1:-1:-1;;;;;;17695:29:0;;;;;;:18;:29;;;;;;;;17694:30;17650:74;:131;;;;;17773:8;;17757:13;;:24;;;;:::i;:::-;17741:12;:40;;17650:131;17630:151;;17794:28;17825:50;17836:7;17845;17854:6;17862:12;17825:10;:50::i;:::-;-1:-1:-1;;;;;17892:19:0;;;;;;:11;:19;;;;;;17794:81;;-1:-1:-1;17892:19:0;;17888:115;;;-1:-1:-1;;;;;17968:15:0;;;;;;:7;:15;;;;;;:23;;17984:7;;17968:23;:::i;:::-;-1:-1:-1;;;;;17950:15:0;;;;;;:7;:15;;;;;:41;17888:115;-1:-1:-1;;;;;18017:22:0;;;;;;:11;:22;;;;;;;;18013:130;;;18114:17;;;;-1:-1:-1;;;;;18095:18:0;;;;;;:7;:18;;;;;;:36;;18114:17;18095:36;:::i;:::-;-1:-1:-1;;;;;18074:18:0;;;;;;:7;:18;;;;;:57;18013:130;18189:9;;-1:-1:-1;;;;;18173:15:0;;18189:9;18173:15;;;:7;:15;;;;;;:25;;18189:9;18173:25;:::i;:::-;-1:-1:-1;;;;;18155:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;18249:17;;;18230:18;;;;;;;;;;:36;;18249:17;18230:36;:::i;:::-;-1:-1:-1;;;;;18209:18:0;;;;;;:7;:18;;;;;;;:57;;;;18290:6;;;:10;;;:24;;;18313:1;18304;:6;;;:10;18290:24;18287:56;;;18316:27;18328:1;:6;;;18336:1;:6;;;18316:11;:27::i;:::-;18372:1;18357;:12;;;:16;:36;;;;18392:1;18377;:12;;;:16;18357:36;18354:189;;;18410:41;18425:1;:12;;;18438:1;:12;;;18410:14;:41::i;:::-;18496:4;-1:-1:-1;;;;;18471:60:0;18480:6;-1:-1:-1;;;;;18471:60:0;;18518:1;:12;;;18503:1;:12;;;:27;;;;:::i;:::-;18471:60;;3454:25:1;;;3442:2;3427:18;18471:60:0;;;;;;;18354:189;18571:1;18556;:12;;;:16;:36;;;;18591:1;18576;:12;;;:16;18556:36;18553:83;;;18594:42;18609:1;:12;;;18623:1;:12;;;18594:14;:42::i;:::-;18669:9;-1:-1:-1;;;;;18652:46:0;18661:6;-1:-1:-1;;;;;18652:46:0;;18680:1;:17;;;18652:46;;;;3454:25:1;;3442:2;3427:18;;3308:177;18652:46:0;;;;;;;;17615:1101;;17504:1212;;;;;:::o;14274:540::-;14371:7;;14407;;14324;;;;;14425:279;14449:9;:16;14445:20;;14425:279;;;14515:7;14491;:21;14499:9;14509:1;14499:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14499:12:0;14491:21;;;;;;;;;;;;;:31;;:66;;;14550:7;14526;:21;14534:9;14544:1;14534:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14534:12:0;14526:21;;;;;;;;;;;;;:31;14491:66;14487:97;;;14567:7;;14576;;14559:25;;;;;;;14274:540;;:::o;14487:97::-;14617:7;:21;14625:9;14635:1;14625:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14625:12:0;14617:21;;;;;;;;;;;;;14609:29;;:7;:29;:::i;:::-;14599:39;;14671:7;:21;14679:9;14689:1;14679:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14679:12:0;14671:21;;;;;;;;;;;;;14663:29;;:7;:29;:::i;:::-;14653:39;-1:-1:-1;14467:3:0;;;;:::i;:::-;;;;14425:279;;;;14736:7;;14728;;:15;;;;:::i;:::-;14718:7;:25;14714:56;;;14753:7;;14762;;14745:25;;;;;;14274:540;;:::o;14714:56::-;14789:7;;14798;;-1:-1:-1;14274:540:0;-1:-1:-1;14274:540:0:o;12824:649::-;12930:28;;:::i;:::-;12977:7;12973:86;;12999:17;;;:27;;;13039:8;;12973:86;13069:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;13069:17:0;13101:6;:23;;;;;13112:12;13111:13;13101:23;13097:124;;;-1:-1:-1;13126:16:0;;;;;;;;13133:9;13126:16;;;;;;;;;;;;;;;;;;;;;13097:124;;;13163:12;13158:63;;-1:-1:-1;13177:12:0;;;;;;;;13184:5;13177:12;;;;;;;;;;;;;;;;;;13158:63;;;-1:-1:-1;13205:16:0;;;;;;;;13212:9;13205:16;;;;;;;;;;;;;;;;;;13158:63;13259:8;;13268:3;;13251:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;13242:6;;;:29;13305:14;;;;13320:3;;13297:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;13282:12;;;:41;13357:14;;;;13372:3;;13349:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;13334:12;;;:41;;;13421:12;;;;13414:6;;;;13406:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;:40;;;;:::i;:::-;13386:17;;;:60;-1:-1:-1;12824:649:0;;;;;;:::o;13481:619::-;13607:15;;;;;13722:19;13730:11;13722:7;:19;:::i;:::-;13712:29;;13758:7;13754:69;;-1:-1:-1;13787:7:0;;-1:-1:-1;13805:1:0;;-1:-1:-1;13805:1:0;;-1:-1:-1;13805:1:0;13780:31;;13754:69;13849:11;13842:1;:6;;;:18;;;;:::i;:::-;13835:25;;13897:11;13884:1;:12;;;:24;;;;:::i;:::-;13871:37;;13945:11;13932:1;:12;;;:24;;;;:::i;:::-;13919:37;-1:-1:-1;13919:37:0;13999:10;13986:12;13994:4;13986:7;:12;:::i;:::-;:23;;;;:::i;:::-;:34;;;;:::i;:::-;13967:53;;13481:619;;;;;;;;;;:::o;20237:562::-;20387:16;;;20401:1;20387:16;;;;;;;;20363:21;;20387:16;;;;;;;;;;-1:-1:-1;20387:16:0;20363:40;;20432:4;20414;20419:1;20414:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20414:23:0;;;:7;;;;;;;;;;:23;;;;20458:6;;:13;;;-1:-1:-1;;;20458:13:0;;;;:6;;;;;:11;;:13;;;;;20414:7;;20458:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20448:4;20453:1;20448:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20448:23:0;;;:7;;;;;;;;;:23;20516:6;;20484:53;;20501:4;;20516:6;20525:11;20484:8;:53::i;:::-;20576:6;;:215;;-1:-1:-1;;;20576:215:0;;-1:-1:-1;;;;;20576:6:0;;;;:57;;:215;;20648:11;;20576:6;;20718:4;;20745;;20765:15;;20576:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19734:495;19914:6;;19882:53;;19899:4;;-1:-1:-1;;;;;19914:6:0;19923:11;19882:8;:53::i;:::-;19978:6;;-1:-1:-1;;;;;19978:6:0;:22;20008:9;20041:4;20061:11;19978:6;;20173:7;1444;1471:6;-1:-1:-1;;;;;1471:6:0;;1398:87;20173:7;19978:243;;;;;;-1:-1:-1;;;;;;19978:243:0;;;-1:-1:-1;;;;;20790:15:1;;;19978:243:0;;;20772:34:1;20822:18;;;20815:34;;;;20865:18;;;20858:34;;;;20908:18;;;20901:34;20972:15;;;20951:19;;;20944:44;20195:15:0;21004:19:1;;;20997:35;20706:19;;19978:243:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2866:317::-;2981:6;2956:21;:31;;2948:73;;;;-1:-1:-1;;;2948:73:0;;21556:2:1;2948:73:0;;;21538:21:1;21595:2;21575:18;;;21568:30;21634:31;21614:18;;;21607:59;21683:18;;2948:73:0;21354:353:1;2948:73:0;3035:12;3053:9;-1:-1:-1;;;;;3053:14:0;3075:6;3053:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3034:52;;;3105:7;3097:78;;;;-1:-1:-1;;;3097:78:0;;22124:2:1;3097:78:0;;;22106:21:1;22163:2;22143:18;;;22136:30;22202:34;22182:18;;;22175:62;22273:28;22253:18;;;22246:56;22319:19;;3097:78:0;21922:422:1;11672:123:0;11750:4;11740:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;11765:11:0;:22;;11783:4;;11765:11;:15;;:22;;11783:4;;11765:22;:::i;:::-;;;;-1:-1:-1;;;;11672:123:0:o;11803:284::-;11910:10;11886:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;11956:4:0;11936:26;;;;:11;:26;;;;;;;;11933:101;;;12004:4;11988:22;;;;:7;:22;;;;;:34;;12012:10;;11988:22;:34;;12012:10;;11988:34;:::i;:::-;;;;-1:-1:-1;;11933:101:0;12060:4;12044:22;;;;:7;:22;;;;;:35;;12069:10;;12044:22;:35;;12069:10;;12044:35;:::i;12095:284::-;12202:10;12178:11;:21;;;:34;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:316::-;693:6;701;709;762:2;750:9;741:7;737:23;733:32;730:52;;;778:1;775;768:12;730:52;-1:-1:-1;;801:23:1;;;871:2;856:18;;843:32;;-1:-1:-1;922:2:1;907:18;;;894:32;;616:316;-1:-1:-1;616:316:1:o;937:131::-;-1:-1:-1;;;;;1012:31:1;;1002:42;;992:70;;1058:1;1055;1048:12;1073:134;1141:20;;1170:31;1141:20;1170:31;:::i;:::-;1073:134;;;:::o;1212:315::-;1280:6;1288;1341:2;1329:9;1320:7;1316:23;1312:32;1309:52;;;1357:1;1354;1347:12;1309:52;1396:9;1383:23;1415:31;1440:5;1415:31;:::i;:::-;1465:5;1517:2;1502:18;;;;1489:32;;-1:-1:-1;;;1212:315:1:o;1724:127::-;1785:10;1780:3;1776:20;1773:1;1766:31;1816:4;1813:1;1806:15;1840:4;1837:1;1830:15;1856:118;1942:5;1935:13;1928:21;1921:5;1918:32;1908:60;;1964:1;1961;1954:12;1979:128;2044:20;;2073:28;2044:20;2073:28;:::i;2112:1191::-;2202:6;2210;2263:2;2251:9;2242:7;2238:23;2234:32;2231:52;;;2279:1;2276;2269:12;2231:52;2319:9;2306:23;2348:18;2389:2;2381:6;2378:14;2375:34;;;2405:1;2402;2395:12;2375:34;2443:6;2432:9;2428:22;2418:32;;2488:7;2481:4;2477:2;2473:13;2469:27;2459:55;;2510:1;2507;2500:12;2459:55;2546:2;2533:16;2568:4;2591:2;2587;2584:10;2581:36;;;2597:18;;:::i;:::-;2643:2;2640:1;2636:10;2675:2;2669:9;2738:2;2734:7;2729:2;2725;2721:11;2717:25;2709:6;2705:38;2793:6;2781:10;2778:22;2773:2;2761:10;2758:18;2755:46;2752:72;;;2804:18;;:::i;:::-;2840:2;2833:22;2890:18;;;2924:15;;;;-1:-1:-1;2966:11:1;;;2962:20;;;2994:19;;;2991:39;;;3026:1;3023;3016:12;2991:39;3050:11;;;;3070:148;3086:6;3081:3;3078:15;3070:148;;;3152:23;3171:3;3152:23;:::i;:::-;3140:36;;3103:12;;;;3196;;;;3070:148;;;3237:6;-1:-1:-1;3262:35:1;;-1:-1:-1;3278:18:1;;;3262:35;:::i;:::-;3252:45;;;;;;2112:1191;;;;;:::o;3490:456::-;3567:6;3575;3583;3636:2;3624:9;3615:7;3611:23;3607:32;3604:52;;;3652:1;3649;3642:12;3604:52;3691:9;3678:23;3710:31;3735:5;3710:31;:::i;:::-;3760:5;-1:-1:-1;3817:2:1;3802:18;;3789:32;3830:33;3789:32;3830:33;:::i;:::-;3490:456;;3882:7;;-1:-1:-1;;;3936:2:1;3921:18;;;;3908:32;;3490:456::o;3951:180::-;4010:6;4063:2;4051:9;4042:7;4038:23;4034:32;4031:52;;;4079:1;4076;4069:12;4031:52;-1:-1:-1;4102:23:1;;3951:180;-1:-1:-1;3951:180:1:o;4325:247::-;4384:6;4437:2;4425:9;4416:7;4412:23;4408:32;4405:52;;;4453:1;4450;4443:12;4405:52;4492:9;4479:23;4511:31;4536:5;4511:31;:::i;4577:388::-;4645:6;4653;4706:2;4694:9;4685:7;4681:23;4677:32;4674:52;;;4722:1;4719;4712:12;4674:52;4761:9;4748:23;4780:31;4805:5;4780:31;:::i;:::-;4830:5;-1:-1:-1;4887:2:1;4872:18;;4859:32;4900:33;4859:32;4900:33;:::i;:::-;4952:7;4942:17;;;4577:388;;;;;:::o;4970:309::-;5035:6;5043;5096:2;5084:9;5075:7;5071:23;5067:32;5064:52;;;5112:1;5109;5102:12;5064:52;5148:9;5135:23;5125:33;;5208:2;5197:9;5193:18;5180:32;5221:28;5243:5;5221:28;:::i;5284:248::-;5352:6;5360;5413:2;5401:9;5392:7;5388:23;5384:32;5381:52;;;5429:1;5426;5419:12;5381:52;-1:-1:-1;;5452:23:1;;;5522:2;5507:18;;;5494:32;;-1:-1:-1;5284:248:1:o;5537:382::-;5602:6;5610;5663:2;5651:9;5642:7;5638:23;5634:32;5631:52;;;5679:1;5676;5669:12;5631:52;5718:9;5705:23;5737:31;5762:5;5737:31;:::i;:::-;5787:5;-1:-1:-1;5844:2:1;5829:18;;5816:32;5857:30;5816:32;5857:30;:::i;6456:515::-;6548:6;6556;6564;6572;6580;6633:3;6621:9;6612:7;6608:23;6604:33;6601:53;;;6650:1;6647;6640:12;6601:53;6689:9;6676:23;6708:28;6730:5;6708:28;:::i;:::-;6755:5;6807:2;6792:18;;6779:32;;-1:-1:-1;6858:2:1;6843:18;;6830:32;;6909:2;6894:18;;6881:32;;-1:-1:-1;6960:3:1;6945:19;6932:33;;-1:-1:-1;6456:515:1;-1:-1:-1;;;6456:515:1:o;6976:241::-;7032:6;7085:2;7073:9;7064:7;7060:23;7056:32;7053:52;;;7101:1;7098;7091:12;7053:52;7140:9;7127:23;7159:28;7181:5;7159:28;:::i;7222:309::-;7287:6;7295;7348:2;7336:9;7327:7;7323:23;7319:32;7316:52;;;7364:1;7361;7354:12;7316:52;7403:9;7390:23;7422:28;7444:5;7422:28;:::i;7759:356::-;7961:2;7943:21;;;7980:18;;;7973:30;8039:34;8034:2;8019:18;;8012:62;8106:2;8091:18;;7759:356::o;8120:347::-;8322:2;8304:21;;;8361:2;8341:18;;;8334:30;8400:25;8395:2;8380:18;;8373:53;8458:2;8443:18;;8120:347::o;8472:127::-;8533:10;8528:3;8524:20;8521:1;8514:31;8564:4;8561:1;8554:15;8588:4;8585:1;8578:15;8604:127;8665:10;8660:3;8656:20;8653:1;8646:31;8696:4;8693:1;8686:15;8720:4;8717:1;8710:15;8736:135;8775:3;8796:17;;;8793:43;;8816:18;;:::i;:::-;-1:-1:-1;8863:1:1;8852:13;;8736:135::o;9285:125::-;9325:4;9353:1;9350;9347:8;9344:34;;;9358:18;;:::i;:::-;-1:-1:-1;9395:9:1;;9285:125::o;9826:217::-;9866:1;9892;9882:132;;9936:10;9931:3;9927:20;9924:1;9917:31;9971:4;9968:1;9961:15;9999:4;9996:1;9989:15;9882:132;-1:-1:-1;10028:9:1;;9826:217::o;10400:127::-;10461:10;10456:3;10452:20;10449:1;10442:31;10492:4;10489:1;10482:15;10516:4;10513:1;10506:15;10532:128;10572:3;10603:1;10599:6;10596:1;10593:13;10590:39;;;10609:18;;:::i;:::-;-1:-1:-1;10645:9:1;;10532:128::o;11657:245::-;11724:6;11777:2;11765:9;11756:7;11752:23;11748:32;11745:52;;;11793:1;11790;11783:12;11745:52;11825:9;11819:16;11844:28;11866:5;11844:28;:::i;12263:422::-;12352:1;12395:5;12352:1;12409:270;12430:7;12420:8;12417:21;12409:270;;;12489:4;12485:1;12481:6;12477:17;12471:4;12468:27;12465:53;;;12498:18;;:::i;:::-;12548:7;12538:8;12534:22;12531:55;;;12568:16;;;;12531:55;12647:22;;;;12607:15;;;;12409:270;;;12413:3;12263:422;;;;;:::o;12690:806::-;12739:5;12769:8;12759:80;;-1:-1:-1;12810:1:1;12824:5;;12759:80;12858:4;12848:76;;-1:-1:-1;12895:1:1;12909:5;;12848:76;12940:4;12958:1;12953:59;;;;13026:1;13021:130;;;;12933:218;;12953:59;12983:1;12974:10;;12997:5;;;13021:130;13058:3;13048:8;13045:17;13042:43;;;13065:18;;:::i;:::-;-1:-1:-1;;13121:1:1;13107:16;;13136:5;;12933:218;;13235:2;13225:8;13222:16;13216:3;13210:4;13207:13;13203:36;13197:2;13187:8;13184:16;13179:2;13173:4;13170:12;13166:35;13163:77;13160:159;;;-1:-1:-1;13272:19:1;;;13304:5;;13160:159;13351:34;13376:8;13370:4;13351:34;:::i;:::-;13421:6;13417:1;13413:6;13409:19;13400:7;13397:32;13394:58;;;13432:18;;:::i;:::-;13470:20;;12690:806;-1:-1:-1;;;12690:806:1:o;13501:140::-;13559:5;13588:47;13629:4;13619:8;13615:19;13609:4;13588:47;:::i;13646:168::-;13686:7;13752:1;13748;13744:6;13740:14;13737:1;13734:21;13729:1;13722:9;13715:17;13711:45;13708:71;;;13759:18;;:::i;:::-;-1:-1:-1;13799:9:1;;13646:168::o;19190:251::-;19260:6;19313:2;19301:9;19292:7;19288:23;19284:32;19281:52;;;19329:1;19326;19319:12;19281:52;19361:9;19355:16;19380:31;19405:5;19380:31;:::i;19446:980::-;19708:4;19756:3;19745:9;19741:19;19787:6;19776:9;19769:25;19813:2;19851:6;19846:2;19835:9;19831:18;19824:34;19894:3;19889:2;19878:9;19874:18;19867:31;19918:6;19953;19947:13;19984:6;19976;19969:22;20022:3;20011:9;20007:19;20000:26;;20061:2;20053:6;20049:15;20035:29;;20082:1;20092:195;20106:6;20103:1;20100:13;20092:195;;;20171:13;;-1:-1:-1;;;;;20167:39:1;20155:52;;20262:15;;;;20227:12;;;;20203:1;20121:9;20092:195;;;-1:-1:-1;;;;;;;20343:32:1;;;;20338:2;20323:18;;20316:60;-1:-1:-1;;;20407:3:1;20392:19;20385:35;20304:3;19446:980;-1:-1:-1;;;19446:980:1:o;21043:306::-;21131:6;21139;21147;21200:2;21188:9;21179:7;21175:23;21171:32;21168:52;;;21216:1;21213;21206:12;21168:52;21245:9;21239:16;21229:26;;21295:2;21284:9;21280:18;21274:25;21264:35;;21339:2;21328:9;21324:18;21318:25;21308:35;;21043:306;;;;;:::o
Swarm Source
ipfs://00e3f6a16903dfa30b79e5a7f8de926dfb82ba09b32158cab599cf4cf573ce6e