ERC-20
Overview
Max Total Supply
10,000,000 DORU
Holders
85
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 DORUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DoruSHIB
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-02-08 */ /* __/\\\\\\\\\\\\__________/\\\\\_________/\\\\\\\\\______/\\\________/\\\_____/\\\\\\\\\\\____/\\\________/\\\__/\\\\\\\\\\\__/\\\\\\\\\\\\\___ _\/\\\////////\\\______/\\\///\\\_____/\\\///////\\\___\/\\\_______\/\\\___/\\\/////////\\\_\/\\\_______\/\\\_\/////\\\///__\/\\\/////////\\\_ _\/\\\______\//\\\___/\\\/__\///\\\__\/\\\_____\/\\\___\/\\\_______\/\\\__\//\\\______\///__\/\\\_______\/\\\_____\/\\\_____\/\\\_______\/\\\_ _\/\\\_______\/\\\__/\\\______\//\\\_\/\\\\\\\\\\\/____\/\\\_______\/\\\___\////\\\_________\/\\\\\\\\\\\\\\\_____\/\\\_____\/\\\\\\\\\\\\\\__ _\/\\\_______\/\\\_\/\\\_______\/\\\_\/\\\//////\\\____\/\\\_______\/\\\______\////\\\______\/\\\/////////\\\_____\/\\\_____\/\\\/////////\\\_ _\/\\\_______\/\\\_\//\\\______/\\\__\/\\\____\//\\\___\/\\\_______\/\\\_________\////\\\___\/\\\_______\/\\\_____\/\\\_____\/\\\_______\/\\\_ _\/\\\_______/\\\___\///\\\__/\\\____\/\\\_____\//\\\__\//\\\______/\\\___/\\\______\//\\\__\/\\\_______\/\\\_____\/\\\_____\/\\\_______\/\\\_ _\/\\\\\\\\\\\\/______\///\\\\\/_____\/\\\______\//\\\__\///\\\\\\\\\/___\///\\\\\\\\\\\/___\/\\\_______\/\\\__/\\\\\\\\\\\_\/\\\\\\\\\\\\\/__ _\////////////__________\/////_______\///________\///_____\/////////_______\///////////_____\///________\///__\///////////__\/////////////____ https://t.me/dorushibportal https://dorushib.io https://twitter.com/DoruShib */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.17; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount) external returns (bool); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; constructor(string memory name_, string memory symbol_, uint8 decimals_) { _name = name_; _symbol = symbol_; _decimals = decimals_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return _decimals; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { 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 _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract DoruSHIB is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private swapping; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; struct TaxWallets { address marketing; address liquidity; } TaxWallets public taxWallets; struct Taxes { uint256 marketing; uint256 liquidity; } Taxes public buyTax; Taxes public sellTax; struct TotalTaxes { uint256 buy; uint256 sell; } TotalTaxes private totalTaxes; uint256 private tokensForMarketing; uint256 private tokensForLiquidity; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) private _isExcludedMaxTransactionAmount; mapping(address => bool) private automatedMarketMakerPairs; event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event SwapAndLiquidity(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity); constructor() ERC20("DoruShib", "DORU", 9) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 totalSupply = 10000000 * (10**decimals()); maxTransactionAmount = totalSupply.mul(2).div(100); maxWallet = maxTransactionAmount; swapTokensAtAmount = totalSupply.mul(5).div(10000); taxWallets = TaxWallets(msg.sender, deadAddress); buyTax = Taxes(25, 0); sellTax = Taxes(25, 0); totalTaxes = TotalTaxes( buyTax.marketing + buyTax.liquidity, sellTax.marketing + sellTax.liquidity ); excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(deadAddress, true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(deadAddress, true); _mint(msg.sender, totalSupply); } receive() external payable {} function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function isExcludedFromFees(address _address) public view returns (bool) { return _isExcludedFromFees[_address]; } function enableTrading() external onlyOwner { require(tradingActive == false, "The trading is active."); tradingActive = true; swapEnabled = tradingActive; } function removeLimits() external onlyOwner { require(limitsInEffect == true, "The limits in effect has been removed."); limitsInEffect = false; } function setBuyTaxes(uint256 _marketing, uint256 _liquidity) external onlyOwner { buyTax = Taxes(_marketing, _liquidity); totalTaxes.buy = buyTax.marketing + buyTax.liquidity; require(totalTaxes.buy <= 10, "Must keep fees at 10% or less"); } function setSellTaxes(uint256 _marketing, uint256 _liquidity) external onlyOwner { sellTax = Taxes(_marketing, _liquidity); totalTaxes.sell = sellTax.marketing + sellTax.liquidity; require(totalTaxes.sell <= 10, "Must keep fees at 10% or less"); } function setTaxWallets(address _marketingWallet, address _liquidityWallet) external onlyOwner { require(_marketingWallet != address(0), "Marketing address cannot be zero address"); taxWallets = TaxWallets(_marketingWallet, _liquidityWallet); } function excludeFromMaxTransaction(address _address, bool isExclude) public onlyOwner { _isExcludedMaxTransactionAmount[_address] = isExclude; } function excludeFromFees(address _address, bool isExclude) public onlyOwner { _isExcludedFromFees[_address] = isExclude; emit ExcludeFromFees(_address, isExclude); } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if (amount == 0) { super._transfer(from, to, 0); return; } if (from != owner() && to != owner() && to != address(0) && to != deadAddress && !swapping) { if (!tradingActive) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } if (limitsInEffect) { if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if (!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) { swapping = true; swapBack(); swapping = false; } bool takeFee = !swapping; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if (automatedMarketMakerPairs[to] && totalTaxes.sell > 0) { fees = amount.mul(totalTaxes.sell).div(100); tokensForLiquidity += (fees * sellTax.liquidity) / totalTaxes.sell; tokensForMarketing += (fees * sellTax.marketing) / totalTaxes.sell; } else if (automatedMarketMakerPairs[from] && totalTaxes.buy > 0) { fees = amount.mul(totalTaxes.buy).div(100); tokensForLiquidity += (fees * buyTax.liquidity) / totalTaxes.buy; tokensForMarketing += (fees * buyTax.marketing) / totalTaxes.buy; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, taxWallets.liquidity, block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } uint256 liquidityTokens = (contractBalance * tokensForLiquidity) / totalTokensToSwap / 2; uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(totalTokensToSwap); uint256 ethForLiquidity = ethBalance - ethForMarketing; if (liquidityTokens > 0 && ethForLiquidity > 0) { addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquidity( amountToSwapForETH, ethForLiquidity, tokensForLiquidity ); } tokensForLiquidity = 0; tokensForMarketing = 0; (success, ) = address(taxWallets.marketing).call{value: address(this).balance}(""); } }
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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquidity","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":"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":"buyTax","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"isExclude","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"isExclude","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"},{"internalType":"address","name":"_liquidityWallet","type":"address"}],"name":"setTaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallets","outputs":[{"internalType":"address","name":"marketing","type":"address"},{"internalType":"address","name":"liquidity","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","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
6080604052600b805462ffffff191660011790553480156200002057600080fd5b50604051806040016040528060088152602001672237b93aa9b434b160c11b81525060405180604001604052806004815260200163444f525560e01b81525060098260039081620000729190620007a2565b506004620000818382620007a2565b506005805460ff191660ff9290921691909117905550620000ab9050620000a53390565b6200045d565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000cd816001620004b7565b600680546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000127573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014d91906200086e565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d691906200086e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000224573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024a91906200086e565b600780546001600160a01b0319166001600160a01b0392909216918217905562000276906001620004b7565b6007546200028f906001600160a01b03166001620004ec565b60006200029e60055460ff1690565b620002ab90600a620009b3565b620002ba9062989680620009c4565b9050620002f16064620002dd6002846200054060201b62000b841790919060201c565b6200055760201b62000b971790919060201c565b6008819055600a5562000319612710620002dd83600562000540602090811b62000b8417901c565b6009556040805180820182523380825261dead6020928301819052600c80546001600160a01b03199081169093179055600d80549092161790558151808301835260198082526000918301829052600e819055600f829055835180850185528181529092018190526010829055601181905582518084019093528291620003a19190620009de565b8152601154601054602090920191620003bb9190620009de565b9052805160125560200151601355620003ed620003e560055461010090046001600160a01b031690565b600162000565565b620003fa30600162000565565b6200040961dead600162000565565b6200042d6200042560055461010090046001600160a01b031690565b6001620004b7565b6200043a306001620004b7565b6200044961dead6001620004b7565b620004553382620005ce565b505062000a17565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620004c162000695565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260186020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b60006200054e8284620009c4565b90505b92915050565b60006200054e8284620009f4565b6200056f62000695565b6001600160a01b038216600081815260166020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b0382166200062a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b80600260008282546200063e9190620009de565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b03610100909104163314620006f75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000621565b565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200072957607f821691505b6020821081036200074a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620006f957600081815260208120601f850160051c81016020861015620007795750805b601f850160051c820191505b818110156200079a5782815560010162000785565b505050505050565b81516001600160401b03811115620007be57620007be620006fe565b620007d681620007cf845462000714565b8462000750565b602080601f8311600181146200080e5760008415620007f55750858301515b600019600386901b1c1916600185901b1785556200079a565b600085815260208120601f198616915b828110156200083f578886015182559484019460019091019084016200081e565b50858210156200085e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200088157600080fd5b81516001600160a01b03811681146200089957600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008f7578160001904821115620008db57620008db620008a0565b80851615620008e957918102915b93841c9390800290620008bb565b509250929050565b600082620009105750600162000551565b816200091f5750600062000551565b8160018114620009385760028114620009435762000963565b600191505062000551565b60ff841115620009575762000957620008a0565b50506001821b62000551565b5060208310610133831016604e8410600b841016171562000988575081810a62000551565b620009948383620008b6565b8060001904821115620009ab57620009ab620008a0565b029392505050565b60006200054e60ff841683620008ff565b8082028115828204841417620005515762000551620008a0565b80820180821115620005515762000551620008a0565b60008262000a1257634e487b7160e01b600052601260045260246000fd5b500490565b611d578062000a276000396000f3fe6080604052600436106101f25760003560e01c8063740bf4971161010d578063a9059cbb116100a0578063c8c8ebe41161006f578063c8c8ebe4146105e0578063cc1776d3146105f6578063dd62ed3e14610611578063e2f4560514610631578063f8b45b051461064757600080fd5b8063a9059cbb14610561578063aa35822c14610581578063bbc0c742146105a1578063c0246668146105c057600080fd5b80638da5cb5b116100dc5780638da5cb5b146104e957806395d89b411461050c578063a11a168214610521578063a457c2d71461054157600080fd5b8063740bf4971461047f578063751039fc1461049f5780637571336a146104b45780638a8c523c146104d457600080fd5b806349bd5a5e11610185578063610ec82311610154578063610ec823146103cb5780636ddd17131461041257806370a0823114610432578063715018a61461046857600080fd5b806349bd5a5e146103285780634a62bb65146103485780634f7041a5146103625780634fbee1931461039257600080fd5b806323b872dd116101c157806323b872dd146102b057806327c8f835146102d0578063313ce567146102e6578063395093511461030857600080fd5b806306fdde03146101fe578063095ea7b3146102295780631694505e1461025957806318160ddd1461029157600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021361065d565b604051610220919061199a565b60405180910390f35b34801561023557600080fd5b50610249610244366004611a00565b6106ef565b6040519015158152602001610220565b34801561026557600080fd5b50600654610279906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b34801561029d57600080fd5b506002545b604051908152602001610220565b3480156102bc57600080fd5b506102496102cb366004611a2c565b610709565b3480156102dc57600080fd5b5061027961dead81565b3480156102f257600080fd5b5060055460405160ff9091168152602001610220565b34801561031457600080fd5b50610249610323366004611a00565b61072d565b34801561033457600080fd5b50600754610279906001600160a01b031681565b34801561035457600080fd5b50600b546102499060ff1681565b34801561036e57600080fd5b50600e54600f5461037d919082565b60408051928352602083019190915201610220565b34801561039e57600080fd5b506102496103ad366004611a6d565b6001600160a01b031660009081526016602052604090205460ff1690565b3480156103d757600080fd5b50600c54600d546103f2916001600160a01b03908116911682565b604080516001600160a01b03938416815292909116602083015201610220565b34801561041e57600080fd5b50600b546102499062010000900460ff1681565b34801561043e57600080fd5b506102a261044d366004611a6d565b6001600160a01b031660009081526020819052604090205490565b34801561047457600080fd5b5061047d61074f565b005b34801561048b57600080fd5b5061047d61049a366004611a8a565b610763565b3480156104ab57600080fd5b5061047d61081e565b3480156104c057600080fd5b5061047d6104cf366004611ac3565b610898565b3480156104e057600080fd5b5061047d6108cb565b3480156104f557600080fd5b5060055461010090046001600160a01b0316610279565b34801561051857600080fd5b5061021361094e565b34801561052d57600080fd5b5061047d61053c366004611af6565b61095d565b34801561054d57600080fd5b5061024961055c366004611a00565b6109e5565b34801561056d57600080fd5b5061024961057c366004611a00565b610a60565b34801561058d57600080fd5b5061047d61059c366004611af6565b610a6e565b3480156105ad57600080fd5b50600b5461024990610100900460ff1681565b3480156105cc57600080fd5b5061047d6105db366004611ac3565b610af2565b3480156105ec57600080fd5b506102a260085481565b34801561060257600080fd5b5060105460115461037d919082565b34801561061d57600080fd5b506102a261062c366004611a8a565b610b59565b34801561063d57600080fd5b506102a260095481565b34801561065357600080fd5b506102a2600a5481565b60606003805461066c90611b18565b80601f016020809104026020016040519081016040528092919081815260200182805461069890611b18565b80156106e55780601f106106ba576101008083540402835291602001916106e5565b820191906000526020600020905b8154815290600101906020018083116106c857829003601f168201915b5050505050905090565b6000336106fd818585610ba3565b60019150505b92915050565b600033610717858285610cc7565b610722858585610d41565b506001949350505050565b6000336106fd8185856107408383610b59565b61074a9190611b68565b610ba3565b6107576113f1565b6107616000611451565b565b61076b6113f1565b6001600160a01b0382166107d75760405162461bcd60e51b815260206004820152602860248201527f4d61726b6574696e6720616464726573732063616e6e6f74206265207a65726f604482015267206164647265737360c01b60648201526084015b60405180910390fd5b604080518082019091526001600160a01b03928316808252919092166020909201829052600c80546001600160a01b03199081169092179055600d80549091169091179055565b6108266113f1565b600b5460ff16151560011461088c5760405162461bcd60e51b815260206004820152602660248201527f546865206c696d69747320696e2065666665637420686173206265656e20726560448201526536b7bb32b21760d11b60648201526084016107ce565b600b805460ff19169055565b6108a06113f1565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6108d36113f1565b600b54610100900460ff16156109245760405162461bcd60e51b81526020600482015260166024820152752a3432903a3930b234b7339034b99030b1ba34bb329760511b60448201526064016107ce565b600b805462ffff001981166201000060ff61010061ff001990941684178490041615150217179055565b60606004805461066c90611b18565b6109656113f1565b604080518082019091528281526020018190526010829055601181905561098c8183611b68565b6013819055600a10156109e15760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016107ce565b5050565b600033816109f38286610b59565b905083811015610a535760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107ce565b6107228286868403610ba3565b6000336106fd818585610d41565b610a766113f1565b60408051808201909152828152602001819052600e829055600f819055610a9d8183611b68565b6012819055600a10156109e15760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016107ce565b610afa6113f1565b6001600160a01b038216600081815260166020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610b908284611b7b565b9392505050565b6000610b908284611b92565b6001600160a01b038316610c055760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ce565b6001600160a01b038216610c665760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ce565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610cd38484610b59565b90506000198114610d3b5781811015610d2e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107ce565b610d3b8484848403610ba3565b50505050565b6001600160a01b038316610d675760405162461bcd60e51b81526004016107ce90611bb4565b6001600160a01b038216610d8d5760405162461bcd60e51b81526004016107ce90611bf9565b80600003610da657610da1838360006114ab565b505050565b6005546001600160a01b038481166101009092041614801590610ddc57506005546001600160a01b038381166101009092041614155b8015610df057506001600160a01b03821615155b8015610e0757506001600160a01b03821661dead14155b8015610e1d5750600754600160a01b900460ff16155b1561112657600b54610100900460ff16610eb5576001600160a01b03831660009081526016602052604090205460ff1680610e7057506001600160a01b03821660009081526016602052604090205460ff165b610eb55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107ce565b600b5460ff1615611126576001600160a01b03831660009081526018602052604090205460ff168015610f0157506001600160a01b03821660009081526017602052604090205460ff16155b15610fe557600854811115610f765760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016107ce565b600a546001600160a01b038316600090815260208190526040902054610f9c9083611b68565b1115610fe05760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ce565b611126565b6001600160a01b03821660009081526018602052604090205460ff16801561102657506001600160a01b03831660009081526017602052604090205460ff16155b1561109c57600854811115610fe05760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016107ce565b6001600160a01b03821660009081526017602052604090205460ff1661112657600a546001600160a01b0383166000908152602081905260409020546110e29083611b68565b11156111265760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ce565b30600090815260208190526040902054600954811080159081906111525750600b5462010000900460ff165b80156111685750600754600160a01b900460ff16155b801561118d57506001600160a01b03851660009081526018602052604090205460ff16155b80156111b257506001600160a01b03851660009081526016602052604090205460ff16155b80156111d757506001600160a01b03841660009081526016602052604090205460ff16155b15611205576007805460ff60a01b1916600160a01b1790556111f76115d5565b6007805460ff60a01b191690555b6007546001600160a01b03861660009081526016602052604090205460ff600160a01b90920482161591168061125357506001600160a01b03851660009081526016602052604090205460ff165b1561125c575060005b600081156113dd576001600160a01b03861660009081526018602052604090205460ff16801561128d575060135415155b15611317576013546112ad906064906112a7908890610b84565b90610b97565b601354601154919250906112c19083611b7b565b6112cb9190611b92565b601560008282546112dc9190611b68565b90915550506013546010546112f19083611b7b565b6112fb9190611b92565b6014600082825461130c9190611b68565b909155506113bf9050565b6001600160a01b03871660009081526018602052604090205460ff168015611340575060125415155b156113bf5760125461135a906064906112a7908890610b84565b601254600f549192509061136e9083611b7b565b6113789190611b92565b601560008282546113899190611b68565b9091555050601254600e5461139e9083611b7b565b6113a89190611b92565b601460008282546113b99190611b68565b90915550505b80156113d0576113d08730836114ab565b6113da8186611c3c565b94505b6113e88787876114ab565b50505050505050565b6005546001600160a01b036101009091041633146107615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107ce565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166114d15760405162461bcd60e51b81526004016107ce90611bb4565b6001600160a01b0382166114f75760405162461bcd60e51b81526004016107ce90611bf9565b6001600160a01b0383166000908152602081905260409020548181101561156f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107ce565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d3b565b30600090815260208190526040812054905060006014546015546115f99190611b68565b90506000821580611608575081155b1561161257505050565b600954611620906014611b7b565b83111561163857600954611635906014611b7b565b92505b60006002836015548661164b9190611b7b565b6116559190611b92565b61165f9190611b92565b9050600061166d8583611780565b9050476116798261178c565b60006116854783611780565b905060006116a2876112a760145485610b8490919063ffffffff16565b905060006116b08284611c3c565b90506000861180156116c25750600081115b15611715576116d186826118e6565b601554604080518781526020810184905280820192909252517f34755123977fda4465c19ffa30709bc81ed728f17cf49014d33b243ae2d682fb9181900360600190a15b600060158190556014819055600c546040516001600160a01b039091169147919081818185875af1925050503d806000811461176d576040519150601f19603f3d011682016040523d82523d6000602084013e611772565b606091505b505050505050505050505050565b6000610b908284611c3c565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117c1576117c1611c4f565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561181a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183e9190611c65565b8160018151811061185157611851611c4f565b6001600160a01b0392831660209182029290920101526006546118779130911684610ba3565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906118b0908590600090869030904290600401611c82565b600060405180830381600087803b1580156118ca57600080fd5b505af11580156118de573d6000803e3d6000fd5b505050505050565b6006546118fe9030906001600160a01b031684610ba3565b600654600d5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561196e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119939190611cf3565b5050505050565b600060208083528351808285015260005b818110156119c7578581018301518582016040015282016119ab565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146119fd57600080fd5b50565b60008060408385031215611a1357600080fd5b8235611a1e816119e8565b946020939093013593505050565b600080600060608486031215611a4157600080fd5b8335611a4c816119e8565b92506020840135611a5c816119e8565b929592945050506040919091013590565b600060208284031215611a7f57600080fd5b8135610b90816119e8565b60008060408385031215611a9d57600080fd5b8235611aa8816119e8565b91506020830135611ab8816119e8565b809150509250929050565b60008060408385031215611ad657600080fd5b8235611ae1816119e8565b915060208301358015158114611ab857600080fd5b60008060408385031215611b0957600080fd5b50508035926020909101359150565b600181811c90821680611b2c57607f821691505b602082108103611b4c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561070357610703611b52565b808202811582820484141761070357610703611b52565b600082611baf57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561070357610703611b52565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c7757600080fd5b8151610b90816119e8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cd25784516001600160a01b031683529383019391830191600101611cad565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611d0857600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122086daaf4c51e096faf786987222404caee7ae9412edca43d0edcd377281bb6e2864736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101f25760003560e01c8063740bf4971161010d578063a9059cbb116100a0578063c8c8ebe41161006f578063c8c8ebe4146105e0578063cc1776d3146105f6578063dd62ed3e14610611578063e2f4560514610631578063f8b45b051461064757600080fd5b8063a9059cbb14610561578063aa35822c14610581578063bbc0c742146105a1578063c0246668146105c057600080fd5b80638da5cb5b116100dc5780638da5cb5b146104e957806395d89b411461050c578063a11a168214610521578063a457c2d71461054157600080fd5b8063740bf4971461047f578063751039fc1461049f5780637571336a146104b45780638a8c523c146104d457600080fd5b806349bd5a5e11610185578063610ec82311610154578063610ec823146103cb5780636ddd17131461041257806370a0823114610432578063715018a61461046857600080fd5b806349bd5a5e146103285780634a62bb65146103485780634f7041a5146103625780634fbee1931461039257600080fd5b806323b872dd116101c157806323b872dd146102b057806327c8f835146102d0578063313ce567146102e6578063395093511461030857600080fd5b806306fdde03146101fe578063095ea7b3146102295780631694505e1461025957806318160ddd1461029157600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021361065d565b604051610220919061199a565b60405180910390f35b34801561023557600080fd5b50610249610244366004611a00565b6106ef565b6040519015158152602001610220565b34801561026557600080fd5b50600654610279906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b34801561029d57600080fd5b506002545b604051908152602001610220565b3480156102bc57600080fd5b506102496102cb366004611a2c565b610709565b3480156102dc57600080fd5b5061027961dead81565b3480156102f257600080fd5b5060055460405160ff9091168152602001610220565b34801561031457600080fd5b50610249610323366004611a00565b61072d565b34801561033457600080fd5b50600754610279906001600160a01b031681565b34801561035457600080fd5b50600b546102499060ff1681565b34801561036e57600080fd5b50600e54600f5461037d919082565b60408051928352602083019190915201610220565b34801561039e57600080fd5b506102496103ad366004611a6d565b6001600160a01b031660009081526016602052604090205460ff1690565b3480156103d757600080fd5b50600c54600d546103f2916001600160a01b03908116911682565b604080516001600160a01b03938416815292909116602083015201610220565b34801561041e57600080fd5b50600b546102499062010000900460ff1681565b34801561043e57600080fd5b506102a261044d366004611a6d565b6001600160a01b031660009081526020819052604090205490565b34801561047457600080fd5b5061047d61074f565b005b34801561048b57600080fd5b5061047d61049a366004611a8a565b610763565b3480156104ab57600080fd5b5061047d61081e565b3480156104c057600080fd5b5061047d6104cf366004611ac3565b610898565b3480156104e057600080fd5b5061047d6108cb565b3480156104f557600080fd5b5060055461010090046001600160a01b0316610279565b34801561051857600080fd5b5061021361094e565b34801561052d57600080fd5b5061047d61053c366004611af6565b61095d565b34801561054d57600080fd5b5061024961055c366004611a00565b6109e5565b34801561056d57600080fd5b5061024961057c366004611a00565b610a60565b34801561058d57600080fd5b5061047d61059c366004611af6565b610a6e565b3480156105ad57600080fd5b50600b5461024990610100900460ff1681565b3480156105cc57600080fd5b5061047d6105db366004611ac3565b610af2565b3480156105ec57600080fd5b506102a260085481565b34801561060257600080fd5b5060105460115461037d919082565b34801561061d57600080fd5b506102a261062c366004611a8a565b610b59565b34801561063d57600080fd5b506102a260095481565b34801561065357600080fd5b506102a2600a5481565b60606003805461066c90611b18565b80601f016020809104026020016040519081016040528092919081815260200182805461069890611b18565b80156106e55780601f106106ba576101008083540402835291602001916106e5565b820191906000526020600020905b8154815290600101906020018083116106c857829003601f168201915b5050505050905090565b6000336106fd818585610ba3565b60019150505b92915050565b600033610717858285610cc7565b610722858585610d41565b506001949350505050565b6000336106fd8185856107408383610b59565b61074a9190611b68565b610ba3565b6107576113f1565b6107616000611451565b565b61076b6113f1565b6001600160a01b0382166107d75760405162461bcd60e51b815260206004820152602860248201527f4d61726b6574696e6720616464726573732063616e6e6f74206265207a65726f604482015267206164647265737360c01b60648201526084015b60405180910390fd5b604080518082019091526001600160a01b03928316808252919092166020909201829052600c80546001600160a01b03199081169092179055600d80549091169091179055565b6108266113f1565b600b5460ff16151560011461088c5760405162461bcd60e51b815260206004820152602660248201527f546865206c696d69747320696e2065666665637420686173206265656e20726560448201526536b7bb32b21760d11b60648201526084016107ce565b600b805460ff19169055565b6108a06113f1565b6001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b6108d36113f1565b600b54610100900460ff16156109245760405162461bcd60e51b81526020600482015260166024820152752a3432903a3930b234b7339034b99030b1ba34bb329760511b60448201526064016107ce565b600b805462ffff001981166201000060ff61010061ff001990941684178490041615150217179055565b60606004805461066c90611b18565b6109656113f1565b604080518082019091528281526020018190526010829055601181905561098c8183611b68565b6013819055600a10156109e15760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016107ce565b5050565b600033816109f38286610b59565b905083811015610a535760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107ce565b6107228286868403610ba3565b6000336106fd818585610d41565b610a766113f1565b60408051808201909152828152602001819052600e829055600f819055610a9d8183611b68565b6012819055600a10156109e15760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420313025206f72206c65737300000060448201526064016107ce565b610afa6113f1565b6001600160a01b038216600081815260166020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610b908284611b7b565b9392505050565b6000610b908284611b92565b6001600160a01b038316610c055760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ce565b6001600160a01b038216610c665760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ce565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610cd38484610b59565b90506000198114610d3b5781811015610d2e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016107ce565b610d3b8484848403610ba3565b50505050565b6001600160a01b038316610d675760405162461bcd60e51b81526004016107ce90611bb4565b6001600160a01b038216610d8d5760405162461bcd60e51b81526004016107ce90611bf9565b80600003610da657610da1838360006114ab565b505050565b6005546001600160a01b038481166101009092041614801590610ddc57506005546001600160a01b038381166101009092041614155b8015610df057506001600160a01b03821615155b8015610e0757506001600160a01b03821661dead14155b8015610e1d5750600754600160a01b900460ff16155b1561112657600b54610100900460ff16610eb5576001600160a01b03831660009081526016602052604090205460ff1680610e7057506001600160a01b03821660009081526016602052604090205460ff165b610eb55760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107ce565b600b5460ff1615611126576001600160a01b03831660009081526018602052604090205460ff168015610f0157506001600160a01b03821660009081526017602052604090205460ff16155b15610fe557600854811115610f765760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b60648201526084016107ce565b600a546001600160a01b038316600090815260208190526040902054610f9c9083611b68565b1115610fe05760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ce565b611126565b6001600160a01b03821660009081526018602052604090205460ff16801561102657506001600160a01b03831660009081526017602052604090205460ff16155b1561109c57600854811115610fe05760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b60648201526084016107ce565b6001600160a01b03821660009081526017602052604090205460ff1661112657600a546001600160a01b0383166000908152602081905260409020546110e29083611b68565b11156111265760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ce565b30600090815260208190526040902054600954811080159081906111525750600b5462010000900460ff165b80156111685750600754600160a01b900460ff16155b801561118d57506001600160a01b03851660009081526018602052604090205460ff16155b80156111b257506001600160a01b03851660009081526016602052604090205460ff16155b80156111d757506001600160a01b03841660009081526016602052604090205460ff16155b15611205576007805460ff60a01b1916600160a01b1790556111f76115d5565b6007805460ff60a01b191690555b6007546001600160a01b03861660009081526016602052604090205460ff600160a01b90920482161591168061125357506001600160a01b03851660009081526016602052604090205460ff165b1561125c575060005b600081156113dd576001600160a01b03861660009081526018602052604090205460ff16801561128d575060135415155b15611317576013546112ad906064906112a7908890610b84565b90610b97565b601354601154919250906112c19083611b7b565b6112cb9190611b92565b601560008282546112dc9190611b68565b90915550506013546010546112f19083611b7b565b6112fb9190611b92565b6014600082825461130c9190611b68565b909155506113bf9050565b6001600160a01b03871660009081526018602052604090205460ff168015611340575060125415155b156113bf5760125461135a906064906112a7908890610b84565b601254600f549192509061136e9083611b7b565b6113789190611b92565b601560008282546113899190611b68565b9091555050601254600e5461139e9083611b7b565b6113a89190611b92565b601460008282546113b99190611b68565b90915550505b80156113d0576113d08730836114ab565b6113da8186611c3c565b94505b6113e88787876114ab565b50505050505050565b6005546001600160a01b036101009091041633146107615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107ce565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0383166114d15760405162461bcd60e51b81526004016107ce90611bb4565b6001600160a01b0382166114f75760405162461bcd60e51b81526004016107ce90611bf9565b6001600160a01b0383166000908152602081905260409020548181101561156f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016107ce565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d3b565b30600090815260208190526040812054905060006014546015546115f99190611b68565b90506000821580611608575081155b1561161257505050565b600954611620906014611b7b565b83111561163857600954611635906014611b7b565b92505b60006002836015548661164b9190611b7b565b6116559190611b92565b61165f9190611b92565b9050600061166d8583611780565b9050476116798261178c565b60006116854783611780565b905060006116a2876112a760145485610b8490919063ffffffff16565b905060006116b08284611c3c565b90506000861180156116c25750600081115b15611715576116d186826118e6565b601554604080518781526020810184905280820192909252517f34755123977fda4465c19ffa30709bc81ed728f17cf49014d33b243ae2d682fb9181900360600190a15b600060158190556014819055600c546040516001600160a01b039091169147919081818185875af1925050503d806000811461176d576040519150601f19603f3d011682016040523d82523d6000602084013e611772565b606091505b505050505050505050505050565b6000610b908284611c3c565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106117c1576117c1611c4f565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561181a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183e9190611c65565b8160018151811061185157611851611c4f565b6001600160a01b0392831660209182029290920101526006546118779130911684610ba3565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906118b0908590600090869030904290600401611c82565b600060405180830381600087803b1580156118ca57600080fd5b505af11580156118de573d6000803e3d6000fd5b505050505050565b6006546118fe9030906001600160a01b031684610ba3565b600654600d5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561196e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119939190611cf3565b5050505050565b600060208083528351808285015260005b818110156119c7578581018301518582016040015282016119ab565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146119fd57600080fd5b50565b60008060408385031215611a1357600080fd5b8235611a1e816119e8565b946020939093013593505050565b600080600060608486031215611a4157600080fd5b8335611a4c816119e8565b92506020840135611a5c816119e8565b929592945050506040919091013590565b600060208284031215611a7f57600080fd5b8135610b90816119e8565b60008060408385031215611a9d57600080fd5b8235611aa8816119e8565b91506020830135611ab8816119e8565b809150509250929050565b60008060408385031215611ad657600080fd5b8235611ae1816119e8565b915060208301358015158114611ab857600080fd5b60008060408385031215611b0957600080fd5b50508035926020909101359150565b600181811c90821680611b2c57607f821691505b602082108103611b4c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561070357610703611b52565b808202811582820484141761070357610703611b52565b600082611baf57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b8181038181111561070357610703611b52565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c7757600080fd5b8151610b90816119e8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cd25784516001600160a01b031683529383019391830191600101611cad565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611d0857600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122086daaf4c51e096faf786987222404caee7ae9412edca43d0edcd377281bb6e2864736f6c63430008110033
Deployed Bytecode Sourcemap
10433:9854:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4461:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5400:201;;;;;;;;;;-1:-1:-1;5400:201:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5400:201:0;1023:187:1;10511:41:0;;;;;;;;;;-1:-1:-1;10511:41:0;;;;-1:-1:-1;;;;;10511:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;10511:41:0;1215:229:1;4789:108:0;;;;;;;;;;-1:-1:-1;4877:12:0;;4789:108;;;1595:25:1;;;1583:2;1568:18;4789:108:0;1449:177:1;5609:261:0;;;;;;;;;;-1:-1:-1;5609:261:0;;;;;:::i;:::-;;:::i;10594:53::-;;;;;;;;;;;;10640:6;10594:53;;4681:100;;;;;;;;;;-1:-1:-1;4764:9:0;;4681:100;;4764:9;;;;2442:36:1;;2430:2;2415:18;4681:100:0;2300:184:1;5878:238:0;;;;;;;;;;-1:-1:-1;5878:238:0;;;;;:::i;:::-;;:::i;10559:28::-;;;;;;;;;;-1:-1:-1;10559:28:0;;;;-1:-1:-1;;;;;10559:28:0;;;10801:33;;;;;;;;;;-1:-1:-1;10801:33:0;;;;;;;;11131:19;;;;;;;;;;-1:-1:-1;11131:19:0;;;;;;;;;;;;;2663:25:1;;;2719:2;2704:18;;2697:34;;;;2636:18;11131:19:0;2489:248:1;13461:128:0;;;;;;;;;;-1:-1:-1;13461:128:0;;;;;:::i;:::-;-1:-1:-1;;;;;13552:29:0;13528:4;13552:29;;;:19;:29;;;;;;;;;13461:128;11009:28;;;;;;;;;;-1:-1:-1;11009:28:0;;;;;;-1:-1:-1;;;;;11009:28:0;;;;;;;;;;;-1:-1:-1;;;;;3224:15:1;;;3206:34;;3276:15;;;;3271:2;3256:18;;3249:43;3141:18;11009:28:0;2994:304:1;10881:31:0;;;;;;;;;;-1:-1:-1;10881:31:0;;;;;;;;;;;4905:127;;;;;;;;;;-1:-1:-1;4905:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5006:18:0;4979:7;5006:18;;;;;;;;;;;;4905:127;2773:103;;;;;;;;;;;;;:::i;:::-;;14538:266;;;;;;;;;;-1:-1:-1;14538:266:0;;;;;:::i;:::-;;:::i;13794:168::-;;;;;;;;;;;;;:::i;14812:158::-;;;;;;;;;;-1:-1:-1;14812:158:0;;;;;:::i;:::-;;:::i;13597:189::-;;;;;;;;;;;;;:::i;2538:87::-;;;;;;;;;;-1:-1:-1;2611:6:0;;;;;-1:-1:-1;;;;;2611:6:0;2538:87;;4569:104;;;;;;;;;;;;;:::i;14251:279::-;;;;;;;;;;-1:-1:-1;14251:279:0;;;;;:::i;:::-;;:::i;6124:436::-;;;;;;;;;;-1:-1:-1;6124:436:0;;;;;:::i;:::-;;:::i;5040:193::-;;;;;;;;;;-1:-1:-1;5040:193:0;;;;;:::i;:::-;;:::i;13970:273::-;;;;;;;;;;-1:-1:-1;13970:273:0;;;;;:::i;:::-;;:::i;10841:33::-;;;;;;;;;;-1:-1:-1;10841:33:0;;;;;;;;;;;14978:188;;;;;;;;;;-1:-1:-1;14978:188:0;;;;;:::i;:::-;;:::i;10686:35::-;;;;;;;;;;;;;;;;11157:20;;;;;;;;;;-1:-1:-1;11157:20:0;;;;;;;;;5241:151;;;;;;;;;;-1:-1:-1;5241:151:0;;;;;:::i;:::-;;:::i;10728:33::-;;;;;;;;;;;;;;;;10768:24;;;;;;;;;;;;;;;;4461:100;4515:13;4548:5;4541:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4461:100;:::o;5400:201::-;5483:4;1647:10;5539:32;1647:10;5555:7;5564:6;5539:8;:32::i;:::-;5589:4;5582:11;;;5400:201;;;;;:::o;5609:261::-;5706:4;1647:10;5764:38;5780:4;1647:10;5795:6;5764:15;:38::i;:::-;5813:27;5823:4;5829:2;5833:6;5813:9;:27::i;:::-;-1:-1:-1;5858:4:0;;5609:261;-1:-1:-1;;;;5609:261:0:o;5878:238::-;5966:4;1647:10;6022:64;1647:10;6038:7;6075:10;6047:25;1647:10;6038:7;6047:9;:25::i;:::-;:38;;;;:::i;:::-;6022:8;:64::i;2773:103::-;2497:13;:11;:13::i;:::-;2838:30:::1;2865:1;2838:18;:30::i;:::-;2773:103::o:0;14538:266::-;2497:13;:11;:13::i;:::-;-1:-1:-1;;;;;14651:30:0;::::1;14643:83;;;::::0;-1:-1:-1;;;14643:83:0;;5219:2:1;14643:83:0::1;::::0;::::1;5201:21:1::0;5258:2;5238:18;;;5231:30;5297:34;5277:18;;;5270:62;-1:-1:-1;;;5348:18:1;;;5341:38;5396:19;;14643:83:0::1;;;;;;;;;14750:46;::::0;;;;::::1;::::0;;;-1:-1:-1;;;;;14750:46:0;;::::1;::::0;;;;;;::::1;;::::0;;::::1;::::0;;;14737:10:::1;:59:::0;;-1:-1:-1;;;;;;14737:59:0;;::::1;::::0;;::::1;::::0;;;;;;;::::1;::::0;;::::1;::::0;;14538:266::o;13794:168::-;2497:13;:11;:13::i;:::-;13856:14:::1;::::0;::::1;;:22;;:14:::0;:22:::1;13848:73;;;::::0;-1:-1:-1;;;13848:73:0;;5628:2:1;13848:73:0::1;::::0;::::1;5610:21:1::0;5667:2;5647:18;;;5640:30;5706:34;5686:18;;;5679:62;-1:-1:-1;;;5757:18:1;;;5750:36;5803:19;;13848:73:0::1;5426:402:1::0;13848:73:0::1;13932:14;:22:::0;;-1:-1:-1;;13932:22:0::1;::::0;;13794:168::o;14812:158::-;2497:13;:11;:13::i;:::-;-1:-1:-1;;;;;14909:41:0;;;::::1;;::::0;;;:31:::1;:41;::::0;;;;:53;;-1:-1:-1;;14909:53:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14812:158::o;13597:189::-;2497:13;:11;:13::i;:::-;13660::::1;::::0;::::1;::::0;::::1;;;:22;13652:57;;;::::0;-1:-1:-1;;;13652:57:0;;6035:2:1;13652:57:0::1;::::0;::::1;6017:21:1::0;6074:2;6054:18;;;6047:30;-1:-1:-1;;;6093:18:1;;;6086:52;6155:18;;13652:57:0::1;5833:346:1::0;13652:57:0::1;13720:13;:20:::0;;-1:-1:-1;;13751:27:0;;;13720:20:::1;;-1:-1:-1::0;;13720:20:0;;::::1;::::0;::::1;13765:13:::0;;::::1;;13751:27;;;::::0;;;;13597:189::o;4569:104::-;4625:13;4658:7;4651:14;;;;;:::i;14251:279::-;2497:13;:11;:13::i;:::-;14353:29:::1;::::0;;;;::::1;::::0;;;;;;::::1;;::::0;;;14343:7:::1;:39:::0;;;;;;;14411:37:::1;14371:10:::0;14359;14411:37:::1;:::i;:::-;14393:15:::0;:55;;;14486:2:::1;-1:-1:-1::0;14467:21:0::1;14459:63;;;::::0;-1:-1:-1;;;14459:63:0;;6386:2:1;14459:63:0::1;::::0;::::1;6368:21:1::0;6425:2;6405:18;;;6398:30;6464:31;6444:18;;;6437:59;6513:18;;14459:63:0::1;6184:353:1::0;14459:63:0::1;14251:279:::0;;:::o;6124:436::-;6217:4;1647:10;6217:4;6300:25;1647:10;6317:7;6300:9;:25::i;:::-;6273:52;;6364:15;6344:16;:35;;6336:85;;;;-1:-1:-1;;;6336:85:0;;6744:2:1;6336:85:0;;;6726:21:1;6783:2;6763:18;;;6756:30;6822:34;6802:18;;;6795:62;-1:-1:-1;;;6873:18:1;;;6866:35;6918:19;;6336:85:0;6542:401:1;6336:85:0;6457:60;6466:5;6473:7;6501:15;6482:16;:34;6457:8;:60::i;5040:193::-;5119:4;1647:10;5175:28;1647:10;5192:2;5196:6;5175:9;:28::i;13970:273::-;2497:13;:11;:13::i;:::-;14070:29:::1;::::0;;;;::::1;::::0;;;;;;::::1;;::::0;;;14061:6:::1;:38:::0;;;;;;;14127:35:::1;14088:10:::0;14076;14127:35:::1;:::i;:::-;14110:10;:52:::0;;;14199:2:::1;-1:-1:-1::0;14181:20:0::1;14173:62;;;::::0;-1:-1:-1;;;14173:62:0;;6386:2:1;14173:62:0::1;::::0;::::1;6368:21:1::0;6425:2;6405:18;;;6398:30;6464:31;6444:18;;;6437:59;6513:18;;14173:62:0::1;6184:353:1::0;14978:188:0;2497:13;:11;:13::i;:::-;-1:-1:-1;;;;;15065:29:0;::::1;;::::0;;;:19:::1;:29;::::0;;;;;;;;:41;;-1:-1:-1;;15065:41:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15122:36;;1163:41:1;;;15122:36:0::1;::::0;1136:18:1;15122:36:0::1;;;;;;;14978:188:::0;;:::o;5241:151::-;-1:-1:-1;;;;;5357:18:0;;;5330:7;5357:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5241:151::o;1908:98::-;1966:7;1993:5;1997:1;1993;:5;:::i;:::-;1986:12;1908:98;-1:-1:-1;;;1908:98:0:o;2014:::-;2072:7;2099:5;2103:1;2099;:5;:::i;8621:346::-;-1:-1:-1;;;;;8723:19:0;;8715:68;;;;-1:-1:-1;;;8715:68:0;;7545:2:1;8715:68:0;;;7527:21:1;7584:2;7564:18;;;7557:30;7623:34;7603:18;;;7596:62;-1:-1:-1;;;7674:18:1;;;7667:34;7718:19;;8715:68:0;7343:400:1;8715:68:0;-1:-1:-1;;;;;8802:21:0;;8794:68;;;;-1:-1:-1;;;8794:68:0;;7950:2:1;8794:68:0;;;7932:21:1;7989:2;7969:18;;;7962:30;8028:34;8008:18;;;8001:62;-1:-1:-1;;;8079:18:1;;;8072:32;8121:19;;8794:68:0;7748:398:1;8794:68:0;-1:-1:-1;;;;;8875:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8927:32;;1595:25:1;;;8927:32:0;;1568:18:1;8927:32:0;;;;;;;8621:346;;;:::o;8975:419::-;9076:24;9103:25;9113:5;9120:7;9103:9;:25::i;:::-;9076:52;;-1:-1:-1;;9143:16:0;:37;9139:248;;9225:6;9205:16;:26;;9197:68;;;;-1:-1:-1;;;9197:68:0;;8353:2:1;9197:68:0;;;8335:21:1;8392:2;8372:18;;;8365:30;8431:31;8411:18;;;8404:59;8480:18;;9197:68:0;8151:353:1;9197:68:0;9309:51;9318:5;9325:7;9353:6;9334:16;:25;9309:8;:51::i;:::-;9065:329;8975:419;;;:::o;15174:2832::-;-1:-1:-1;;;;;15272:18:0;;15264:68;;;;-1:-1:-1;;;15264:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15351:16:0;;15343:64;;;;-1:-1:-1;;;15343:64:0;;;;;;;:::i;:::-;15424:6;15434:1;15424:11;15420:93;;15452:28;15468:4;15474:2;15478:1;15452:15;:28::i;:::-;15174:2832;;;:::o;15420:93::-;2611:6;;-1:-1:-1;;;;;15529:15:0;;;2611:6;;;;;15529:15;;;;:32;;-1:-1:-1;2611:6:0;;-1:-1:-1;;;;;15548:13:0;;;2611:6;;;;;15548:13;;15529:32;:52;;;;-1:-1:-1;;;;;;15565:16:0;;;;15529:52;:73;;;;-1:-1:-1;;;;;;15585:17:0;;10640:6;15585:17;;15529:73;:86;;;;-1:-1:-1;15607:8:0;;-1:-1:-1;;;15607:8:0;;;;15606:9;15529:86;15525:1051;;;15637:13;;;;;;;15632:142;;-1:-1:-1;;;;;15679:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;15708:23:0;;;;;;:19;:23;;;;;;;;15679:52;15671:87;;;;-1:-1:-1;;;15671:87:0;;9521:2:1;15671:87:0;;;9503:21:1;9560:2;9540:18;;;9533:30;-1:-1:-1;;;9579:18:1;;;9572:52;9641:18;;15671:87:0;9319:346:1;15671:87:0;15794:14;;;;15790:775;;;-1:-1:-1;;;;;15833:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;15869:35:0;;;;;;:31;:35;;;;;;;;15868:36;15833:71;15829:721;;;15947:20;;15937:6;:30;;15929:96;;;;-1:-1:-1;;;15929:96:0;;9872:2:1;15929:96:0;;;9854:21:1;9911:2;9891:18;;;9884:30;9950:34;9930:18;;;9923:62;-1:-1:-1;;;10001:18:1;;;9994:51;10062:19;;15929:96:0;9670:417:1;15929:96:0;16082:9;;-1:-1:-1;;;;;5006:18:0;;4979:7;5006:18;;;;;;;;;;;16056:22;;:6;:22;:::i;:::-;:35;;16048:67;;;;-1:-1:-1;;;16048:67:0;;10294:2:1;16048:67:0;;;10276:21:1;10333:2;10313:18;;;10306:30;-1:-1:-1;;;10352:18:1;;;10345:49;10411:18;;16048:67:0;10092:343:1;16048:67:0;15829:721;;;-1:-1:-1;;;;;16162:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;16196:37:0;;;;;;:31;:37;;;;;;;;16195:38;16162:71;16158:392;;;16276:20;;16266:6;:30;;16258:97;;;;-1:-1:-1;;;16258:97:0;;10642:2:1;16258:97:0;;;10624:21:1;10681:2;10661:18;;;10654:30;10720:34;10700:18;;;10693:62;-1:-1:-1;;;10771:18:1;;;10764:52;10833:19;;16258:97:0;10440:418:1;16158:392:0;-1:-1:-1;;;;;16403:35:0;;;;;;:31;:35;;;;;;;;16398:152;;16497:9;;-1:-1:-1;;;;;5006:18:0;;4979:7;5006:18;;;;;;;;;;;16471:22;;:6;:22;:::i;:::-;:35;;16463:67;;;;-1:-1:-1;;;16463:67:0;;10294:2:1;16463:67:0;;;10276:21:1;10333:2;10313:18;;;10306:30;-1:-1:-1;;;10352:18:1;;;10345:49;10411:18;;16463:67:0;10092:343:1;16463:67:0;16637:4;16588:28;5006:18;;;;;;;;;;;16695;;16671:42;;;;;;;16730:22;;-1:-1:-1;16741:11:0;;;;;;;16730:22;:35;;;;-1:-1:-1;16757:8:0;;-1:-1:-1;;;16757:8:0;;;;16756:9;16730:35;:71;;;;-1:-1:-1;;;;;;16770:31:0;;;;;;:25;:31;;;;;;;;16769:32;16730:71;:101;;;;-1:-1:-1;;;;;;16806:25:0;;;;;;:19;:25;;;;;;;;16805:26;16730:101;:129;;;;-1:-1:-1;;;;;;16836:23:0;;;;;;:19;:23;;;;;;;;16835:24;16730:129;16726:233;;;16876:8;:15;;-1:-1:-1;;;;16876:15:0;-1:-1:-1;;;16876:15:0;;;16906:10;:8;:10::i;:::-;16931:8;:16;;-1:-1:-1;;;;16931:16:0;;;16726:233;16987:8;;-1:-1:-1;;;;;17012:25:0;;16971:12;17012:25;;;:19;:25;;;;;;16987:8;-1:-1:-1;;;16987:8:0;;;;;16986:9;;17012:25;;:52;;-1:-1:-1;;;;;;17041:23:0;;;;;;:19;:23;;;;;;;;17012:52;17008:100;;;-1:-1:-1;17091:5:0;17008:100;17120:12;17153:7;17149:804;;;-1:-1:-1;;;;;17181:29:0;;;;;;:25;:29;;;;;;;;:52;;;;-1:-1:-1;17214:15:0;;:19;;17181:52;17177:627;;;17272:15;;17261:36;;17293:3;;17261:27;;:6;;:10;:27::i;:::-;:31;;:36::i;:::-;17367:15;;17346:17;;17254:43;;-1:-1:-1;17367:15:0;17339:24;;17254:43;17339:24;:::i;:::-;17338:44;;;;:::i;:::-;17316:18;;:66;;;;;;;:::i;:::-;;;;-1:-1:-1;;17452:15:0;;17431:7;:17;17424:24;;:4;:24;:::i;:::-;17423:44;;;;:::i;:::-;17401:18;;:66;;;;;;;:::i;:::-;;;;-1:-1:-1;17177:627:0;;-1:-1:-1;17177:627:0;;-1:-1:-1;;;;;17506:31:0;;;;;;:25;:31;;;;;;;;:53;;;;-1:-1:-1;17541:10:0;:14;:18;;17506:53;17502:302;;;17598:10;:14;17587:35;;17618:3;;17587:26;;:6;;:10;:26::i;:35::-;17691:10;:14;17671:16;;17580:42;;-1:-1:-1;17691:14:0;17664:23;;17580:42;17664:23;:::i;:::-;17663:42;;;;:::i;:::-;17641:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;17774:10:0;:14;17754:6;:16;17747:23;;:4;:23;:::i;:::-;17746:42;;;;:::i;:::-;17724:18;;:64;;;;;;;:::i;:::-;;;;-1:-1:-1;;17502:302:0;17824:8;;17820:91;;17853:42;17869:4;17883;17890;17853:15;:42::i;:::-;17927:14;17937:4;17927:14;;:::i;:::-;;;17149:804;17965:33;17981:4;17987:2;17991:6;17965:15;:33::i;:::-;15253:2753;;;;15174:2832;;;:::o;2633:132::-;2611:6;;-1:-1:-1;;;;;2611:6:0;;;;;1647:10;2697:23;2689:68;;;;-1:-1:-1;;;2689:68:0;;11198:2:1;2689:68:0;;;11180:21:1;;;11217:18;;;11210:30;11276:34;11256:18;;;11249:62;11328:18;;2689:68:0;10996:356:1;2884:191:0;2977:6;;;-1:-1:-1;;;;;2994:17:0;;;2977:6;2994:17;;;-1:-1:-1;;;;;;2994:17:0;;;;;;3027:40;;2977:6;;;;;;;;3027:40;;2958:16;;3027:40;2947:128;2884:191;:::o;6568:806::-;-1:-1:-1;;;;;6665:18:0;;6657:68;;;;-1:-1:-1;;;6657:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6744:16:0;;6736:64;;;;-1:-1:-1;;;6736:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6886:15:0;;6864:19;6886:15;;;;;;;;;;;6920:21;;;;6912:72;;;;-1:-1:-1;;;6912:72:0;;11559:2:1;6912:72:0;;;11541:21:1;11598:2;11578:18;;;11571:30;11637:34;11617:18;;;11610:62;-1:-1:-1;;;11688:18:1;;;11681:36;11734:19;;6912:72:0;11357:402:1;6912:72:0;-1:-1:-1;;;;;7020:15:0;;;:9;:15;;;;;;;;;;;7038:20;;;7020:38;;7238:13;;;;;;;;;;:23;;;;;;7290:26;;1595:25:1;;;7238:13:0;;7290:26;;1568:18:1;7290:26:0;;;;;;;7329:37;15174:2832;18878:1406;18961:4;18917:23;5006:18;;;;;;;;;;;18917:50;;18978:25;19027:18;;19006;;:39;;;;:::i;:::-;18978:67;-1:-1:-1;19056:12:0;19085:20;;;:46;;-1:-1:-1;19109:22:0;;19085:46;19081:85;;;19148:7;;;18878:1406::o;19081:85::-;19200:18;;:23;;19221:2;19200:23;:::i;:::-;19182:15;:41;19178:115;;;19258:18;;:23;;19279:2;19258:23;:::i;:::-;19240:41;;19178:115;19305:23;19392:1;19372:17;19350:18;;19332:15;:36;;;;:::i;:::-;19331:58;;;;:::i;:::-;:62;;;;:::i;:::-;19305:88;-1:-1:-1;19404:26:0;19433:36;:15;19305:88;19433:19;:36::i;:::-;19404:65;-1:-1:-1;19510:21:0;19544:36;19404:65;19544:16;:36::i;:::-;19593:18;19614:44;:21;19640:17;19614:25;:44::i;:::-;19593:65;;19671:23;19697:57;19736:17;19697:34;19712:18;;19697:10;:14;;:34;;;;:::i;:57::-;19671:83;-1:-1:-1;19767:23:0;19793:28;19671:83;19793:10;:28;:::i;:::-;19767:54;;19856:1;19838:15;:19;:42;;;;;19879:1;19861:15;:19;19838:42;19834:280;;;19897:46;19910:15;19927;19897:12;:46::i;:::-;20069:18;;19963:139;;;11966:25:1;;;12022:2;12007:18;;12000:34;;;12050:18;;;12043:34;;;;19963:139:0;;;;;;11954:2:1;19963:139:0;;;19834:280;20147:1;20126:18;:22;;;20159:18;:22;;;20216:10;:20;20208:68;;-1:-1:-1;;;;;20216:20:0;;;;20250:21;;20208:68;;20147:1;20208:68;20250:21;20216:20;20208:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;18878:1406:0:o;1802:98::-;1860:7;1887:5;1891:1;1887;:5;:::i;18014:473::-;18104:16;;;18118:1;18104:16;;;;;;;;18080:21;;18104:16;;;;;;;;;;-1:-1:-1;18104:16:0;18080:40;;18149:4;18131;18136:1;18131:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18131:23:0;;;:7;;;;;;;;;;:23;;;;18175:15;;:22;;;-1:-1:-1;;;18175:22:0;;;;:15;;;;;:20;;:22;;;;;18131:7;;18175:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18165:4;18170:1;18165:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18165:32:0;;;:7;;;;;;;;;:32;18242:15;;18210:62;;18227:4;;18242:15;18260:11;18210:8;:62::i;:::-;18283:15;;:196;;-1:-1:-1;;;18283:196:0;;-1:-1:-1;;;;;18283:15:0;;;;:66;;:196;;18364:11;;18283:15;;18406:4;;18433;;18453:15;;18283:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18069:418;18014:473;:::o;18495:375::-;18608:15;;18576:62;;18593:4;;-1:-1:-1;;;;;18608:15:0;18626:11;18576:8;:62::i;:::-;18651:15;;18801:20;;18651:211;;-1:-1:-1;;;18651:211:0;;18723:4;18651:211;;;14144:34:1;14194:18;;;14187:34;;;18651:15:0;14237:18:1;;;14230:34;;;14280:18;;;14273:34;-1:-1:-1;;;;;18801:20:0;;;14323:19:1;;;14316:44;18836:15:0;14376:19:1;;;14369:35;18651:15:0;;;:31;;18690:9;;14078:19:1;;18651:211:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18495:375;;:::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;2742:247::-;2801:6;2854:2;2842:9;2833:7;2829:23;2825:32;2822:52;;;2870:1;2867;2860:12;2822:52;2909:9;2896:23;2928:31;2953:5;2928:31;:::i;3303:388::-;3371:6;3379;3432:2;3420:9;3411:7;3407:23;3403:32;3400:52;;;3448:1;3445;3438:12;3400:52;3487:9;3474:23;3506:31;3531:5;3506:31;:::i;:::-;3556:5;-1:-1:-1;3613:2:1;3598:18;;3585:32;3626:33;3585:32;3626:33;:::i;:::-;3678:7;3668:17;;;3303:388;;;;;:::o;3696:416::-;3761:6;3769;3822:2;3810:9;3801:7;3797:23;3793:32;3790:52;;;3838:1;3835;3828:12;3790:52;3877:9;3864:23;3896:31;3921:5;3896:31;:::i;:::-;3946:5;-1:-1:-1;4003:2:1;3988:18;;3975:32;4045:15;;4038:23;4026:36;;4016:64;;4076:1;4073;4066:12;4117:248;4185:6;4193;4246:2;4234:9;4225:7;4221:23;4217:32;4214:52;;;4262:1;4259;4252:12;4214:52;-1:-1:-1;;4285:23:1;;;4355:2;4340:18;;;4327:32;;-1:-1:-1;4117:248:1:o;4370:380::-;4449:1;4445:12;;;;4492;;;4513:61;;4567:4;4559:6;4555:17;4545:27;;4513:61;4620:2;4612:6;4609:14;4589:18;4586:38;4583:161;;4666:10;4661:3;4657:20;4654:1;4647:31;4701:4;4698:1;4691:15;4729:4;4726:1;4719:15;4583:161;;4370:380;;;:::o;4755:127::-;4816:10;4811:3;4807:20;4804:1;4797:31;4847:4;4844:1;4837:15;4871:4;4868:1;4861:15;4887:125;4952:9;;;4973:10;;;4970:36;;;4986:18;;:::i;6948:168::-;7021:9;;;7052;;7069:15;;;7063:22;;7049:37;7039:71;;7090:18;;:::i;7121:217::-;7161:1;7187;7177:132;;7231:10;7226:3;7222:20;7219:1;7212:31;7266:4;7263:1;7256:15;7294:4;7291:1;7284:15;7177:132;-1:-1:-1;7323:9:1;;7121:217::o;8509:401::-;8711:2;8693:21;;;8750:2;8730:18;;;8723:30;8789:34;8784:2;8769:18;;8762:62;-1:-1:-1;;;8855:2:1;8840:18;;8833:35;8900:3;8885:19;;8509:401::o;8915:399::-;9117:2;9099:21;;;9156:2;9136:18;;;9129:30;9195:34;9190:2;9175:18;;9168:62;-1:-1:-1;;;9261:2:1;9246:18;;9239:33;9304:3;9289:19;;8915:399::o;10863:128::-;10930:9;;;10951:11;;;10948:37;;;10965:18;;:::i;12430:127::-;12491:10;12486:3;12482:20;12479:1;12472:31;12522:4;12519:1;12512:15;12546:4;12543:1;12536:15;12562:251;12632:6;12685:2;12673:9;12664:7;12660:23;12656:32;12653:52;;;12701:1;12698;12691:12;12653:52;12733:9;12727:16;12752:31;12777:5;12752:31;:::i;12818:980::-;13080:4;13128:3;13117:9;13113:19;13159:6;13148:9;13141:25;13185:2;13223:6;13218:2;13207:9;13203:18;13196:34;13266:3;13261:2;13250:9;13246:18;13239:31;13290:6;13325;13319:13;13356:6;13348;13341:22;13394:3;13383:9;13379:19;13372:26;;13433:2;13425:6;13421:15;13407:29;;13454:1;13464:195;13478:6;13475:1;13472:13;13464:195;;;13543:13;;-1:-1:-1;;;;;13539:39:1;13527:52;;13634:15;;;;13599:12;;;;13575:1;13493:9;13464:195;;;-1:-1:-1;;;;;;;13715:32:1;;;;13710:2;13695:18;;13688:60;-1:-1:-1;;;13779:3:1;13764:19;13757:35;13676:3;12818:980;-1:-1:-1;;;12818:980:1:o;14415:306::-;14503:6;14511;14519;14572:2;14560:9;14551:7;14547:23;14543:32;14540:52;;;14588:1;14585;14578:12;14540:52;14617:9;14611:16;14601:26;;14667:2;14656:9;14652:18;14646:25;14636:35;;14711:2;14700:9;14696:18;14690:25;14680:35;;14415:306;;;;;:::o
Swarm Source
ipfs://86daaf4c51e096faf786987222404caee7ae9412edca43d0edcd377281bb6e28
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.