ERC-20
Overview
Max Total Supply
100,000,000 BF
Holders
29
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
535,200.8295433205085339 BFValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x4528ebA3...69a6AA2f9 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
BULLFROG
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-17 */ /** ___ ___ / \----/ \ |-----| |-----| /\_0_/ \_0_/\ -| o o |- / \______________/ \ \ \ | | | | / / ww ooooo----ooooo ww */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.10; /** * ERC20 standard interface */ interface ERC20 { 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); } /** * Basic access control mechanism */ abstract contract Ownable { address internal owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(isOwner(msg.sender), "!YOU ARE NOT THE OWNER"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(owner, address(0)); owner = address(0); } } /** * Router Interfaces */ interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } /** * Token Contract Code */ contract BULLFROG is ERC20, Ownable { // -- Mappings -- mapping(address => bool) public _blacklisted; mapping(address => bool) private _whitelisted; mapping(address => bool) public _automatedMarketMakers; mapping(address => bool) private _isLimitless; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; // -- Basic Token Information -- string constant _name = "Bullfrog"; string constant _symbol = "BF"; uint8 constant _decimals = 18; uint256 private _totalSupply = 100_000_000 * 10 ** _decimals; // -- Transaction & Wallet Limits -- uint256 public maxBuyPercentage; uint256 public maxSellPercentage; uint256 public maxWalletPercentage; uint256 private maxBuyAmount; uint256 private maxSellAmount; uint256 private maxWalletAmount; // -- Contract Variables -- address[] private sniperList; uint256 tokenTax; uint256 transferFee; uint256 private targetLiquidity = 50; // -- Fee Structs -- struct BuyFee { uint256 liquidityFee; uint256 developerFee; uint256 marketingFee; uint256 total; } struct SellFee { uint256 liquidityFee; uint256 developerFee; uint256 marketingFee; uint256 total; } BuyFee public buyFee; SellFee public sellFee; // -- Addresses -- address public _exchangeRouterAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address private constant DEAD = 0x000000000000000000000000000000000000dEaD; address private constant ZERO = 0x0000000000000000000000000000000000000000; address public developerReceiver = (msg.sender); address public marketingReceiver = (msg.sender); IDEXRouter public router; address public pair; // -- Misc Variables -- bool public antiSniperMode = true; // AntiSniper active at launch by default bool private _addingLP; bool private inSwap; bool private _initialDistributionFinished; // -- Swap Variables -- bool public swapEnabled = true; uint256 private swapThreshold = _totalSupply / 1000; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Ownable(msg.sender) { // Initialize Uniswap Pair router = IDEXRouter(_exchangeRouterAddress); pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this)); _allowances[address(this)][address(router)] = type(uint256).max; _automatedMarketMakers[pair]=true; // Set Initial Buy Fees -- Base 1000 Set 10 for 1% buyFee.liquidityFee = 0; buyFee.developerFee = 5; buyFee.marketingFee = 50; buyFee.total = buyFee.liquidityFee + buyFee.developerFee + buyFee.marketingFee; // Set Initial Sell Fees -- Base 1000 Set 10 for 1% sellFee.liquidityFee = 0; sellFee.developerFee = 25; sellFee.marketingFee = 300; sellFee.total = sellFee.liquidityFee + sellFee.developerFee + sellFee.marketingFee; // Set Initial Buy, Sell & Wallet Limits -- Base 1000 Set 10 for 1% maxBuyPercentage = 10; maxBuyAmount = _totalSupply /1000 * maxBuyPercentage; maxSellPercentage = 5; maxSellAmount = _totalSupply /1000 * maxSellPercentage; maxWalletPercentage = 10; maxWalletAmount = _totalSupply /1000 * maxWalletPercentage; // Exclude from fees & limits _isLimitless[owner] = _isLimitless[address(this)] = true; // Mint _totalSupply to owner address _balances[owner] = _totalSupply; emit Transfer(address(0x0), owner, _totalSupply); } ///////////////////////////////////////// -- Setter Functions -- ///////////////////////////////////////// // Use 10 to set 1% -- Base 1000 for easier fine adjust function ownerSetLimits(uint256 _maxBuyPercentage, uint256 _maxSellPercentage, uint256 _maxWalletPercentage) external onlyOwner { maxBuyPercentage = _maxBuyPercentage; maxBuyAmount = _totalSupply /1000 * maxBuyPercentage; maxSellPercentage = _maxSellPercentage; maxSellAmount = _totalSupply /1000 * maxSellPercentage; maxWalletPercentage= _maxWalletPercentage; maxWalletAmount = _totalSupply /1000 * maxWalletPercentage; } function ownerSetInitialDistributionFinished() external onlyOwner { _initialDistributionFinished = true; } function ownerSetLimitlessAddress(address _addr, bool _status) external onlyOwner { _isLimitless[_addr] = _status; } function ownerSetSwapBackSettings(bool _enabled, uint256 _percentageBase1000) external onlyOwner { swapEnabled = _enabled; swapThreshold = _totalSupply / 1000 * _percentageBase1000; } function ownerSetTargetLiquidity(uint256 target) external onlyOwner { targetLiquidity = target; } // Use 10 to set 1% -- Base 1000 for easier fine adjust function ownerUpdateBuyFees (uint256 _liquidityFee, uint256 _developerFee, uint256 _marketingFee) external onlyOwner { buyFee.liquidityFee = _liquidityFee; buyFee.developerFee = _developerFee; buyFee.marketingFee = _marketingFee; buyFee.total = buyFee.liquidityFee + buyFee.developerFee + buyFee.marketingFee; } // Use 10 to set 1% -- Base 1000 for easier fine adjust function ownerUpdateSellFees (uint256 _liquidityFee, uint256 _developerFee, uint256 _marketingFee) external onlyOwner { sellFee.liquidityFee = _liquidityFee; sellFee.developerFee = _developerFee; sellFee.marketingFee = _marketingFee; sellFee.total = sellFee.liquidityFee + sellFee.developerFee + sellFee.marketingFee; } // Use 10 to set 1% -- Base 1000 for easier fine adjust function ownerUpdateTransferFee (uint256 _transferFee) external onlyOwner { transferFee = _transferFee; } function ownerSetReceivers (address _developer, address _marketing) external onlyOwner { developerReceiver = _developer; marketingReceiver = _marketing; } function ownerAirDropWallets(address[] memory airdropWallets, uint256[] memory amounts) external onlyOwner{ require(airdropWallets.length < 100, "Can only airdrop 100 wallets per txn due to gas limits"); for(uint256 i = 0; i < airdropWallets.length; i++){ address wallet = airdropWallets[i]; uint256 amount = (amounts[i] * 10**_decimals); _transfer(msg.sender, wallet, amount); } } function reverseSniper(address sniper) external onlyOwner { _blacklisted[sniper] = false; } function addNewMarketMaker(address newAMM) external onlyOwner { _automatedMarketMakers[newAMM]=true; _isLimitless[newAMM]=true; } function controlSetAntiSniperModeOn(bool value) external onlyOwner { antiSniperMode = value; } function clearStuckBalance() external onlyOwner { uint256 contractETHBalance = address(this).balance; payable(owner).transfer(contractETHBalance); } function clearStuckToken(address _token) public onlyOwner { uint256 _contractBalance = ERC20(_token).balanceOf(address(this)); payable(developerReceiver).transfer(_contractBalance); } ///////////////////////////////////////// -- Getter Functions -- ///////////////////////////////////////// function getCirculatingSupply() public view returns (uint256) { return _totalSupply - balanceOf(DEAD) - balanceOf(ZERO); } function showSniperList() public view returns(address[] memory){ return sniperList; } function showSniperListLength() public view returns(uint256){ return sniperList.length; } function getLiquidityBacking(uint256 accuracy) public view returns (uint256) { return accuracy * (balanceOf(pair) * (2)) / (getCirculatingSupply()); } function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) { return getLiquidityBacking(accuracy) > target; } ///////////////////////////////////////// -- Internal Functions -- ///////////////////////////////////////// function _transfer(address sender,address recipient,uint256 amount) private { require(sender!=address(0)&&recipient!=address(0),"Cannot be address(0)."); bool isBuy=_automatedMarketMakers[sender]; bool isSell=_automatedMarketMakers[recipient]; bool isExcluded=_isLimitless[sender]||_isLimitless[recipient]||_addingLP; if(isExcluded)_transferExcluded(sender,recipient,amount); else { require(_initialDistributionFinished); // Punish for Snipers if(antiSniperMode)_punishSnipers(sender,recipient,amount); // Buy Tokens else if(isBuy)_buyTokens(sender,recipient,amount); // Sell Tokens else if(isSell) { // Swap & Liquify if (shouldSwapBack()) {swapBack();} _sellTokens(sender,recipient,amount); } else { // P2P Transfer require(!_blacklisted[sender]&&!_blacklisted[recipient]); require(balanceOf(recipient)+amount<=maxWalletAmount, "Total amount exceed wallet limit"); _P2PTransfer(sender,recipient,amount); } } } function _punishSnipers(address sender,address recipient,uint256 amount) private { require(!_blacklisted[recipient]); require(amount <= maxBuyAmount, "Buy exceeds limit"); tokenTax = amount*20/100; _blacklisted[recipient]=true; sniperList.push(address(recipient)); _transferIncluded(sender,recipient,amount,tokenTax); } function _buyTokens(address sender,address recipient,uint256 amount) private { require(!_blacklisted[recipient]); require(amount <= maxBuyAmount, "Buy exceeds limit"); require(balanceOf(recipient)+amount<=maxWalletAmount, "Total amount exceed wallet limit"); if(!_whitelisted[recipient]){ tokenTax = amount*buyFee.total/1000;} else tokenTax = 0; _transferIncluded(sender,recipient,amount,tokenTax); } function _sellTokens(address sender,address recipient,uint256 amount) private { require(!_blacklisted[sender]); require(amount <= maxSellAmount); if(!_whitelisted[sender]){ tokenTax = amount*sellFee.total/1000;} else tokenTax = 0; _transferIncluded(sender,recipient,amount,tokenTax); } function _P2PTransfer(address sender,address recipient,uint256 amount) private { tokenTax = amount * transferFee/1000; if( tokenTax > 0) {_transferIncluded(sender,recipient,amount,tokenTax);} else {_transferExcluded(sender,recipient,amount);} } function _transferExcluded(address sender,address recipient,uint256 amount) private { _updateBalance(sender,_balances[sender]-amount); _updateBalance(recipient,_balances[recipient]+amount); emit Transfer(sender,recipient,amount); } function _transferIncluded(address sender,address recipient,uint256 amount,uint256 taxAmount) private { uint256 newAmount = amount-tokenTax; _updateBalance(sender,_balances[sender]-amount); _updateBalance(address(this),_balances[address(this)]+taxAmount); _updateBalance(recipient,_balances[recipient]+newAmount); emit Transfer(sender,recipient,newAmount); emit Transfer(sender,address(this),taxAmount); } function _updateBalance(address account,uint256 newBalance) private { _balances[account] = newBalance; } function shouldSwapBack() private view returns (bool) { return !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() private swapping { uint256 toSwap = balanceOf(address(this)); uint256 totalLPTokens=toSwap*(sellFee.liquidityFee + buyFee.liquidityFee)/(sellFee.total + buyFee.total); uint256 tokensLeft=toSwap-totalLPTokens; uint256 LPTokens=totalLPTokens/2; uint256 LPETHTokens=totalLPTokens-LPTokens; toSwap=tokensLeft+LPETHTokens; uint256 oldETH=address(this).balance; _swapTokensForETH(toSwap); uint256 newETH=address(this).balance-oldETH; uint256 LPETH=(newETH*LPETHTokens)/toSwap; _addLiquidity(LPTokens,LPETH); uint256 remainingETH=address(this).balance-oldETH; _distributeETH(remainingETH); } function _distributeETH(uint256 remainingETH) private { uint256 marketingFee = (buyFee.marketingFee + sellFee.marketingFee); uint256 developerFee = (buyFee.developerFee + sellFee.developerFee); uint256 totalFee = (marketingFee + developerFee); uint256 amountETHmarketing = remainingETH * (marketingFee) / (totalFee); uint256 amountETHdeveloper = remainingETH * (developerFee) / (totalFee); if(amountETHdeveloper > 0){ (bool developerSuccess, /* bytes memory data */) = payable(developerReceiver).call{value: amountETHdeveloper, gas: 30000}(""); require(developerSuccess, "receiver rejected ETH transfer"); } if(amountETHmarketing > 0){ (bool marketingSuccess, /* bytes memory data */) = payable(marketingReceiver).call{value: amountETHmarketing, gas: 30000}(""); require(marketingSuccess, "receiver rejected ETH transfer"); } } function _swapTokensForETH(uint256 amount) private { address[] memory path=new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, path, address(this), block.timestamp ); } function _addLiquidity(uint256 amountTokens,uint256 amountETH) private { _addingLP=true; router.addLiquidityETH{value: amountETH}( address(this), amountTokens, 0, 0, developerReceiver, block.timestamp ); _addingLP=false; } /** * IERC20 */ receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account];} function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender];} function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { uint256 allowance_ = _allowances[sender][msg.sender]; require(allowance_ >= amount); if (_allowances[sender][msg.sender] != type(uint256).max) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } _transfer(sender, recipient, amount); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_automatedMarketMakers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_exchangeRouterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAMM","type":"address"}],"name":"addNewMarketMaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiSniperMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"developerFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"controlSetAntiSniperModeOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"developerReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","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":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"airdropWallets","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"ownerAirDropWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ownerSetInitialDistributionFinished","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"ownerSetLimitlessAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyPercentage","type":"uint256"},{"internalType":"uint256","name":"_maxSellPercentage","type":"uint256"},{"internalType":"uint256","name":"_maxWalletPercentage","type":"uint256"}],"name":"ownerSetLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_developer","type":"address"},{"internalType":"address","name":"_marketing","type":"address"}],"name":"ownerSetReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_percentageBase1000","type":"uint256"}],"name":"ownerSetSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"}],"name":"ownerSetTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_developerFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"ownerUpdateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_developerFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"ownerUpdateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"ownerUpdateTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"reverseSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"},{"internalType":"uint256","name":"developerFee","type":"uint256"},{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSniperList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"showSniperListLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126012600a62000515565b62000022906305f5e1006200052d565b60088190556032601255601b8054737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031991821617909155601c8054339083168117909155601d8054909216179055601f805464ff000000ff60a01b19167801000000010000000000000000000000000000000000000000179055620000a7906103e8906200054f565b602055348015620000b757600080fd5b5060008054336001600160a01b031991821617909155601b54601e80546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000124573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014a919062000572565b6001600160a01b031663c9c65396601e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d2919062000572565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200021f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000245919062000572565b601f80546001600160a01b0319166001600160a01b03928316178155306000908152600760209081526040808320601e5486168452825280832060001990559254909316815260049092528120805460ff191660011790556013819055600560148190556032601581905591620002bd91906200059d565b620002c991906200059d565b601655600060178190556019601881905561012c80825591620002ed91906200059d565b620002f991906200059d565b601a55600a600981905560085462000315906103e8906200054f565b6200032191906200052d565b600c556005600a8190556008546200033d906103e8906200054f565b6200034991906200052d565b600d55600a600b81905560085462000365906103e8906200054f565b6200037191906200052d565b600e553060009081526005602090815260408083208054600160ff19918216811790925584546001600160a01b039081168652838620805490921690921790556008548454821685526006845282852081905584549251908152911692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620005b8565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004575781600019048211156200043b576200043b62000400565b808516156200044957918102915b93841c93908002906200041b565b509250929050565b60008262000470575060016200050f565b816200047f575060006200050f565b8160018114620004985760028114620004a357620004c3565b60019150506200050f565b60ff841115620004b757620004b762000400565b50506001821b6200050f565b5060208310610133831016604e8410600b8410161715620004e8575081810a6200050f565b620004f4838362000416565b80600019048211156200050b576200050b62000400565b0290505b92915050565b60006200052660ff8416836200045f565b9392505050565b60008160001904831182151516156200054a576200054a62000400565b500290565b6000826200056d57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200058557600080fd5b81516001600160a01b03811681146200052657600080fd5b60008219821115620005b357620005b362000400565b500190565b61257580620005c86000396000f3fe60806040526004361061028c5760003560e01c80636ddd17131161015a578063a8aa1b31116100c1578063dca3cef11161007a578063dca3cef114610817578063dd62ed3e14610837578063e06509971461087d578063e5a772d214610893578063f2fde38b146108b3578063f887ea40146108d357600080fd5b8063a8aa1b3114610761578063a9059cbb14610781578063b45c9053146107a1578063b46ba24b146107c1578063b704a9f6146107e1578063d51ed1c8146107f757600080fd5b80638ca42e4e116101135780638ca42e4e146106965780638ee41ca8146106b657806395d89b41146106d65780639b0ad05c146107015780639be953b314610721578063a5949bcf1461074157600080fd5b80636ddd1713146105d257806370a08231146105f3578063715018a6146106135780637a6d69b41461062857806387cfc49314610658578063893d20e81461067857600080fd5b80632f54bf6e116101fe57806352aae9dd116101b757806352aae9dd1461052657806353cd621014610546578063599ca3971461056757806359d3cac21461057d5780636390aeeb1461059d5780636dc53a0a146105b257600080fd5b80632f54bf6e1461046e578063313ce5671461049d578063364333f4146104b957806347062402146104ce57806347375a37146104f15780634c5d87101461050657600080fd5b806318160ddd1161025057806318160ddd1461037d5780631ca0b1d01461039c57806323b872dd146103be5780632b112e49146103de5780632b14ca56146103f35780632d3b40471461043657600080fd5b806306fdde0314610298578063095ea7b3146102db5780630c5b1d931461030b5780630cb23d861461032d5780631161ae391461035d57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b5060408051808201909152600881526742756c6c66726f6760c01b60208201525b6040516102d29190611eb7565b60405180910390f35b3480156102e757600080fd5b506102fb6102f6366004611f24565b6108f3565b60405190151581526020016102d2565b34801561031757600080fd5b5061032b610326366004611f65565b610960565b005b34801561033957600080fd5b506102fb610348366004611f9a565b60046020526000908152604090205460ff1681565b34801561036957600080fd5b506102fb610378366004611fbe565b6109be565b34801561038957600080fd5b506008545b6040519081526020016102d2565b3480156103a857600080fd5b506103b16109d2565b6040516102d29190612024565b3480156103ca57600080fd5b506102fb6103d9366004612037565b610a34565b3480156103ea57600080fd5b5061038e610afb565b3480156103ff57600080fd5b50601754601854601954601a546104169392919084565b6040805194855260208501939093529183015260608201526080016102d2565b34801561044257600080fd5b50601b54610456906001600160a01b031681565b6040516001600160a01b0390911681526020016102d2565b34801561047a57600080fd5b506102fb610489366004611f9a565b6000546001600160a01b0391821691161490565b3480156104a957600080fd5b50604051601281526020016102d2565b3480156104c557600080fd5b5061032b610b2e565b3480156104da57600080fd5b506013546014546015546016546104169392919084565b3480156104fd57600080fd5b5061032b610b97565b34801561051257600080fd5b5061032b610521366004612078565b610bd6565b34801561053257600080fd5b5061032b6105413660046120a4565b610c71565b34801561055257600080fd5b50601f546102fb90600160a01b900460ff1681565b34801561057357600080fd5b5061038e600b5481565b34801561058957600080fd5b5061032b610598366004612078565b610ca0565b3480156105a957600080fd5b50600f5461038e565b3480156105be57600080fd5b50601c54610456906001600160a01b031681565b3480156105de57600080fd5b50601f546102fb90600160c01b900460ff1681565b3480156105ff57600080fd5b5061038e61060e366004611f9a565b610cf6565b34801561061f57600080fd5b5061032b610d11565b34801561063457600080fd5b506102fb610643366004611f9a565b60026020526000908152604090205460ff1681565b34801561066457600080fd5b5061032b610673366004611f9a565b610d85565b34801561068457600080fd5b506000546001600160a01b0316610456565b3480156106a257600080fd5b5061032b6106b13660046120a4565b610dd0565b3480156106c257600080fd5b5061032b6106d13660046120bd565b610dff565b3480156106e257600080fd5b50604080518082019091526002815261212360f11b60208201526102c5565b34801561070d57600080fd5b5061032b61071c3660046121af565b610e63565b34801561072d57600080fd5b5061032b61073c366004611f9a565b610f82565b34801561074d57600080fd5b50601d54610456906001600160a01b031681565b34801561076d57600080fd5b50601f54610456906001600160a01b031681565b34801561078d57600080fd5b506102fb61079c366004611f24565b611052565b3480156107ad57600080fd5b5061032b6107bc366004612271565b611068565b3480156107cd57600080fd5b5061032b6107dc366004612078565b6110b0565b3480156107ed57600080fd5b5061038e600a5481565b34801561080357600080fd5b5061038e6108123660046120a4565b611106565b34801561082357600080fd5b5061032b61083236600461228c565b611144565b34801561084357600080fd5b5061038e61085236600461228c565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561088957600080fd5b5061038e60095481565b34801561089f57600080fd5b5061032b6108ae366004611f9a565b61119c565b3480156108bf57600080fd5b5061032b6108ce366004611f9a565b611202565b3480156108df57600080fd5b50601e54610456906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061094e9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146109935760405162461bcd60e51b815260040161098a906122c5565b60405180910390fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000826109ca83611106565b119392505050565b6060600f805480602002602001604051908101604052809291908181526020018280548015610a2a57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a0c575b5050505050905090565b6001600160a01b038316600090815260076020908152604080832033845290915281205482811015610a6557600080fd5b6001600160a01b038516600090815260076020908152604080832033845290915290205460001914610ae5576001600160a01b0385166000908152600760209081526040808320338452909152902054610ac090849061230b565b6001600160a01b03861660009081526007602090815260408083203384529091529020555b610af08585856112ec565b506001949350505050565b6000610b076000610cf6565b610b1261dead610cf6565b600854610b1f919061230b565b610b29919061230b565b905090565b6000546001600160a01b03163314610b585760405162461bcd60e51b815260040161098a906122c5565b6000805460405147926001600160a01b039092169183156108fc02918491818181858888f19350505050158015610b93573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610bc15760405162461bcd60e51b815260040161098a906122c5565b601f805460ff60b81b1916600160b81b179055565b6000546001600160a01b03163314610c005760405162461bcd60e51b815260040161098a906122c5565b60098390556008548390610c17906103e890612322565b610c219190612344565b600c55600a8290556008548290610c3b906103e890612322565b610c459190612344565b600d55600b8190556008548190610c5f906103e890612322565b610c699190612344565b600e55505050565b6000546001600160a01b03163314610c9b5760405162461bcd60e51b815260040161098a906122c5565b601255565b6000546001600160a01b03163314610cca5760405162461bcd60e51b815260040161098a906122c5565b60178390556018829055601981905580610ce48385612363565b610cee9190612363565b601a55505050565b6001600160a01b031660009081526006602052604090205490565b6000546001600160a01b03163314610d3b5760405162461bcd60e51b815260040161098a906122c5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610daf5760405162461bcd60e51b815260040161098a906122c5565b6001600160a01b03166000908152600260205260409020805460ff19169055565b6000546001600160a01b03163314610dfa5760405162461bcd60e51b815260040161098a906122c5565b601155565b6000546001600160a01b03163314610e295760405162461bcd60e51b815260040161098a906122c5565b601f805460ff60c01b1916600160c01b841515021790556008548190610e52906103e890612322565b610e5c9190612344565b6020555050565b6000546001600160a01b03163314610e8d5760405162461bcd60e51b815260040161098a906122c5565b6064825110610efd5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203130302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b606482015260840161098a565b60005b8251811015610f7d576000838281518110610f1d57610f1d61237b565b6020026020010151905060006012600a610f379190612475565b848481518110610f4957610f4961237b565b6020026020010151610f5b9190612344565b9050610f683383836112ec565b50508080610f7590612484565b915050610f00565b505050565b6000546001600160a01b03163314610fac5760405162461bcd60e51b815260040161098a906122c5565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610ff3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611017919061249f565b601c546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610f7d573d6000803e3d6000fd5b600061105f3384846112ec565b50600192915050565b6000546001600160a01b031633146110925760405162461bcd60e51b815260040161098a906122c5565b601f8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146110da5760405162461bcd60e51b815260040161098a906122c5565b601383905560148290556015819055806110f48385612363565b6110fe9190612363565b601655505050565b6000611110610afb565b601f54611125906001600160a01b0316610cf6565b611130906002612344565b61113a9084612344565b61095a9190612322565b6000546001600160a01b0316331461116e5760405162461bcd60e51b815260040161098a906122c5565b601c80546001600160a01b039384166001600160a01b031991821617909155601d8054929093169116179055565b6000546001600160a01b031633146111c65760405162461bcd60e51b815260040161098a906122c5565b6001600160a01b031660009081526004602090815260408083208054600160ff1991821681179092556005909352922080549091169091179055565b6000546001600160a01b0316331461122c5760405162461bcd60e51b815260040161098a906122c5565b6001600160a01b0381166112915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161098a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061130c57506001600160a01b03821615155b6113505760405162461bcd60e51b815260206004820152601560248201527421b0b73737ba1031329030b2323932b9b99418149760591b604482015260640161098a565b6001600160a01b03808416600081815260046020908152604080832054948716835280832054938352600590915281205460ff938416939283169216806113af57506001600160a01b03851660009081526005602052604090205460ff165b806113c35750601f54600160a81b900460ff165b905080156113db576113d6868686611508565b611500565b601f54600160b81b900460ff166113f157600080fd5b601f54600160a01b900460ff161561140e576113d68686866115ca565b821561141f576113d68686866116c7565b81156114455761142d6117ef565b1561143a5761143a611837565b6113d6868686611932565b6001600160a01b03861660009081526002602052604090205460ff1615801561148757506001600160a01b03851660009081526002602052604090205460ff16155b61149057600080fd5b600e548461149d87610cf6565b6114a79190612363565b11156114f55760405162461bcd60e51b815260206004820181905260248201527f546f74616c20616d6f756e74206578636565642077616c6c6574206c696d6974604482015260640161098a565b611500868686611998565b505050505050565b6001600160a01b03831660009081526006602052604090205461154e90849061153290849061230b565b6001600160a01b03909116600090815260066020526040902055565b6001600160a01b038216600090815260066020526040902054611578908390611532908490612363565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115bd91815260200190565b60405180910390a3505050565b6001600160a01b03821660009081526002602052604090205460ff16156115f057600080fd5b600c548111156116365760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b604482015260640161098a565b6064611643826014612344565b61164d9190612322565b60109081556001600160a01b0383166000818152600260205260408120805460ff19166001908117909155600f805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b031916909117905554610f7d908490849084906119d6565b6001600160a01b03821660009081526002602052604090205460ff16156116ed57600080fd5b600c548111156117335760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b604482015260640161098a565b600e548161174084610cf6565b61174a9190612363565b11156117985760405162461bcd60e51b815260206004820181905260248201527f546f74616c20616d6f756e74206578636565642077616c6c6574206c696d6974604482015260640161098a565b6001600160a01b03821660009081526003602052604090205460ff166117db576016546103e8906117c99083612344565b6117d39190612322565b6010556117e1565b60006010555b610f7d8383836010546119d6565b601f54600090600160b01b900460ff161580156118155750601f54600160c01b900460ff165b8015610b29575050602080543060009081526006909252604090912054101590565b601f805460ff60b01b1916600160b01b179055600061185530610cf6565b601654601a5491925060009161186b9190612363565b60135460175461187b9190612363565b6118859084612344565b61188f9190612322565b9050600061189d828461230b565b905060006118ac600284612322565b905060006118ba828561230b565b90506118c68184612363565b9450476118d286611af1565b60006118de824761230b565b90506000876118ed8584612344565b6118f79190612322565b90506119038582611c2a565b600061190f844761230b565b905061191a81611ce6565b5050601f805460ff60b01b1916905550505050505050565b6001600160a01b03831660009081526002602052604090205460ff161561195857600080fd5b600d5481111561196757600080fd5b6001600160a01b03831660009081526003602052604090205460ff166117db57601a546103e8906117c99083612344565b6103e8601154826119a99190612344565b6119b39190612322565b6010819055156119cb57610f7d8383836010546119d6565b610f7d838383611508565b6000601054836119e6919061230b565b6001600160a01b038616600090815260066020526040902054909150611a1390869061153290869061230b565b30600081815260066020526040902054611a339190611532908590612363565b6001600160a01b038416600090815260066020526040902054611a5d908590611532908490612363565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611aa291815260200190565b60405180910390a360405182815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b2657611b2661237b565b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba391906124b8565b81600181518110611bb657611bb661237b565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815291169063791ac94790611bfc9085906000908690309042906004016124d5565b600060405180830381600087803b158015611c1657600080fd5b505af1158015611500573d6000803e3d6000fd5b601f805460ff60a81b1916600160a81b179055601e54601c5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611cad573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cd29190612511565b5050601f805460ff60a81b19169055505050565b601954601554600091611cf891612363565b601854601454919250600091611d0e9190612363565b90506000611d1c8284612363565b9050600081611d2b8587612344565b611d359190612322565b9050600082611d448588612344565b611d4e9190612322565b90508015611e0057601c546040516000916001600160a01b03169061753090849084818181858888f193505050503d8060008114611da8576040519150601f19603f3d011682016040523d82523d6000602084013e611dad565b606091505b5050905080611dfe5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161098a565b505b811561150057601d546040516000916001600160a01b03169061753090859084818181858888f193505050503d8060008114611e58576040519150601f19603f3d011682016040523d82523d6000602084013e611e5d565b606091505b5050905080611eae5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161098a565b50505050505050565b600060208083528351808285015260005b81811015611ee457858101830151858201604001528201611ec8565b81811115611ef6576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611f2157600080fd5b50565b60008060408385031215611f3757600080fd5b8235611f4281611f0c565b946020939093013593505050565b80358015158114611f6057600080fd5b919050565b60008060408385031215611f7857600080fd5b8235611f8381611f0c565b9150611f9160208401611f50565b90509250929050565b600060208284031215611fac57600080fd5b8135611fb781611f0c565b9392505050565b60008060408385031215611fd157600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b838110156120195781516001600160a01b031687529582019590820190600101611ff4565b509495945050505050565b602081526000611fb76020830184611fe0565b60008060006060848603121561204c57600080fd5b833561205781611f0c565b9250602084013561206781611f0c565b929592945050506040919091013590565b60008060006060848603121561208d57600080fd5b505081359360208301359350604090920135919050565b6000602082840312156120b657600080fd5b5035919050565b600080604083850312156120d057600080fd5b611f4283611f50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612118576121186120d9565b604052919050565b600067ffffffffffffffff82111561213a5761213a6120d9565b5060051b60200190565b600082601f83011261215557600080fd5b8135602061216a61216583612120565b6120ef565b82815260059290921b8401810191818101908684111561218957600080fd5b8286015b848110156121a4578035835291830191830161218d565b509695505050505050565b600080604083850312156121c257600080fd5b823567ffffffffffffffff808211156121da57600080fd5b818501915085601f8301126121ee57600080fd5b813560206121fe61216583612120565b82815260059290921b8401810191818101908984111561221d57600080fd5b948201945b8386101561224457853561223581611f0c565b82529482019490820190612222565b9650508601359250508082111561225a57600080fd5b5061226785828601612144565b9150509250929050565b60006020828403121561228357600080fd5b611fb782611f50565b6000806040838503121561229f57600080fd5b82356122aa81611f0c565b915060208301356122ba81611f0c565b809150509250929050565b60208082526016908201527510aca7aa9020a922902727aa102a24229027aba722a960511b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008282101561231d5761231d6122f5565b500390565b60008261233f57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561235e5761235e6122f5565b500290565b60008219821115612376576123766122f5565b500190565b634e487b7160e01b600052603260045260246000fd5b600181815b808511156123cc5781600019048211156123b2576123b26122f5565b808516156123bf57918102915b93841c9390800290612396565b509250929050565b6000826123e35750600161095a565b816123f05750600061095a565b816001811461240657600281146124105761242c565b600191505061095a565b60ff841115612421576124216122f5565b50506001821b61095a565b5060208310610133831016604e8410600b841016171561244f575081810a61095a565b6124598383612391565b806000190482111561246d5761246d6122f5565b029392505050565b6000611fb760ff8416836123d4565b6000600019821415612498576124986122f5565b5060010190565b6000602082840312156124b157600080fd5b5051919050565b6000602082840312156124ca57600080fd5b8151611fb781611f0c565b85815284602082015260a0604082015260006124f460a0830186611fe0565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561252657600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122099207c1cf153fa6c5a9b73ad4c998d656a264d64b31cdc8277fcf9ec7c4d479464736f6c634300080a0033
Deployed Bytecode
0x60806040526004361061028c5760003560e01c80636ddd17131161015a578063a8aa1b31116100c1578063dca3cef11161007a578063dca3cef114610817578063dd62ed3e14610837578063e06509971461087d578063e5a772d214610893578063f2fde38b146108b3578063f887ea40146108d357600080fd5b8063a8aa1b3114610761578063a9059cbb14610781578063b45c9053146107a1578063b46ba24b146107c1578063b704a9f6146107e1578063d51ed1c8146107f757600080fd5b80638ca42e4e116101135780638ca42e4e146106965780638ee41ca8146106b657806395d89b41146106d65780639b0ad05c146107015780639be953b314610721578063a5949bcf1461074157600080fd5b80636ddd1713146105d257806370a08231146105f3578063715018a6146106135780637a6d69b41461062857806387cfc49314610658578063893d20e81461067857600080fd5b80632f54bf6e116101fe57806352aae9dd116101b757806352aae9dd1461052657806353cd621014610546578063599ca3971461056757806359d3cac21461057d5780636390aeeb1461059d5780636dc53a0a146105b257600080fd5b80632f54bf6e1461046e578063313ce5671461049d578063364333f4146104b957806347062402146104ce57806347375a37146104f15780634c5d87101461050657600080fd5b806318160ddd1161025057806318160ddd1461037d5780631ca0b1d01461039c57806323b872dd146103be5780632b112e49146103de5780632b14ca56146103f35780632d3b40471461043657600080fd5b806306fdde0314610298578063095ea7b3146102db5780630c5b1d931461030b5780630cb23d861461032d5780631161ae391461035d57600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b5060408051808201909152600881526742756c6c66726f6760c01b60208201525b6040516102d29190611eb7565b60405180910390f35b3480156102e757600080fd5b506102fb6102f6366004611f24565b6108f3565b60405190151581526020016102d2565b34801561031757600080fd5b5061032b610326366004611f65565b610960565b005b34801561033957600080fd5b506102fb610348366004611f9a565b60046020526000908152604090205460ff1681565b34801561036957600080fd5b506102fb610378366004611fbe565b6109be565b34801561038957600080fd5b506008545b6040519081526020016102d2565b3480156103a857600080fd5b506103b16109d2565b6040516102d29190612024565b3480156103ca57600080fd5b506102fb6103d9366004612037565b610a34565b3480156103ea57600080fd5b5061038e610afb565b3480156103ff57600080fd5b50601754601854601954601a546104169392919084565b6040805194855260208501939093529183015260608201526080016102d2565b34801561044257600080fd5b50601b54610456906001600160a01b031681565b6040516001600160a01b0390911681526020016102d2565b34801561047a57600080fd5b506102fb610489366004611f9a565b6000546001600160a01b0391821691161490565b3480156104a957600080fd5b50604051601281526020016102d2565b3480156104c557600080fd5b5061032b610b2e565b3480156104da57600080fd5b506013546014546015546016546104169392919084565b3480156104fd57600080fd5b5061032b610b97565b34801561051257600080fd5b5061032b610521366004612078565b610bd6565b34801561053257600080fd5b5061032b6105413660046120a4565b610c71565b34801561055257600080fd5b50601f546102fb90600160a01b900460ff1681565b34801561057357600080fd5b5061038e600b5481565b34801561058957600080fd5b5061032b610598366004612078565b610ca0565b3480156105a957600080fd5b50600f5461038e565b3480156105be57600080fd5b50601c54610456906001600160a01b031681565b3480156105de57600080fd5b50601f546102fb90600160c01b900460ff1681565b3480156105ff57600080fd5b5061038e61060e366004611f9a565b610cf6565b34801561061f57600080fd5b5061032b610d11565b34801561063457600080fd5b506102fb610643366004611f9a565b60026020526000908152604090205460ff1681565b34801561066457600080fd5b5061032b610673366004611f9a565b610d85565b34801561068457600080fd5b506000546001600160a01b0316610456565b3480156106a257600080fd5b5061032b6106b13660046120a4565b610dd0565b3480156106c257600080fd5b5061032b6106d13660046120bd565b610dff565b3480156106e257600080fd5b50604080518082019091526002815261212360f11b60208201526102c5565b34801561070d57600080fd5b5061032b61071c3660046121af565b610e63565b34801561072d57600080fd5b5061032b61073c366004611f9a565b610f82565b34801561074d57600080fd5b50601d54610456906001600160a01b031681565b34801561076d57600080fd5b50601f54610456906001600160a01b031681565b34801561078d57600080fd5b506102fb61079c366004611f24565b611052565b3480156107ad57600080fd5b5061032b6107bc366004612271565b611068565b3480156107cd57600080fd5b5061032b6107dc366004612078565b6110b0565b3480156107ed57600080fd5b5061038e600a5481565b34801561080357600080fd5b5061038e6108123660046120a4565b611106565b34801561082357600080fd5b5061032b61083236600461228c565b611144565b34801561084357600080fd5b5061038e61085236600461228c565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561088957600080fd5b5061038e60095481565b34801561089f57600080fd5b5061032b6108ae366004611f9a565b61119c565b3480156108bf57600080fd5b5061032b6108ce366004611f9a565b611202565b3480156108df57600080fd5b50601e54610456906001600160a01b031681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061094e9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146109935760405162461bcd60e51b815260040161098a906122c5565b60405180910390fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000826109ca83611106565b119392505050565b6060600f805480602002602001604051908101604052809291908181526020018280548015610a2a57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a0c575b5050505050905090565b6001600160a01b038316600090815260076020908152604080832033845290915281205482811015610a6557600080fd5b6001600160a01b038516600090815260076020908152604080832033845290915290205460001914610ae5576001600160a01b0385166000908152600760209081526040808320338452909152902054610ac090849061230b565b6001600160a01b03861660009081526007602090815260408083203384529091529020555b610af08585856112ec565b506001949350505050565b6000610b076000610cf6565b610b1261dead610cf6565b600854610b1f919061230b565b610b29919061230b565b905090565b6000546001600160a01b03163314610b585760405162461bcd60e51b815260040161098a906122c5565b6000805460405147926001600160a01b039092169183156108fc02918491818181858888f19350505050158015610b93573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610bc15760405162461bcd60e51b815260040161098a906122c5565b601f805460ff60b81b1916600160b81b179055565b6000546001600160a01b03163314610c005760405162461bcd60e51b815260040161098a906122c5565b60098390556008548390610c17906103e890612322565b610c219190612344565b600c55600a8290556008548290610c3b906103e890612322565b610c459190612344565b600d55600b8190556008548190610c5f906103e890612322565b610c699190612344565b600e55505050565b6000546001600160a01b03163314610c9b5760405162461bcd60e51b815260040161098a906122c5565b601255565b6000546001600160a01b03163314610cca5760405162461bcd60e51b815260040161098a906122c5565b60178390556018829055601981905580610ce48385612363565b610cee9190612363565b601a55505050565b6001600160a01b031660009081526006602052604090205490565b6000546001600160a01b03163314610d3b5760405162461bcd60e51b815260040161098a906122c5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610daf5760405162461bcd60e51b815260040161098a906122c5565b6001600160a01b03166000908152600260205260409020805460ff19169055565b6000546001600160a01b03163314610dfa5760405162461bcd60e51b815260040161098a906122c5565b601155565b6000546001600160a01b03163314610e295760405162461bcd60e51b815260040161098a906122c5565b601f805460ff60c01b1916600160c01b841515021790556008548190610e52906103e890612322565b610e5c9190612344565b6020555050565b6000546001600160a01b03163314610e8d5760405162461bcd60e51b815260040161098a906122c5565b6064825110610efd5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203130302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b606482015260840161098a565b60005b8251811015610f7d576000838281518110610f1d57610f1d61237b565b6020026020010151905060006012600a610f379190612475565b848481518110610f4957610f4961237b565b6020026020010151610f5b9190612344565b9050610f683383836112ec565b50508080610f7590612484565b915050610f00565b505050565b6000546001600160a01b03163314610fac5760405162461bcd60e51b815260040161098a906122c5565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610ff3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611017919061249f565b601c546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610f7d573d6000803e3d6000fd5b600061105f3384846112ec565b50600192915050565b6000546001600160a01b031633146110925760405162461bcd60e51b815260040161098a906122c5565b601f8054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146110da5760405162461bcd60e51b815260040161098a906122c5565b601383905560148290556015819055806110f48385612363565b6110fe9190612363565b601655505050565b6000611110610afb565b601f54611125906001600160a01b0316610cf6565b611130906002612344565b61113a9084612344565b61095a9190612322565b6000546001600160a01b0316331461116e5760405162461bcd60e51b815260040161098a906122c5565b601c80546001600160a01b039384166001600160a01b031991821617909155601d8054929093169116179055565b6000546001600160a01b031633146111c65760405162461bcd60e51b815260040161098a906122c5565b6001600160a01b031660009081526004602090815260408083208054600160ff1991821681179092556005909352922080549091169091179055565b6000546001600160a01b0316331461122c5760405162461bcd60e51b815260040161098a906122c5565b6001600160a01b0381166112915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161098a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061130c57506001600160a01b03821615155b6113505760405162461bcd60e51b815260206004820152601560248201527421b0b73737ba1031329030b2323932b9b99418149760591b604482015260640161098a565b6001600160a01b03808416600081815260046020908152604080832054948716835280832054938352600590915281205460ff938416939283169216806113af57506001600160a01b03851660009081526005602052604090205460ff165b806113c35750601f54600160a81b900460ff165b905080156113db576113d6868686611508565b611500565b601f54600160b81b900460ff166113f157600080fd5b601f54600160a01b900460ff161561140e576113d68686866115ca565b821561141f576113d68686866116c7565b81156114455761142d6117ef565b1561143a5761143a611837565b6113d6868686611932565b6001600160a01b03861660009081526002602052604090205460ff1615801561148757506001600160a01b03851660009081526002602052604090205460ff16155b61149057600080fd5b600e548461149d87610cf6565b6114a79190612363565b11156114f55760405162461bcd60e51b815260206004820181905260248201527f546f74616c20616d6f756e74206578636565642077616c6c6574206c696d6974604482015260640161098a565b611500868686611998565b505050505050565b6001600160a01b03831660009081526006602052604090205461154e90849061153290849061230b565b6001600160a01b03909116600090815260066020526040902055565b6001600160a01b038216600090815260066020526040902054611578908390611532908490612363565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115bd91815260200190565b60405180910390a3505050565b6001600160a01b03821660009081526002602052604090205460ff16156115f057600080fd5b600c548111156116365760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b604482015260640161098a565b6064611643826014612344565b61164d9190612322565b60109081556001600160a01b0383166000818152600260205260408120805460ff19166001908117909155600f805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b031916909117905554610f7d908490849084906119d6565b6001600160a01b03821660009081526002602052604090205460ff16156116ed57600080fd5b600c548111156117335760405162461bcd60e51b8152602060048201526011602482015270109d5e48195e18d959591cc81b1a5b5a5d607a1b604482015260640161098a565b600e548161174084610cf6565b61174a9190612363565b11156117985760405162461bcd60e51b815260206004820181905260248201527f546f74616c20616d6f756e74206578636565642077616c6c6574206c696d6974604482015260640161098a565b6001600160a01b03821660009081526003602052604090205460ff166117db576016546103e8906117c99083612344565b6117d39190612322565b6010556117e1565b60006010555b610f7d8383836010546119d6565b601f54600090600160b01b900460ff161580156118155750601f54600160c01b900460ff165b8015610b29575050602080543060009081526006909252604090912054101590565b601f805460ff60b01b1916600160b01b179055600061185530610cf6565b601654601a5491925060009161186b9190612363565b60135460175461187b9190612363565b6118859084612344565b61188f9190612322565b9050600061189d828461230b565b905060006118ac600284612322565b905060006118ba828561230b565b90506118c68184612363565b9450476118d286611af1565b60006118de824761230b565b90506000876118ed8584612344565b6118f79190612322565b90506119038582611c2a565b600061190f844761230b565b905061191a81611ce6565b5050601f805460ff60b01b1916905550505050505050565b6001600160a01b03831660009081526002602052604090205460ff161561195857600080fd5b600d5481111561196757600080fd5b6001600160a01b03831660009081526003602052604090205460ff166117db57601a546103e8906117c99083612344565b6103e8601154826119a99190612344565b6119b39190612322565b6010819055156119cb57610f7d8383836010546119d6565b610f7d838383611508565b6000601054836119e6919061230b565b6001600160a01b038616600090815260066020526040902054909150611a1390869061153290869061230b565b30600081815260066020526040902054611a339190611532908590612363565b6001600160a01b038416600090815260066020526040902054611a5d908590611532908490612363565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611aa291815260200190565b60405180910390a360405182815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611b2657611b2661237b565b6001600160a01b03928316602091820292909201810191909152601e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611b7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba391906124b8565b81600181518110611bb657611bb661237b565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b815291169063791ac94790611bfc9085906000908690309042906004016124d5565b600060405180830381600087803b158015611c1657600080fd5b505af1158015611500573d6000803e3d6000fd5b601f805460ff60a81b1916600160a81b179055601e54601c5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611cad573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cd29190612511565b5050601f805460ff60a81b19169055505050565b601954601554600091611cf891612363565b601854601454919250600091611d0e9190612363565b90506000611d1c8284612363565b9050600081611d2b8587612344565b611d359190612322565b9050600082611d448588612344565b611d4e9190612322565b90508015611e0057601c546040516000916001600160a01b03169061753090849084818181858888f193505050503d8060008114611da8576040519150601f19603f3d011682016040523d82523d6000602084013e611dad565b606091505b5050905080611dfe5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161098a565b505b811561150057601d546040516000916001600160a01b03169061753090859084818181858888f193505050503d8060008114611e58576040519150601f19603f3d011682016040523d82523d6000602084013e611e5d565b606091505b5050905080611eae5760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e736665720000604482015260640161098a565b50505050505050565b600060208083528351808285015260005b81811015611ee457858101830151858201604001528201611ec8565b81811115611ef6576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114611f2157600080fd5b50565b60008060408385031215611f3757600080fd5b8235611f4281611f0c565b946020939093013593505050565b80358015158114611f6057600080fd5b919050565b60008060408385031215611f7857600080fd5b8235611f8381611f0c565b9150611f9160208401611f50565b90509250929050565b600060208284031215611fac57600080fd5b8135611fb781611f0c565b9392505050565b60008060408385031215611fd157600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b838110156120195781516001600160a01b031687529582019590820190600101611ff4565b509495945050505050565b602081526000611fb76020830184611fe0565b60008060006060848603121561204c57600080fd5b833561205781611f0c565b9250602084013561206781611f0c565b929592945050506040919091013590565b60008060006060848603121561208d57600080fd5b505081359360208301359350604090920135919050565b6000602082840312156120b657600080fd5b5035919050565b600080604083850312156120d057600080fd5b611f4283611f50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612118576121186120d9565b604052919050565b600067ffffffffffffffff82111561213a5761213a6120d9565b5060051b60200190565b600082601f83011261215557600080fd5b8135602061216a61216583612120565b6120ef565b82815260059290921b8401810191818101908684111561218957600080fd5b8286015b848110156121a4578035835291830191830161218d565b509695505050505050565b600080604083850312156121c257600080fd5b823567ffffffffffffffff808211156121da57600080fd5b818501915085601f8301126121ee57600080fd5b813560206121fe61216583612120565b82815260059290921b8401810191818101908984111561221d57600080fd5b948201945b8386101561224457853561223581611f0c565b82529482019490820190612222565b9650508601359250508082111561225a57600080fd5b5061226785828601612144565b9150509250929050565b60006020828403121561228357600080fd5b611fb782611f50565b6000806040838503121561229f57600080fd5b82356122aa81611f0c565b915060208301356122ba81611f0c565b809150509250929050565b60208082526016908201527510aca7aa9020a922902727aa102a24229027aba722a960511b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008282101561231d5761231d6122f5565b500390565b60008261233f57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561235e5761235e6122f5565b500290565b60008219821115612376576123766122f5565b500190565b634e487b7160e01b600052603260045260246000fd5b600181815b808511156123cc5781600019048211156123b2576123b26122f5565b808516156123bf57918102915b93841c9390800290612396565b509250929050565b6000826123e35750600161095a565b816123f05750600061095a565b816001811461240657600281146124105761242c565b600191505061095a565b60ff841115612421576124216122f5565b50506001821b61095a565b5060208310610133831016604e8410600b841016171561244f575081810a61095a565b6124598383612391565b806000190482111561246d5761246d6122f5565b029392505050565b6000611fb760ff8416836123d4565b6000600019821415612498576124986122f5565b5060010190565b6000602082840312156124b157600080fd5b5051919050565b6000602082840312156124ca57600080fd5b8151611fb781611f0c565b85815284602082015260a0604082015260006124f460a0830186611fe0565b6001600160a01b0394909416606083015250608001529392505050565b60008060006060848603121561252657600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122099207c1cf153fa6c5a9b73ad4c998d656a264d64b31cdc8277fcf9ec7c4d479464736f6c634300080a0033
Deployed Bytecode Sourcemap
3731:16392:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18844:80;;;;;;;;;;-1:-1:-1;18916:5:0;;;;;;;;;;;;-1:-1:-1;;;18916:5:0;;;;18844:80;;;;;;;:::i;:::-;;;;;;;;19265:216;;;;;;;;;;-1:-1:-1;19265:216:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;19265:216:0;1072:187:1;8436:130:0;;;;;;;;;;-1:-1:-1;8436:130:0;;;;;:::i;:::-;;:::i;:::-;;3900:54;;;;;;;;;;-1:-1:-1;3900:54:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12037:150;;;;;;;;;;-1:-1:-1;12037:150:0;;;;;:::i;:::-;;:::i;18574:88::-;;;;;;;;;;-1:-1:-1;18647:12:0;;18574:88;;;2400:25:1;;;2388:2;2373:18;18574:88:0;2254:177:1;11644:99:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;19664:456::-;;;;;;;;;;-1:-1:-1;19664:456:0;;;;;:::i;:::-;;:::i;11499:136::-;;;;;;;;;;;;;:::i;5155:22::-;;;;;;;;;;-1:-1:-1;5155:22:0;;;;;;;;;;;;;;;;;;;3860:25:1;;;3916:2;3901:18;;3894:34;;;;3944:18;;;3937:34;4002:2;3987:18;;3980:34;3847:3;3832:19;5155:22:0;3629:391:1;5211:82:0;;;;;;;;;;-1:-1:-1;5211:82:0;;;;-1:-1:-1;;;;;5211:82:0;;;;;;-1:-1:-1;;;;;4189:32:1;;;4171:51;;4159:2;4144:18;5211:82:0;4025:203:1;1660:103:0;;;;;;;;;;-1:-1:-1;1660:103:0;;;;;:::i;:::-;1715:4;1750:5;-1:-1:-1;;;;;1739:16:0;;;1750:5;;1739:16;;1660:103;18668:80;;;;;;;;;;-1:-1:-1;18668:80:0;;4285:2;4375:36:1;;4363:2;4348:18;18668:80:0;4233:184:1;10992:171:0;;;;;;;;;;;;;:::i;5128:20::-;;;;;;;;;;-1:-1:-1;5128:20:0;;;;;;;;;;;;;;;8307:120;;;;;;;;;;;;;:::i;7787:511::-;;;;;;;;;;-1:-1:-1;7787:511:0;;;;;:::i;:::-;;:::i;8790:111::-;;;;;;;;;;-1:-1:-1;8790:111:0;;;;;:::i;:::-;;:::i;5668:33::-;;;;;;;;;;-1:-1:-1;5668:33:0;;;;-1:-1:-1;;;5668:33:0;;;;;;4486:34;;;;;;;;;;;;;;;;9394:360;;;;;;;;;;-1:-1:-1;9394:360:0;;;;;:::i;:::-;;:::i;11752:103::-;;;;;;;;;;-1:-1:-1;11830:10:0;:17;11752:103;;5468:47;;;;;;;;;;-1:-1:-1;5468:47:0;;;;-1:-1:-1;;;;;5468:47:0;;;5886:30;;;;;;;;;;-1:-1:-1;5886:30:0;;;;-1:-1:-1;;;5886:30:0;;;;;;19014:104;;;;;;;;;;-1:-1:-1;19014:104:0;;;;;:::i;:::-;;:::i;2023:146::-;;;;;;;;;;;;;:::i;3797:44::-;;;;;;;;;;-1:-1:-1;3797:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10600:105;;;;;;;;;;-1:-1:-1;10600:105:0;;;;;:::i;:::-;;:::i;18930:78::-;;;;;;;;;;-1:-1:-1;18982:7:0;19000:5;-1:-1:-1;;;;;19000:5:0;18930:78;;9825:119;;;;;;;;;;-1:-1:-1;9825:119:0;;;;;:::i;:::-;;:::i;8575:206::-;;;;;;;;;;-1:-1:-1;8575:206:0;;;;;:::i;:::-;;:::i;18754:84::-;;;;;;;;;;-1:-1:-1;18828:7:0;;;;;;;;;;;;-1:-1:-1;;;18828:7:0;;;;18754:84;;10139:452;;;;;;;;;;-1:-1:-1;10139:452:0;;;;;:::i;:::-;;:::i;11172:206::-;;;;;;;;;;-1:-1:-1;11172:206:0;;;;;:::i;:::-;;:::i;5522:47::-;;;;;;;;;;-1:-1:-1;5522:47:0;;;;-1:-1:-1;;;;;5522:47:0;;;5610:19;;;;;;;;;;-1:-1:-1;5610:19:0;;;;-1:-1:-1;;;;;5610:19:0;;;19490:165;;;;;;;;;;-1:-1:-1;19490:165:0;;;;;:::i;:::-;;:::i;10875:108::-;;;;;;;;;;-1:-1:-1;10875:108:0;;;;;:::i;:::-;;:::i;8971:352::-;;;;;;;;;;-1:-1:-1;8971:352:0;;;;;:::i;:::-;;:::i;4447:32::-;;;;;;;;;;;;;;;;11864:164;;;;;;;;;;-1:-1:-1;11864:164:0;;;;;:::i;:::-;;:::i;9953:177::-;;;;;;;;;;-1:-1:-1;9953:177:0;;;;;:::i;:::-;;:::i;19124:132::-;;;;;;;;;;-1:-1:-1;19124:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;19226:19:0;;;19208:7;19226:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;19124:132;4409:31;;;;;;;;;;;;;;;;10714:152;;;;;;;;;;-1:-1:-1;10714:152:0;;;;;:::i;:::-;;:::i;1772:242::-;;;;;;;;;;-1:-1:-1;1772:242:0;;;;;:::i;:::-;;:::i;5579:24::-;;;;;;;;;;-1:-1:-1;5579:24:0;;;;-1:-1:-1;;;;;5579:24:0;;;19265:216;19369:10;19340:4;19357:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;19357:32:0;;;;;;;;;;:41;;;19414:37;19340:4;;19357:32;;19414:37;;;;19392:6;2400:25:1;;2388:2;2373:18;;2254:177;19414:37:0;;;;;;;;-1:-1:-1;19469:4:0;19265:216;;;;;:::o;8436:130::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;8529:19:0;;;::::1;;::::0;;;:12:::1;:19;::::0;;;;:29;;-1:-1:-1;;8529:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8436:130::o;12037:150::-;12117:4;12173:6;12141:29;12161:8;12141:19;:29::i;:::-;:38;;12037:150;-1:-1:-1;;;12037:150:0:o;11644:99::-;11690:16;11725:10;11718:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11718:17:0;;;;;;;;;;;;;;;;;;;;;;;11644:99;:::o;19664:456::-;-1:-1:-1;;;;;19800:19:0;;19762:4;19800:19;;;:11;:19;;;;;;;;19820:10;19800:31;;;;;;;;19850:20;;;;19842:29;;;;;;-1:-1:-1;;;;;19889:19:0;;;;;;:11;:19;;;;;;;;19909:10;19889:31;;;;;;;;-1:-1:-1;;19889:52:0;19885:159;;-1:-1:-1;;;;;19992:19:0;;;;;;:11;:19;;;;;;;;20012:10;19992:31;;;;;;;;:40;;20026:6;;19992:40;:::i;:::-;-1:-1:-1;;;;;19958:19:0;;;;;;:11;:19;;;;;;;;19978:10;19958:31;;;;;;;:74;19885:159;20054:36;20064:6;20072:9;20083:6;20054:9;:36::i;:::-;-1:-1:-1;20108:4:0;;19664:456;-1:-1:-1;;;;19664:456:0:o;11499:136::-;11552:7;11612:15;5416:42;11612:9;:15::i;:::-;11594;5335:42;11594:9;:15::i;:::-;11579:12;;:30;;;;:::i;:::-;:48;;;;:::i;:::-;11572:55;;11499:136;:::o;10992:171::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;11051:26:::1;11120:5:::0;;11112:43:::1;::::0;11080:21:::1;::::0;-1:-1:-1;;;;;11120:5:0;;::::1;::::0;11112:43;::::1;;;::::0;11080:21;;11112:43;11051:26;11112:43;11080:21;11120:5;11112:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11040:123;10992:171::o:0;8307:120::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;8384:28:::1;:35:::0;;-1:-1:-1;;;;8384:35:0::1;-1:-1:-1::0;;;8384:35:0::1;::::0;;8307:120::o;7787:511::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;7926:16:::1;:36:::0;;;7999:12:::1;::::0;7945:17;;7999:18:::1;::::0;8013:4:::1;::::0;7999:18:::1;:::i;:::-;:37;;;;:::i;:::-;7984:12;:52:::0;8049:17:::1;:38:::0;;;8123:12:::1;::::0;8069:18;;8123::::1;::::0;8137:4:::1;::::0;8123:18:::1;:::i;:::-;:38;;;;:::i;:::-;8107:13;:54:::0;8174:19:::1;:41:::0;;;8250:12:::1;::::0;8195:20;;8250:18:::1;::::0;8264:4:::1;::::0;8250:18:::1;:::i;:::-;:40;;;;:::i;:::-;8232:15;:58:::0;-1:-1:-1;;;7787:511:0:o;8790:111::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;8869:15:::1;:24:::0;8790:111::o;9394:360::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;9523:7:::1;:36:::0;;;9570:20;:36;;;9617:20;:36;;;9640:13;9680:43:::1;9593:13:::0;9546;9680:43:::1;:::i;:::-;:66;;;;:::i;:::-;9664:13:::0;:82;-1:-1:-1;;;9394:360:0:o;19014:104::-;-1:-1:-1;;;;;19098:18:0;19080:7;19098:18;;;:9;:18;;;;;;;19014:104::o;2023:146::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;2129:1:::1;2114:5:::0;;2093:39:::1;::::0;-1:-1:-1;;;;;2114:5:0;;::::1;::::0;2093:39:::1;::::0;2129:1;;2093:39:::1;2159:1;2143:18:::0;;-1:-1:-1;;;;;;2143:18:0::1;::::0;;2023:146::o;10600:105::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10669:20:0::1;10692:5;10669:20:::0;;;:12:::1;:20;::::0;;;;:28;;-1:-1:-1;;10669:28:0::1;::::0;;10600:105::o;9825:119::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;9910:11:::1;:26:::0;9825:119::o;8575:206::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;8683:11:::1;:22:::0;;-1:-1:-1;;;;8683:22:0::1;-1:-1:-1::0;;;8683:22:0;::::1;;;;::::0;;8732:12:::1;::::0;8754:19;;8732::::1;::::0;8747:4:::1;::::0;8732:19:::1;:::i;:::-;:41;;;;:::i;:::-;8716:13;:57:::0;-1:-1:-1;;8575:206:0:o;10139:452::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;10288:3:::1;10264:14;:21;:27;10256:94;;;::::0;-1:-1:-1;;;10256:94:0;;9815:2:1;10256:94:0::1;::::0;::::1;9797:21:1::0;9854:2;9834:18;;;9827:30;9893:34;9873:18;;;9866:62;-1:-1:-1;;;9944:18:1;;;9937:52;10006:19;;10256:94:0::1;9613:418:1::0;10256:94:0::1;10365:9;10361:223;10384:14;:21;10380:1;:25;10361:223;;;10426:14;10443;10458:1;10443:17;;;;;;;;:::i;:::-;;;;;;;10426:34;;10475:14;4285:2;10506;:13;;;;:::i;:::-;10493:7;10501:1;10493:10;;;;;;;;:::i;:::-;;;;;;;:26;;;;:::i;:::-;10475:45;;10535:37;10545:10;10557:6;10565;10535:9;:37::i;:::-;10411:173;;10407:3;;;;;:::i;:::-;;;;10361:223;;;;10139:452:::0;;:::o;11172:206::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;11268:38:::1;::::0;-1:-1:-1;;;11268:38:0;;11300:4:::1;11268:38;::::0;::::1;4171:51:1::0;11241:24:0::1;::::0;-1:-1:-1;;;;;11268:23:0;::::1;::::0;::::1;::::0;4144:18:1;;11268:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11325:17;::::0;11317:53:::1;::::0;11241:65;;-1:-1:-1;;;;;;11325:17:0::1;::::0;11317:53;::::1;;;::::0;11241:65;;11325:17:::1;11317:53:::0;11325:17;11317:53;11241:65;11325:17;11317:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;19490:165:::0;19568:4;19585:40;19595:10;19607:9;19618:6;19585:9;:40::i;:::-;-1:-1:-1;19643:4:0;19490:165;;;;:::o;10875:108::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;10953:14:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;10953:22:0::1;-1:-1:-1::0;;;;10953:22:0;;::::1;::::0;;;::::1;::::0;;10875:108::o;8971:352::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;9099:6:::1;:35:::0;;;9145:19;:35;;;9191:19;:35;;;9213:13;9252:41:::1;9167:13:::0;9121;9252:41:::1;:::i;:::-;:63;;;;:::i;:::-;9237:12:::0;:78;-1:-1:-1;;;8971:352:0:o;11864:164::-;11932:7;11997:22;:20;:22::i;:::-;11981:4;;11971:15;;-1:-1:-1;;;;;11981:4:0;11971:9;:15::i;:::-;:21;;11990:1;11971:21;:::i;:::-;11959:34;;:8;:34;:::i;:::-;:61;;;;:::i;9953:177::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;10051:17:::1;:30:::0;;-1:-1:-1;;;;;10051:30:0;;::::1;-1:-1:-1::0;;;;;;10051:30:0;;::::1;;::::0;;;10092:17:::1;:30:::0;;;;;::::1;::::0;::::1;;::::0;;9953:177::o;10714:152::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10787:30:0::1;;::::0;;;:22:::1;:30;::::0;;;;;;;:35;;10818:4:::1;-1:-1:-1::0;;10787:35:0;;::::1;::::0;::::1;::::0;;;10833:12:::1;:20:::0;;;;;:25;;;;::::1;::::0;;::::1;::::0;;10714:152::o;1772:242::-;1715:4;1750:5;-1:-1:-1;;;;;1750:5:0;1602:10;1739:16;1586:54;;;;-1:-1:-1;;;1586:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1861:22:0;::::1;1853:73;;;::::0;-1:-1:-1;;;1853:73:0;;12082:2:1;1853:73:0::1;::::0;::::1;12064:21:1::0;12121:2;12101:18;;;12094:30;12160:34;12140:18;;;12133:62;-1:-1:-1;;;12211:18:1;;;12204:36;12257:19;;1853:73:0::1;11880:402:1::0;1853:73:0::1;1963:5;::::0;;1942:37:::1;::::0;-1:-1:-1;;;;;1942:37:0;;::::1;::::0;1963:5;::::1;::::0;1942:37:::1;::::0;::::1;1990:5;:16:::0;;-1:-1:-1;;;;;;1990:16:0::1;-1:-1:-1::0;;;;;1990:16:0;;;::::1;::::0;;;::::1;::::0;;1772:242::o;12313:1205::-;-1:-1:-1;;;;;12408:18:0;;;;;;:41;;-1:-1:-1;;;;;;12428:21:0;;;;12408:41;12400:74;;;;-1:-1:-1;;;12400:74:0;;12489:2:1;12400:74:0;;;12471:21:1;12528:2;12508:18;;;12501:30;-1:-1:-1;;;12547:18:1;;;12540:51;12608:18;;12400:74:0;12287:345:1;12400:74:0;-1:-1:-1;;;;;12496:30:0;;;12485:10;12496:30;;;:22;:30;;;;;;;;;12549:33;;;;;;;;;12609:20;;;:12;:20;;;;;;12496:30;;;;;12549:33;;;;12609:20;;:45;;-1:-1:-1;;;;;;12631:23:0;;;;;;:12;:23;;;;;;;;12609:45;:56;;;-1:-1:-1;12656:9:0;;-1:-1:-1;;;12656:9:0;;;;12609:56;12593:72;;12682:10;12679:832;;;12693:42;12711:6;12718:9;12728:6;12693:17;:42::i;:::-;12679:832;;;12761:28;;-1:-1:-1;;;12761:28:0;;;;12753:37;;;;;;12843:14;;-1:-1:-1;;;12843:14:0;;;;12840:660;;;12858:39;12873:6;12880:9;12890:6;12858:14;:39::i;12840:660::-;12947:5;12944:556;;;12953:35;12964:6;12971:9;12981:6;12953:10;:35::i;12944:556::-;13039:6;13036:464;;;13105:16;:14;:16::i;:::-;13101:35;;;13124:10;:8;:10::i;:::-;13154:36;13166:6;13173:9;13183:6;13154:11;:36::i;13036:464::-;-1:-1:-1;;;;;13273:20:0;;;;;;:12;:20;;;;;;;;13272:21;:47;;;;-1:-1:-1;;;;;;13296:23:0;;;;;;:12;:23;;;;;;;;13295:24;13272:47;13264:56;;;;;;13376:15;;13368:6;13347:20;13357:9;13347;:20::i;:::-;:27;;;;:::i;:::-;:44;;13339:89;;;;-1:-1:-1;;;13339:89:0;;12839:2:1;13339:89:0;;;12821:21:1;;;12858:18;;;12851:30;12917:34;12897:18;;;12890:62;12969:18;;13339:89:0;12637:356:1;13339:89:0;13447:37;13460:6;13467:9;13477:6;13447:12;:37::i;:::-;12389:1129;;;12313:1205;;;:::o;15026:263::-;-1:-1:-1;;;;;15143:17:0;;;;;;:9;:17;;;;;;15121:47;;15136:6;;15143:24;;15161:6;;15143:24;:::i;:::-;-1:-1:-1;;;;;15850:18:0;;;;;;;:9;:18;;;;;:31;15771:118;15121:47;-1:-1:-1;;;;;15204:20:0;;;;;;:9;:20;;;;;;15179:53;;15194:9;;15204:27;;15225:6;;15204:27;:::i;15179:53::-;15264:9;-1:-1:-1;;;;;15248:33:0;15257:6;-1:-1:-1;;;;;15248:33:0;;15274:6;15248:33;;;;2400:25:1;;2388:2;2373:18;;2254:177;15248:33:0;;;;;;;;15026:263;;;:::o;13527:378::-;-1:-1:-1;;;;;13628:23:0;;;;;;:12;:23;;;;;;;;13627:24;13619:33;;;;;;13681:12;;13671:6;:22;;13663:52;;;;-1:-1:-1;;;13663:52:0;;13200:2:1;13663:52:0;;;13182:21:1;13239:2;13219:18;;;13212:30;-1:-1:-1;;;13258:18:1;;;13251:47;13315:18;;13663:52:0;12998:341:1;13663:52:0;13747:3;13737:9;:6;13744:2;13737:9;:::i;:::-;:13;;;;:::i;:::-;13726:8;:24;;;-1:-1:-1;;;;;13761:23:0;;;;;;:12;:23;;;;;:28;;-1:-1:-1;;13761:28:0;13785:4;13761:28;;;;;;13800:10;:35;;;;;;;;;;;;;;-1:-1:-1;;;;;;13800:35:0;;;;;;13888:8;13846:51;;13864:6;;13774:9;;13881:6;;13846:17;:51::i;13914:468::-;-1:-1:-1;;;;;14011:23:0;;;;;;:12;:23;;;;;;;;14010:24;14002:33;;;;;;14064:12;;14054:6;:22;;14046:52;;;;-1:-1:-1;;;14046:52:0;;13200:2:1;14046:52:0;;;13182:21:1;13239:2;13219:18;;;13212:30;-1:-1:-1;;;13258:18:1;;;13251:47;13315:18;;14046:52:0;12998:341:1;14046:52:0;14146:15;;14138:6;14117:20;14127:9;14117;:20::i;:::-;:27;;;;:::i;:::-;:44;;14109:89;;;;-1:-1:-1;;;14109:89:0;;12839:2:1;14109:89:0;;;12821:21:1;;;12858:18;;;12851:30;12917:34;12897:18;;;12890:62;12969:18;;14109:89:0;12637:356:1;14109:89:0;-1:-1:-1;;;;;14213:23:0;;;;;;:12;:23;;;;;;;;14209:103;;14266:12;;14279:4;;14259:19;;:6;:19;:::i;:::-;:24;;;;:::i;:::-;14248:8;:35;14209:103;;;14311:1;14300:8;:12;14209:103;14323:51;14341:6;14348:9;14358:6;14365:8;;14323:17;:51::i;15898:186::-;15984:6;;15946:4;;-1:-1:-1;;;15984:6:0;;;;15983:7;:35;;;;-1:-1:-1;16007:11:0;;-1:-1:-1;;;16007:11:0;;;;15983:35;:93;;;;-1:-1:-1;;16063:13:0;;;16053:4;16035:24;;;;:9;:24;;;;;;;;:41;;;15898:186::o;16096:729::-;6015:6;:13;;-1:-1:-1;;;;6015:13:0;-1:-1:-1;;;6015:13:0;;;;16161:24:::1;16179:4;16161:9;:24::i;:::-;16290:12:::0;;16274:13;;16144:41;;-1:-1:-1;16199:21:0::1;::::0;16274:28:::1;::::0;16290:12;16274:28:::1;:::i;:::-;16252:6;:19:::0;16229:7:::1;:20:::0;:42:::1;::::0;16252:19;16229:42:::1;:::i;:::-;16221:51;::::0;:6;:51:::1;:::i;:::-;:82;;;;:::i;:::-;16199:104:::0;-1:-1:-1;16314:18:0::1;16333:20;16199:104:::0;16333:6;:20:::1;:::i;:::-;16314:39:::0;-1:-1:-1;16364:16:0::1;16381:15;16395:1;16381:13:::0;:15:::1;:::i;:::-;16364:32:::0;-1:-1:-1;16407:19:0::1;16427:22;16364:32:::0;16427:13;:22:::1;:::i;:::-;16407:42:::0;-1:-1:-1;16467:22:0::1;16407:42:::0;16467:10;:22:::1;:::i;:::-;16460:29:::0;-1:-1:-1;16515:21:0::1;16547:25;16460:29:::0;16547:17:::1;:25::i;:::-;16583:14;16598:28;16620:6:::0;16598:21:::1;:28;:::i;:::-;16583:43:::0;-1:-1:-1;16637:13:0::1;16672:6:::0;16652:18:::1;16659:11:::0;16583:43;16652:18:::1;:::i;:::-;16651:27;;;;:::i;:::-;16637:41;;16689:29;16703:8;16712:5;16689:13;:29::i;:::-;16729:20;16750:28;16772:6:::0;16750:21:::1;:28;:::i;:::-;16729:49;;16789:28;16804:12;16789:14;:28::i;:::-;-1:-1:-1::0;;6051:6:0;:14;;-1:-1:-1;;;;6051:14:0;;;-1:-1:-1;;;;;;;16096:729:0:o;14388:344::-;-1:-1:-1;;;;;14486:20:0;;;;;;:12;:20;;;;;;;;14485:21;14477:30;;;;;;14536:13;;14526:6;:23;;14518:32;;;;;;-1:-1:-1;;;;;14565:20:0;;;;;;:12;:20;;;;;;;;14561:101;;14615:13;;14629:4;;14608:20;;:6;:20;:::i;14741:276::-;14863:4;14851:11;;14842:6;:20;;;;:::i;:::-;:25;;;;:::i;:::-;14831:8;:36;;;14882:12;14878:132;;14897:51;14915:6;14922:9;14932:6;14939:8;;14897:17;:51::i;14878:132::-;14966:42;14984:6;14991:9;15001:6;14966:17;:42::i;15298:464::-;15411:17;15438:8;;15431:6;:15;;;;:::i;:::-;-1:-1:-1;;;;;15479:17:0;;;;;;:9;:17;;;;;;15411:35;;-1:-1:-1;15457:47:0;;15472:6;;15479:24;;15497:6;;15479:24;:::i;15457:47::-;15538:4;15544:24;;;;:9;:24;;;;;;15515:64;;15538:4;15544:34;;15569:9;;15544:34;:::i;15515:64::-;-1:-1:-1;;;;;15615:20:0;;;;;;:9;:20;;;;;;15590:56;;15605:9;;15615:30;;15636:9;;15615:30;:::i;15590:56::-;15678:9;-1:-1:-1;;;;;15662:36:0;15671:6;-1:-1:-1;;;;;15662:36:0;;15688:9;15662:36;;;;2400:25:1;;2388:2;2373:18;;2254:177;15662:36:0;;;;;;;;15714:40;;2400:25:1;;;15738:4:0;;-1:-1:-1;;;;;15714:40:0;;;;;2388:2:1;2373:18;15714:40:0;;;;;;;15400:362;15298:464;;;;:::o;17783:369::-;17867:16;;;17881:1;17867:16;;;;;;;;17845:21;;17867:16;;;;;;;;;;-1:-1:-1;17867:16:0;17845:38;;17912:4;17894;17899:1;17894:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17894:23:0;;;:7;;;;;;;;;;:23;;;;17938:6;;:13;;;-1:-1:-1;;;17938:13:0;;;;:6;;;;;:11;;:13;;;;;17894:7;;17938:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17928:4;17933:1;17928:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17928:23:0;;;:7;;;;;;;;;:23;17962:6;;:182;;-1:-1:-1;;;17962:182:0;;:6;;;:57;;:182;;18034:6;;17962;;18071:4;;18098;;18118:15;;17962:182;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18161:341;18243:9;:14;;-1:-1:-1;;;;18243:14:0;-1:-1:-1;;;18243:14:0;;;18268:6;;18410:17;;18268:200;;-1:-1:-1;;;18268:200:0;;18331:4;18268:200;;;14528:34:1;14578:18;;;14571:34;;;-1:-1:-1;14621:18:1;;;14614:34;;;14664:18;;;14657:34;-1:-1:-1;;;;;18410:17:0;;;14707:19:1;;;14700:44;18442:15:0;14760:19:1;;;14753:35;18268:6:0;;;:22;;18298:9;;14462:19:1;;18268:200:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;18479:9:0;:15;;-1:-1:-1;;;;18479:15:0;;;-1:-1:-1;;;18161:341:0:o;16834:940::-;16945:20;;16923:19;;16899:20;;16923:42;;;:::i;:::-;17023:20;;17001:19;;16899:67;;-1:-1:-1;16977:20:0;;17001:42;;17023:20;17001:42;:::i;:::-;16977:67;-1:-1:-1;17055:16:0;17075:27;16977:67;17075:12;:27;:::i;:::-;17055:48;-1:-1:-1;17117:26:0;17055:48;17146:29;17162:12;17146;:29;:::i;:::-;:42;;;;:::i;:::-;17117:71;-1:-1:-1;17199:26:0;17261:8;17228:29;17244:12;17228;:29;:::i;:::-;:42;;;;:::i;:::-;17199:71;-1:-1:-1;17287:22:0;;17284:235;;17380:17;;17372:74;;17322:21;;-1:-1:-1;;;;;17380:17:0;;17436:5;;17411:18;;17322:21;17372:74;17322:21;17372:74;17411:18;17380:17;17436:5;17372:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17321:125;;;17465:16;17457:59;;;;-1:-1:-1;;;17457:59:0;;15522:2:1;17457:59:0;;;15504:21:1;15561:2;15541:18;;;15534:30;15600:32;15580:18;;;15573:60;15650:18;;17457:59:0;15320:354:1;17457:59:0;17310:209;17284:235;17535:22;;17532:235;;17628:17;;17620:74;;17570:21;;-1:-1:-1;;;;;17628:17:0;;17684:5;;17659:18;;17570:21;17620:74;17570:21;17620:74;17659:18;17628:17;17684:5;17620:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17569:125;;;17713:16;17705:59;;;;-1:-1:-1;;;17705:59:0;;15522:2:1;17705:59:0;;;15504:21:1;15561:2;15541:18;;;15534:30;15600:32;15580:18;;;15573:60;15650:18;;17705:59:0;15320:354:1;17705:59:0;17558:209;16888:886;;;;;16834:940;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:160::-;1329:20;;1385:13;;1378:21;1368:32;;1358:60;;1414:1;1411;1404:12;1358:60;1264:160;;;:::o;1429:315::-;1494:6;1502;1555:2;1543:9;1534:7;1530:23;1526:32;1523:52;;;1571:1;1568;1561:12;1523:52;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;-1:-1:-1;1703:35:1;1734:2;1719:18;;1703:35;:::i;:::-;1693:45;;1429:315;;;;;:::o;1749:247::-;1808:6;1861:2;1849:9;1840:7;1836:23;1832:32;1829:52;;;1877:1;1874;1867:12;1829:52;1916:9;1903:23;1935:31;1960:5;1935:31;:::i;:::-;1985:5;1749:247;-1:-1:-1;;;1749:247:1:o;2001:248::-;2069:6;2077;2130:2;2118:9;2109:7;2105:23;2101:32;2098:52;;;2146:1;2143;2136:12;2098:52;-1:-1:-1;;2169:23:1;;;2239:2;2224:18;;;2211:32;;-1:-1:-1;2001:248:1:o;2436:461::-;2489:3;2527:5;2521:12;2554:6;2549:3;2542:19;2580:4;2609:2;2604:3;2600:12;2593:19;;2646:2;2639:5;2635:14;2667:1;2677:195;2691:6;2688:1;2685:13;2677:195;;;2756:13;;-1:-1:-1;;;;;2752:39:1;2740:52;;2812:12;;;;2847:15;;;;2788:1;2706:9;2677:195;;;-1:-1:-1;2888:3:1;;2436:461;-1:-1:-1;;;;;2436:461:1:o;2902:261::-;3081:2;3070:9;3063:21;3044:4;3101:56;3153:2;3142:9;3138:18;3130:6;3101:56;:::i;3168:456::-;3245:6;3253;3261;3314:2;3302:9;3293:7;3289:23;3285:32;3282:52;;;3330:1;3327;3320:12;3282:52;3369:9;3356:23;3388:31;3413:5;3388:31;:::i;:::-;3438:5;-1:-1:-1;3495:2:1;3480:18;;3467:32;3508:33;3467:32;3508:33;:::i;:::-;3168:456;;3560:7;;-1:-1:-1;;;3614:2:1;3599:18;;;;3586:32;;3168:456::o;4422:316::-;4499:6;4507;4515;4568:2;4556:9;4547:7;4543:23;4539:32;4536:52;;;4584:1;4581;4574:12;4536:52;-1:-1:-1;;4607:23:1;;;4677:2;4662:18;;4649:32;;-1:-1:-1;4728:2:1;4713:18;;;4700:32;;4422:316;-1:-1:-1;4422:316:1:o;4743:180::-;4802:6;4855:2;4843:9;4834:7;4830:23;4826:32;4823:52;;;4871:1;4868;4861:12;4823:52;-1:-1:-1;4894:23:1;;4743:180;-1:-1:-1;4743:180:1:o;4928:248::-;4993:6;5001;5054:2;5042:9;5033:7;5029:23;5025:32;5022:52;;;5070:1;5067;5060:12;5022:52;5093:26;5109:9;5093:26;:::i;5181:127::-;5242:10;5237:3;5233:20;5230:1;5223:31;5273:4;5270:1;5263:15;5297:4;5294:1;5287:15;5313:275;5384:2;5378:9;5449:2;5430:13;;-1:-1:-1;;5426:27:1;5414:40;;5484:18;5469:34;;5505:22;;;5466:62;5463:88;;;5531:18;;:::i;:::-;5567:2;5560:22;5313:275;;-1:-1:-1;5313:275:1:o;5593:183::-;5653:4;5686:18;5678:6;5675:30;5672:56;;;5708:18;;:::i;:::-;-1:-1:-1;5753:1:1;5749:14;5765:4;5745:25;;5593:183::o;5781:662::-;5835:5;5888:3;5881:4;5873:6;5869:17;5865:27;5855:55;;5906:1;5903;5896:12;5855:55;5942:6;5929:20;5968:4;5992:60;6008:43;6048:2;6008:43;:::i;:::-;5992:60;:::i;:::-;6086:15;;;6172:1;6168:10;;;;6156:23;;6152:32;;;6117:12;;;;6196:15;;;6193:35;;;6224:1;6221;6214:12;6193:35;6260:2;6252:6;6248:15;6272:142;6288:6;6283:3;6280:15;6272:142;;;6354:17;;6342:30;;6392:12;;;;6305;;6272:142;;;-1:-1:-1;6432:5:1;5781:662;-1:-1:-1;;;;;;5781:662:1:o;6448:1215::-;6566:6;6574;6627:2;6615:9;6606:7;6602:23;6598:32;6595:52;;;6643:1;6640;6633:12;6595:52;6683:9;6670:23;6712:18;6753:2;6745:6;6742:14;6739:34;;;6769:1;6766;6759:12;6739:34;6807:6;6796:9;6792:22;6782:32;;6852:7;6845:4;6841:2;6837:13;6833:27;6823:55;;6874:1;6871;6864:12;6823:55;6910:2;6897:16;6932:4;6956:60;6972:43;7012:2;6972:43;:::i;6956:60::-;7050:15;;;7132:1;7128:10;;;;7120:19;;7116:28;;;7081:12;;;;7156:19;;;7153:39;;;7188:1;7185;7178:12;7153:39;7212:11;;;;7232:217;7248:6;7243:3;7240:15;7232:217;;;7328:3;7315:17;7345:31;7370:5;7345:31;:::i;:::-;7389:18;;7265:12;;;;7427;;;;7232:217;;;7468:5;-1:-1:-1;;7511:18:1;;7498:32;;-1:-1:-1;;7542:16:1;;;7539:36;;;7571:1;7568;7561:12;7539:36;;7594:63;7649:7;7638:8;7627:9;7623:24;7594:63;:::i;:::-;7584:73;;;6448:1215;;;;;:::o;7668:180::-;7724:6;7777:2;7765:9;7756:7;7752:23;7748:32;7745:52;;;7793:1;7790;7783:12;7745:52;7816:26;7832:9;7816:26;:::i;7853:388::-;7921:6;7929;7982:2;7970:9;7961:7;7957:23;7953:32;7950:52;;;7998:1;7995;7988:12;7950:52;8037:9;8024:23;8056:31;8081:5;8056:31;:::i;:::-;8106:5;-1:-1:-1;8163:2:1;8148:18;;8135:32;8176:33;8135:32;8176:33;:::i;:::-;8228:7;8218:17;;;7853:388;;;;;:::o;8472:346::-;8674:2;8656:21;;;8713:2;8693:18;;;8686:30;-1:-1:-1;;;8747:2:1;8732:18;;8725:52;8809:2;8794:18;;8472:346::o;8823:127::-;8884:10;8879:3;8875:20;8872:1;8865:31;8915:4;8912:1;8905:15;8939:4;8936:1;8929:15;8955:125;8995:4;9023:1;9020;9017:8;9014:34;;;9028:18;;:::i;:::-;-1:-1:-1;9065:9:1;;8955:125::o;9085:217::-;9125:1;9151;9141:132;;9195:10;9190:3;9186:20;9183:1;9176:31;9230:4;9227:1;9220:15;9258:4;9255:1;9248:15;9141:132;-1:-1:-1;9287:9:1;;9085:217::o;9307:168::-;9347:7;9413:1;9409;9405:6;9401:14;9398:1;9395:21;9390:1;9383:9;9376:17;9372:45;9369:71;;;9420:18;;:::i;:::-;-1:-1:-1;9460:9:1;;9307:168::o;9480:128::-;9520:3;9551:1;9547:6;9544:1;9541:13;9538:39;;;9557:18;;:::i;:::-;-1:-1:-1;9593:9:1;;9480:128::o;10036:127::-;10097:10;10092:3;10088:20;10085:1;10078:31;10128:4;10125:1;10118:15;10152:4;10149:1;10142:15;10168:422;10257:1;10300:5;10257:1;10314:270;10335:7;10325:8;10322:21;10314:270;;;10394:4;10390:1;10386:6;10382:17;10376:4;10373:27;10370:53;;;10403:18;;:::i;:::-;10453:7;10443:8;10439:22;10436:55;;;10473:16;;;;10436:55;10552:22;;;;10512:15;;;;10314:270;;;10318:3;10168:422;;;;;:::o;10595:806::-;10644:5;10674:8;10664:80;;-1:-1:-1;10715:1:1;10729:5;;10664:80;10763:4;10753:76;;-1:-1:-1;10800:1:1;10814:5;;10753:76;10845:4;10863:1;10858:59;;;;10931:1;10926:130;;;;10838:218;;10858:59;10888:1;10879:10;;10902:5;;;10926:130;10963:3;10953:8;10950:17;10947:43;;;10970:18;;:::i;:::-;-1:-1:-1;;11026:1:1;11012:16;;11041:5;;10838:218;;11140:2;11130:8;11127:16;11121:3;11115:4;11112:13;11108:36;11102:2;11092:8;11089:16;11084:2;11078:4;11075:12;11071:35;11068:77;11065:159;;;-1:-1:-1;11177:19:1;;;11209:5;;11065:159;11256:34;11281:8;11275:4;11256:34;:::i;:::-;11326:6;11322:1;11318:6;11314:19;11305:7;11302:32;11299:58;;;11337:18;;:::i;:::-;11375:20;;10595:806;-1:-1:-1;;;10595:806:1:o;11406:140::-;11464:5;11493:47;11534:4;11524:8;11520:19;11514:4;11493:47;:::i;11551:135::-;11590:3;-1:-1:-1;;11611:17:1;;11608:43;;;11631:18;;:::i;:::-;-1:-1:-1;11678:1:1;11667:13;;11551:135::o;11691:184::-;11761:6;11814:2;11802:9;11793:7;11789:23;11785:32;11782:52;;;11830:1;11827;11820:12;11782:52;-1:-1:-1;11853:16:1;;11691:184;-1:-1:-1;11691:184:1:o;13344:251::-;13414:6;13467:2;13455:9;13446:7;13442:23;13438:32;13435:52;;;13483:1;13480;13473:12;13435:52;13515:9;13509:16;13534:31;13559:5;13534:31;:::i;13600:582::-;13899:6;13888:9;13881:25;13942:6;13937:2;13926:9;13922:18;13915:34;13985:3;13980:2;13969:9;13965:18;13958:31;13862:4;14006:57;14058:3;14047:9;14043:19;14035:6;14006:57;:::i;:::-;-1:-1:-1;;;;;14099:32:1;;;;14094:2;14079:18;;14072:60;-1:-1:-1;14163:3:1;14148:19;14141:35;13998:65;13600:582;-1:-1:-1;;;13600:582:1:o;14799:306::-;14887:6;14895;14903;14956:2;14944:9;14935:7;14931:23;14927:32;14924:52;;;14972:1;14969;14962:12;14924:52;15001:9;14995:16;14985:26;;15051:2;15040:9;15036:18;15030:25;15020:35;;15095:2;15084:9;15080:18;15074:25;15064:35;;14799:306;;;;;:::o
Swarm Source
ipfs://99207c1cf153fa6c5a9b73ad4c998d656a264d64b31cdc8277fcf9ec7c4d4794
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.