Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 $LMN
Holders
6
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
LunaMoon
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-05-24 */ /* Join us at : https://t.me/LunaMoonPortal Together we will moon! */ // SPDX-License-Identifier: MIT pragma solidity 0.8.10; interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IdexFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IdexRouter { 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; function factory() external pure returns (address); function WETH() external pure returns (address); } abstract contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = msg.sender; _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(owner() == msg.sender, "Ownable: caller is not the owner"); _; } function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract LunaMoon is IERC20, Ownable { //mapping mapping (address => uint) private _balances; mapping (address => mapping (address => uint)) private _allowances; mapping(address => bool) private excludedFromLimits; mapping(address => bool) public excludedFromFees; mapping(address=>bool) public isPair; mapping (address => bool) public isBlacklisted; //strings string private constant _name = 'Luna Moon'; string private constant _symbol = '$LMN'; //uints uint private constant DefaultLiquidityLockTime=7 days; uint public constant InitialSupply= 10**8 * 10**_decimals; uint public _circulatingSupply =InitialSupply; uint public buyTax = 10; uint public sellTax = 10; uint public transferTax = 100; uint public liquidityTax=100; uint public projectTax=900; uint constant TAX_DENOMINATOR=1000; uint constant MAXTAXDENOMINATOR=10; uint public swapTreshold=10; uint public overLiquifyTreshold=30; uint private LaunchBlock; uint _liquidityUnlockTime; uint8 private constant _decimals = 18; uint256 public maxTransactionAmount; uint256 public maxWalletBalance; IdexRouter private _dexRouter; //addresses address private dexRouter=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address private _dexPairAddress; address constant deadWallet = 0x000000000000000000000000000000000000dEaD; address payable public projectWallet; //modifiers modifier lockTheSwap { _isSwappingContractModifier = true; _; _isSwappingContractModifier = false; } //bools bool private _isSwappingContractModifier; bool public blacklistMode = true; bool public manualSwap; bool public LPReleaseLimitedTo20Percent; //events event BlacklistStatusChange(bool status); event UpdateProjectWallet(address _address); event SwapThresholdChange(uint threshold); event OverLiquifiedThresholdChange(uint threshold); event OnSetTaxes(uint buy, uint sell, uint transfer_, uint project,uint liquidity); event ManualSwapChange(bool status); event MaxWalletBalanceUpdated(uint256 percent); event MaxTransactionAmountUpdated(uint256 percent); event ExcludeAccount(address account, bool exclude); event ExcludeFromLimits(address account, bool exclude); event OwnerSwap(); event OnEnableTrading(); event OnProlongLPLock(uint UnlockTimestamp); event OnReleaseLP(); event RecoverETH(); event BlacklistUpdated(); event NewPairSet(address Pair, bool Add); event Release20PercentLP(); event NewRouterSet(address _newdex); event RecoverTokens(uint256 amount); constructor () { uint deployerBalance=_circulatingSupply; _balances[msg.sender] = deployerBalance; emit Transfer(address(0), msg.sender, deployerBalance); _dexRouter = IdexRouter(dexRouter); _dexPairAddress = IdexFactory(_dexRouter.factory()).createPair(address(this), _dexRouter.WETH()); isPair[_dexPairAddress]=true; projectWallet = payable(0xbE522E8C1c4ab6Cc8EEE9f77BF1e460515757029); excludedFromFees[msg.sender]=true; excludedFromFees[dexRouter]=true; excludedFromFees[address(this)]=true; excludedFromFees[projectWallet]=true; excludedFromLimits[projectWallet] = true; excludedFromLimits[msg.sender] = true; excludedFromLimits[deadWallet] = true; excludedFromLimits[address(this)] = true; } function enable_blacklist(bool _status) public onlyOwner { blacklistMode = _status; emit BlacklistStatusChange (_status); } function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner { for (uint256 i; i < addresses.length; ++i) { isBlacklisted[addresses[i]] = status; } emit BlacklistUpdated(); } function ChangeProjectWallet(address newAddress) public onlyOwner{ projectWallet=payable(newAddress); excludedFromFees[newAddress] = true; excludedFromLimits[newAddress] = true; emit UpdateProjectWallet(newAddress); } function _transfer(address sender, address recipient, uint amount) private{ require(sender != address(0), "Transfer from zero"); require(recipient != address(0), "Transfer to zero"); if(blacklistMode){ require(!isBlacklisted[sender] && !isBlacklisted[recipient],"Blacklisted"); } if(excludedFromFees[sender] || excludedFromFees[recipient]) _feelessTransfer(sender, recipient, amount); else { require(LaunchBlock>0,"trading not yet enabled"); _taxedTransfer(sender,recipient,amount); } } function _taxedTransfer(address sender, address recipient, uint amount) private{ uint senderBalance = _balances[sender]; require(senderBalance >= amount, "Transfer exceeds balance"); bool excludedAccount = excludedFromLimits[sender] || excludedFromLimits[recipient]; if ( isPair[sender] && !excludedAccount ) { require( amount <= maxTransactionAmount, "Transfer amount exceeds the maxTxAmount." ); uint256 contractBalanceRecepient = balanceOf(recipient); require( contractBalanceRecepient + amount <= maxWalletBalance, "Exceeds maximum wallet token amount." ); } else if ( isPair[recipient] && !excludedAccount ) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxSellTransactionAmount."); } bool isBuy=isPair[sender]; bool isSell=isPair[recipient]; uint tax; if(isSell){ uint SellTaxDuration=15; if(block.number<LaunchBlock+SellTaxDuration){ tax=400; }else tax=sellTax; } else if(isBuy){ uint BuyTaxDuration=3; if(block.number<LaunchBlock+BuyTaxDuration){ tax=999; }else tax=buyTax; } else tax=transferTax; if((sender!=_dexPairAddress)&&(!manualSwap)&&(!_isSwappingContractModifier)) _swapContractToken(false); uint contractToken=_calculateFee(amount, tax, projectTax+liquidityTax); uint taxedAmount=amount-contractToken; _balances[sender]-=amount; _balances[address(this)] += contractToken; _balances[recipient]+=taxedAmount; emit Transfer(sender,recipient,taxedAmount); } function _calculateFee(uint amount, uint tax, uint taxPercent) private pure returns (uint) { return (amount*tax*taxPercent) / (TAX_DENOMINATOR*TAX_DENOMINATOR); } function _feelessTransfer(address sender, address recipient, uint amount) private{ uint senderBalance = _balances[sender]; require(senderBalance >= amount, "Transfer exceeds balance"); _balances[sender]-=amount; _balances[recipient]+=amount; emit Transfer(sender,recipient,amount); } function setSwapTreshold(uint newSwapTresholdPermille) public onlyOwner{ require(newSwapTresholdPermille<=10);//MaxTreshold= 1% swapTreshold=newSwapTresholdPermille; emit SwapThresholdChange(newSwapTresholdPermille); } function SetOverLiquifiedTreshold(uint newOverLiquifyTresholdPermille) public onlyOwner{ require(newOverLiquifyTresholdPermille<=1000); overLiquifyTreshold=newOverLiquifyTresholdPermille; emit OverLiquifiedThresholdChange(newOverLiquifyTresholdPermille); } function SetTaxes(uint buy, uint sell, uint transfer_, uint project,uint liquidity) public onlyOwner{ uint maxTax=400; require(buy<=maxTax&&sell<=maxTax&&transfer_<=maxTax,"Tax exceeds maxTax"); require(project+liquidity==TAX_DENOMINATOR,"Taxes don't add up to denominator"); buyTax=buy; sellTax=sell; transferTax=transfer_; projectTax=project; liquidityTax=liquidity; emit OnSetTaxes(buy, sell, transfer_, project,liquidity); } function isOverLiquified() public view returns(bool){ return _balances[_dexPairAddress]>_circulatingSupply*overLiquifyTreshold/1000; } function _swapContractToken(bool ignoreLimits) private lockTheSwap{ uint contractBalance=_balances[address(this)]; uint totalTax=liquidityTax+projectTax; uint tokenToSwap=_balances[_dexPairAddress]*swapTreshold/1000; if(totalTax==0)return; if(ignoreLimits) tokenToSwap=_balances[address(this)]; else if(contractBalance<tokenToSwap) return; uint tokenForLiquidity=isOverLiquified()?0:(tokenToSwap*liquidityTax)/totalTax; uint tokenForProject= tokenToSwap-tokenForLiquidity; uint LiqHalf=tokenForLiquidity/2; uint swapToken=LiqHalf+tokenForProject; uint initialETHBalance = address(this).balance; _swapTokenForETH(swapToken); uint newETH=(address(this).balance - initialETHBalance); if(tokenForLiquidity>0){ uint liqETH = (newETH*LiqHalf)/swapToken; _addLiquidity(LiqHalf, liqETH); } (bool sent,)=projectWallet.call{value:address(this).balance}(""); sent=true; } function _swapTokenForETH(uint amount) private { _approve(address(this), address(_dexRouter), amount); address[] memory path = new address[](2); path[0] = address(this); path[1] = _dexRouter.WETH(); try _dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, path, address(this), block.timestamp ){} catch{} } function _addLiquidity(uint tokenamount, uint ETHamount) private { _approve(address(this), address(_dexRouter), tokenamount); _dexRouter.addLiquidityETH{value: ETHamount}( address(this), tokenamount, 0, 0, address(this), block.timestamp ); } function getLiquidityReleaseTimeInSeconds() public view returns (uint){ if(block.timestamp<_liquidityUnlockTime) return _liquidityUnlockTime-block.timestamp; return 0; } function getBurnedTokens() public view returns(uint){ return (InitialSupply-_circulatingSupply)+_balances[address(0xdead)]; } function SetPair(address Pair, bool Add) public onlyOwner{ require(Pair!=_dexPairAddress,"can't change pancake"); isPair[Pair]=Add; emit NewPairSet(Pair,Add); } function SwitchManualSwap(bool manual) public onlyOwner{ manualSwap=manual; emit ManualSwapChange(manual); } function SwapContractToken() public onlyOwner{ _swapContractToken(true); emit OwnerSwap(); } function SetNewRouter(address _newdex) public onlyOwner{ dexRouter = _newdex; emit NewRouterSet(_newdex); } function setMaxWalletBalancePercent(uint256 percent) external onlyOwner { require(percent >= 10, "min 1%"); require(percent <= 1000, "max 100%"); maxWalletBalance = InitialSupply * percent / 1000; emit MaxWalletBalanceUpdated(percent); } function setMaxTransactionAmount(uint256 percent) public onlyOwner { require(percent >= 25, "min 0.25%"); require(percent <= 10000, "max 100%"); maxTransactionAmount = InitialSupply * percent / 10000; emit MaxTransactionAmountUpdated(percent); } function ExcludeAccountFromFees(address account, bool exclude) public onlyOwner{ require(account!=address(this),"can't Include the contract"); excludedFromFees[account]=exclude; emit ExcludeAccount(account,exclude); } function setExcludedAccountFromLimits(address account, bool exclude) public onlyOwner{ excludedFromLimits[account]=exclude; emit ExcludeFromLimits(account,exclude); } function isExcludedFromLimits(address account) public view returns(bool) { return excludedFromLimits[account]; } function SetupEnableTrading() public onlyOwner{ require(LaunchBlock==0,"AlreadyLaunched"); LaunchBlock=block.number; maxWalletBalance = InitialSupply * 50 / 1000; maxTransactionAmount = InitialSupply * 500 / 10000; emit OnEnableTrading(); } function limitLiquidityReleaseTo20Percent() public onlyOwner{ LPReleaseLimitedTo20Percent=true; emit Release20PercentLP(); } function LockLiquidityForSeconds(uint secondsUntilUnlock) public onlyOwner{ _prolongLiquidityLock(secondsUntilUnlock+block.timestamp); } function _prolongLiquidityLock(uint newUnlockTime) private{ require(newUnlockTime>_liquidityUnlockTime); _liquidityUnlockTime=newUnlockTime; emit OnProlongLPLock(_liquidityUnlockTime); } function LiquidityRelease() public onlyOwner { require(block.timestamp >= _liquidityUnlockTime, "Not yet unlocked"); IERC20 liquidityToken = IERC20(_dexPairAddress); uint amount = liquidityToken.balanceOf(address(this)); if(LPReleaseLimitedTo20Percent) { _liquidityUnlockTime=block.timestamp+DefaultLiquidityLockTime; amount=amount*2/10; } liquidityToken.transfer(msg.sender, amount); emit OnReleaseLP(); } receive() external payable {} function getOwner() external view override returns (address) { return owner(); } function name() external pure override returns (string memory) { return _name; } function symbol() external pure override returns (string memory) { return _symbol; } function decimals() external pure override returns (uint8) { return _decimals; } function totalSupply() external view override returns (uint) { return _circulatingSupply; } function balanceOf(address account) public view override returns (uint) { return _balances[account]; } function transfer(address recipient, uint amount) external override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function allowance(address _owner, address spender) external view override returns (uint) { return _allowances[_owner][spender]; } function approve(address spender, uint amount) external override returns (bool) { _approve(msg.sender, spender, amount); return true; } function _approve(address owner, address spender, uint amount) private { require(owner != address(0), "Approve from zero"); require(spender != address(0), "Approve to zero"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function transferFrom(address sender, address recipient, uint amount) external override returns (bool) { _transfer(sender, recipient, amount); uint currentAllowance = _allowances[sender][msg.sender]; require(currentAllowance >= amount, "Transfer > allowance"); _approve(sender, msg.sender, currentAllowance - amount); return true; } function increaseAllowance(address spender, uint addedValue) external returns (bool) { _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint subtractedValue) external returns (bool) { uint currentAllowance = _allowances[msg.sender][spender]; require(currentAllowance >= subtractedValue, "<0 allowance"); _approve(msg.sender, spender, currentAllowance - subtractedValue); return true; } function emergencyETHrecovery(uint256 amountPercentage) external onlyOwner { uint256 amountETH = address(this).balance; payable(msg.sender).transfer(amountETH * amountPercentage / 100); emit RecoverETH(); } function withdrawContractToken(uint256 _amount) external onlyOwner { IERC20 tokenContract = IERC20(address(this)); tokenContract.transfer(msg.sender, _amount); emit RecoverTokens(_amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"BlacklistStatusChange","type":"event"},{"anonymous":false,"inputs":[],"name":"BlacklistUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeFromLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"ManualSwapChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"}],"name":"MaxTransactionAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"percent","type":"uint256"}],"name":"MaxWalletBalanceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Pair","type":"address"},{"indexed":false,"internalType":"bool","name":"Add","type":"bool"}],"name":"NewPairSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_newdex","type":"address"}],"name":"NewRouterSet","type":"event"},{"anonymous":false,"inputs":[],"name":"OnEnableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"UnlockTimestamp","type":"uint256"}],"name":"OnProlongLPLock","type":"event"},{"anonymous":false,"inputs":[],"name":"OnReleaseLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sell","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"transfer_","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"project","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"OnSetTaxes","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"OverLiquifiedThresholdChange","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnerSwap","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":[],"name":"RecoverETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RecoverTokens","type":"event"},{"anonymous":false,"inputs":[],"name":"Release20PercentLP","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"SwapThresholdChange","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":"_address","type":"address"}],"name":"UpdateProjectWallet","type":"event"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"ChangeProjectWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"ExcludeAccountFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"InitialSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LPReleaseLimitedTo20Percent","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LiquidityRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"secondsUntilUnlock","type":"uint256"}],"name":"LockLiquidityForSeconds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newdex","type":"address"}],"name":"SetNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newOverLiquifyTresholdPermille","type":"uint256"}],"name":"SetOverLiquifiedTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"Pair","type":"address"},{"internalType":"bool","name":"Add","type":"bool"}],"name":"SetPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"transfer_","type":"uint256"},{"internalType":"uint256","name":"project","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"SetTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SetupEnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"SwapContractToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"manual","type":"bool"}],"name":"SwitchManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"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":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","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":"uint256","name":"amountPercentage","type":"uint256"}],"name":"emergencyETHrecovery","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBurnedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLiquidityReleaseTimeInSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitLiquidityReleaseTo20Percent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","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":"overLiquifyTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exclude","type":"bool"}],"name":"setExcludedAccountFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxTransactionAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxWalletBalancePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapTresholdPermille","type":"uint256"}],"name":"setSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTreshold","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawContractToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126012600a620004b4565b62000022906305f5e100620004cc565b600755600a600881905560098190556064808255600b55610384600c55600d55601e600e55601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556016805460ff60a81b1916600160a81b1790553480156200008d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754336000818152600160209081526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3601454601380546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000173573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001999190620004ee565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002229190620004ee565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000270573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002969190620004ee565b601580546001600160a01b039283166001600160a01b031991821681179092556000918252600560209081526040808420805460ff1990811660019081179092556016805490951673be522e8c1c4ab6cc8eee9f77bf1e460515757029178555338087526004855283872080548316841790556014548816875283872080548316841790553080885284882080548416851790558654891688528488208054841685179055955490971686526003909352818520805484168217905594845280842080548316861790557f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c80548316861790559183529120805490911690911790555062000519565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003f6578160001904821115620003da57620003da6200039f565b80851615620003e857918102915b93841c9390800290620003ba565b509250929050565b6000826200040f57506001620004ae565b816200041e57506000620004ae565b8160018114620004375760028114620004425762000462565b6001915050620004ae565b60ff8411156200045657620004566200039f565b50506001821b620004ae565b5060208310610133831016604e8410600b841016171562000487575081810a620004ae565b620004938383620003b5565b8060001904821115620004aa57620004aa6200039f565b0290505b92915050565b6000620004c560ff841683620003fe565b9392505050565b6000816000190483118215151615620004e957620004e96200039f565b500290565b6000602082840312156200050157600080fd5b81516001600160a01b0381168114620004c557600080fd5b61301080620005296000396000f3fe60806040526004361061037a5760003560e01c806395d89b41116101d1578063c3f4f54f11610102578063e0d2f9eb116100a0578063f40a563a1161006f578063f40a563a14610a29578063f7942b6314610a49578063fcd4d50514610a69578063fe575a8714610a8957600080fd5b8063e0d2f9eb146109a3578063e52fb9ec146109c3578063e5e31b13146109d9578063f2fde38b14610a0957600080fd5b8063cfd1940e116100dc578063cfd1940e146108f7578063d24cd3ec14610917578063dbe66ca01461092d578063dd62ed3e1461095d57600080fd5b8063c3f4f54f146108b6578063c8c8ebe4146108cb578063cc1776d3146108e157600080fd5b8063a9059cbb1161016f578063bc43d84911610149578063bc43d8491461084b578063be617fa01461086b578063beb08ab914610881578063c3a3c032146108a157600080fd5b8063a9059cbb146107f5578063baa88ea914610815578063bbde77c11461083557600080fd5b80639ef7e723116101ab5780639ef7e7231461078a578063a253c06e146107aa578063a457c2d7146107c0578063a68bdac7146107e057600080fd5b806395d89b411461071c57806397e78f35146107495780639b39b65f1461076957600080fd5b806346e35f03116102ab5780637b9e987a11610249578063893d20e811610223578063893d20e81461068b578063896648c1146106bd5780638da5cb5b146106de5780638e2eee84146106fc57600080fd5b80637b9e987a146106405780638124f7ac14610655578063868b01411461066b57600080fd5b80635cce86cd116102855780635cce86cd1461059c5780635e562f3b146105d557806370a08231146105f5578063715018a61461062b57600080fd5b806346e35f03146105505780634f7041a51461056557806351bc3c851461057b57600080fd5b80631eb25d1311610318578063313ce567116102f2578063313ce567146104df5780633227925f146104fb578063395093511461051b57806341aec3571461053b57600080fd5b80631eb25d131461048a57806323b872dd1461049f5780632c92293c146104bf57600080fd5b8063095ea7b311610354578063095ea7b3146104015780630eff4c641461043157806318160ddd146104555780631e293c101461046a57600080fd5b80630612f39d14610386578063065f4b411461039d57806306fdde03146103bd57600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039b610ab9565b005b3480156103a957600080fd5b5061039b6103b8366004612aa2565b610c8f565b3480156103c957600080fd5b50604080518082019091526009815268263ab7309026b7b7b760b91b60208201525b6040516103f89190612abb565b60405180910390f35b34801561040d57600080fd5b5061042161041c366004612b25565b610d39565b60405190151581526020016103f8565b34801561043d57600080fd5b50610447600e5481565b6040519081526020016103f8565b34801561046157600080fd5b50600754610447565b34801561047657600080fd5b5061039b610485366004612aa2565b610d50565b34801561049657600080fd5b50610447610e6f565b3480156104ab57600080fd5b506104216104ba366004612b51565b610e8c565b3480156104cb57600080fd5b5061039b6104da366004612aa2565b610f23565b3480156104eb57600080fd5b50604051601281526020016103f8565b34801561050757600080fd5b5061039b610516366004612aa2565b611038565b34801561052757600080fd5b50610421610536366004612b25565b611086565b34801561054757600080fd5b5061039b6110bd565b34801561055c57600080fd5b5061042161112b565b34801561057157600080fd5b5061044760085481565b34801561058757600080fd5b5060165461042190600160b01b900460ff1681565b3480156105a857600080fd5b506104216105b7366004612b92565b6001600160a01b031660009081526003602052604090205460ff1690565b3480156105e157600080fd5b5061039b6105f0366004612bc4565b61116b565b34801561060157600080fd5b50610447610610366004612b92565b6001600160a01b031660009081526001602052604090205490565b34801561063757600080fd5b5061039b6111f1565b34801561064c57600080fd5b5061039b611274565b34801561066157600080fd5b50610447600a5481565b34801561067757600080fd5b5061039b610686366004612bc4565b61138b565b34801561069757600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103f8565b3480156106c957600080fd5b5060165461042190600160a81b900460ff1681565b3480156106ea57600080fd5b506000546001600160a01b03166106a5565b34801561070857600080fd5b5061039b610717366004612be1565b611416565b34801561072857600080fd5b50604080518082019091526004815263122626a760e11b60208201526103eb565b34801561075557600080fd5b5061039b610764366004612b92565b6114ed565b34801561077557600080fd5b5060165461042190600160b81b900460ff1681565b34801561079657600080fd5b5061039b6107a5366004612aa2565b611574565b3480156107b657600080fd5b5061044760075481565b3480156107cc57600080fd5b506104216107db366004612b25565b611650565b3480156107ec57600080fd5b5061039b6116cc565b34801561080157600080fd5b50610421610810366004612b25565b611743565b34801561082157600080fd5b5061039b610830366004612c67565b611750565b34801561084157600080fd5b5061044760125481565b34801561085757600080fd5b5061039b610866366004612aa2565b6118bd565b34801561087757600080fd5b50610447600b5481565b34801561088d57600080fd5b506016546106a5906001600160a01b031681565b3480156108ad57600080fd5b5061044761193a565b3480156108c257600080fd5b5061044761195a565b3480156108d757600080fd5b5061044760115481565b3480156108ed57600080fd5b5061044760095481565b34801561090357600080fd5b5061039b610912366004612aa2565b6119ba565b34801561092357600080fd5b50610447600c5481565b34801561093957600080fd5b50610421610948366004612b92565b60046020526000908152604090205460ff1681565b34801561096957600080fd5b50610447610978366004612ca2565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156109af57600080fd5b5061039b6109be366004612cdb565b611a36565b3480156109cf57600080fd5b50610447600d5481565b3480156109e557600080fd5b506104216109f4366004612b92565b60056020526000908152604090205460ff1681565b348015610a1557600080fd5b5061039b610a24366004612b92565b611b24565b348015610a3557600080fd5b5061039b610a44366004612cdb565b611c1d565b348015610a5557600080fd5b5061039b610a64366004612cdb565b611d07565b348015610a7557600080fd5b5061039b610a84366004612b92565b611d9c565b348015610a9557600080fd5b50610421610aa4366004612b92565b60066020526000908152604090205460ff1681565b33610acc6000546001600160a01b031690565b6001600160a01b031614610afb5760405162461bcd60e51b8152600401610af290612d09565b60405180910390fd5b601054421015610b405760405162461bcd60e51b815260206004820152601060248201526f139bdd081e595d081d5b9b1bd8dad95960821b6044820152606401610af2565b6015546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a0823190602401602060405180830381865afa158015610b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb19190612d3e565b601654909150600160b81b900460ff1615610bf057610bd362093a8042612d6d565b601055600a610be3826002612d85565b610bed9190612da4565b90505b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c619190612dc6565b506040517f28bacca46f5c57fe13623e9d5093cb2fab892814aca9b39384ab86550d9aa67590600090a15050565b33610ca26000546001600160a01b031690565b6001600160a01b031614610cc85760405162461bcd60e51b8152600401610af290612d09565b47336108fc6064610cd98585612d85565b610ce39190612da4565b6040518115909202916000818181858888f19350505050158015610d0b573d6000803e3d6000fd5b506040517fbfeaf8c13ada34fe89b506c8975a67daaf69c220fef97229c731f6cf3b3e741e90600090a15050565b6000610d46338484611e52565b5060015b92915050565b33610d636000546001600160a01b031690565b6001600160a01b031614610d895760405162461bcd60e51b8152600401610af290612d09565b6019811015610dc65760405162461bcd60e51b81526020600482015260096024820152686d696e20302e32352560b81b6044820152606401610af2565b612710811115610e035760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610af2565b61271081610e136012600a612ec7565b610e21906305f5e100612d85565b610e2b9190612d85565b610e359190612da4565b6011556040518181527f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac906020015b60405180910390a150565b610e7b6012600a612ec7565b610e89906305f5e100612d85565b81565b6000610e99848484611f45565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610f045760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610af2565b610f188533610f138685612ed6565b611e52565b506001949350505050565b33610f366000546001600160a01b031690565b6001600160a01b031614610f5c5760405162461bcd60e51b8152600401610af290612d09565b600a811015610f965760405162461bcd60e51b81526020600482015260066024820152656d696e20312560d01b6044820152606401610af2565b6103e8811115610fd35760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610af2565b6103e881610fe36012600a612ec7565b610ff1906305f5e100612d85565b610ffb9190612d85565b6110059190612da4565b6012556040518181527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a9990602001610e64565b3361104b6000546001600160a01b031690565b6001600160a01b0316146110715760405162461bcd60e51b8152600401610af290612d09565b61108361107e4283612d6d565b612118565b50565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610d46918590610f13908690612d6d565b336110d06000546001600160a01b031690565b6001600160a01b0316146110f65760405162461bcd60e51b8152600401610af290612d09565b611100600161215b565b6040517f703db25eb5fd328335fc797436bbbbd25d5575588bd991102facd962c4d41b9290600090a1565b60006103e8600e546007546111409190612d85565b61114a9190612da4565b6015546001600160a01b031660009081526001602052604090205411919050565b3361117e6000546001600160a01b031690565b6001600160a01b0316146111a45760405162461bcd60e51b8152600401610af290612d09565b60168054821515600160a81b0260ff60a81b199091161790556040517fecfaacf5e291e532c372363b39be86acbee05e57acb4ff67acceb0c7110a7bc090610e6490831515815260200190565b336112046000546001600160a01b031690565b6001600160a01b03161461122a5760405162461bcd60e51b8152600401610af290612d09565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336112876000546001600160a01b031690565b6001600160a01b0316146112ad5760405162461bcd60e51b8152600401610af290612d09565b600f54156112ef5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610af2565b43600f556103e86113026012600a612ec7565b611310906305f5e100612d85565b61131b906032612d85565b6113259190612da4565b60129081556127109061133990600a612ec7565b611347906305f5e100612d85565b611353906101f4612d85565b61135d9190612da4565b6011556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b3361139e6000546001600160a01b031690565b6001600160a01b0316146113c45760405162461bcd60e51b8152600401610af290612d09565b60168054821515600160b01b0260ff60b01b199091161790556040517f3db17fb4d29ca5a33dc4750f7205263855fb8b82cc89d6c418a04b60f58b429d90610e6490831515815260200190565b905090565b336114296000546001600160a01b031690565b6001600160a01b03161461144f5760405162461bcd60e51b8152600401610af290612d09565b60005b828110156114be57816006600086868581811061147157611471612eed565b90506020020160208101906114869190612b92565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556114b781612f03565b9050611452565b506040517f890e6981f892b367aea9f0b31589753714df5ee88d6dde2c0ddaffce7b9915d990600090a1505050565b336115006000546001600160a01b031690565b6001600160a01b0316146115265760405162461bcd60e51b8152600401610af290612d09565b601480546001600160a01b0319166001600160a01b0383169081179091556040519081527f117661539ed67d391940fa7b78853c234b4e9a40d616d75923ae8db26672833a90602001610e64565b336115876000546001600160a01b031690565b6001600160a01b0316146115ad5760405162461bcd60e51b8152600401610af290612d09565b60405163a9059cbb60e01b8152336004820152602481018290523090819063a9059cbb906044016020604051808303816000875af11580156115f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116179190612dc6565b506040518281527f567295618043fa7c5a9781a71d338407d59e2f8f20079734425da602e2ce9c22906020015b60405180910390a15050565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156116b35760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610af2565b6116c23385610f138685612ed6565b5060019392505050565b336116df6000546001600160a01b031690565b6001600160a01b0316146117055760405162461bcd60e51b8152600401610af290612d09565b6016805460ff60b81b1916600160b81b1790556040517f6ea46eef5c8fc4ad72144e672cadd89b6d28bc14a84977fea8bfe0ac63c1194090600090a1565b6000610d46338484611f45565b336117636000546001600160a01b031690565b6001600160a01b0316146117895760405162461bcd60e51b8152600401610af290612d09565b61019080861180159061179c5750808511155b80156117a85750808411155b6117e95760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610af2565b6103e86117f68385612d6d565b1461184d5760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610af2565b60088690556009859055600a849055600c839055600b829055604080518781526020810187905290810185905260608101849052608081018390527f07d167ef63e413076f3e7e19f733b66f7ab5fd83fd7b437428f115315687ef6e9060a00160405180910390a1505050505050565b336118d06000546001600160a01b031690565b6001600160a01b0316146118f65760405162461bcd60e51b8152600401610af290612d09565b6103e881111561190557600080fd5b600e8190556040518181527fa072eee57b8e01913ba01eab29d8a81117cf780e6c8984a3494477ce9cee846d90602001610e64565b600060105442101561195457426010546114119190612ed6565b50600090565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d546007546119986012600a612ec7565b6119a6906305f5e100612d85565b6119b09190612ed6565b6114119190612d6d565b336119cd6000546001600160a01b031690565b6001600160a01b0316146119f35760405162461bcd60e51b8152600401610af290612d09565b600a811115611a0157600080fd5b600d8190556040518181527fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc90602001610e64565b33611a496000546001600160a01b031690565b6001600160a01b031614611a6f5760405162461bcd60e51b8152600401610af290612d09565b6001600160a01b038216301415611ac85760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610af2565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed49101611644565b33611b376000546001600160a01b031690565b6001600160a01b031614611b5d5760405162461bcd60e51b8152600401610af290612d09565b6001600160a01b038116611bc25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610af2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b33611c306000546001600160a01b031690565b6001600160a01b031614611c565760405162461bcd60e51b8152600401610af290612d09565b6015546001600160a01b0383811691161415611cab5760405162461bcd60e51b815260206004820152601460248201527363616e2774206368616e67652070616e63616b6560601b6044820152606401610af2565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f6765bb5e5ecad4581ce8f9322a9c218e75a54a7c4af6217752833adb834511ac9101611644565b33611d1a6000546001600160a01b031690565b6001600160a01b031614611d405760405162461bcd60e51b8152600401610af290612d09565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc929101611644565b33611daf6000546001600160a01b031690565b6001600160a01b031614611dd55760405162461bcd60e51b8152600401610af290612d09565b601680546001600160a01b0319166001600160a01b0383169081179091556000818152600460209081526040808320805460ff199081166001908117909255600384529382902080549094161790925590519182527fff20ffd61c4c2d0ef6c92012ece4838b24c79b10136ae047c42f9311e8be86a29101610e64565b6001600160a01b038316611e9c5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610af2565b6001600160a01b038216611ee45760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610af2565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611f905760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610af2565b6001600160a01b038216611fd95760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610af2565b601654600160a81b900460ff1615612067576001600160a01b03831660009081526006602052604090205460ff1615801561202d57506001600160a01b03821660009081526006602052604090205460ff16155b6120675760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610af2565b6001600160a01b03831660009081526004602052604090205460ff16806120a657506001600160a01b03821660009081526004602052604090205460ff165b156120bb576120b6838383612314565b505050565b6000600f541161210d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610af2565b6120b6838383612427565b601054811161212657600080fd5b60108190556040518181527f8ff9dc93846a022986f54e8f219a1fa780225726858e39e850da826852b4042e90602001610e64565b6016805460ff60a01b1916600160a01b17905530600090815260016020526040812054600c54600b549192916121919190612d6d565b600d546015546001600160a01b0316600090815260016020526040812054929350916103e8916121c091612d85565b6121ca9190612da4565b9050816121d957505050612304565b83156121f5575030600090815260016020526040902054612205565b8083101561220557505050612304565b600061220f61112b565b6122315782600b54836122229190612d85565b61222c9190612da4565b612234565b60005b905060006122428284612ed6565b90506000612251600284612da4565b9050600061225f8383612d6d565b90504761226b8261286d565b60006122778247612ed6565b905085156122a45760008361228c8684612d85565b6122969190612da4565b90506122a285826129bc565b505b6016546040516000916001600160a01b03169047908381818185875af1925050503d80600081146122f1576040519150601f19603f3d011682016040523d82523d6000602084013e6122f6565b606091505b505050505050505050505050505b506016805460ff60a01b19169055565b6001600160a01b038316600090815260016020526040902054818110156123785760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610af2565b6001600160a01b038416600090815260016020526040812080548492906123a0908490612ed6565b90915550506001600160a01b038316600090815260016020526040812080548492906123cd908490612d6d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161241991815260200190565b60405180910390a350505050565b6001600160a01b0383166000908152600160205260409020548181101561248b5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610af2565b6001600160a01b03841660009081526003602052604081205460ff16806124ca57506001600160a01b03841660009081526003602052604090205460ff165b6001600160a01b03861660009081526005602052604090205490915060ff1680156124f3575080155b156125e15760115483111561255b5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610af2565b6001600160a01b0384166000908152600160205260409020546012546125818583612d6d565b11156125db5760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610af2565b50612684565b6001600160a01b03841660009081526005602052604090205460ff168015612607575080155b15612684576011548311156126845760405162461bcd60e51b815260206004820152603a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d617853656c6c5472616e73616374696f6e416d6f756e742e0000000000006064820152608401610af2565b6001600160a01b0380861660009081526005602052604080822054928716825281205460ff92831692169081156126e157600f80546126c4908290612d6d565b4310156126d55761019091506126db565b60095491505b50612718565b821561271357600f546003906126f8908290612d6d565b431015612709576103e791506126db565b5050600854612718565b50600a545b6015546001600160a01b038981169116148015906127405750601654600160b01b900460ff16155b80156127565750601654600160a01b900460ff16155b1561276557612765600061215b565b60006127818783600b54600c5461277c9190612d6d565b612a6d565b9050600061278f8289612ed6565b6001600160a01b038b16600090815260016020526040812080549293508a929091906127bc908490612ed6565b909155505030600090815260016020526040812080548492906127e0908490612d6d565b90915550506001600160a01b0389166000908152600160205260408120805483929061280d908490612d6d565b92505081905550886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161285991815260200190565b60405180910390a350505050505050505050565b6013546128859030906001600160a01b031683611e52565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106128ba576128ba612eed565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129379190612f1e565b8160018151811061294a5761294a612eed565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac94790612990908590600090869030904290600401612f3b565b600060405180830381600087803b1580156129aa57600080fd5b505af19250505080156120b657505050565b6013546129d49030906001600160a01b031684611e52565b60135460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612a41573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a669190612fac565b5050505050565b6000612a7b6103e880612d85565b82612a868587612d85565b612a909190612d85565b612a9a9190612da4565b949350505050565b600060208284031215612ab457600080fd5b5035919050565b600060208083528351808285015260005b81811015612ae857858101830151858201604001528201612acc565b81811115612afa576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461108357600080fd5b60008060408385031215612b3857600080fd5b8235612b4381612b10565b946020939093013593505050565b600080600060608486031215612b6657600080fd5b8335612b7181612b10565b92506020840135612b8181612b10565b929592945050506040919091013590565b600060208284031215612ba457600080fd5b8135612baf81612b10565b9392505050565b801515811461108357600080fd5b600060208284031215612bd657600080fd5b8135612baf81612bb6565b600080600060408486031215612bf657600080fd5b833567ffffffffffffffff80821115612c0e57600080fd5b818601915086601f830112612c2257600080fd5b813581811115612c3157600080fd5b8760208260051b8501011115612c4657600080fd5b60209283019550935050840135612c5c81612bb6565b809150509250925092565b600080600080600060a08688031215612c7f57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612cb557600080fd5b8235612cc081612b10565b91506020830135612cd081612b10565b809150509250929050565b60008060408385031215612cee57600080fd5b8235612cf981612b10565b91506020830135612cd081612bb6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215612d5057600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612d8057612d80612d57565b500190565b6000816000190483118215151615612d9f57612d9f612d57565b500290565b600082612dc157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612dd857600080fd5b8151612baf81612bb6565b600181815b80851115612e1e578160001904821115612e0457612e04612d57565b80851615612e1157918102915b93841c9390800290612de8565b509250929050565b600082612e3557506001610d4a565b81612e4257506000610d4a565b8160018114612e585760028114612e6257612e7e565b6001915050610d4a565b60ff841115612e7357612e73612d57565b50506001821b610d4a565b5060208310610133831016604e8410600b8410161715612ea1575081810a610d4a565b612eab8383612de3565b8060001904821115612ebf57612ebf612d57565b029392505050565b6000612baf60ff841683612e26565b600082821015612ee857612ee8612d57565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612f1757612f17612d57565b5060010190565b600060208284031215612f3057600080fd5b8151612baf81612b10565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612f8b5784516001600160a01b031683529383019391830191600101612f66565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612fc157600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122049fe427c942d2857b5be03d160b0a9e2e8bf0cf288c93d616a717ace2805444364736f6c634300080a0033
Deployed Bytecode
0x60806040526004361061037a5760003560e01c806395d89b41116101d1578063c3f4f54f11610102578063e0d2f9eb116100a0578063f40a563a1161006f578063f40a563a14610a29578063f7942b6314610a49578063fcd4d50514610a69578063fe575a8714610a8957600080fd5b8063e0d2f9eb146109a3578063e52fb9ec146109c3578063e5e31b13146109d9578063f2fde38b14610a0957600080fd5b8063cfd1940e116100dc578063cfd1940e146108f7578063d24cd3ec14610917578063dbe66ca01461092d578063dd62ed3e1461095d57600080fd5b8063c3f4f54f146108b6578063c8c8ebe4146108cb578063cc1776d3146108e157600080fd5b8063a9059cbb1161016f578063bc43d84911610149578063bc43d8491461084b578063be617fa01461086b578063beb08ab914610881578063c3a3c032146108a157600080fd5b8063a9059cbb146107f5578063baa88ea914610815578063bbde77c11461083557600080fd5b80639ef7e723116101ab5780639ef7e7231461078a578063a253c06e146107aa578063a457c2d7146107c0578063a68bdac7146107e057600080fd5b806395d89b411461071c57806397e78f35146107495780639b39b65f1461076957600080fd5b806346e35f03116102ab5780637b9e987a11610249578063893d20e811610223578063893d20e81461068b578063896648c1146106bd5780638da5cb5b146106de5780638e2eee84146106fc57600080fd5b80637b9e987a146106405780638124f7ac14610655578063868b01411461066b57600080fd5b80635cce86cd116102855780635cce86cd1461059c5780635e562f3b146105d557806370a08231146105f5578063715018a61461062b57600080fd5b806346e35f03146105505780634f7041a51461056557806351bc3c851461057b57600080fd5b80631eb25d1311610318578063313ce567116102f2578063313ce567146104df5780633227925f146104fb578063395093511461051b57806341aec3571461053b57600080fd5b80631eb25d131461048a57806323b872dd1461049f5780632c92293c146104bf57600080fd5b8063095ea7b311610354578063095ea7b3146104015780630eff4c641461043157806318160ddd146104555780631e293c101461046a57600080fd5b80630612f39d14610386578063065f4b411461039d57806306fdde03146103bd57600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039b610ab9565b005b3480156103a957600080fd5b5061039b6103b8366004612aa2565b610c8f565b3480156103c957600080fd5b50604080518082019091526009815268263ab7309026b7b7b760b91b60208201525b6040516103f89190612abb565b60405180910390f35b34801561040d57600080fd5b5061042161041c366004612b25565b610d39565b60405190151581526020016103f8565b34801561043d57600080fd5b50610447600e5481565b6040519081526020016103f8565b34801561046157600080fd5b50600754610447565b34801561047657600080fd5b5061039b610485366004612aa2565b610d50565b34801561049657600080fd5b50610447610e6f565b3480156104ab57600080fd5b506104216104ba366004612b51565b610e8c565b3480156104cb57600080fd5b5061039b6104da366004612aa2565b610f23565b3480156104eb57600080fd5b50604051601281526020016103f8565b34801561050757600080fd5b5061039b610516366004612aa2565b611038565b34801561052757600080fd5b50610421610536366004612b25565b611086565b34801561054757600080fd5b5061039b6110bd565b34801561055c57600080fd5b5061042161112b565b34801561057157600080fd5b5061044760085481565b34801561058757600080fd5b5060165461042190600160b01b900460ff1681565b3480156105a857600080fd5b506104216105b7366004612b92565b6001600160a01b031660009081526003602052604090205460ff1690565b3480156105e157600080fd5b5061039b6105f0366004612bc4565b61116b565b34801561060157600080fd5b50610447610610366004612b92565b6001600160a01b031660009081526001602052604090205490565b34801561063757600080fd5b5061039b6111f1565b34801561064c57600080fd5b5061039b611274565b34801561066157600080fd5b50610447600a5481565b34801561067757600080fd5b5061039b610686366004612bc4565b61138b565b34801561069757600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103f8565b3480156106c957600080fd5b5060165461042190600160a81b900460ff1681565b3480156106ea57600080fd5b506000546001600160a01b03166106a5565b34801561070857600080fd5b5061039b610717366004612be1565b611416565b34801561072857600080fd5b50604080518082019091526004815263122626a760e11b60208201526103eb565b34801561075557600080fd5b5061039b610764366004612b92565b6114ed565b34801561077557600080fd5b5060165461042190600160b81b900460ff1681565b34801561079657600080fd5b5061039b6107a5366004612aa2565b611574565b3480156107b657600080fd5b5061044760075481565b3480156107cc57600080fd5b506104216107db366004612b25565b611650565b3480156107ec57600080fd5b5061039b6116cc565b34801561080157600080fd5b50610421610810366004612b25565b611743565b34801561082157600080fd5b5061039b610830366004612c67565b611750565b34801561084157600080fd5b5061044760125481565b34801561085757600080fd5b5061039b610866366004612aa2565b6118bd565b34801561087757600080fd5b50610447600b5481565b34801561088d57600080fd5b506016546106a5906001600160a01b031681565b3480156108ad57600080fd5b5061044761193a565b3480156108c257600080fd5b5061044761195a565b3480156108d757600080fd5b5061044760115481565b3480156108ed57600080fd5b5061044760095481565b34801561090357600080fd5b5061039b610912366004612aa2565b6119ba565b34801561092357600080fd5b50610447600c5481565b34801561093957600080fd5b50610421610948366004612b92565b60046020526000908152604090205460ff1681565b34801561096957600080fd5b50610447610978366004612ca2565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156109af57600080fd5b5061039b6109be366004612cdb565b611a36565b3480156109cf57600080fd5b50610447600d5481565b3480156109e557600080fd5b506104216109f4366004612b92565b60056020526000908152604090205460ff1681565b348015610a1557600080fd5b5061039b610a24366004612b92565b611b24565b348015610a3557600080fd5b5061039b610a44366004612cdb565b611c1d565b348015610a5557600080fd5b5061039b610a64366004612cdb565b611d07565b348015610a7557600080fd5b5061039b610a84366004612b92565b611d9c565b348015610a9557600080fd5b50610421610aa4366004612b92565b60066020526000908152604090205460ff1681565b33610acc6000546001600160a01b031690565b6001600160a01b031614610afb5760405162461bcd60e51b8152600401610af290612d09565b60405180910390fd5b601054421015610b405760405162461bcd60e51b815260206004820152601060248201526f139bdd081e595d081d5b9b1bd8dad95960821b6044820152606401610af2565b6015546040516370a0823160e01b81523060048201526001600160a01b039091169060009082906370a0823190602401602060405180830381865afa158015610b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb19190612d3e565b601654909150600160b81b900460ff1615610bf057610bd362093a8042612d6d565b601055600a610be3826002612d85565b610bed9190612da4565b90505b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610c3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c619190612dc6565b506040517f28bacca46f5c57fe13623e9d5093cb2fab892814aca9b39384ab86550d9aa67590600090a15050565b33610ca26000546001600160a01b031690565b6001600160a01b031614610cc85760405162461bcd60e51b8152600401610af290612d09565b47336108fc6064610cd98585612d85565b610ce39190612da4565b6040518115909202916000818181858888f19350505050158015610d0b573d6000803e3d6000fd5b506040517fbfeaf8c13ada34fe89b506c8975a67daaf69c220fef97229c731f6cf3b3e741e90600090a15050565b6000610d46338484611e52565b5060015b92915050565b33610d636000546001600160a01b031690565b6001600160a01b031614610d895760405162461bcd60e51b8152600401610af290612d09565b6019811015610dc65760405162461bcd60e51b81526020600482015260096024820152686d696e20302e32352560b81b6044820152606401610af2565b612710811115610e035760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610af2565b61271081610e136012600a612ec7565b610e21906305f5e100612d85565b610e2b9190612d85565b610e359190612da4565b6011556040518181527f7c1cb3702d8e1fa6d24b12dd90670ab69c6d66d58233103d37da8b07d6b850ac906020015b60405180910390a150565b610e7b6012600a612ec7565b610e89906305f5e100612d85565b81565b6000610e99848484611f45565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610f045760405162461bcd60e51b81526020600482015260146024820152735472616e73666572203e20616c6c6f77616e636560601b6044820152606401610af2565b610f188533610f138685612ed6565b611e52565b506001949350505050565b33610f366000546001600160a01b031690565b6001600160a01b031614610f5c5760405162461bcd60e51b8152600401610af290612d09565b600a811015610f965760405162461bcd60e51b81526020600482015260066024820152656d696e20312560d01b6044820152606401610af2565b6103e8811115610fd35760405162461bcd60e51b81526020600482015260086024820152676d6178203130302560c01b6044820152606401610af2565b6103e881610fe36012600a612ec7565b610ff1906305f5e100612d85565b610ffb9190612d85565b6110059190612da4565b6012556040518181527f9cbd2e55e2abf49d29273c1b9fb343c2828844b2aec156cfe2aec98ae1b72a9990602001610e64565b3361104b6000546001600160a01b031690565b6001600160a01b0316146110715760405162461bcd60e51b8152600401610af290612d09565b61108361107e4283612d6d565b612118565b50565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610d46918590610f13908690612d6d565b336110d06000546001600160a01b031690565b6001600160a01b0316146110f65760405162461bcd60e51b8152600401610af290612d09565b611100600161215b565b6040517f703db25eb5fd328335fc797436bbbbd25d5575588bd991102facd962c4d41b9290600090a1565b60006103e8600e546007546111409190612d85565b61114a9190612da4565b6015546001600160a01b031660009081526001602052604090205411919050565b3361117e6000546001600160a01b031690565b6001600160a01b0316146111a45760405162461bcd60e51b8152600401610af290612d09565b60168054821515600160a81b0260ff60a81b199091161790556040517fecfaacf5e291e532c372363b39be86acbee05e57acb4ff67acceb0c7110a7bc090610e6490831515815260200190565b336112046000546001600160a01b031690565b6001600160a01b03161461122a5760405162461bcd60e51b8152600401610af290612d09565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b336112876000546001600160a01b031690565b6001600160a01b0316146112ad5760405162461bcd60e51b8152600401610af290612d09565b600f54156112ef5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e53185d5b98da1959608a1b6044820152606401610af2565b43600f556103e86113026012600a612ec7565b611310906305f5e100612d85565b61131b906032612d85565b6113259190612da4565b60129081556127109061133990600a612ec7565b611347906305f5e100612d85565b611353906101f4612d85565b61135d9190612da4565b6011556040517f2cb945e0498987ef06dbd68025b0bc276116c63345296379c28a8e8f09b47dc190600090a1565b3361139e6000546001600160a01b031690565b6001600160a01b0316146113c45760405162461bcd60e51b8152600401610af290612d09565b60168054821515600160b01b0260ff60b01b199091161790556040517f3db17fb4d29ca5a33dc4750f7205263855fb8b82cc89d6c418a04b60f58b429d90610e6490831515815260200190565b905090565b336114296000546001600160a01b031690565b6001600160a01b03161461144f5760405162461bcd60e51b8152600401610af290612d09565b60005b828110156114be57816006600086868581811061147157611471612eed565b90506020020160208101906114869190612b92565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556114b781612f03565b9050611452565b506040517f890e6981f892b367aea9f0b31589753714df5ee88d6dde2c0ddaffce7b9915d990600090a1505050565b336115006000546001600160a01b031690565b6001600160a01b0316146115265760405162461bcd60e51b8152600401610af290612d09565b601480546001600160a01b0319166001600160a01b0383169081179091556040519081527f117661539ed67d391940fa7b78853c234b4e9a40d616d75923ae8db26672833a90602001610e64565b336115876000546001600160a01b031690565b6001600160a01b0316146115ad5760405162461bcd60e51b8152600401610af290612d09565b60405163a9059cbb60e01b8152336004820152602481018290523090819063a9059cbb906044016020604051808303816000875af11580156115f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116179190612dc6565b506040518281527f567295618043fa7c5a9781a71d338407d59e2f8f20079734425da602e2ce9c22906020015b60405180910390a15050565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156116b35760405162461bcd60e51b815260206004820152600c60248201526b3c3020616c6c6f77616e636560a01b6044820152606401610af2565b6116c23385610f138685612ed6565b5060019392505050565b336116df6000546001600160a01b031690565b6001600160a01b0316146117055760405162461bcd60e51b8152600401610af290612d09565b6016805460ff60b81b1916600160b81b1790556040517f6ea46eef5c8fc4ad72144e672cadd89b6d28bc14a84977fea8bfe0ac63c1194090600090a1565b6000610d46338484611f45565b336117636000546001600160a01b031690565b6001600160a01b0316146117895760405162461bcd60e51b8152600401610af290612d09565b61019080861180159061179c5750808511155b80156117a85750808411155b6117e95760405162461bcd60e51b81526020600482015260126024820152710a8c2f040caf0c6cacac8e640dac2f0a8c2f60731b6044820152606401610af2565b6103e86117f68385612d6d565b1461184d5760405162461bcd60e51b815260206004820152602160248201527f546178657320646f6e27742061646420757020746f2064656e6f6d696e61746f6044820152603960f91b6064820152608401610af2565b60088690556009859055600a849055600c839055600b829055604080518781526020810187905290810185905260608101849052608081018390527f07d167ef63e413076f3e7e19f733b66f7ab5fd83fd7b437428f115315687ef6e9060a00160405180910390a1505050505050565b336118d06000546001600160a01b031690565b6001600160a01b0316146118f65760405162461bcd60e51b8152600401610af290612d09565b6103e881111561190557600080fd5b600e8190556040518181527fa072eee57b8e01913ba01eab29d8a81117cf780e6c8984a3494477ce9cee846d90602001610e64565b600060105442101561195457426010546114119190612ed6565b50600090565b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d546007546119986012600a612ec7565b6119a6906305f5e100612d85565b6119b09190612ed6565b6114119190612d6d565b336119cd6000546001600160a01b031690565b6001600160a01b0316146119f35760405162461bcd60e51b8152600401610af290612d09565b600a811115611a0157600080fd5b600d8190556040518181527fc075380b8410207b8cc14f0d254ab8c8a6766469631275e4500db835a1ba02cc90602001610e64565b33611a496000546001600160a01b031690565b6001600160a01b031614611a6f5760405162461bcd60e51b8152600401610af290612d09565b6001600160a01b038216301415611ac85760405162461bcd60e51b815260206004820152601a60248201527f63616e277420496e636c7564652074686520636f6e74726163740000000000006044820152606401610af2565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fa22b25479919d4ac678f064a05daa1ee9c0adc3b8198942ea45255e364e04ed49101611644565b33611b376000546001600160a01b031690565b6001600160a01b031614611b5d5760405162461bcd60e51b8152600401610af290612d09565b6001600160a01b038116611bc25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610af2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b33611c306000546001600160a01b031690565b6001600160a01b031614611c565760405162461bcd60e51b8152600401610af290612d09565b6015546001600160a01b0383811691161415611cab5760405162461bcd60e51b815260206004820152601460248201527363616e2774206368616e67652070616e63616b6560601b6044820152606401610af2565b6001600160a01b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f6765bb5e5ecad4581ce8f9322a9c218e75a54a7c4af6217752833adb834511ac9101611644565b33611d1a6000546001600160a01b031690565b6001600160a01b031614611d405760405162461bcd60e51b8152600401610af290612d09565b6001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527f4b89c347592b1d537e066cb4ed98d87696ae35164745d7e370e4add16941dc929101611644565b33611daf6000546001600160a01b031690565b6001600160a01b031614611dd55760405162461bcd60e51b8152600401610af290612d09565b601680546001600160a01b0319166001600160a01b0383169081179091556000818152600460209081526040808320805460ff199081166001908117909255600384529382902080549094161790925590519182527fff20ffd61c4c2d0ef6c92012ece4838b24c79b10136ae047c42f9311e8be86a29101610e64565b6001600160a01b038316611e9c5760405162461bcd60e51b8152602060048201526011602482015270417070726f76652066726f6d207a65726f60781b6044820152606401610af2565b6001600160a01b038216611ee45760405162461bcd60e51b815260206004820152600f60248201526e417070726f766520746f207a65726f60881b6044820152606401610af2565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611f905760405162461bcd60e51b81526020600482015260126024820152715472616e736665722066726f6d207a65726f60701b6044820152606401610af2565b6001600160a01b038216611fd95760405162461bcd60e51b815260206004820152601060248201526f5472616e7366657220746f207a65726f60801b6044820152606401610af2565b601654600160a81b900460ff1615612067576001600160a01b03831660009081526006602052604090205460ff1615801561202d57506001600160a01b03821660009081526006602052604090205460ff16155b6120675760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610af2565b6001600160a01b03831660009081526004602052604090205460ff16806120a657506001600160a01b03821660009081526004602052604090205460ff165b156120bb576120b6838383612314565b505050565b6000600f541161210d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206e6f742079657420656e61626c65640000000000000000006044820152606401610af2565b6120b6838383612427565b601054811161212657600080fd5b60108190556040518181527f8ff9dc93846a022986f54e8f219a1fa780225726858e39e850da826852b4042e90602001610e64565b6016805460ff60a01b1916600160a01b17905530600090815260016020526040812054600c54600b549192916121919190612d6d565b600d546015546001600160a01b0316600090815260016020526040812054929350916103e8916121c091612d85565b6121ca9190612da4565b9050816121d957505050612304565b83156121f5575030600090815260016020526040902054612205565b8083101561220557505050612304565b600061220f61112b565b6122315782600b54836122229190612d85565b61222c9190612da4565b612234565b60005b905060006122428284612ed6565b90506000612251600284612da4565b9050600061225f8383612d6d565b90504761226b8261286d565b60006122778247612ed6565b905085156122a45760008361228c8684612d85565b6122969190612da4565b90506122a285826129bc565b505b6016546040516000916001600160a01b03169047908381818185875af1925050503d80600081146122f1576040519150601f19603f3d011682016040523d82523d6000602084013e6122f6565b606091505b505050505050505050505050505b506016805460ff60a01b19169055565b6001600160a01b038316600090815260016020526040902054818110156123785760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610af2565b6001600160a01b038416600090815260016020526040812080548492906123a0908490612ed6565b90915550506001600160a01b038316600090815260016020526040812080548492906123cd908490612d6d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161241991815260200190565b60405180910390a350505050565b6001600160a01b0383166000908152600160205260409020548181101561248b5760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220657863656564732062616c616e636560401b6044820152606401610af2565b6001600160a01b03841660009081526003602052604081205460ff16806124ca57506001600160a01b03841660009081526003602052604090205460ff165b6001600160a01b03861660009081526005602052604090205490915060ff1680156124f3575080155b156125e15760115483111561255b5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610af2565b6001600160a01b0384166000908152600160205260409020546012546125818583612d6d565b11156125db5760405162461bcd60e51b8152602060048201526024808201527f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f6044820152633ab73a1760e11b6064820152608401610af2565b50612684565b6001600160a01b03841660009081526005602052604090205460ff168015612607575080155b15612684576011548311156126845760405162461bcd60e51b815260206004820152603a60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201527f206d617853656c6c5472616e73616374696f6e416d6f756e742e0000000000006064820152608401610af2565b6001600160a01b0380861660009081526005602052604080822054928716825281205460ff92831692169081156126e157600f80546126c4908290612d6d565b4310156126d55761019091506126db565b60095491505b50612718565b821561271357600f546003906126f8908290612d6d565b431015612709576103e791506126db565b5050600854612718565b50600a545b6015546001600160a01b038981169116148015906127405750601654600160b01b900460ff16155b80156127565750601654600160a01b900460ff16155b1561276557612765600061215b565b60006127818783600b54600c5461277c9190612d6d565b612a6d565b9050600061278f8289612ed6565b6001600160a01b038b16600090815260016020526040812080549293508a929091906127bc908490612ed6565b909155505030600090815260016020526040812080548492906127e0908490612d6d565b90915550506001600160a01b0389166000908152600160205260408120805483929061280d908490612d6d565b92505081905550886001600160a01b03168a6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161285991815260200190565b60405180910390a350505050505050505050565b6013546128859030906001600160a01b031683611e52565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106128ba576128ba612eed565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612913573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129379190612f1e565b8160018151811061294a5761294a612eed565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac94790612990908590600090869030904290600401612f3b565b600060405180830381600087803b1580156129aa57600080fd5b505af19250505080156120b657505050565b6013546129d49030906001600160a01b031684611e52565b60135460405163f305d71960e01b8152306004820181905260248201859052600060448301819052606483015260848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612a41573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612a669190612fac565b5050505050565b6000612a7b6103e880612d85565b82612a868587612d85565b612a909190612d85565b612a9a9190612da4565b949350505050565b600060208284031215612ab457600080fd5b5035919050565b600060208083528351808285015260005b81811015612ae857858101830151858201604001528201612acc565b81811115612afa576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461108357600080fd5b60008060408385031215612b3857600080fd5b8235612b4381612b10565b946020939093013593505050565b600080600060608486031215612b6657600080fd5b8335612b7181612b10565b92506020840135612b8181612b10565b929592945050506040919091013590565b600060208284031215612ba457600080fd5b8135612baf81612b10565b9392505050565b801515811461108357600080fd5b600060208284031215612bd657600080fd5b8135612baf81612bb6565b600080600060408486031215612bf657600080fd5b833567ffffffffffffffff80821115612c0e57600080fd5b818601915086601f830112612c2257600080fd5b813581811115612c3157600080fd5b8760208260051b8501011115612c4657600080fd5b60209283019550935050840135612c5c81612bb6565b809150509250925092565b600080600080600060a08688031215612c7f57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612cb557600080fd5b8235612cc081612b10565b91506020830135612cd081612b10565b809150509250929050565b60008060408385031215612cee57600080fd5b8235612cf981612b10565b91506020830135612cd081612bb6565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215612d5057600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115612d8057612d80612d57565b500190565b6000816000190483118215151615612d9f57612d9f612d57565b500290565b600082612dc157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612dd857600080fd5b8151612baf81612bb6565b600181815b80851115612e1e578160001904821115612e0457612e04612d57565b80851615612e1157918102915b93841c9390800290612de8565b509250929050565b600082612e3557506001610d4a565b81612e4257506000610d4a565b8160018114612e585760028114612e6257612e7e565b6001915050610d4a565b60ff841115612e7357612e73612d57565b50506001821b610d4a565b5060208310610133831016604e8410600b8410161715612ea1575081810a610d4a565b612eab8383612de3565b8060001904821115612ebf57612ebf612d57565b029392505050565b6000612baf60ff841683612e26565b600082821015612ee857612ee8612d57565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612f1757612f17612d57565b5060010190565b600060208284031215612f3057600080fd5b8151612baf81612b10565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612f8b5784516001600160a01b031683529383019391830191600101612f66565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612fc157600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122049fe427c942d2857b5be03d160b0a9e2e8bf0cf288c93d616a717ace2805444364736f6c634300080a0033
Deployed Bytecode Sourcemap
2682:16942:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16240:511;;;;;;;;;;;;;:::i;:::-;;19153:238;;;;;;;;;;-1:-1:-1;19153:238:0;;;;;:::i;:::-;;:::i;16896:94::-;;;;;;;;;;-1:-1:-1;16977:5:0;;;;;;;;;;;;-1:-1:-1;;;16977:5:0;;;;16896:94;;;;;;;:::i;:::-;;;;;;;;17753:158;;;;;;;;;;-1:-1:-1;17753:158:0;;;;;:::i;:::-;;:::i;:::-;;;1422:14:1;;1415:22;1397:41;;1385:2;1370:18;17753:158:0;1257:187:1;3656:34:0;;;;;;;;;;;;;;;;;;;1595:25:1;;;1583:2;1568:18;3656:34:0;1449:177:1;17200:105:0;;;;;;;;;;-1:-1:-1;17279:18:0;;17200:105;;14507:286;;;;;;;;;;-1:-1:-1;14507:286:0;;;;;:::i;:::-;;:::i;3259:57::-;;;;;;;;;;;;;:::i;18217:382::-;;;;;;;;;;-1:-1:-1;18217:382:0;;;;;:::i;:::-;;:::i;14217:278::-;;;;;;;;;;-1:-1:-1;14217:278:0;;;;;:::i;:::-;;:::i;17100:94::-;;;;;;;;;;-1:-1:-1;17100:94:0;;3795:2;2234:36:1;;2222:2;2207:18;17100:94:0;2092:184:1;15854:150:0;;;;;;;;;;-1:-1:-1;15854:150:0;;;;;:::i;:::-;;:::i;18605:202::-;;;;;;;;;;-1:-1:-1;18605:202:0;;;;;:::i;:::-;;:::i;13956:115::-;;;;;;;;;;;;;:::i;11206:148::-;;;;;;;;;;;;;:::i;3375:23::-;;;;;;;;;;;;;;;;4439:22;;;;;;;;;;-1:-1:-1;4439:22:0;;;;-1:-1:-1;;;4439:22:0;;;;;;15261:126;;;;;;;;;;-1:-1:-1;15261:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;15352:27:0;15328:4;15352:27;;;:18;:27;;;;;;;;;15261:126;6312:146;;;;;;;;;;-1:-1:-1;6312:146:0;;;;;:::i;:::-;;:::i;17311:116::-;;;;;;;;;;-1:-1:-1;17311:116:0;;;;;:::i;:::-;-1:-1:-1;;;;;17401:18:0;17377:4;17401:18;;;:9;:18;;;;;;;17311:116;2295:140;;;;;;;;;;;;;:::i;15399:290::-;;;;;;;;;;;;;:::i;3436:29::-;;;;;;;;;;;;;;;;13819:131;;;;;;;;;;-1:-1:-1;13819:131:0;;;;;:::i;:::-;;:::i;16796:94::-;;;;;;;;;;-1:-1:-1;16848:7:0;2151:6;-1:-1:-1;;;;;2151:6:0;16796:94;;;-1:-1:-1;;;;;3066:32:1;;;3048:51;;3036:2;3021:18;16796:94:0;2902:203:1;4400:32:0;;;;;;;;;;-1:-1:-1;4400:32:0;;;;-1:-1:-1;;;4400:32:0;;;;;;2086:79;;;;;;;;;;-1:-1:-1;2124:7:0;2151:6;-1:-1:-1;;;;;2151:6:0;2086:79;;6464:244;;;;;;;;;;-1:-1:-1;6464:244:0;;;;;:::i;:::-;;:::i;16996:98::-;;;;;;;;;;-1:-1:-1;17079:7:0;;;;;;;;;;;;-1:-1:-1;;;17079:7:0;;;;16996:98;;14079:130;;;;;;;;;;-1:-1:-1;14079:130:0;;;;;:::i;:::-;;:::i;4468:39::-;;;;;;;;;;-1:-1:-1;4468:39:0;;;;-1:-1:-1;;;4468:39:0;;;;;;19397:222;;;;;;;;;;-1:-1:-1;19397:222:0;;;;;:::i;:::-;;:::i;3323:45::-;;;;;;;;;;;;;;;;18813:334;;;;;;;;;;-1:-1:-1;18813:334:0;;;;;:::i;:::-;;:::i;15701:147::-;;;;;;;;;;;;;:::i;17433:164::-;;;;;;;;;;-1:-1:-1;17433:164:0;;;;;:::i;:::-;;:::i;10670:524::-;;;;;;;;;;-1:-1:-1;10670:524:0;;;;;:::i;:::-;;:::i;3846:31::-;;;;;;;;;;;;;;;;10376:288;;;;;;;;;;-1:-1:-1;10376:288:0;;;;;:::i;:::-;;:::i;3472:28::-;;;;;;;;;;;;;;;;4138:36;;;;;;;;;;-1:-1:-1;4138:36:0;;;;-1:-1:-1;;;;;4138:36:0;;;13265:205;;;;;;;;;;;;;:::i;13476:139::-;;;;;;;;;;;;;:::i;3804:35::-;;;;;;;;;;;;;;;;3405:24;;;;;;;;;;;;;;;;10120:250;;;;;;;;;;-1:-1:-1;10120:250:0;;;;;:::i;:::-;;:::i;3507:26::-;;;;;;;;;;;;;;;;2923:48;;;;;;;;;;-1:-1:-1;2923:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17603:144;;;;;;;;;;-1:-1:-1;17603:144:0;;;;;:::i;:::-;-1:-1:-1;;;;;17711:19:0;;;17687:4;17711:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;17603:144;14805:249;;;;;;;;;;-1:-1:-1;14805:249:0;;;;;:::i;:::-;;:::i;3622:27::-;;;;;;;;;;;;;;;;2978:36;;;;;;;;;;-1:-1:-1;2978:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2441:236;;;;;;;;;;-1:-1:-1;2441:236:0;;;;;:::i;:::-;;:::i;13621:192::-;;;;;;;;;;-1:-1:-1;13621:192:0;;;;;:::i;:::-;;:::i;15066:189::-;;;;;;;;;;-1:-1:-1;15066:189:0;;;;;:::i;:::-;;:::i;6714:258::-;;;;;;;;;;-1:-1:-1;6714:258:0;;;;;:::i;:::-;;:::i;3021:46::-;;;;;;;;;;-1:-1:-1;3021:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16240:511;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;;;;;;;;;16323:20:::1;;16304:15;:39;;16296:68;;;::::0;-1:-1:-1;;;16296:68:0;;5891:2:1;16296:68:0::1;::::0;::::1;5873:21:1::0;5930:2;5910:18;;;5903:30;-1:-1:-1;;;5949:18:1;;;5942:46;6005:18;;16296:68:0::1;5689:340:1::0;16296:68:0::1;16408:15;::::0;16449:39:::1;::::0;-1:-1:-1;;;16449:39:0;;16482:4:::1;16449:39;::::0;::::1;3048:51:1::0;-1:-1:-1;;;;;16408:15:0;;::::1;::::0;16377:21:::1;::::0;16408:15;;16449:24:::1;::::0;3021:18:1;;16449:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16502:27;::::0;16435:53;;-1:-1:-1;;;;16502:27:0;::::1;;;16499:162;;;16576:40;3246:6;16576:15;:40;:::i;:::-;16555:20;:61:::0;16647:2:::1;16638:8;:6:::0;16645:1:::1;16638:8;:::i;:::-;:11;;;;:::i;:::-;16631:18;;16499:162;16671:43;::::0;-1:-1:-1;;;16671:43:0;;16695:10:::1;16671:43;::::0;::::1;7057:51:1::0;7124:18;;;7117:34;;;-1:-1:-1;;;;;16671:23:0;::::1;::::0;::::1;::::0;7030:18:1;;16671:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;16730:13:0::1;::::0;::::1;::::0;;;::::1;16285:466;;16240:511::o:0;19153:238::-;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;19259:21:::1;19299:10;19291:64;19351:3;19320:28;19332:16:::0;19259:21;19320:28:::1;:::i;:::-;:34;;;;:::i;:::-;19291:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;19371:12:0::1;::::0;::::1;::::0;;;::::1;19228:163;19153:238:::0;:::o;17753:158::-;17827:4;17844:37;17853:10;17865:7;17874:6;17844:8;:37::i;:::-;-1:-1:-1;17899:4:0;17753:158;;;;;:::o;14507:286::-;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;14604:2:::1;14593:7;:13;;14585:35;;;::::0;-1:-1:-1;;;14585:35:0;;7614:2:1;14585:35:0::1;::::0;::::1;7596:21:1::0;7653:1;7633:18;;;7626:29;-1:-1:-1;;;7671:18:1;;;7664:39;7720:18;;14585:35:0::1;7412:332:1::0;14585:35:0::1;14650:5;14639:7;:16;;14631:37;;;::::0;-1:-1:-1;;;14631:37:0;;7951:2:1;14631:37:0::1;::::0;::::1;7933:21:1::0;7990:1;7970:18;;;7963:29;-1:-1:-1;;;8008:18:1;;;8001:38;8056:18;;14631:37:0::1;7749:331:1::0;14631:37:0::1;14728:5;14718:7:::0;3303:13:::1;3795:2;3303;:13;:::i;:::-;3295:21;::::0;:5:::1;:21;:::i;:::-;14702:23;;;;:::i;:::-;:31;;;;:::i;:::-;14679:20;:54:::0;14749:36:::1;::::0;1595:25:1;;;14749:36:0::1;::::0;1583:2:1;1568:18;14749:36:0::1;;;;;;;;14507:286:::0;:::o;3259:57::-;3303:13;3795:2;3303;:13;:::i;:::-;3295:21;;:5;:21;:::i;:::-;3259:57;:::o;18217:382::-;18314:4;18331:36;18341:6;18349:9;18360:6;18331:9;:36::i;:::-;-1:-1:-1;;;;;18402:19:0;;18378:21;18402:19;;;:11;:19;;;;;;;;18422:10;18402:31;;;;;;;;18452:26;;;;18444:59;;;;-1:-1:-1;;;18444:59:0;;9670:2:1;18444:59:0;;;9652:21:1;9709:2;9689:18;;;9682:30;-1:-1:-1;;;9728:18:1;;;9721:50;9788:18;;18444:59:0;9468:344:1;18444:59:0;18514:55;18523:6;18531:10;18543:25;18562:6;18543:16;:25;:::i;:::-;18514:8;:55::i;:::-;-1:-1:-1;18587:4:0;;18217:382;-1:-1:-1;;;;18217:382:0:o;14217:278::-;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;14319:2:::1;14308:7;:13;;14300:32;;;::::0;-1:-1:-1;;;14300:32:0;;10149:2:1;14300:32:0::1;::::0;::::1;10131:21:1::0;10188:1;10168:18;;;10161:29;-1:-1:-1;;;10206:18:1;;;10199:36;10252:18;;14300:32:0::1;9947:329:1::0;14300:32:0::1;14362:4;14351:7;:15;;14343:36;;;::::0;-1:-1:-1;;;14343:36:0;;7951:2:1;14343:36:0::1;::::0;::::1;7933:21:1::0;7990:1;7970:18;;;7963:29;-1:-1:-1;;;8008:18:1;;;8001:38;8056:18;;14343:36:0::1;7749:331:1::0;14343:36:0::1;14435:4;14425:7:::0;3303:13:::1;3795:2;3303;:13;:::i;:::-;3295:21;::::0;:5:::1;:21;:::i;:::-;14409:23;;;;:::i;:::-;:30;;;;:::i;:::-;14390:16;:49:::0;14455:32:::1;::::0;1595:25:1;;;14455:32:0::1;::::0;1583:2:1;1568:18;14455:32:0::1;1449:177:1::0;15854:150:0;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;15939:57:::1;15961:34;15980:15;15961:18:::0;:34:::1;:::i;:::-;15939:21;:57::i;:::-;15854:150:::0;:::o;18605:202::-;18710:10;18684:4;18731:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18731:32:0;;;;;;;;;;18684:4;;18701:76;;18722:7;;18731:45;;18766:10;;18731:45;:::i;13956:115::-;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;14012:24:::1;14031:4;14012:18;:24::i;:::-;14052:11;::::0;::::1;::::0;;;::::1;13956:115::o:0;11206:148::-;11253:4;11342;11322:19;;11303:18;;:38;;;;:::i;:::-;:43;;;;:::i;:::-;11286:15;;-1:-1:-1;;;;;11286:15:0;11276:26;;;;:9;:26;;;;;;:70;;11206:148;-1:-1:-1;11206:148:0:o;6312:146::-;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;6380:13:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;6380:23:0::1;-1:-1:-1::0;;;;6380:23:0;;::::1;;::::0;;6419:31:::1;::::0;::::1;::::0;::::1;::::0;6396:7;1422:14:1;1415:22;1397:41;;1385:2;1370:18;;1257:187;2295:140:0;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;2394:1:::1;2378:6:::0;;2357:40:::1;::::0;-1:-1:-1;;;;;2378:6:0;;::::1;::::0;2357:40:::1;::::0;2394:1;;2357:40:::1;2425:1;2408:19:::0;;-1:-1:-1;;;;;;2408:19:0::1;::::0;;2295:140::o;15399:290::-;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;15464:11:::1;::::0;:14;15456:41:::1;;;::::0;-1:-1:-1;;;15456:41:0;;10483:2:1;15456:41:0::1;::::0;::::1;10465:21:1::0;10522:2;10502:18;;;10495:30;-1:-1:-1;;;10541:18:1;;;10534:45;10596:18;;15456:41:0::1;10281:339:1::0;15456:41:0::1;15520:12;15508:11;:24:::0;15583:4:::1;3303:13;3795:2;3303;:13;:::i;:::-;3295:21;::::0;:5:::1;:21;:::i;:::-;15562:18;::::0;15578:2:::1;15562:18;:::i;:::-;:25;;;;:::i;:::-;15543:16;:44:::0;;;15643:5:::1;::::0;3303:13:::1;::::0;:2:::1;:13;:::i;:::-;3295:21;::::0;:5:::1;:21;:::i;:::-;15621:19;::::0;15637:3:::1;15621:19;:::i;:::-;:27;;;;:::i;:::-;15598:20;:50:::0;15664:17:::1;::::0;::::1;::::0;;;::::1;15399:290::o:0;13819:131::-;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;13885:10:::1;:17:::0;;;::::1;;-1:-1:-1::0;;;13885:17:0::1;-1:-1:-1::0;;;;13885:17:0;;::::1;;::::0;;13918:24:::1;::::0;::::1;::::0;::::1;::::0;13896:6;1422:14:1;1415:22;1397:41;;1385:2;1370:18;;1257:187;16875:7:0;16868:14;;16796:94;:::o;6464:244::-;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;6566:9:::1;6561:106;6577:20:::0;;::::1;6561:106;;;6649:6;6619:13;:27;6633:9;;6643:1;6633:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6619:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;6619:27:0;:36;;-1:-1:-1;;6619:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6599:3:::1;::::0;::::1;:::i;:::-;;;6561:106;;;-1:-1:-1::0;6682:18:0::1;::::0;::::1;::::0;;;::::1;6464:244:::0;;;:::o;14079:130::-;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;14145:9:::1;:19:::0;;-1:-1:-1;;;;;;14145:19:0::1;-1:-1:-1::0;;;;;14145:19:0;::::1;::::0;;::::1;::::0;;;14180:21:::1;::::0;3048:51:1;;;14180:21:0::1;::::0;3036:2:1;3021:18;14180:21:0::1;2902:203:1::0;19397:222:0;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;19530:43:::1;::::0;-1:-1:-1;;;19530:43:0;;19553:10:::1;19530:43;::::0;::::1;7057:51:1::0;7124:18;;;7117:34;;;19513:4:0::1;::::0;;;19530:22:::1;::::0;7030:18:1;;19530:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;19589:22:0::1;::::0;1595:25:1;;;19589:22:0::1;::::0;1583:2:1;1568:18;19589:22:0::1;;;;;;;;19464:155;19397:222:::0;:::o;18813:334::-;18950:10;18897:4;18938:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18938:32:0;;;;;;;;;;18989:35;;;;18981:60;;;;-1:-1:-1;;;18981:60:0;;11099:2:1;18981:60:0;;;11081:21:1;11138:2;11118:18;;;11111:30;-1:-1:-1;;;11157:18:1;;;11150:42;11209:18;;18981:60:0;10897:336:1;18981:60:0;19052:65;19061:10;19073:7;19082:34;19101:15;19082:16;:34;:::i;19052:65::-;-1:-1:-1;19135:4:0;;18813:334;-1:-1:-1;;;18813:334:0:o;15701:147::-;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;15772:27:::1;:32:::0;;-1:-1:-1;;;;15772:32:0::1;-1:-1:-1::0;;;15772:32:0::1;::::0;;15820:20:::1;::::0;::::1;::::0;15772:32;;15820:20:::1;15701:147::o:0;17433:164::-;17510:4;17527:40;17537:10;17549:9;17560:6;17527:9;:40::i;10670:524::-;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;10793:3:::1;10815:11:::0;;::::1;::::0;::::1;::::0;:25:::1;;;10834:6;10828:4;:12;;10815:25;:44;;;;;10853:6;10842:9;:17;;10815:44;10807:74;;;::::0;-1:-1:-1;;;10807:74:0;;11440:2:1;10807:74:0::1;::::0;::::1;11422:21:1::0;11479:2;11459:18;;;11452:30;-1:-1:-1;;;11498:18:1;;;11491:48;11556:18;;10807:74:0::1;11238:342:1::0;10807:74:0::1;3570:4;10900:17;10908:9:::0;10900:7;:17:::1;:::i;:::-;:34;10892:79;;;::::0;-1:-1:-1;;;10892:79:0;;11787:2:1;10892:79:0::1;::::0;::::1;11769:21:1::0;11826:2;11806:18;;;11799:30;11865:34;11845:18;;;11838:62;-1:-1:-1;;;11916:18:1;;;11909:31;11957:19;;10892:79:0::1;11585:397:1::0;10892:79:0::1;10992:6;:10:::0;;;11013:7:::1;:12:::0;;;11036:11:::1;:21:::0;;;11068:10:::1;:18:::0;;;11097:12:::1;:22:::0;;;11135:51:::1;::::0;;12246:25:1;;;12302:2;12287:18;;12280:34;;;12330:18;;;12323:34;;;12388:2;12373:18;;12366:34;;;12431:3;12416:19;;12409:35;;;11135:51:0::1;::::0;12233:3:1;12218:19;11135:51:0::1;;;;;;;10770:424;10670:524:::0;;;;;:::o;10376:288::-;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;10514:4:::1;10482:30;:36;;10474:45;;;::::0;::::1;;10530:19;:50:::0;;;10596:60:::1;::::0;1595:25:1;;;10596:60:0::1;::::0;1583:2:1;1568:18;10596:60:0::1;1449:177:1::0;13265:205:0;13330:4;13365:20;;13349:15;:36;13346:97;;;13428:15;13407:20;;:36;;;;:::i;13346:97::-;-1:-1:-1;13461:1:0;;13265:205::o;13476:139::-;13599:6;13523:4;13581:26;;;:9;:26;;;;13561:18;;3303:13;3795:2;3303;:13;:::i;:::-;3295:21;;:5;:21;:::i;:::-;13547:32;;;;:::i;:::-;13546:61;;;;:::i;10120:250::-;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;10235:2:::1;10210:23;:27;;10202:36;;;::::0;::::1;;10266:12;:36:::0;;;10318:44:::1;::::0;1595:25:1;;;10318:44:0::1;::::0;1583:2:1;1568:18;10318:44:0::1;1449:177:1::0;14805:249:0;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14903:22:0;::::1;14920:4;14903:22;;14895:60;;;::::0;-1:-1:-1;;;14895:60:0;;12657:2:1;14895:60:0::1;::::0;::::1;12639:21:1::0;12696:2;12676:18;;;12669:30;12735:28;12715:18;;;12708:56;12781:18;;14895:60:0::1;12455:350:1::0;14895:60:0::1;-1:-1:-1::0;;;;;14966:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;;;;:33;;-1:-1:-1;;14966:33:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15015:31;;12978:51:1;;;13045:18;;;13038:50;15015:31:0::1;::::0;12951:18:1;15015:31:0::1;12810:284:1::0;2441:236:0;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2522:22:0;::::1;2514:73;;;::::0;-1:-1:-1;;;2514:73:0;;13301:2:1;2514:73:0::1;::::0;::::1;13283:21:1::0;13340:2;13320:18;;;13313:30;13379:34;13359:18;;;13352:62;-1:-1:-1;;;13430:18:1;;;13423:36;13476:19;;2514:73:0::1;13099:402:1::0;2514:73:0::1;2624:6;::::0;;2603:38:::1;::::0;-1:-1:-1;;;;;2603:38:0;;::::1;::::0;2624:6;::::1;::::0;2603:38:::1;::::0;::::1;2652:6;:17:::0;;-1:-1:-1;;;;;;2652:17:0::1;-1:-1:-1::0;;;;;2652:17:0;;;::::1;::::0;;;::::1;::::0;;2441:236::o;13621:192::-;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;13703:15:::1;::::0;-1:-1:-1;;;;;13697:21:0;;::::1;13703:15:::0;::::1;13697:21;;13689:53;;;::::0;-1:-1:-1;;;13689:53:0;;13708:2:1;13689:53:0::1;::::0;::::1;13690:21:1::0;13747:2;13727:18;;;13720:30;-1:-1:-1;;;13766:18:1;;;13759:50;13826:18;;13689:53:0::1;13506:344:1::0;13689:53:0::1;-1:-1:-1::0;;;;;13753:12:0;::::1;;::::0;;;:6:::1;:12;::::0;;;;;;;;:16;;-1:-1:-1;;13753:16:0::1;::::0;::::1;;::::0;;::::1;::::0;;;13785:20;;12978:51:1;;;13045:18;;;13038:50;13785:20:0::1;::::0;12951:18:1;13785:20:0::1;12810:284:1::0;15066:189:0;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15162:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:35;;-1:-1:-1;;15162:35:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15213:34;;12978:51:1;;;13045:18;;;13038:50;15213:34:0::1;::::0;12951:18:1;15213:34:0::1;12810:284:1::0;6714:258:0;2222:10;2211:7;2124;2151:6;-1:-1:-1;;;;;2151:6:0;;2086:79;2211:7;-1:-1:-1;;;;;2211:21:0;;2203:66;;;;-1:-1:-1;;;2203:66:0;;;;;;;:::i;:::-;6790:13:::1;:33:::0;;-1:-1:-1;;;;;;6790:33:0::1;-1:-1:-1::0;;;;;6790:33:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;6834:28:0;;;:16:::1;:28;::::0;;;;;;;:35;;-1:-1:-1;;6834:35:0;;::::1;-1:-1:-1::0;6834:35:0;;::::1;::::0;;;6880:18:::1;:30:::0;;;;;;:37;;;;::::1;;::::0;;;6933:31;;3048:51:1;;;6933:31:0::1;::::0;3021:18:1;6933:31:0::1;2902:203:1::0;17917:294:0;-1:-1:-1;;;;;18007:19:0;;17999:49;;;;-1:-1:-1;;;17999:49:0;;14057:2:1;17999:49:0;;;14039:21:1;14096:2;14076:18;;;14069:30;-1:-1:-1;;;14115:18:1;;;14108:47;14172:18;;17999:49:0;13855:341:1;17999:49:0;-1:-1:-1;;;;;18067:21:0;;18059:49;;;;-1:-1:-1;;;18059:49:0;;14403:2:1;18059:49:0;;;14385:21:1;14442:2;14422:18;;;14415:30;-1:-1:-1;;;14461:18:1;;;14454:45;14516:18;;18059:49:0;14201:339:1;18059:49:0;-1:-1:-1;;;;;18119:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;18171:32;;1595:25:1;;;18171:32:0;;1568:18:1;18171:32:0;;;;;;;17917:294;;;:::o;6978:639::-;-1:-1:-1;;;;;7071:20:0;;7063:51;;;;-1:-1:-1;;;7063:51:0;;14747:2:1;7063:51:0;;;14729:21:1;14786:2;14766:18;;;14759:30;-1:-1:-1;;;14805:18:1;;;14798:48;14863:18;;7063:51:0;14545:342:1;7063:51:0;-1:-1:-1;;;;;7133:23:0;;7125:52;;;;-1:-1:-1;;;7125:52:0;;15094:2:1;7125:52:0;;;15076:21:1;15133:2;15113:18;;;15106:30;-1:-1:-1;;;15152:18:1;;;15145:46;15208:18;;7125:52:0;14892:340:1;7125:52:0;7191:13;;-1:-1:-1;;;7191:13:0;;;;7188:122;;;-1:-1:-1;;;;;7229:21:0;;;;;;:13;:21;;;;;;;;7228:22;:51;;;;-1:-1:-1;;;;;;7255:24:0;;;;;;:13;:24;;;;;;;;7254:25;7228:51;7220:74;;;;-1:-1:-1;;;7220:74:0;;15439:2:1;7220:74:0;;;15421:21:1;15478:2;15458:18;;;15451:30;-1:-1:-1;;;15497:18:1;;;15490:41;15548:18;;7220:74:0;15237:335:1;7220:74:0;-1:-1:-1;;;;;7323:24:0;;;;;;:16;:24;;;;;;;;;:55;;-1:-1:-1;;;;;;7351:27:0;;;;;;:16;:27;;;;;;;;7323:55;7320:290;;;7393:43;7410:6;7418:9;7429:6;7393:16;:43::i;:::-;6978:639;;;:::o;7320:290::-;7498:1;7486:11;;:13;7478:48;;;;-1:-1:-1;;;7478:48:0;;15779:2:1;7478:48:0;;;15761:21:1;15818:2;15798:18;;;15791:30;15857:25;15837:18;;;15830:53;15900:18;;7478:48:0;15577:347:1;7478:48:0;7541:39;7556:6;7563:9;7573:6;7541:14;:39::i;16010:218::-;16101:20;;16087:13;:34;16079:43;;;;;;16133:20;:34;;;16183:37;;1595:25:1;;;16183:37:0;;1583:2:1;1568:18;16183:37:0;1449:177:1;11360:1074:0;4232:27;:34;;-1:-1:-1;;;;4232:34:0;-1:-1:-1;;;4232:34:0;;;11476:4:::1;4232:34:::0;11458:24;;;4262:4;11458:24:::1;::::0;;;;;11520:10:::1;::::0;11507:12:::1;::::0;11458:24;;4232:34;11507:23:::1;::::0;11520:10;11507:23:::1;:::i;:::-;11585:12;::::0;11568:15:::1;::::0;-1:-1:-1;;;;;11568:15:0::1;11541:16;11558:26:::0;;;:9:::1;:26;::::0;;;;;11493:37;;-1:-1:-1;11541:16:0;11598:4:::1;::::0;11558:39:::1;::::0;::::1;:::i;:::-;:44;;;;:::i;:::-;11541:61:::0;-1:-1:-1;11616:11:0;11613:22:::1;;11628:7;;;;;11613:22;11648:12;11645:134;;;-1:-1:-1::0;11705:4:0::1;11687:24;::::0;;;:9:::1;:24;::::0;;;;;11645:134:::1;;;11746:11;11730:15;:27;11727:52;;;11772:7;;;;;11727:52;11789:22;11812:17;:15;:17::i;:::-;:55;;11859:8;11845:12;;11833:11;:24;;;;:::i;:::-;11832:35;;;;:::i;:::-;11812:55;;;11830:1;11812:55;11789:78:::0;-1:-1:-1;11880:20:0::1;11902:29;11789:78:::0;11902:11;:29:::1;:::i;:::-;11880:51:::0;-1:-1:-1;11944:12:0::1;11957:19;11975:1;11957:17:::0;:19:::1;:::i;:::-;11944:32:::0;-1:-1:-1;11987:14:0::1;12002:23;12010:15:::0;11944:32;12002:23:::1;:::i;:::-;11987:38:::0;-1:-1:-1;12061:21:0::1;12093:27;11987:38:::0;12093:16:::1;:27::i;:::-;12131:11;12144:41;12168:17:::0;12144:21:::1;:41;:::i;:::-;12131:55:::0;-1:-1:-1;12200:19:0;;12197:135:::1;;12235:11;12266:9:::0;12250:14:::1;12257:7:::0;12250:6;:14:::1;:::i;:::-;12249:26;;;;:::i;:::-;12235:40;;12290:30;12304:7;12313:6;12290:13;:30::i;:::-;12220:112;12197:135;12355:13;::::0;:51:::1;::::0;12343:9:::1;::::0;-1:-1:-1;;;;;12355:13:0::1;::::0;12380:21:::1;::::0;12343:9;12355:51;12343:9;12355:51;12380:21;12355:13;:51:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;;;;4277:1:0::1;-1:-1:-1::0;4289:27:0;:35;;-1:-1:-1;;;;4289:35:0;;;11360:1074::o;9775:339::-;-1:-1:-1;;;;;9888:17:0;;9867:18;9888:17;;;:9;:17;;;;;;9924:23;;;;9916:60;;;;-1:-1:-1;;;9916:60:0;;16341:2:1;9916:60:0;;;16323:21:1;16380:2;16360:18;;;16353:30;-1:-1:-1;;;16399:18:1;;;16392:54;16463:18;;9916:60:0;16139:348:1;9916:60:0;-1:-1:-1;;;;;9987:17:0;;;;;;:9;:17;;;;;:25;;10006:6;;9987:17;:25;;10006:6;;9987:25;:::i;:::-;;;;-1:-1:-1;;;;;;;10023:20:0;;;;;;:9;:20;;;;;:28;;10045:6;;10023:20;:28;;10045:6;;10023:28;:::i;:::-;;;;;;;;10089:9;-1:-1:-1;;;;;10073:33:0;10082:6;-1:-1:-1;;;;;10073:33:0;;10099:6;10073:33;;;;1595:25:1;;1583:2;1568:18;;1449:177;10073:33:0;;;;;;;;9856:258;9775:339;;;:::o;7623:1964::-;-1:-1:-1;;;;;7734:17:0;;7713:18;7734:17;;;:9;:17;;;;;;7770:23;;;;7762:60;;;;-1:-1:-1;;;7762:60:0;;16341:2:1;7762:60:0;;;16323:21:1;16380:2;16360:18;;;16353:30;-1:-1:-1;;;16399:18:1;;;16392:54;16463:18;;7762:60:0;16139:348:1;7762:60:0;-1:-1:-1;;;;;7856:26:0;;7833:20;7856:26;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;7886:29:0;;;;;;:18;:29;;;;;;;;7856:59;-1:-1:-1;;;;;7944:14:0;;;;;;:6;:14;;;;;;7833:82;;-1:-1:-1;7944:14:0;;:47;;;;;7976:15;7975:16;7944:47;7926:686;;;8054:20;;8044:6;:30;;8018:132;;;;-1:-1:-1;;;8018:132:0;;16694:2:1;8018:132:0;;;16676:21:1;16733:2;16713:18;;;16706:30;16772:34;16752:18;;;16745:62;-1:-1:-1;;;16823:18:1;;;16816:38;16871:19;;8018:132:0;16492:404:1;8018:132:0;-1:-1:-1;;;;;17401:18:0;;8165:32;17401:18;;;:9;:18;;;;;;8298:16;;8261:33;8288:6;17401:18;8261:33;:::i;:::-;:53;;8235:151;;;;-1:-1:-1;;;8235:151:0;;17103:2:1;8235:151:0;;;17085:21:1;17142:2;17122:18;;;17115:30;17181:34;17161:18;;;17154:62;-1:-1:-1;;;17232:18:1;;;17225:34;17276:19;;8235:151:0;16901:400:1;8235:151:0;8003:395;7926:686;;;-1:-1:-1;;;;;8422:17:0;;;;;;:6;:17;;;;;;;;:50;;;;;8457:15;8456:16;8422:50;8404:208;;;8517:20;;8507:6;:30;;8499:101;;;;-1:-1:-1;;;8499:101:0;;17508:2:1;8499:101:0;;;17490:21:1;17547:2;17527:18;;;17520:30;17586:34;17566:18;;;17559:62;17657:28;17637:18;;;17630:56;17703:19;;8499:101:0;17306:422:1;8499:101:0;-1:-1:-1;;;;;8635:14:0;;;8624:10;8635:14;;;:6;:14;;;;;;;8672:17;;;;;;;;8635:14;;;;;8672:17;;8719:405;;;;8767:2;8810:11;;:27;;8767:2;;8810:27;:::i;:::-;8797:12;:40;8794:106;;;8861:3;8857:7;;8794:106;;;8893:7;;8889:11;;8794:106;8729:187;8719:405;;;8934:5;8931:193;;;9007:11;;8975:1;;9007:26;;8975:1;;9007:26;:::i;:::-;8994:12;:39;8991:100;;;9057:3;9053:7;;8991:100;;;-1:-1:-1;;9085:6:0;;8931:193;;;-1:-1:-1;9113:11:0;;8931:193;9149:15;;-1:-1:-1;;;;;9141:23:0;;;9149:15;;9141:23;;;;9140:40;;-1:-1:-1;9169:10:0;;-1:-1:-1;;;9169:10:0;;;;9168:11;9140:40;:72;;;;-1:-1:-1;9184:27:0;;-1:-1:-1;;;9184:27:0;;;;9183:28;9140:72;9137:115;;;9227:25;9246:5;9227:18;:25::i;:::-;9263:18;9282:51;9296:6;9304:3;9320:12;;9309:10;;:23;;;;:::i;:::-;9282:13;:51::i;:::-;9263:70;-1:-1:-1;9344:16:0;9361:20;9263:70;9361:6;:20;:::i;:::-;-1:-1:-1;;;;;9394:17:0;;;;;;:9;:17;;;;;:25;;9344:37;;-1:-1:-1;9413:6:0;;9394:17;;;:25;;9413:6;;9394:25;:::i;:::-;;;;-1:-1:-1;;9448:4:0;9430:24;;;;:9;:24;;;;;:41;;9458:13;;9430:24;:41;;9458:13;;9430:41;:::i;:::-;;;;-1:-1:-1;;;;;;;9482:20:0;;;;;;:9;:20;;;;;:33;;9504:11;;9482:20;:33;;9504:11;;9482:33;:::i;:::-;;;;;;;;9557:9;-1:-1:-1;;;;;9541:38:0;9550:6;-1:-1:-1;;;;;9541:38:0;;9567:11;9541:38;;;;1595:25:1;;1583:2;1568:18;;1449:177;9541:38:0;;;;;;;;7702:1885;;;;;;;7623:1964;;;:::o;12440:462::-;12530:10;;12498:52;;12515:4;;-1:-1:-1;;;;;12530:10:0;12543:6;12498:8;:52::i;:::-;12585:16;;;12599:1;12585:16;;;;;;;;12561:21;;12585:16;;;;;;;;;;-1:-1:-1;12585:16:0;12561:40;;12630:4;12612;12617:1;12612:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12612:23:0;;;:7;;;;;;;;;;:23;;;;12656:10;;:17;;;-1:-1:-1;;;12656:17:0;;;;:10;;;;;:15;;:17;;;;;12612:7;;12656:17;;;;;:10;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12646:4;12651:1;12646:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12646:27:0;;;:7;;;;;;;;;:27;12690:10;;:186;;-1:-1:-1;;;12690:186:0;;:10;;;:61;;:186;;12766:6;;12690:10;;12803:4;;12830;;12850:15;;12690:186;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12487:415;12440:462;:::o;12908:351::-;13016:10;;12984:57;;13001:4;;-1:-1:-1;;;;;13016:10:0;13029:11;12984:8;:57::i;:::-;13052:10;;:199;;-1:-1:-1;;;13052:199:0;;13119:4;13052:199;;;19447:34:1;;;19497:18;;;19490:34;;;13052:10:0;19540:18:1;;;19533:34;;;19583:18;;;19576:34;19626:19;;;19619:44;13225:15:0;19679:19:1;;;19672:35;-1:-1:-1;;;;;13052:10:0;;;;:26;;13086:9;;19381:19:1;;13052:199:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12908:351;;:::o;9593:176::-;9678:4;9729:31;3570:4;;9729:31;:::i;:::-;9714:10;9703;9710:3;9703:6;:10;:::i;:::-;:21;;;;:::i;:::-;9702:59;;;;:::i;:::-;9695:66;9593:176;-1:-1:-1;;;;9593:176:0:o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:597::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;637:6;634:1;631:13;628:91;;;707:1;702:2;693:6;682:9;678:22;674:31;667:42;628:91;-1:-1:-1;780:2:1;759:15;-1:-1:-1;;755:29:1;740:45;;;;787:2;736:54;;199:597;-1:-1:-1;;;199:597:1:o;801:131::-;-1:-1:-1;;;;;876:31:1;;866:42;;856:70;;922:1;919;912:12;937:315;1005:6;1013;1066:2;1054:9;1045:7;1041:23;1037:32;1034:52;;;1082:1;1079;1072:12;1034:52;1121:9;1108:23;1140:31;1165:5;1140:31;:::i;:::-;1190:5;1242:2;1227:18;;;;1214:32;;-1:-1:-1;;;937:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2281:247::-;2340:6;2393:2;2381:9;2372:7;2368:23;2364:32;2361:52;;;2409:1;2406;2399:12;2361:52;2448:9;2435:23;2467:31;2492:5;2467:31;:::i;:::-;2517:5;2281:247;-1:-1:-1;;;2281:247:1:o;2533:118::-;2619:5;2612:13;2605:21;2598:5;2595:32;2585:60;;2641:1;2638;2631:12;2656:241;2712:6;2765:2;2753:9;2744:7;2740:23;2736:32;2733:52;;;2781:1;2778;2771:12;2733:52;2820:9;2807:23;2839:28;2861:5;2839:28;:::i;3110:750::-;3202:6;3210;3218;3271:2;3259:9;3250:7;3246:23;3242:32;3239:52;;;3287:1;3284;3277:12;3239:52;3327:9;3314:23;3356:18;3397:2;3389:6;3386:14;3383:34;;;3413:1;3410;3403:12;3383:34;3451:6;3440:9;3436:22;3426:32;;3496:7;3489:4;3485:2;3481:13;3477:27;3467:55;;3518:1;3515;3508:12;3467:55;3558:2;3545:16;3584:2;3576:6;3573:14;3570:34;;;3600:1;3597;3590:12;3570:34;3655:7;3648:4;3638:6;3635:1;3631:14;3627:2;3623:23;3619:34;3616:47;3613:67;;;3676:1;3673;3666:12;3613:67;3707:4;3699:13;;;;-1:-1:-1;3731:6:1;-1:-1:-1;;3772:20:1;;3759:34;3802:28;3759:34;3802:28;:::i;:::-;3849:5;3839:15;;;3110:750;;;;;:::o;3865:454::-;3960:6;3968;3976;3984;3992;4045:3;4033:9;4024:7;4020:23;4016:33;4013:53;;;4062:1;4059;4052:12;4013:53;-1:-1:-1;;4085:23:1;;;4155:2;4140:18;;4127:32;;-1:-1:-1;4206:2:1;4191:18;;4178:32;;4257:2;4242:18;;4229:32;;-1:-1:-1;4308:3:1;4293:19;4280:33;;-1:-1:-1;3865:454:1;-1:-1:-1;3865:454:1:o;4548:388::-;4616:6;4624;4677:2;4665:9;4656:7;4652:23;4648:32;4645:52;;;4693:1;4690;4683:12;4645:52;4732:9;4719:23;4751:31;4776:5;4751:31;:::i;:::-;4801:5;-1:-1:-1;4858:2:1;4843:18;;4830:32;4871:33;4830:32;4871:33;:::i;:::-;4923:7;4913:17;;;4548:388;;;;;:::o;4941:382::-;5006:6;5014;5067:2;5055:9;5046:7;5042:23;5038:32;5035:52;;;5083:1;5080;5073:12;5035:52;5122:9;5109:23;5141:31;5166:5;5141:31;:::i;:::-;5191:5;-1:-1:-1;5248:2:1;5233:18;;5220:32;5261:30;5220:32;5261:30;:::i;5328:356::-;5530:2;5512:21;;;5549:18;;;5542:30;5608:34;5603:2;5588:18;;5581:62;5675:2;5660:18;;5328:356::o;6034:184::-;6104:6;6157:2;6145:9;6136:7;6132:23;6128:32;6125:52;;;6173:1;6170;6163:12;6125:52;-1:-1:-1;6196:16:1;;6034:184;-1:-1:-1;6034:184:1:o;6223:127::-;6284:10;6279:3;6275:20;6272:1;6265:31;6315:4;6312:1;6305:15;6339:4;6336:1;6329:15;6355:128;6395:3;6426:1;6422:6;6419:1;6416:13;6413:39;;;6432:18;;:::i;:::-;-1:-1:-1;6468:9:1;;6355:128::o;6488:168::-;6528:7;6594:1;6590;6586:6;6582:14;6579:1;6576:21;6571:1;6564:9;6557:17;6553:45;6550:71;;;6601:18;;:::i;:::-;-1:-1:-1;6641:9:1;;6488:168::o;6661:217::-;6701:1;6727;6717:132;;6771:10;6766:3;6762:20;6759:1;6752:31;6806:4;6803:1;6796:15;6834:4;6831:1;6824:15;6717:132;-1:-1:-1;6863:9:1;;6661:217::o;7162:245::-;7229:6;7282:2;7270:9;7261:7;7257:23;7253:32;7250:52;;;7298:1;7295;7288:12;7250:52;7330:9;7324:16;7349:28;7371:5;7349:28;:::i;8085:422::-;8174:1;8217:5;8174:1;8231:270;8252:7;8242:8;8239:21;8231:270;;;8311:4;8307:1;8303:6;8299:17;8293:4;8290:27;8287:53;;;8320:18;;:::i;:::-;8370:7;8360:8;8356:22;8353:55;;;8390:16;;;;8353:55;8469:22;;;;8429:15;;;;8231:270;;;8235:3;8085:422;;;;;:::o;8512:806::-;8561:5;8591:8;8581:80;;-1:-1:-1;8632:1:1;8646:5;;8581:80;8680:4;8670:76;;-1:-1:-1;8717:1:1;8731:5;;8670:76;8762:4;8780:1;8775:59;;;;8848:1;8843:130;;;;8755:218;;8775:59;8805:1;8796:10;;8819:5;;;8843:130;8880:3;8870:8;8867:17;8864:43;;;8887:18;;:::i;:::-;-1:-1:-1;;8943:1:1;8929:16;;8958:5;;8755:218;;9057:2;9047:8;9044:16;9038:3;9032:4;9029:13;9025:36;9019:2;9009:8;9006:16;9001:2;8995:4;8992:12;8988:35;8985:77;8982:159;;;-1:-1:-1;9094:19:1;;;9126:5;;8982:159;9173:34;9198:8;9192:4;9173:34;:::i;:::-;9243:6;9239:1;9235:6;9231:19;9222:7;9219:32;9216:58;;;9254:18;;:::i;:::-;9292:20;;8512:806;-1:-1:-1;;;8512:806:1:o;9323:140::-;9381:5;9410:47;9451:4;9441:8;9437:19;9431:4;9410:47;:::i;9817:125::-;9857:4;9885:1;9882;9879:8;9876:34;;;9890:18;;:::i;:::-;-1:-1:-1;9927:9:1;;9817:125::o;10625:127::-;10686:10;10681:3;10677:20;10674:1;10667:31;10717:4;10714:1;10707:15;10741:4;10738:1;10731:15;10757:135;10796:3;-1:-1:-1;;10817:17:1;;10814:43;;;10837:18;;:::i;:::-;-1:-1:-1;10884:1:1;10873:13;;10757:135::o;17865:251::-;17935:6;17988:2;17976:9;17967:7;17963:23;17959:32;17956:52;;;18004:1;18001;17994:12;17956:52;18036:9;18030:16;18055:31;18080:5;18055:31;:::i;18121:980::-;18383:4;18431:3;18420:9;18416:19;18462:6;18451:9;18444:25;18488:2;18526:6;18521:2;18510:9;18506:18;18499:34;18569:3;18564:2;18553:9;18549:18;18542:31;18593:6;18628;18622:13;18659:6;18651;18644:22;18697:3;18686:9;18682:19;18675:26;;18736:2;18728:6;18724:15;18710:29;;18757:1;18767:195;18781:6;18778:1;18775:13;18767:195;;;18846:13;;-1:-1:-1;;;;;18842:39:1;18830:52;;18937:15;;;;18902:12;;;;18878:1;18796:9;18767:195;;;-1:-1:-1;;;;;;;19018:32:1;;;;19013:2;18998:18;;18991:60;-1:-1:-1;;;19082:3:1;19067:19;19060:35;18979:3;18121:980;-1:-1:-1;;;18121:980:1:o;19718:306::-;19806:6;19814;19822;19875:2;19863:9;19854:7;19850:23;19846:32;19843:52;;;19891:1;19888;19881:12;19843:52;19920:9;19914:16;19904:26;;19970:2;19959:9;19955:18;19949:25;19939:35;;20014:2;20003:9;19999:18;19993:25;19983:35;;19718:306;;;;;:::o
Swarm Source
ipfs://49fe427c942d2857b5be03d160b0a9e2e8bf0cf288c93d616a717ace28054443
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.