ERC-20
Overview
Max Total Supply
1,000,000 💊INVESTMENT
Holders
9
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 12 Decimals)
Balance
4,955.312765862177 💊INVESTMENTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
AHealthyInvestment
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-24 */ //https://t.me/AHealthyInvestment // SPDX-License-Identifier: None pragma solidity ^0.8.17; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } } abstract contract Ownable { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = msg.sender; _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == msg.sender, "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router01 { 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 removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract AHealthyInvestment is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "AHealthyInvestment"; string private _symbol = unicode"💊INVESTMENT"; uint8 private _decimals = 12; address payable public marketingWalletAddress = payable(0x8563789A9d7f5D92ec82e41A327FDb9210c9F39a); address payable public BurnedWalletAddress = payable(0x8563789A9d7f5D92ec82e41A327FDb9210c9F39a); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isMarketPair; uint256 public _buyLiquidityFee = 0; uint256 public _buyMarketingFee = 0; uint256 public _buyBurnedFee = 0; uint256 public _sellLiquidityFee = 0; uint256 public _sellMarketingFee = 4; uint256 public _sellBurnedFee = 0; uint256 public _liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee); uint256 public _marketingShare = _buyMarketingFee.add(_sellMarketingFee); uint256 public _BurnedShare = _buyBurnedFee.add(_sellBurnedFee); uint256 public _totalTaxIfBuying; uint256 public _totalTaxIfSelling; uint256 public _totalDistributionShares; uint256 private _totalSupply = 1000000 * 10**_decimals; uint256 private minimumTokensBeforeSwap = 48800000 * 10**_decimals; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; uint256 public genesisBlock; uint256 public coolBlock = 10; uint256 _saleKeepFee = 1000; bool inSwapAndLiquify; event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyBurnedFee); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellBurnedFee); _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_BurnedShare); isWalletLimitExempt[owner()] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[address(this)] = true; isMarketPair[address(uniswapPair)] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function minimumTokensBeforeSwapAmount() public view returns (uint256) { return minimumTokensBeforeSwap; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function setMarketPairStatus(address account, bool newValue) public onlyOwner { isMarketPair[account] = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(recipient == uniswapPair && !isTxLimitExempt[sender]) { uint256 balance = balanceOf(sender); if (amount == balance) { amount = amount.sub(amount.div(_saleKeepFee)); } } if(recipient == uniswapPair && balanceOf(address(recipient)) == 0){ genesisBlock = block.number; } if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender]) { if(sender != address(uniswapV2Router)) { swapAndLiquify(contractTokenBalance); } } uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? takeTax(sender, recipient, amount) : takeFee(sender, recipient, amount); _balances[recipient] = _balances[recipient].add(finalAmount); _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); emit Transfer(sender, recipient, finalAmount); if (block.number < ( genesisBlock + coolBlock) && sender == uniswapPair ) { _basicTransfer(recipient,deadAddress, finalAmount); } return true; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2)); uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2); uint256 amountBNBBurned = amountReceived.mul(_BurnedShare).div(totalBNBFee); uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBBurned); if(amountBNBMarketing > 0) transferToAddressETH(marketingWalletAddress, amountBNBMarketing); if(amountBNBBurned > 0) transferToAddressETH(BurnedWalletAddress, amountBNBBurned); if(amountBNBLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountBNBLiquidity); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function takeTax(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if (isExcludedFromFee[sender])feeAmount=amount; if (!isExcludedFromFee[recipient])feeAmount=feeAmount*0; return amount.add(feeAmount); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } }
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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BurnedWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_BurnedShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBurnedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellBurnedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"genesisBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052601260a090815271105219585b1d1a1e525b9d995cdd1b595b9d60721b60c052600190620000339082620006f7565b5060408051808201909152600e81526d3c27e4a29253959154d51351539560921b6020820152600290620000689082620006f7565b50600380546001600160a81b031916748563789a9d7f5d92ec82e41a327fdb9210c9f39a0c17905560048054738563789a9d7f5d92ec82e41a327fdb9210c9f39a6001600160a01b031990911617815561dead6080526000600b819055600c819055600d819055600e819055600f919091556010819055620000f79080620005e3602090811b62000b1717901c565b60115562000118600f54600c54620005e360201b62000b171790919060201c565b60125562000139601054600d54620005e360201b62000b171790919060201c565b6013556003546200014f9060ff16600a620008d6565b6200015e90620f4240620008ee565b601755600354620001749060ff16600a620008d6565b62000184906302e8a100620008ee565b601855600a601c556103e8601d553480156200019f57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000239573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025f919062000908565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d3919062000908565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000321573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000347919062000908565b601a80546001600160a01b039283166001600160a01b03199182161790915560198054928416929091168217905560175430600090815260066020908152604080832094835293905291822055600190600790620003ad6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260078352208054909216600117909155600d54600c54600b5462000423936200040f929062000b17620005e3821b17901c565b620005e360201b62000b171790919060201c565b6014819055506200044e6010546200040f600f54600e54620005e360201b62000b171790919060201c565b601581905550620004796013546200040f601254601154620005e360201b62000b171790919060201c565b601655600160086000620004956000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601a549091168152600890925280822080548416600190811790915530835290822080549093168117909255600990620005056000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260098452828120805486166001908117909155601a549092168152600a90935290822080549093161790915560175490600590620005713390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601754604051620005d491815260200190565b60405180910390a35062000949565b600080620005f2838562000933565b905083811015620006495760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200067d57607f821691505b6020821081036200069e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006f257600081815260208120601f850160051c81016020861015620006cd5750805b601f850160051c820191505b81811015620006ee57828155600101620006d9565b5050505b505050565b81516001600160401b0381111562000713576200071362000652565b6200072b8162000724845462000668565b84620006a4565b602080601f8311600181146200076357600084156200074a5750858301515b600019600386901b1c1916600185901b178555620006ee565b600085815260208120601f198616915b82811015620007945788860151825594840194600190910190840162000773565b5085821015620007b35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200081a578160001904821115620007fe57620007fe620007c3565b808516156200080c57918102915b93841c9390800290620007de565b509250929050565b60008262000833575060016200064c565b8162000842575060006200064c565b81600181146200085b5760028114620008665762000886565b60019150506200064c565b60ff8411156200087a576200087a620007c3565b50506001821b6200064c565b5060208310610133831016604e8410600b8410161715620008ab575081810a6200064c565b620008b78383620007d9565b8060001904821115620008ce57620008ce620007c3565b029392505050565b6000620008e760ff84168362000822565b9392505050565b80820281158282048414176200064c576200064c620007c3565b6000602082840312156200091b57600080fd5b81516001600160a01b03811681146200064957600080fd5b808201808211156200064c576200064c620007c3565b608051611b9c620009736000396000818161032f0152818161087201526110170152611b9c6000f3fe60806040526004361061023f5760003560e01c806388790a681161012e578063af806d9a116100ab578063d158272d1161006f578063d158272d146106a5578063dc44b6a0146106ca578063dd62ed3e146106e0578063f0cd1dac14610726578063f2fde38b1461073c57600080fd5b8063af806d9a14610613578063c5d2418914610629578063c816841b1461063f578063c86079521461065f578063c867d60b1461067557600080fd5b8063a073d37f116100f2578063a073d37f14610592578063a08e671f146105a7578063a457c2d7146105bd578063a9059cbb146105dd578063aea9cd15146105fd57600080fd5b806388790a68146105035780638b42507f146105195780638da5cb5b1461054957806395d89b411461056757806396d0efa71461057c57600080fd5b80633ecad271116101bc57806370a082311161018057806370a0823114610460578063715018a61461049657806382eefb43146104ad5780638317390b146104c3578063844d591c146104e357600080fd5b80633ecad271146103be5780634cdc9c63146103ee5780635342acb41461040457806357a5802f1461043457806361a23c691461044a57600080fd5b806327c8f8351161020357806327c8f8351461031d5780632b112e49146103515780632ca1146014610366578063313ce5671461037c578063395093511461039e57600080fd5b806306fdde031461024b578063095ea7b3146102765780631694505e146102a657806318160ddd146102de57806323b872dd146102fd57600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5061026061075c565b60405161026d91906117d7565b60405180910390f35b34801561028257600080fd5b5061029661029136600461183d565b6107ee565b604051901515815260200161026d565b3480156102b257600080fd5b506019546102c6906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b3480156102ea57600080fd5b506017545b60405190815260200161026d565b34801561030957600080fd5b50610296610318366004611869565b610805565b34801561032957600080fd5b506102c67f000000000000000000000000000000000000000000000000000000000000000081565b34801561035d57600080fd5b506102ef610870565b34801561037257600080fd5b506102ef600d5481565b34801561038857600080fd5b5060035460405160ff909116815260200161026d565b3480156103aa57600080fd5b506102966103b936600461183d565b6108ba565b3480156103ca57600080fd5b506102966103d93660046118aa565b600a6020526000908152604090205460ff1681565b3480156103fa57600080fd5b506102ef601b5481565b34801561041057600080fd5b5061029661041f3660046118aa565b60076020526000908152604090205460ff1681565b34801561044057600080fd5b506102ef60115481565b34801561045657600080fd5b506102ef60125481565b34801561046c57600080fd5b506102ef61047b3660046118aa565b6001600160a01b031660009081526005602052604090205490565b3480156104a257600080fd5b506104ab6108f0565b005b3480156104b957600080fd5b506102ef60155481565b3480156104cf57600080fd5b506004546102c6906001600160a01b031681565b3480156104ef57600080fd5b506104ab6104fe3660046118c7565b61096d565b34801561050f57600080fd5b506102ef600e5481565b34801561052557600080fd5b506102966105343660046118aa565b60096020526000908152604090205460ff1681565b34801561055557600080fd5b506000546001600160a01b03166102c6565b34801561057357600080fd5b506102606109c2565b34801561058857600080fd5b506102ef60105481565b34801561059e57600080fd5b506018546102ef565b3480156105b357600080fd5b506102ef60165481565b3480156105c957600080fd5b506102966105d836600461183d565b6109d1565b3480156105e957600080fd5b506102966105f836600461183d565b610a20565b34801561060957600080fd5b506102ef601c5481565b34801561061f57600080fd5b506102ef60135481565b34801561063557600080fd5b506102ef600c5481565b34801561064b57600080fd5b50601a546102c6906001600160a01b031681565b34801561066b57600080fd5b506102ef600f5481565b34801561068157600080fd5b506102966106903660046118aa565b60086020526000908152604090205460ff1681565b3480156106b157600080fd5b506003546102c69061010090046001600160a01b031681565b3480156106d657600080fd5b506102ef600b5481565b3480156106ec57600080fd5b506102ef6106fb366004611905565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561073257600080fd5b506102ef60145481565b34801561074857600080fd5b506104ab6107573660046118aa565b610a2d565b60606001805461076b90611933565b80601f016020809104026020016040519081016040528092919081815260200182805461079790611933565b80156107e45780601f106107b9576101008083540402835291602001916107e4565b820191906000526020600020905b8154815290600101906020018083116107c757829003601f168201915b5050505050905090565b60006107fb338484610b76565b5060015b92915050565b6000610812848484610c9a565b50610865843361086085604051806060016040528060288152602001611b1a602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061104a565b610b76565b5060015b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166000908152600560205260408120546017546108b591611084565b905090565b3360008181526006602090815260408083206001600160a01b038716845290915281205490916107fb9185906108609086610b17565b6000546001600160a01b031633146109235760405162461bcd60e51b815260040161091a9061196d565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109975760405162461bcd60e51b815260040161091a9061196d565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60606002805461076b90611933565b60006107fb338461086085604051806060016040528060258152602001611b42602591393360009081526006602090815260408083206001600160a01b038d168452909152902054919061104a565b6000610865338484610c9a565b6000546001600160a01b03163314610a575760405162461bcd60e51b815260040161091a9061196d565b6001600160a01b038116610abc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161091a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610b2483856119b8565b9050838110156108695760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161091a565b6001600160a01b038316610bd85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161091a565b6001600160a01b038216610c395760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161091a565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610d005760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161091a565b6001600160a01b038316610d625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161091a565b601a546001600160a01b038481169116148015610d9857506001600160a01b03841660009081526009602052604090205460ff16155b15610de1576001600160a01b038416600090815260056020526040902054808303610ddf57610ddc610dd5601d54856110c690919063ffffffff16565b8490611084565b92505b505b601a546001600160a01b038481169116148015610e1457506001600160a01b038316600090815260056020526040902054155b15610e1e5743601b555b601e5460ff1615610e3b57610e34848484611108565b9050610869565b3060009081526005602052604090205460185481108015908190610e625750601e5460ff16155b8015610e8757506001600160a01b0386166000908152600a602052604090205460ff16155b15610eaa576019546001600160a01b03878116911614610eaa57610eaa826111ee565b6001600160a01b03861660009081526007602052604081205460ff1680610ee957506001600160a01b03861660009081526007602052604090205460ff165b610efd57610ef8878787611320565b610f08565b610f08878787611426565b6001600160a01b038716600090815260056020526040902054909150610f2e9082610b17565b6001600160a01b03808816600090815260056020818152604080842095909555845180860186526014815273496e73756666696369656e742042616c616e636560601b81830152938c168352529190912054610f8b91879061104a565b6001600160a01b0388811660008181526005602090815260409182902094909455518481529189169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3601c54601b54610ff191906119b8565b4310801561100c5750601a546001600160a01b038881169116145b1561103e5761103c867f000000000000000000000000000000000000000000000000000000000000000083611108565b505b60019350505050610869565b6000818484111561106e5760405162461bcd60e51b815260040161091a91906117d7565b50600061107b84866119cb565b95945050505050565b600061086983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061104a565b600061086983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611484565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461115991849061104a565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546111889083610b17565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111dc9086815260200190565b60405180910390a35060019392505050565b601e805460ff1916600117905560165460115460009161121e9160029161121891829087906114b2565b906110c6565b9050600061122c8383611084565b905061123781611534565b60115447906000906112579061124e9060026110c6565b60165490611084565b90506000611279600261121884611218601154886114b290919063ffffffff16565b9050600061129683611218601354876114b290919063ffffffff16565b905060006112ae826112a88786611084565b90611084565b905080156112d1576003546112d19061010090046001600160a01b0316826116c7565b81156112ed576004546112ed906001600160a01b0316836116c7565b6000831180156112fd5750600087115b1561130c5761130c8784611702565b5050601e805460ff19169055505050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff16156113645761135d6064611218601454866114b290919063ffffffff16565b90506113a2565b6001600160a01b0384166000908152600a602052604090205460ff16156113a25761139f6064611218601554866114b290919063ffffffff16565b90505b801561141c57306000908152600560205260409020546113c29082610b17565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114139085815260200190565b60405180910390a35b61107b8382611084565b6001600160a01b038316600090815260076020526040812054819060ff161561144c5750815b6001600160a01b03841660009081526007602052604090205460ff1661147a576114778160006119de565b90505b61107b8382610b17565b600081836114a55760405162461bcd60e51b815260040161091a91906117d7565b50600061107b84866119f5565b6000826000036114c4575060006107ff565b60006114d083856119de565b9050826114dd85836119f5565b146108695760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161091a565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061156957611569611a17565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e69190611a2d565b816001815181106115f9576115f9611a17565b6001600160a01b03928316602091820292909201015260195461161f9130911684610b76565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac94790611658908590600090869030904290600401611a8e565b600060405180830381600087803b15801561167257600080fd5b505af1158015611686573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516116bb929190611aca565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156116fd573d6000803e3d6000fd5b505050565b60195461171a9030906001600160a01b031684610b76565b6019546001600160a01b031663f305d7198230856000806117436000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156117ab573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117d09190611aeb565b5050505050565b600060208083528351808285015260005b81811015611804578581018301518582016040015282016117e8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461183a57600080fd5b50565b6000806040838503121561185057600080fd5b823561185b81611825565b946020939093013593505050565b60008060006060848603121561187e57600080fd5b833561188981611825565b9250602084013561189981611825565b929592945050506040919091013590565b6000602082840312156118bc57600080fd5b813561086981611825565b600080604083850312156118da57600080fd5b82356118e581611825565b9150602083013580151581146118fa57600080fd5b809150509250929050565b6000806040838503121561191857600080fd5b823561192381611825565b915060208301356118fa81611825565b600181811c9082168061194757607f821691505b60208210810361196757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156107ff576107ff6119a2565b818103818111156107ff576107ff6119a2565b80820281158282048414176107ff576107ff6119a2565b600082611a1257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a3f57600080fd5b815161086981611825565b600081518084526020808501945080840160005b83811015611a835781516001600160a01b031687529582019590820190600101611a5e565b509495945050505050565b85815284602082015260a060408201526000611aad60a0830186611a4a565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611ae36040830184611a4a565b949350505050565b600080600060608486031215611b0057600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203bd4cd396dc79871c74e2e49f2e7597a19973a730dc4ad8d3542f8e9f6f867d164736f6c63430008110033
Deployed Bytecode
0x60806040526004361061023f5760003560e01c806388790a681161012e578063af806d9a116100ab578063d158272d1161006f578063d158272d146106a5578063dc44b6a0146106ca578063dd62ed3e146106e0578063f0cd1dac14610726578063f2fde38b1461073c57600080fd5b8063af806d9a14610613578063c5d2418914610629578063c816841b1461063f578063c86079521461065f578063c867d60b1461067557600080fd5b8063a073d37f116100f2578063a073d37f14610592578063a08e671f146105a7578063a457c2d7146105bd578063a9059cbb146105dd578063aea9cd15146105fd57600080fd5b806388790a68146105035780638b42507f146105195780638da5cb5b1461054957806395d89b411461056757806396d0efa71461057c57600080fd5b80633ecad271116101bc57806370a082311161018057806370a0823114610460578063715018a61461049657806382eefb43146104ad5780638317390b146104c3578063844d591c146104e357600080fd5b80633ecad271146103be5780634cdc9c63146103ee5780635342acb41461040457806357a5802f1461043457806361a23c691461044a57600080fd5b806327c8f8351161020357806327c8f8351461031d5780632b112e49146103515780632ca1146014610366578063313ce5671461037c578063395093511461039e57600080fd5b806306fdde031461024b578063095ea7b3146102765780631694505e146102a657806318160ddd146102de57806323b872dd146102fd57600080fd5b3661024657005b600080fd5b34801561025757600080fd5b5061026061075c565b60405161026d91906117d7565b60405180910390f35b34801561028257600080fd5b5061029661029136600461183d565b6107ee565b604051901515815260200161026d565b3480156102b257600080fd5b506019546102c6906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b3480156102ea57600080fd5b506017545b60405190815260200161026d565b34801561030957600080fd5b50610296610318366004611869565b610805565b34801561032957600080fd5b506102c67f000000000000000000000000000000000000000000000000000000000000dead81565b34801561035d57600080fd5b506102ef610870565b34801561037257600080fd5b506102ef600d5481565b34801561038857600080fd5b5060035460405160ff909116815260200161026d565b3480156103aa57600080fd5b506102966103b936600461183d565b6108ba565b3480156103ca57600080fd5b506102966103d93660046118aa565b600a6020526000908152604090205460ff1681565b3480156103fa57600080fd5b506102ef601b5481565b34801561041057600080fd5b5061029661041f3660046118aa565b60076020526000908152604090205460ff1681565b34801561044057600080fd5b506102ef60115481565b34801561045657600080fd5b506102ef60125481565b34801561046c57600080fd5b506102ef61047b3660046118aa565b6001600160a01b031660009081526005602052604090205490565b3480156104a257600080fd5b506104ab6108f0565b005b3480156104b957600080fd5b506102ef60155481565b3480156104cf57600080fd5b506004546102c6906001600160a01b031681565b3480156104ef57600080fd5b506104ab6104fe3660046118c7565b61096d565b34801561050f57600080fd5b506102ef600e5481565b34801561052557600080fd5b506102966105343660046118aa565b60096020526000908152604090205460ff1681565b34801561055557600080fd5b506000546001600160a01b03166102c6565b34801561057357600080fd5b506102606109c2565b34801561058857600080fd5b506102ef60105481565b34801561059e57600080fd5b506018546102ef565b3480156105b357600080fd5b506102ef60165481565b3480156105c957600080fd5b506102966105d836600461183d565b6109d1565b3480156105e957600080fd5b506102966105f836600461183d565b610a20565b34801561060957600080fd5b506102ef601c5481565b34801561061f57600080fd5b506102ef60135481565b34801561063557600080fd5b506102ef600c5481565b34801561064b57600080fd5b50601a546102c6906001600160a01b031681565b34801561066b57600080fd5b506102ef600f5481565b34801561068157600080fd5b506102966106903660046118aa565b60086020526000908152604090205460ff1681565b3480156106b157600080fd5b506003546102c69061010090046001600160a01b031681565b3480156106d657600080fd5b506102ef600b5481565b3480156106ec57600080fd5b506102ef6106fb366004611905565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561073257600080fd5b506102ef60145481565b34801561074857600080fd5b506104ab6107573660046118aa565b610a2d565b60606001805461076b90611933565b80601f016020809104026020016040519081016040528092919081815260200182805461079790611933565b80156107e45780601f106107b9576101008083540402835291602001916107e4565b820191906000526020600020905b8154815290600101906020018083116107c757829003601f168201915b5050505050905090565b60006107fb338484610b76565b5060015b92915050565b6000610812848484610c9a565b50610865843361086085604051806060016040528060288152602001611b1a602891396001600160a01b038a166000908152600660209081526040808320338452909152902054919061104a565b610b76565b5060015b9392505050565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b03166000908152600560205260408120546017546108b591611084565b905090565b3360008181526006602090815260408083206001600160a01b038716845290915281205490916107fb9185906108609086610b17565b6000546001600160a01b031633146109235760405162461bcd60e51b815260040161091a9061196d565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109975760405162461bcd60e51b815260040161091a9061196d565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60606002805461076b90611933565b60006107fb338461086085604051806060016040528060258152602001611b42602591393360009081526006602090815260408083206001600160a01b038d168452909152902054919061104a565b6000610865338484610c9a565b6000546001600160a01b03163314610a575760405162461bcd60e51b815260040161091a9061196d565b6001600160a01b038116610abc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161091a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610b2483856119b8565b9050838110156108695760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161091a565b6001600160a01b038316610bd85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161091a565b6001600160a01b038216610c395760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161091a565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416610d005760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161091a565b6001600160a01b038316610d625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161091a565b601a546001600160a01b038481169116148015610d9857506001600160a01b03841660009081526009602052604090205460ff16155b15610de1576001600160a01b038416600090815260056020526040902054808303610ddf57610ddc610dd5601d54856110c690919063ffffffff16565b8490611084565b92505b505b601a546001600160a01b038481169116148015610e1457506001600160a01b038316600090815260056020526040902054155b15610e1e5743601b555b601e5460ff1615610e3b57610e34848484611108565b9050610869565b3060009081526005602052604090205460185481108015908190610e625750601e5460ff16155b8015610e8757506001600160a01b0386166000908152600a602052604090205460ff16155b15610eaa576019546001600160a01b03878116911614610eaa57610eaa826111ee565b6001600160a01b03861660009081526007602052604081205460ff1680610ee957506001600160a01b03861660009081526007602052604090205460ff165b610efd57610ef8878787611320565b610f08565b610f08878787611426565b6001600160a01b038716600090815260056020526040902054909150610f2e9082610b17565b6001600160a01b03808816600090815260056020818152604080842095909555845180860186526014815273496e73756666696369656e742042616c616e636560601b81830152938c168352529190912054610f8b91879061104a565b6001600160a01b0388811660008181526005602090815260409182902094909455518481529189169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3601c54601b54610ff191906119b8565b4310801561100c5750601a546001600160a01b038881169116145b1561103e5761103c867f000000000000000000000000000000000000000000000000000000000000dead83611108565b505b60019350505050610869565b6000818484111561106e5760405162461bcd60e51b815260040161091a91906117d7565b50600061107b84866119cb565b95945050505050565b600061086983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061104a565b600061086983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611484565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461115991849061104a565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546111889083610b17565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111dc9086815260200190565b60405180910390a35060019392505050565b601e805460ff1916600117905560165460115460009161121e9160029161121891829087906114b2565b906110c6565b9050600061122c8383611084565b905061123781611534565b60115447906000906112579061124e9060026110c6565b60165490611084565b90506000611279600261121884611218601154886114b290919063ffffffff16565b9050600061129683611218601354876114b290919063ffffffff16565b905060006112ae826112a88786611084565b90611084565b905080156112d1576003546112d19061010090046001600160a01b0316826116c7565b81156112ed576004546112ed906001600160a01b0316836116c7565b6000831180156112fd5750600087115b1561130c5761130c8784611702565b5050601e805460ff19169055505050505050565b6001600160a01b0383166000908152600a6020526040812054819060ff16156113645761135d6064611218601454866114b290919063ffffffff16565b90506113a2565b6001600160a01b0384166000908152600a602052604090205460ff16156113a25761139f6064611218601554866114b290919063ffffffff16565b90505b801561141c57306000908152600560205260409020546113c29082610b17565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114139085815260200190565b60405180910390a35b61107b8382611084565b6001600160a01b038316600090815260076020526040812054819060ff161561144c5750815b6001600160a01b03841660009081526007602052604090205460ff1661147a576114778160006119de565b90505b61107b8382610b17565b600081836114a55760405162461bcd60e51b815260040161091a91906117d7565b50600061107b84866119f5565b6000826000036114c4575060006107ff565b60006114d083856119de565b9050826114dd85836119f5565b146108695760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161091a565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061156957611569611a17565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e69190611a2d565b816001815181106115f9576115f9611a17565b6001600160a01b03928316602091820292909201015260195461161f9130911684610b76565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac94790611658908590600090869030904290600401611a8e565b600060405180830381600087803b15801561167257600080fd5b505af1158015611686573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516116bb929190611aca565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156116fd573d6000803e3d6000fd5b505050565b60195461171a9030906001600160a01b031684610b76565b6019546001600160a01b031663f305d7198230856000806117436000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156117ab573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117d09190611aeb565b5050505050565b600060208083528351808285015260005b81811015611804578581018301518582016040015282016117e8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461183a57600080fd5b50565b6000806040838503121561185057600080fd5b823561185b81611825565b946020939093013593505050565b60008060006060848603121561187e57600080fd5b833561188981611825565b9250602084013561189981611825565b929592945050506040919091013590565b6000602082840312156118bc57600080fd5b813561086981611825565b600080604083850312156118da57600080fd5b82356118e581611825565b9150602083013580151581146118fa57600080fd5b809150509250929050565b6000806040838503121561191857600080fd5b823561192381611825565b915060208301356118fa81611825565b600181811c9082168061194757607f821691505b60208210810361196757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156107ff576107ff6119a2565b818103818111156107ff576107ff6119a2565b80820281158282048414176107ff576107ff6119a2565b600082611a1257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a3f57600080fd5b815161086981611825565b600081518084526020808501945080840160005b83811015611a835781516001600160a01b031687529582019590820190600101611a5e565b509495945050505050565b85815284602082015260a060408201526000611aad60a0830186611a4a565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201526000611ae36040830184611a4a565b949350505050565b600080600060608486031215611b0057600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203bd4cd396dc79871c74e2e49f2e7597a19973a730dc4ad8d3542f8e9f6f867d164736f6c63430008110033
Deployed Bytecode Sourcemap
7752:11949:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11336:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12630:161;;;;;;;;;;-1:-1:-1;12630:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;12630:161:0;1023:187:1;9442:41:0;;;;;;;;;;-1:-1:-1;9442:41:0;;;;-1:-1:-1;;;;;9442:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;9442:41:0;1215:229:1;11613:100:0;;;;;;;;;;-1:-1:-1;11693:12:0;;11613:100;;;1595:25:1;;;1583:2;1568:18;11613:100:0;1449:177:1;13842:313:0;;;;;;;;;;-1:-1:-1;13842:313:0;;;;;:::i;:::-;;:::i;8249:81::-;;;;;;;;;;;;;;;13297:128;;;;;;;;;;;;;:::i;8779:32::-;;;;;;;;;;;;;;;;11522:83;;;;;;;;;;-1:-1:-1;11588:9:0;;11522:83;;11588:9;;;;2442:36:1;;2430:2;2415:18;11522:83:0;2300:184:1;11999:218:0;;;;;;;;;;-1:-1:-1;11999:218:0;;;;;:::i;:::-;;:::i;8641:45::-;;;;;;;;;;-1:-1:-1;8641:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9526:27;;;;;;;;;;;;;;;;8470:50;;;;;;;;;;-1:-1:-1;8470:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8946:72;;;;;;;;;;;;;;;;9025:73;;;;;;;;;;;;;;;;11721:119;;;;;;;;;;-1:-1:-1;11721:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;11814:18:0;11787:7;11814:18;;;:9;:18;;;;;;;11721:119;4089:148;;;;;;;;;;;;;:::i;:::-;;9216:33;;;;;;;;;;;;;;;;8145:96;;;;;;;;;;-1:-1:-1;8145:96:0;;;;-1:-1:-1;;;;;8145:96:0;;;13144:129;;;;;;;;;;-1:-1:-1;13144:129:0;;;;;:::i;:::-;;:::i;8818:36::-;;;;;;;;;;;;;;;;8586:48;;;;;;;;;;-1:-1:-1;8586:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3866:79;;;;;;;;;;-1:-1:-1;3904:7:0;3931:6;-1:-1:-1;;;;;3931:6:0;3866:79;;11427:87;;;;;;;;;;;;;:::i;8904:33::-;;;;;;;;;;;;;;;;12502:120;;;;;;;;;;-1:-1:-1;12591:23:0;;12502:120;;9256:39;;;;;;;;;;;;;;;;12225:269;;;;;;;;;;-1:-1:-1;12225:269:0;;;;;:::i;:::-;;:::i;13667:167::-;;;;;;;;;;-1:-1:-1;13667:167:0;;;;;:::i;:::-;;:::i;9560:29::-;;;;;;;;;;;;;;;;9105:63;;;;;;;;;;;;;;;;8737:35;;;;;;;;;;;;;;;;9490:26;;;;;;;;;;-1:-1:-1;9490:26:0;;;;-1:-1:-1;;;;;9490:26:0;;;8861:36;;;;;;;;;;;;;;;;8527:52;;;;;;;;;;-1:-1:-1;8527:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8038:99;;;;;;;;;;-1:-1:-1;8038:99:0;;;;;;;-1:-1:-1;;;;;8038:99:0;;;8695:35;;;;;;;;;;;;;;;;11848:143;;;;;;;;;;-1:-1:-1;11848:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;11956:18:0;;;11929:7;11956:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11848:143;9177:32;;;;;;;;;;;;;;;;4245:244;;;;;;;;;;-1:-1:-1;4245:244:0;;;;;:::i;:::-;;:::i;11336:83::-;11373:13;11406:5;11399:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11336:83;:::o;12630:161::-;12705:4;12722:39;230:10;12745:7;12754:6;12722:8;:39::i;:::-;-1:-1:-1;12779:4:0;12630:161;;;;;:::o;13842:313::-;13940:4;13957:36;13967:6;13975:9;13986:6;13957:9;:36::i;:::-;-1:-1:-1;14004:121:0;14013:6;230:10;14035:89;14073:6;14035:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14035:19:0;;;;;;:11;:19;;;;;;;;230:10;14035:33;;;;;;;;;;:37;:89::i;:::-;14004:8;:121::i;:::-;-1:-1:-1;14143:4:0;13842:313;;;;;;:::o;13297:128::-;13404:11;-1:-1:-1;;;;;11814:18:0;13350:7;11814:18;;;:9;:18;;;;;;13377:12;;:40;;:16;:40::i;:::-;13370:47;;13297:128;:::o;11999:218::-;230:10;12087:4;12136:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12136:34:0;;;;;;;;;;12087:4;;12104:83;;12127:7;;12136:50;;12175:10;12136:38;:50::i;4089:148::-;4000:6;;-1:-1:-1;;;;;4000:6:0;4010:10;4000:20;3992:65;;;;-1:-1:-1;;;3992:65:0;;;;;;;:::i;:::-;;;;;;;;;4196:1:::1;4180:6:::0;;4159:40:::1;::::0;-1:-1:-1;;;;;4180:6:0;;::::1;::::0;4159:40:::1;::::0;4196:1;;4159:40:::1;4227:1;4210:19:::0;;-1:-1:-1;;;;;;4210:19:0::1;::::0;;4089:148::o;13144:129::-;4000:6;;-1:-1:-1;;;;;4000:6:0;4010:10;4000:20;3992:65;;;;-1:-1:-1;;;3992:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13233:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;13233:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13144:129::o;11427:87::-;11466:13;11499:7;11492:14;;;;;:::i;12225:269::-;12318:4;12335:129;230:10;12358:7;12367:96;12406:15;12367:96;;;;;;;;;;;;;;;;;230:10;12367:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12367:34:0;;;;;;;;;;;;:38;:96::i;13667:167::-;13745:4;13762:42;230:10;13786:9;13797:6;13762:9;:42::i;4245:244::-;4000:6;;-1:-1:-1;;;;;4000:6:0;4010:10;4000:20;3992:65;;;;-1:-1:-1;;;3992:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4334:22:0;::::1;4326:73;;;::::0;-1:-1:-1;;;4326:73:0;;4727:2:1;4326:73:0::1;::::0;::::1;4709:21:1::0;4766:2;4746:18;;;4739:30;4805:34;4785:18;;;4778:62;-1:-1:-1;;;4856:18:1;;;4849:36;4902:19;;4326:73:0::1;4525:402:1::0;4326:73:0::1;4436:6;::::0;;4415:38:::1;::::0;-1:-1:-1;;;;;4415:38:0;;::::1;::::0;4436:6;::::1;::::0;4415:38:::1;::::0;::::1;4464:6;:17:::0;;-1:-1:-1;;;;;;4464:17:0::1;-1:-1:-1::0;;;;;4464:17:0;;;::::1;::::0;;;::::1;::::0;;4245:244::o;1202:181::-;1260:7;;1292:5;1296:1;1292;:5;:::i;:::-;1280:17;;1321:1;1316;:6;;1308:46;;;;-1:-1:-1;;;1308:46:0;;5396:2:1;1308:46:0;;;5378:21:1;5435:2;5415:18;;;5408:30;5474:29;5454:18;;;5447:57;5521:18;;1308:46:0;5194:351:1;12799:337:0;-1:-1:-1;;;;;12892:19:0;;12884:68;;;;-1:-1:-1;;;12884:68:0;;5752:2:1;12884:68:0;;;5734:21:1;5791:2;5771:18;;;5764:30;5830:34;5810:18;;;5803:62;-1:-1:-1;;;5881:18:1;;;5874:34;5925:19;;12884:68:0;5550:400:1;12884:68:0;-1:-1:-1;;;;;12971:21:0;;12963:68;;;;-1:-1:-1;;;12963:68:0;;6157:2:1;12963:68:0;;;6139:21:1;6196:2;6176:18;;;6169:30;6235:34;6215:18;;;6208:62;-1:-1:-1;;;6286:18:1;;;6279:32;6328:19;;12963:68:0;5955:398:1;12963:68:0;-1:-1:-1;;;;;13044:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13096:32;;1595:25:1;;;13096:32:0;;1568:18:1;13096:32:0;;;;;;;12799:337;;;:::o;14163:2010::-;14250:4;-1:-1:-1;;;;;14277:20:0;;14269:70;;;;-1:-1:-1;;;14269:70:0;;6560:2:1;14269:70:0;;;6542:21:1;6599:2;6579:18;;;6572:30;6638:34;6618:18;;;6611:62;-1:-1:-1;;;6689:18:1;;;6682:35;6734:19;;14269:70:0;6358:401:1;14269:70:0;-1:-1:-1;;;;;14358:23:0;;14350:71;;;;-1:-1:-1;;;14350:71:0;;6966:2:1;14350:71:0;;;6948:21:1;7005:2;6985:18;;;6978:30;7044:34;7024:18;;;7017:62;-1:-1:-1;;;7095:18:1;;;7088:33;7138:19;;14350:71:0;6764:399:1;14350:71:0;14450:11;;-1:-1:-1;;;;;14437:24:0;;;14450:11;;14437:24;:52;;;;-1:-1:-1;;;;;;14466:23:0;;;;;;:15;:23;;;;;;;;14465:24;14437:52;14434:263;;;-1:-1:-1;;;;;11814:18:0;;14517:15;11814:18;;;:9;:18;;;;;;14573:17;;;14569:103;;14620:36;14631:24;14642:12;;14631:6;:10;;:24;;;;:::i;:::-;14620:6;;:10;:36::i;:::-;14611:45;;14569:103;14500:197;14434:263;14723:11;;-1:-1:-1;;;;;14710:24:0;;;14723:11;;14710:24;:62;;;;-1:-1:-1;;;;;;11814:18:0;;11787:7;11814:18;;;:9;:18;;;;;;14738:34;14710:62;14707:120;;;14803:12;14788;:27;14707:120;14842:16;;;;14839:1327;;;14892:41;14907:6;14915:9;14926:6;14892:14;:41::i;:::-;14885:48;;;;14839:1327;15036:4;14987:28;11814:18;;;:9;:18;;;;;;15112:23;;15088:47;;;;;;;15168:44;;-1:-1:-1;15196:16:0;;;;15195:17;15168:44;:69;;;;-1:-1:-1;;;;;;15217:20:0;;;;;;:12;:20;;;;;;;;15216:21;15168:69;15164:280;;;15294:15;;-1:-1:-1;;;;;15275:35:0;;;15294:15;;15275:35;15272:140;;15352:36;15367:20;15352:14;:36::i;:::-;-1:-1:-1;;;;;15500:25:0;;15477:19;15500:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;15529:28:0;;;;;;:17;:28;;;;;;;;15500:57;15499:176;;15641:34;15649:6;15657:9;15668:6;15641:7;:34::i;:::-;15499:176;;;15604:34;15612:6;15620:9;15631:6;15604:7;:34::i;:::-;-1:-1:-1;;;;;15713:20:0;;;;;;:9;:20;;;;;;15477:198;;-1:-1:-1;15713:37:0;;15477:198;15713:24;:37::i;:::-;-1:-1:-1;;;;;15690:20:0;;;;;;;:9;:20;;;;;;;;:60;;;;15800:53;;;;;;;;;;-1:-1:-1;;;15800:53:0;;;;:17;;;;;;;;;;;:53;;15822:6;;15800:21;:53::i;:::-;-1:-1:-1;;;;;15780:17:0;;;;;;;:9;:17;;;;;;;;;:73;;;;15902:40;1595:25:1;;;15902:40:0;;;;15780:17;;15902:40;;1568:18:1;15902:40:0;;;;;;;15993:9;;15978:12;;:24;;;;:::i;:::-;15961:12;:42;:67;;;;-1:-1:-1;16017:11:0;;-1:-1:-1;;;;;16007:21:0;;;16017:11;;16007:21;15961:67;15957:172;;;16063:50;16078:9;16088:11;16101;16063:14;:50::i;:::-;;15957:172;16150:4;16143:11;;;;;;;1535:192;1621:7;1657:12;1649:6;;;;1641:29;;;;-1:-1:-1;;;1641:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1681:9:0;1693:5;1697:1;1693;:5;:::i;:::-;1681:17;1535:192;-1:-1:-1;;;;;1535:192:0:o;1391:136::-;1449:7;1476:43;1480:1;1483;1476:43;;;;;;;;;;;;;;;;;:3;:43::i;1993:132::-;2051:7;2078:39;2082:1;2085;2078:39;;;;;;;;;;;;;;;;;:3;:39::i;16181:330::-;16311:53;;;;;;;;;;;-1:-1:-1;;;16311:53:0;;;;;;;;-1:-1:-1;;;;;16311:17:0;;16274:4;16311:17;;;:9;:17;;;;;;;:53;;16333:6;;16311:21;:53::i;:::-;-1:-1:-1;;;;;16291:17:0;;;;;;;:9;:17;;;;;;:73;;;;16398:20;;;;;;;:32;;16423:6;16398:24;:32::i;:::-;-1:-1:-1;;;;;16375:20:0;;;;;;;:9;:20;;;;;;;:55;;;;16446:35;;;;;;;;;;16474:6;1595:25:1;;1583:2;1568:18;;1449:177;16446:35:0;;;;;;;;-1:-1:-1;16499:4:0;16181:330;;;;;:::o;16519:1060::-;10025:16;:23;;-1:-1:-1;;10025:23:0;10044:4;10025:23;;;16656:24:::1;::::0;16635:15:::1;::::0;10025:16;;16623:65:::1;::::0;16686:1:::1;::::0;16623:58:::1;::::0;;;:7;;:11:::1;:28::i;:::-;:32:::0;::::1;:58::i;:65::-;16601:87:::0;-1:-1:-1;16699:21:0::1;16723:24;:7:::0;16601:87;16723:11:::1;:24::i;:::-;16699:48;;16760:31;16777:13;16760:16;:31::i;:::-;16912:15;::::0;16827:21:::1;::::0;16802:22:::1;::::0;16883:52:::1;::::0;16912:22:::1;::::0;16932:1:::1;16912:19;:22::i;:::-;16883:24;::::0;;:28:::1;:52::i;:::-;16861:74;;16956:26;16985:59;17042:1;16985:52;17025:11;16985:35;17004:15;;16985:14;:18;;:35;;;;:::i;:59::-;16956:88;;17055:23;17081:49;17118:11;17081:32;17100:12;;17081:14;:18;;:32;;;;:::i;:49::-;17055:75:::0;-1:-1:-1;17141:26:0::1;17170:59;17055:75:::0;17170:38:::1;:14:::0;17189:18;17170::::1;:38::i;:::-;:42:::0;::::1;:59::i;:::-;17141:88:::0;-1:-1:-1;17245:22:0;;17242:104:::1;;17303:22;::::0;17282:64:::1;::::0;17303:22:::1;::::0;::::1;-1:-1:-1::0;;;;;17303:22:0::1;17327:18:::0;17282:20:::1;:64::i;:::-;17362:19:::0;;17359:95:::1;;17417:19;::::0;17396:58:::1;::::0;-1:-1:-1;;;;;17417:19:0::1;17438:15:::0;17396:20:::1;:58::i;:::-;17491:1;17470:18;:22;:41;;;;;17510:1;17496:11;:15;17470:41;17467:104;;;17526:45;17539:11;17552:18;17526:12;:45::i;:::-;-1:-1:-1::0;;10071:16:0;:24;;-1:-1:-1;;10071:24:0;;;-1:-1:-1;;;;;;16519:1060:0:o;19090:602::-;-1:-1:-1;;;;;19231:20:0;;19176:7;19231:20;;;:12;:20;;;;;;19176:7;;19231:20;;19228:223;;;19280:38;19314:3;19280:29;19291:17;;19280:6;:10;;:29;;;;:::i;:38::-;19268:50;;19228:223;;;-1:-1:-1;;;;;19348:23:0;;;;;;:12;:23;;;;;;;;19345:106;;;19400:39;19435:3;19400:30;19411:18;;19400:6;:10;;:30;;;;:::i;:39::-;19388:51;;19345:106;19474:13;;19471:173;;19549:4;19531:24;;;;:9;:24;;;;;;:39;;19560:9;19531:28;:39::i;:::-;19522:4;19504:24;;;;:9;:24;;;;;;;:66;;;;19590:42;;-1:-1:-1;;;;;19590:42:0;;;;;;;19622:9;1595:25:1;;1583:2;1568:18;;1449:177;19590:42:0;;;;;;;;19471:173;19663:21;:6;19674:9;19663:10;:21::i;18771:305::-;-1:-1:-1;;;;;18919:25:0;;18857:7;18919:25;;;:17;:25;;;;;;18857:7;;18919:25;;18915:46;;;-1:-1:-1;18955:6:0;18915:46;-1:-1:-1;;;;;18977:28:0;;;;;;:17;:28;;;;;;;;18972:55;;19016:11;:9;19026:1;19016:11;:::i;:::-;19006:21;;18972:55;19047:21;:6;19058:9;19047:10;:21::i;2133:278::-;2219:7;2254:12;2247:5;2239:28;;;;-1:-1:-1;;;2239:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2278:9:0;2290:5;2294:1;2290;:5;:::i;1735:250::-;1793:7;1817:1;1822;1817:6;1813:47;;-1:-1:-1;1847:1:0;1840:8;;1813:47;1872:9;1884:5;1888:1;1884;:5;:::i;:::-;1872:17;-1:-1:-1;1917:1:0;1908:5;1912:1;1872:17;1908:5;:::i;:::-;:10;1900:56;;;;-1:-1:-1;;;1900:56:0;;7898:2:1;1900:56:0;;;7880:21:1;7937:2;7917:18;;;7910:30;7976:34;7956:18;;;7949:62;-1:-1:-1;;;8027:18:1;;;8020:31;8068:19;;1900:56:0;7696:397:1;17591:652:0;17741:16;;;17755:1;17741:16;;;;;;;;17717:21;;17741:16;;;;;;;;;;-1:-1:-1;17741:16:0;17717:40;;17786:4;17768;17773:1;17768:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17768:23:0;;;:7;;;;;;;;;;:23;;;;17812:15;;:22;;;-1:-1:-1;;;17812:22:0;;;;:15;;;;;:20;;:22;;;;;17768:7;;17812:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17802:4;17807:1;17802:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17802:32:0;;;:7;;;;;;;;;:32;17877:15;;17845:62;;17862:4;;17877:15;17895:11;17845:8;:62::i;:::-;17944:15;;:240;;-1:-1:-1;;;17944:240:0;;-1:-1:-1;;;;;17944:15:0;;;;:66;;:240;;18025:11;;17944:15;;18095:4;;18122;;18158:15;;17944:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18200:35;18217:11;18230:4;18200:35;;;;;;;:::i;:::-;;;;;;;;17646:597;17591:652;:::o;13433:126::-;13525:26;;-1:-1:-1;;;;;13525:18:0;;;:26;;;;;13544:6;;13525:26;;;;13544:6;13525:18;:26;;;;;;;;;;;;;;;;;;;;;13433:126;;:::o;18251:511::-;18431:15;;18399:62;;18416:4;;-1:-1:-1;;;;;18431:15:0;18449:11;18399:8;:62::i;:::-;18502:15;;-1:-1:-1;;;;;18502:15:0;:31;18541:9;18574:4;18594:11;18502:15;;18706:7;3904;3931:6;-1:-1:-1;;;;;3931:6:0;;3866:79;18706:7;18502:252;;;;;;-1:-1:-1;;;;;;18502:252:0;;;-1:-1:-1;;;;;10367:15:1;;;18502:252:0;;;10349:34:1;10399:18;;;10392:34;;;;10442:18;;;10435:34;;;;10485:18;;;10478:34;10549:15;;;10528:19;;;10521:44;18728:15:0;10581:19:1;;;10574:35;10283:19;;18502:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18251:511;;:::o;14:548: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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2965:416::-;3030:6;3038;3091:2;3079:9;3070:7;3066:23;3062:32;3059:52;;;3107:1;3104;3097:12;3059:52;3146:9;3133:23;3165:31;3190:5;3165:31;:::i;:::-;3215:5;-1:-1:-1;3272:2:1;3257:18;;3244:32;3314:15;;3307:23;3295:36;;3285:64;;3345:1;3342;3335:12;3285:64;3368:7;3358:17;;;2965:416;;;;;:::o;3386:388::-;3454:6;3462;3515:2;3503:9;3494:7;3490:23;3486:32;3483:52;;;3531:1;3528;3521:12;3483:52;3570:9;3557:23;3589:31;3614:5;3589:31;:::i;:::-;3639:5;-1:-1:-1;3696:2:1;3681:18;;3668:32;3709:33;3668:32;3709:33;:::i;3779:380::-;3858:1;3854:12;;;;3901;;;3922:61;;3976:4;3968:6;3964:17;3954:27;;3922:61;4029:2;4021:6;4018:14;3998:18;3995:38;3992:161;;4075:10;4070:3;4066:20;4063:1;4056:31;4110:4;4107:1;4100:15;4138:4;4135:1;4128:15;3992:161;;3779:380;;;:::o;4164:356::-;4366:2;4348:21;;;4385:18;;;4378:30;4444:34;4439:2;4424:18;;4417:62;4511:2;4496:18;;4164:356::o;4932:127::-;4993:10;4988:3;4984:20;4981:1;4974:31;5024:4;5021:1;5014:15;5048:4;5045:1;5038:15;5064:125;5129:9;;;5150:10;;;5147:36;;;5163:18;;:::i;7168:128::-;7235:9;;;7256:11;;;7253:37;;;7270:18;;:::i;7301:168::-;7374:9;;;7405;;7422:15;;;7416:22;;7402:37;7392:71;;7443:18;;:::i;7474:217::-;7514:1;7540;7530:132;;7584:10;7579:3;7575:20;7572:1;7565:31;7619:4;7616:1;7609:15;7647:4;7644:1;7637:15;7530:132;-1:-1:-1;7676:9:1;;7474:217::o;8230:127::-;8291:10;8286:3;8282:20;8279:1;8272:31;8322:4;8319:1;8312:15;8346:4;8343:1;8336:15;8362:251;8432:6;8485:2;8473:9;8464:7;8460:23;8456:32;8453:52;;;8501:1;8498;8491:12;8453:52;8533:9;8527:16;8552:31;8577:5;8552:31;:::i;8618:461::-;8671:3;8709:5;8703:12;8736:6;8731:3;8724:19;8762:4;8791:2;8786:3;8782:12;8775:19;;8828:2;8821:5;8817:14;8849:1;8859:195;8873:6;8870:1;8867:13;8859:195;;;8938:13;;-1:-1:-1;;;;;8934:39:1;8922:52;;8994:12;;;;9029:15;;;;8970:1;8888:9;8859:195;;;-1:-1:-1;9070:3:1;;8618:461;-1:-1:-1;;;;;8618:461:1:o;9084:582::-;9383:6;9372:9;9365:25;9426:6;9421:2;9410:9;9406:18;9399:34;9469:3;9464:2;9453:9;9449:18;9442:31;9346:4;9490:57;9542:3;9531:9;9527:19;9519:6;9490:57;:::i;:::-;-1:-1:-1;;;;;9583:32:1;;;;9578:2;9563:18;;9556:60;-1:-1:-1;9647:3:1;9632:19;9625:35;9482:65;9084:582;-1:-1:-1;;;9084:582:1:o;9671:332::-;9878:6;9867:9;9860:25;9921:2;9916;9905:9;9901:18;9894:30;9841:4;9941:56;9993:2;9982:9;9978:18;9970:6;9941:56;:::i;:::-;9933:64;9671:332;-1:-1:-1;;;;9671:332:1:o;10620:306::-;10708:6;10716;10724;10777:2;10765:9;10756:7;10752:23;10748:32;10745:52;;;10793:1;10790;10783:12;10745:52;10822:9;10816:16;10806:26;;10872:2;10861:9;10857:18;10851:25;10841:35;;10916:2;10905:9;10901:18;10895:25;10885:35;;10620:306;;;;;:::o
Swarm Source
ipfs://3bd4cd396dc79871c74e2e49f2e7597a19973a730dc4ad8d3542f8e9f6f867d1
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.