Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 OTLand
Holders
26
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,350,000 OTLandValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
OTLandERC20
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-08 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.21; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint256); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } pragma solidity ^0.8.21; interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } pragma solidity ^0.8.21; library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } 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; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } pragma solidity ^0.8.21; 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); } pragma solidity ^0.8.21; interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } pragma solidity ^0.8.21; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } pragma solidity ^0.8.21; abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } pragma solidity ^0.8.21; 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; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } 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 18; } 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 recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, 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) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, 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; _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; } _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 _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } pragma solidity ^0.8.21; contract OTLandERC20 is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private swapping; address private marketingWallet; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; uint256 public maxSwapAmount; bool public limitsInEffect = true; bool public tradingActive = false; bool public swapEnabled = false; uint256 private launchedAt; uint256 private launchedTime; uint256 public blocks; uint256 public buyTotalFees; uint256 public sellTotalFees; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; mapping(address => bool) public automatedMarketMakerPairs; mapping(uint256 => uint256) private blockSwaps; event UpdateUniswapV2Router(address indexed newAddress, address indexed oldAddress); event ExcludeFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet); event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity); constructor() ERC20("OTLand", "OTLand") { 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 = 100_000_000 * 1e18; maxTransactionAmount = 1_500_000 * 1e18; maxWallet = 1_500_000 * 1e18; swapTokensAtAmount = 150_000 * 1e18; maxSwapAmount = 500_000 * 1e18; marketingWallet = msg.sender; // MARKETING WALLET SETUP excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), true); _mint(msg.sender, totalSupply); } receive() external payable {} function setLaunch(uint256 _blocks) external payable onlyOwner { _approve(address(this), address(uniswapV2Router), totalSupply()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); blocks = _blocks; tradingActive = true; swapEnabled = true; launchedAt = block.number; launchedTime = block.timestamp; } function limitsGonna() external onlyOwner { limitsInEffect = false; } function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner { swapTokensAtAmount = newAmount * (10 ** 18); } function updateMaxSwap(uint256 newAmount) external onlyOwner { maxSwapAmount = newAmount * (10 ** 18); } function updateMaxTxnAmount(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set maxTransactionAmount lower than 0.1%"); maxTransactionAmount = newNum * (10 ** 18); } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { require(newNum >= ((totalSupply() * 5) / 1000) / 1e18, "Cannot set maxWallet lower than 0.5%"); maxWallet = newNum * (10 ** 18); } function whitelistContract(address _whitelist, bool isWL) public onlyOwner { _isExcludedMaxTransactionAmount[_whitelist] = isWL; _isExcludedFromFees[_whitelist] = isWL; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } // only use to disable contract sales if absolutely necessary (emergency use only) function updateSwapEnabled(bool enabled) external onlyOwner { swapEnabled = enabled; } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function manualswap(uint256 amount) external { require(_msgSender() == marketingWallet); require(amount <= balanceOf(address(this)) && amount > 0, "Wrong amount"); swapTokensForEth(amount); } function manualsend() external { bool success; (success,) = address(marketingWallet).call{value: address(this).balance}(""); } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function updateBuyFees(uint256 _marketingFee) external onlyOwner { buyTotalFees = _marketingFee; } function updateSellFees(uint256 _marketingFee) external onlyOwner { sellTotalFees = _marketingFee; } function updateFees(uint256 _buy, uint256 _sell) external onlyOwner { buyTotalFees = _buy; sellTotalFees = _sell; } function updateMarketingWallet(address newMarketingWallet) external onlyOwner { emit marketingWalletUpdated(newMarketingWallet, marketingWallet); marketingWallet = newMarketingWallet; } function airdrop(address[] calldata addresses, uint256[] calldata amounts) external { require(addresses.length > 0 && amounts.length == addresses.length); address from = msg.sender; for (uint256 i = 0; i < addresses.length; i++) { _transfer(from, addresses[i], amounts[i] * (10 ** 18)); } } 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 (limitsInEffect) { if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { if ((launchedAt + blocks) >= block.number) { // START TAX UNTIL BLOCKS END sellTotalFees = 10; buyTotalFees = 10; } if (!tradingActive) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } //when buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } //when sell 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] ) { // Limit swaps per block if (blockSwaps[block.number] < 3) { swapping = true; swapBack(); swapping = false; blockSwaps[block.number] = blockSwaps[block.number] + 1; } } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount.mul(sellTotalFees).div(100); } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } 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), block.timestamp ); } // WITHDRAW STUCKED BALANCE function withdraw() external onlyOwner { uint256 balance = IERC20(address(this)).balanceOf(address(this)); IERC20(address(this)).transfer(msg.sender, balance); payable(msg.sender).transfer(address(this).balance); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); bool success; if (contractBalance == 0) { return; } if (contractBalance > maxSwapAmount) { contractBalance = maxSwapAmount; } // Halve the amount of liquidity tokens uint256 amountToSwapForETH = contractBalance; swapTokensForEth(amountToSwapForETH); uint256 totalETH = address(this).balance; (success,) = address(marketingWallet).call{value: totalETH}(""); } }
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":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","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":[],"name":"limitsGonna","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_blocks","type":"uint256"}],"name":"setLaunch","outputs":[],"stateMutability":"payable","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":"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":"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":"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"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateMaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_whitelist","type":"address"},{"internalType":"bool","name":"isWL","type":"bool"}],"name":"whitelistContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600b805462ffffff191660011790553480156200001f575f80fd5b5060408051808201825260068082526513d513185b9960d21b60208084018290528451808601909552918452908301529060036200005e83826200064f565b5060046200006d82826200064f565b5050506200008a620000846200030160201b60201c565b62000305565b737a250d5630b4cf539739df2c5dacb4c659f2488d620000ac81600162000356565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620000f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200011b919062000717565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000167573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200018d919062000717565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001d8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001fe919062000717565b6001600160a01b031660a08190526200021990600162000356565b60a05162000229906001620003ce565b6a013da329b63364718000006007819055600955691fc3842bd1f071c000006008556969e10de76676d0800000600a55600680546001600160a01b031916331790556a52b7d2dcc80cd2e4000000620002966200028e6005546001600160a01b031690565b600162000421565b620002a330600162000421565b620002b261dead600162000421565b620002d1620002c96005546001600160a01b031690565b600162000356565b620002de30600162000356565b620002ed61dead600162000356565b620002f93382620004c9565b50506200076c565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6005546001600160a01b03163314620003a45760405162461bcd60e51b815260206004820181905260248201525f8051602062002e4383398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b031633146200046b5760405162461bcd60e51b815260206004820181905260248201525f8051602062002e4383398151915260448201526064016200039b565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005215760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200039b565b8060025f82825462000534919062000746565b90915550506001600160a01b0382165f90815260208190526040812080548392906200056290849062000746565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005d957607f821691505b602082108103620005f857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005ab575f81815260208120601f850160051c81016020861015620006265750805b601f850160051c820191505b81811015620006475782815560010162000632565b505050505050565b81516001600160401b038111156200066b576200066b620005b0565b62000683816200067c8454620005c4565b84620005fe565b602080601f831160018114620006b9575f8415620006a15750858301515b5f19600386901b1c1916600185901b17855562000647565b5f85815260208120601f198616915b82811015620006e957888601518255948401946001909101908401620006c8565b50858210156200070757878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000728575f80fd5b81516001600160a01b03811681146200073f575f80fd5b9392505050565b808201808211156200076657634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05161267d620007c65f395f818161045c01528181610db1015261112c01525f818161035201528181610c6801528181610c9201528181610d8201528181611de401528181611e9b0152611ed7015261267d5ff3fe60806040526004361061028e575f3560e01c8063881dce6011610155578063c0246668116100be578063db3fa6f911610078578063db3fa6f9146107a8578063dd62ed3e146107bc578063e2f4560514610800578063eba4c33314610815578063f2fde38b14610834578063f8b45b0514610853575f80fd5b8063c02466681461070c578063c18bc1951461072b578063c8c8ebe41461074a578063cce987d41461075f578063d257b34f14610774578063d85ba06314610793575f80fd5b8063a457c2d71161010f578063a457c2d714610644578063a672990c14610663578063a9059cbb14610682578063aacebbe3146106a1578063b62496f5146106c0578063bbc0c742146106ee575f80fd5b8063881dce60146105a15780638da5cb5b146105c0578063924de9b7146105dd57806395d89b41146105fc578063967ff23e146106105780639a7a23d614610625575f80fd5b806349bd5a5e116101f75780636ddd1713116101b15780636ddd1713146104fd5780636fc3eaec1461051c57806370a0823114610530578063715018a61461054f57806371fc4688146105635780637571336a14610582575f80fd5b806349bd5a5e1461044b5780634a62bb651461047e5780635d1d37c31461049757806367243482146104aa5780636a486a8e146104c95780636db79437146104de575f80fd5b8063203e727e11610248578063203e727e146103aa57806323b872dd146103c957806327c8f835146103e8578063313ce567146103fd57806339509351146104185780633ccfd60b14610437575f80fd5b806306fdde0314610299578063095ea7b3146102c357806310d5de53146102f2578063150074a3146103205780631694505e1461034157806318160ddd1461038c575f80fd5b3661029557005b5f80fd5b3480156102a4575f80fd5b506102ad610868565b6040516102ba919061217c565b60405180910390f35b3480156102ce575f80fd5b506102e26102dd3660046121db565b6108f8565b60405190151581526020016102ba565b3480156102fd575f80fd5b506102e261030c366004612205565b60126020525f908152604090205460ff1681565b34801561032b575f80fd5b5061033f61033a366004612220565b61090e565b005b34801561034c575f80fd5b506103747f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102ba565b348015610397575f80fd5b506002545b6040519081526020016102ba565b3480156103b5575f80fd5b5061033f6103c4366004612220565b610959565b3480156103d4575f80fd5b506102e26103e3366004612237565b610a36565b3480156103f3575f80fd5b5061037461dead81565b348015610408575f80fd5b50604051601281526020016102ba565b348015610423575f80fd5b506102e26104323660046121db565b610ade565b348015610442575f80fd5b5061033f610b19565b348015610456575f80fd5b506103747f000000000000000000000000000000000000000000000000000000000000000081565b348015610489575f80fd5b50600b546102e29060ff1681565b61033f6104a5366004612220565b610c38565b3480156104b5575f80fd5b5061033f6104c43660046122bd565b610e3b565b3480156104d4575f80fd5b5061039c60105481565b3480156104e9575f80fd5b5061033f6104f8366004612324565b610ed2565b348015610508575f80fd5b50600b546102e29062010000900460ff1681565b348015610527575f80fd5b5061033f610f07565b34801561053b575f80fd5b5061039c61054a366004612205565b610f5c565b34801561055a575f80fd5b5061033f610f76565b34801561056e575f80fd5b5061033f61057d366004612220565b610fab565b34801561058d575f80fd5b5061033f61059c366004612351565b610fda565b3480156105ac575f80fd5b5061033f6105bb366004612220565b61102e565b3480156105cb575f80fd5b506005546001600160a01b0316610374565b3480156105e8575f80fd5b5061033f6105f7366004612388565b6110ab565b348015610607575f80fd5b506102ad6110f1565b34801561061b575f80fd5b5061039c600e5481565b348015610630575f80fd5b5061033f61063f366004612351565b611100565b34801561064f575f80fd5b506102e261065e3660046121db565b6111db565b34801561066e575f80fd5b5061033f61067d366004612351565b611273565b34801561068d575f80fd5b506102e261069c3660046121db565b6112da565b3480156106ac575f80fd5b5061033f6106bb366004612205565b6112e6565b3480156106cb575f80fd5b506102e26106da366004612205565b60136020525f908152604090205460ff1681565b3480156106f9575f80fd5b50600b546102e290610100900460ff1681565b348015610717575f80fd5b5061033f610726366004612351565b61136c565b348015610736575f80fd5b5061033f610745366004612220565b6113f4565b348015610755575f80fd5b5061039c60075481565b34801561076a575f80fd5b5061039c600a5481565b34801561077f575f80fd5b5061033f61078e366004612220565b6114c5565b34801561079e575f80fd5b5061039c600f5481565b3480156107b3575f80fd5b5061033f611507565b3480156107c7575f80fd5b5061039c6107d63660046123a3565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561080b575f80fd5b5061039c60085481565b348015610820575f80fd5b5061033f61082f366004612220565b61153d565b34801561083f575f80fd5b5061033f61084e366004612205565b61156c565b34801561085e575f80fd5b5061039c60095481565b606060038054610877906123cf565b80601f01602080910402602001604051908101604052809291908181526020018280546108a3906123cf565b80156108ee5780601f106108c5576101008083540402835291602001916108ee565b820191905f5260205f20905b8154815290600101906020018083116108d157829003601f168201915b5050505050905090565b5f610904338484611604565b5060015b92915050565b6005546001600160a01b031633146109415760405162461bcd60e51b815260040161093890612407565b60405180910390fd5b61095381670de0b6b3a7640000612450565b600a5550565b6005546001600160a01b031633146109835760405162461bcd60e51b815260040161093890612407565b670de0b6b3a76400006103e861099860025490565b6109a3906001612450565b6109ad9190612467565b6109b79190612467565b811015610a1e5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608401610938565b610a3081670de0b6b3a7640000612450565b60075550565b5f610a42848484611727565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ac65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610938565b610ad38533858403611604565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610904918590610b14908690612486565b611604565b6005546001600160a01b03163314610b435760405162461bcd60e51b815260040161093890612407565b6040516370a0823160e01b815230600482018190525f916370a0823190602401602060405180830381865afa158015610b7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba29190612499565b60405163a9059cbb60e01b815233600482015260248101829052909150309063a9059cbb906044016020604051808303815f875af1158015610be6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0a91906124b0565b5060405133904780156108fc02915f818181858888f19350505050158015610c34573d5f803e3d5ffd5b5050565b6005546001600160a01b03163314610c625760405162461bcd60e51b815260040161093890612407565b610c90307f0000000000000000000000000000000000000000000000000000000000000000610b1460025490565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7194730610cca30610f5c565b5f80610cde6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610d44573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d6991906124cb565b505060405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f1960248301527f000000000000000000000000000000000000000000000000000000000000000016915063095ea7b3906044016020604051808303815f875af1158015610df8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1c91906124b0565b50600e55600b805462ffff0019166201010017905543600c5542600d55565b8215801590610e4957508083145b610e51575f80fd5b335f5b84811015610eca57610eb882878784818110610e7257610e726124f6565b9050602002016020810190610e879190612205565b868685818110610e9957610e996124f6565b90506020020135670de0b6b3a7640000610eb39190612450565b611727565b80610ec28161250a565b915050610e54565b505050505050565b6005546001600160a01b03163314610efc5760405162461bcd60e51b815260040161093890612407565b600f91909155601055565b6006546040515f916001600160a01b03169047908381818185875af1925050503d805f8114610f51576040519150601f19603f3d011682016040523d82523d5f602084013e610f56565b606091505b50505050565b6001600160a01b03165f9081526020819052604090205490565b6005546001600160a01b03163314610fa05760405162461bcd60e51b815260040161093890612407565b610fa95f611d3e565b565b6005546001600160a01b03163314610fd55760405162461bcd60e51b815260040161093890612407565b600f55565b6005546001600160a01b031633146110045760405162461bcd60e51b815260040161093890612407565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b6006546001600160a01b0316336001600160a01b03161461104d575f80fd5b61105630610f5c565b811115801561106457505f81115b61109f5760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b6044820152606401610938565b6110a881611d8f565b50565b6005546001600160a01b031633146110d55760405162461bcd60e51b815260040161093890612407565b600b8054911515620100000262ff000019909216919091179055565b606060048054610877906123cf565b6005546001600160a01b0316331461112a5760405162461bcd60e51b815260040161093890612407565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036111d15760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610938565b610c348282611f3d565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561125c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610938565b6112693385858403611604565b5060019392505050565b6005546001600160a01b0316331461129d5760405162461bcd60e51b815260040161093890612407565b6001600160a01b039091165f908152601260209081526040808320805494151560ff19958616811790915560119092529091208054909216179055565b5f610904338484611727565b6005546001600160a01b031633146113105760405162461bcd60e51b815260040161093890612407565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113965760405162461bcd60e51b815260040161093890612407565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b0316331461141e5760405162461bcd60e51b815260040161093890612407565b670de0b6b3a76400006103e861143360025490565b61143e906005612450565b6114489190612467565b6114529190612467565b8110156114ad5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610938565b6114bf81670de0b6b3a7640000612450565b60095550565b6005546001600160a01b031633146114ef5760405162461bcd60e51b815260040161093890612407565b61150181670de0b6b3a7640000612450565b60085550565b6005546001600160a01b031633146115315760405162461bcd60e51b815260040161093890612407565b600b805460ff19169055565b6005546001600160a01b031633146115675760405162461bcd60e51b815260040161093890612407565b601055565b6005546001600160a01b031633146115965760405162461bcd60e51b815260040161093890612407565b6001600160a01b0381166115fb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610938565b6110a881611d3e565b6001600160a01b0383166116665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610938565b6001600160a01b0382166116c75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610938565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661174d5760405162461bcd60e51b815260040161093890612522565b6001600160a01b0382166117735760405162461bcd60e51b815260040161093890612567565b805f0361178a5761178583835f611f90565b505050565b600b5460ff1615611afa576005546001600160a01b038481169116148015906117c157506005546001600160a01b03838116911614155b80156117d557506001600160a01b03821615155b80156117ec57506001600160a01b03821661dead14155b80156118025750600554600160a01b900460ff16155b15611afa5743600e54600c546118189190612486565b1061182857600a6010819055600f555b600b54610100900460ff166118b9576001600160a01b0383165f9081526011602052604090205460ff168061187457506001600160a01b0382165f9081526011602052604090205460ff165b6118b95760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610938565b6001600160a01b0383165f9081526013602052604090205460ff1680156118f857506001600160a01b0382165f9081526012602052604090205460ff16155b156119cc5760075481111561196d5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610938565b60095461197983610f5c565b6119839083612486565b11156119c75760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610938565b611afa565b6001600160a01b0382165f9081526013602052604090205460ff168015611a0b57506001600160a01b0383165f9081526012602052604090205460ff16155b15611a81576007548111156119c75760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610938565b6001600160a01b0382165f9081526012602052604090205460ff16611afa57600954611aac83610f5c565b611ab69083612486565b1115611afa5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610938565b5f611b0430610f5c565b60085490915081108015908190611b235750600b5462010000900460ff165b8015611b395750600554600160a01b900460ff16155b8015611b5d57506001600160a01b0385165f9081526013602052604090205460ff16155b8015611b8157506001600160a01b0385165f9081526011602052604090205460ff16155b8015611ba557506001600160a01b0384165f9081526011602052604090205460ff16155b15611c1357435f9081526014602052604090205460031115611c13576005805460ff60a01b1916600160a01b179055611bdc6120e3565b6005805460ff60a01b19169055435f90815260146020526040902054611c03906001612486565b435f908152601460205260409020555b6005546001600160a01b0386165f9081526011602052604090205460ff600160a01b909204821615911680611c5f57506001600160a01b0385165f9081526011602052604090205460ff165b15611c6757505f5b5f8115611d2a576001600160a01b0386165f9081526013602052604090205460ff168015611c9657505f601054115b15611cc257611cbb6064611cb56010548861215f90919063ffffffff16565b90612171565b9050611d0c565b6001600160a01b0387165f9081526013602052604090205460ff168015611cea57505f600f54115b15611d0c57611d096064611cb5600f548861215f90919063ffffffff16565b90505b8015611d1d57611d1d873083611f90565b611d2781866125aa565b94505b611d35878787611f90565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611dc257611dc26124f6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e6291906125bd565b81600181518110611e7557611e756124f6565b60200260200101906001600160a01b031690816001600160a01b031681525050611ec0307f000000000000000000000000000000000000000000000000000000000000000084611604565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611f149085905f908690309042906004016125d8565b5f604051808303815f87803b158015611f2b575f80fd5b505af1158015610eca573d5f803e3d5ffd5b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611fb65760405162461bcd60e51b815260040161093890612522565b6001600160a01b038216611fdc5760405162461bcd60e51b815260040161093890612567565b6001600160a01b0383165f90815260208190526040902054818110156120535760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610938565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290612089908490612486565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120d591815260200190565b60405180910390a350505050565b5f6120ed30610f5c565b90505f815f036120fb575050565b600a5482111561210b57600a5491505b8161211581611d8f565b60065460405147916001600160a01b03169082905f81818185875af1925050503d805f8114611d35576040519150601f19603f3d011682016040523d82523d5f602084013e611d35565b5f61216a8284612450565b9392505050565b5f61216a8284612467565b5f6020808352835180828501525f5b818110156121a75785810183015185820160400152820161218b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110a8575f80fd5b5f80604083850312156121ec575f80fd5b82356121f7816121c7565b946020939093013593505050565b5f60208284031215612215575f80fd5b813561216a816121c7565b5f60208284031215612230575f80fd5b5035919050565b5f805f60608486031215612249575f80fd5b8335612254816121c7565b92506020840135612264816121c7565b929592945050506040919091013590565b5f8083601f840112612285575f80fd5b50813567ffffffffffffffff81111561229c575f80fd5b6020830191508360208260051b85010111156122b6575f80fd5b9250929050565b5f805f80604085870312156122d0575f80fd5b843567ffffffffffffffff808211156122e7575f80fd5b6122f388838901612275565b9096509450602087013591508082111561230b575f80fd5b5061231887828801612275565b95989497509550505050565b5f8060408385031215612335575f80fd5b50508035926020909101359150565b80151581146110a8575f80fd5b5f8060408385031215612362575f80fd5b823561236d816121c7565b9150602083013561237d81612344565b809150509250929050565b5f60208284031215612398575f80fd5b813561216a81612344565b5f80604083850312156123b4575f80fd5b82356123bf816121c7565b9150602083013561237d816121c7565b600181811c908216806123e357607f821691505b60208210810361240157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109085761090861243c565b5f8261248157634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156109085761090861243c565b5f602082840312156124a9575f80fd5b5051919050565b5f602082840312156124c0575f80fd5b815161216a81612344565b5f805f606084860312156124dd575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161251b5761251b61243c565b5060010190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156109085761090861243c565b5f602082840312156125cd575f80fd5b815161216a816121c7565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156126265784516001600160a01b031683529383019391830191600101612601565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212209f8d32ffc445c6531ea0254a85e976c725e6bcfdf45b669924e31ce72a5adf6464736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572
Deployed Bytecode
0x60806040526004361061028e575f3560e01c8063881dce6011610155578063c0246668116100be578063db3fa6f911610078578063db3fa6f9146107a8578063dd62ed3e146107bc578063e2f4560514610800578063eba4c33314610815578063f2fde38b14610834578063f8b45b0514610853575f80fd5b8063c02466681461070c578063c18bc1951461072b578063c8c8ebe41461074a578063cce987d41461075f578063d257b34f14610774578063d85ba06314610793575f80fd5b8063a457c2d71161010f578063a457c2d714610644578063a672990c14610663578063a9059cbb14610682578063aacebbe3146106a1578063b62496f5146106c0578063bbc0c742146106ee575f80fd5b8063881dce60146105a15780638da5cb5b146105c0578063924de9b7146105dd57806395d89b41146105fc578063967ff23e146106105780639a7a23d614610625575f80fd5b806349bd5a5e116101f75780636ddd1713116101b15780636ddd1713146104fd5780636fc3eaec1461051c57806370a0823114610530578063715018a61461054f57806371fc4688146105635780637571336a14610582575f80fd5b806349bd5a5e1461044b5780634a62bb651461047e5780635d1d37c31461049757806367243482146104aa5780636a486a8e146104c95780636db79437146104de575f80fd5b8063203e727e11610248578063203e727e146103aa57806323b872dd146103c957806327c8f835146103e8578063313ce567146103fd57806339509351146104185780633ccfd60b14610437575f80fd5b806306fdde0314610299578063095ea7b3146102c357806310d5de53146102f2578063150074a3146103205780631694505e1461034157806318160ddd1461038c575f80fd5b3661029557005b5f80fd5b3480156102a4575f80fd5b506102ad610868565b6040516102ba919061217c565b60405180910390f35b3480156102ce575f80fd5b506102e26102dd3660046121db565b6108f8565b60405190151581526020016102ba565b3480156102fd575f80fd5b506102e261030c366004612205565b60126020525f908152604090205460ff1681565b34801561032b575f80fd5b5061033f61033a366004612220565b61090e565b005b34801561034c575f80fd5b506103747f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102ba565b348015610397575f80fd5b506002545b6040519081526020016102ba565b3480156103b5575f80fd5b5061033f6103c4366004612220565b610959565b3480156103d4575f80fd5b506102e26103e3366004612237565b610a36565b3480156103f3575f80fd5b5061037461dead81565b348015610408575f80fd5b50604051601281526020016102ba565b348015610423575f80fd5b506102e26104323660046121db565b610ade565b348015610442575f80fd5b5061033f610b19565b348015610456575f80fd5b506103747f00000000000000000000000023cd2f13134ee916424e8d3610cb5d0e5e7bb69181565b348015610489575f80fd5b50600b546102e29060ff1681565b61033f6104a5366004612220565b610c38565b3480156104b5575f80fd5b5061033f6104c43660046122bd565b610e3b565b3480156104d4575f80fd5b5061039c60105481565b3480156104e9575f80fd5b5061033f6104f8366004612324565b610ed2565b348015610508575f80fd5b50600b546102e29062010000900460ff1681565b348015610527575f80fd5b5061033f610f07565b34801561053b575f80fd5b5061039c61054a366004612205565b610f5c565b34801561055a575f80fd5b5061033f610f76565b34801561056e575f80fd5b5061033f61057d366004612220565b610fab565b34801561058d575f80fd5b5061033f61059c366004612351565b610fda565b3480156105ac575f80fd5b5061033f6105bb366004612220565b61102e565b3480156105cb575f80fd5b506005546001600160a01b0316610374565b3480156105e8575f80fd5b5061033f6105f7366004612388565b6110ab565b348015610607575f80fd5b506102ad6110f1565b34801561061b575f80fd5b5061039c600e5481565b348015610630575f80fd5b5061033f61063f366004612351565b611100565b34801561064f575f80fd5b506102e261065e3660046121db565b6111db565b34801561066e575f80fd5b5061033f61067d366004612351565b611273565b34801561068d575f80fd5b506102e261069c3660046121db565b6112da565b3480156106ac575f80fd5b5061033f6106bb366004612205565b6112e6565b3480156106cb575f80fd5b506102e26106da366004612205565b60136020525f908152604090205460ff1681565b3480156106f9575f80fd5b50600b546102e290610100900460ff1681565b348015610717575f80fd5b5061033f610726366004612351565b61136c565b348015610736575f80fd5b5061033f610745366004612220565b6113f4565b348015610755575f80fd5b5061039c60075481565b34801561076a575f80fd5b5061039c600a5481565b34801561077f575f80fd5b5061033f61078e366004612220565b6114c5565b34801561079e575f80fd5b5061039c600f5481565b3480156107b3575f80fd5b5061033f611507565b3480156107c7575f80fd5b5061039c6107d63660046123a3565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561080b575f80fd5b5061039c60085481565b348015610820575f80fd5b5061033f61082f366004612220565b61153d565b34801561083f575f80fd5b5061033f61084e366004612205565b61156c565b34801561085e575f80fd5b5061039c60095481565b606060038054610877906123cf565b80601f01602080910402602001604051908101604052809291908181526020018280546108a3906123cf565b80156108ee5780601f106108c5576101008083540402835291602001916108ee565b820191905f5260205f20905b8154815290600101906020018083116108d157829003601f168201915b5050505050905090565b5f610904338484611604565b5060015b92915050565b6005546001600160a01b031633146109415760405162461bcd60e51b815260040161093890612407565b60405180910390fd5b61095381670de0b6b3a7640000612450565b600a5550565b6005546001600160a01b031633146109835760405162461bcd60e51b815260040161093890612407565b670de0b6b3a76400006103e861099860025490565b6109a3906001612450565b6109ad9190612467565b6109b79190612467565b811015610a1e5760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060448201526e6c6f776572207468616e20302e312560881b6064820152608401610938565b610a3081670de0b6b3a7640000612450565b60075550565b5f610a42848484611727565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ac65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610938565b610ad38533858403611604565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610904918590610b14908690612486565b611604565b6005546001600160a01b03163314610b435760405162461bcd60e51b815260040161093890612407565b6040516370a0823160e01b815230600482018190525f916370a0823190602401602060405180830381865afa158015610b7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba29190612499565b60405163a9059cbb60e01b815233600482015260248101829052909150309063a9059cbb906044016020604051808303815f875af1158015610be6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0a91906124b0565b5060405133904780156108fc02915f818181858888f19350505050158015610c34573d5f803e3d5ffd5b5050565b6005546001600160a01b03163314610c625760405162461bcd60e51b815260040161093890612407565b610c90307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d610b1460025490565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7194730610cca30610f5c565b5f80610cde6005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610d44573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d6991906124cb565b505060405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d811660048301525f1960248301527f00000000000000000000000023cd2f13134ee916424e8d3610cb5d0e5e7bb69116915063095ea7b3906044016020604051808303815f875af1158015610df8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1c91906124b0565b50600e55600b805462ffff0019166201010017905543600c5542600d55565b8215801590610e4957508083145b610e51575f80fd5b335f5b84811015610eca57610eb882878784818110610e7257610e726124f6565b9050602002016020810190610e879190612205565b868685818110610e9957610e996124f6565b90506020020135670de0b6b3a7640000610eb39190612450565b611727565b80610ec28161250a565b915050610e54565b505050505050565b6005546001600160a01b03163314610efc5760405162461bcd60e51b815260040161093890612407565b600f91909155601055565b6006546040515f916001600160a01b03169047908381818185875af1925050503d805f8114610f51576040519150601f19603f3d011682016040523d82523d5f602084013e610f56565b606091505b50505050565b6001600160a01b03165f9081526020819052604090205490565b6005546001600160a01b03163314610fa05760405162461bcd60e51b815260040161093890612407565b610fa95f611d3e565b565b6005546001600160a01b03163314610fd55760405162461bcd60e51b815260040161093890612407565b600f55565b6005546001600160a01b031633146110045760405162461bcd60e51b815260040161093890612407565b6001600160a01b03919091165f908152601260205260409020805460ff1916911515919091179055565b6006546001600160a01b0316336001600160a01b03161461104d575f80fd5b61105630610f5c565b811115801561106457505f81115b61109f5760405162461bcd60e51b815260206004820152600c60248201526b15dc9bdb99c8185b5bdd5b9d60a21b6044820152606401610938565b6110a881611d8f565b50565b6005546001600160a01b031633146110d55760405162461bcd60e51b815260040161093890612407565b600b8054911515620100000262ff000019909216919091179055565b606060048054610877906123cf565b6005546001600160a01b0316331461112a5760405162461bcd60e51b815260040161093890612407565b7f00000000000000000000000023cd2f13134ee916424e8d3610cb5d0e5e7bb6916001600160a01b0316826001600160a01b0316036111d15760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610938565b610c348282611f3d565b335f9081526001602090815260408083206001600160a01b03861684529091528120548281101561125c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610938565b6112693385858403611604565b5060019392505050565b6005546001600160a01b0316331461129d5760405162461bcd60e51b815260040161093890612407565b6001600160a01b039091165f908152601260209081526040808320805494151560ff19958616811790915560119092529091208054909216179055565b5f610904338484611727565b6005546001600160a01b031633146113105760405162461bcd60e51b815260040161093890612407565b6006546040516001600160a01b03918216918316907fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b05674905f90a3600680546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113965760405162461bcd60e51b815260040161093890612407565b6001600160a01b0382165f81815260116020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b0316331461141e5760405162461bcd60e51b815260040161093890612407565b670de0b6b3a76400006103e861143360025490565b61143e906005612450565b6114489190612467565b6114529190612467565b8110156114ad5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610938565b6114bf81670de0b6b3a7640000612450565b60095550565b6005546001600160a01b031633146114ef5760405162461bcd60e51b815260040161093890612407565b61150181670de0b6b3a7640000612450565b60085550565b6005546001600160a01b031633146115315760405162461bcd60e51b815260040161093890612407565b600b805460ff19169055565b6005546001600160a01b031633146115675760405162461bcd60e51b815260040161093890612407565b601055565b6005546001600160a01b031633146115965760405162461bcd60e51b815260040161093890612407565b6001600160a01b0381166115fb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610938565b6110a881611d3e565b6001600160a01b0383166116665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610938565b6001600160a01b0382166116c75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610938565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661174d5760405162461bcd60e51b815260040161093890612522565b6001600160a01b0382166117735760405162461bcd60e51b815260040161093890612567565b805f0361178a5761178583835f611f90565b505050565b600b5460ff1615611afa576005546001600160a01b038481169116148015906117c157506005546001600160a01b03838116911614155b80156117d557506001600160a01b03821615155b80156117ec57506001600160a01b03821661dead14155b80156118025750600554600160a01b900460ff16155b15611afa5743600e54600c546118189190612486565b1061182857600a6010819055600f555b600b54610100900460ff166118b9576001600160a01b0383165f9081526011602052604090205460ff168061187457506001600160a01b0382165f9081526011602052604090205460ff165b6118b95760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610938565b6001600160a01b0383165f9081526013602052604090205460ff1680156118f857506001600160a01b0382165f9081526012602052604090205460ff16155b156119cc5760075481111561196d5760405162461bcd60e51b815260206004820152603560248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201527436b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760591b6064820152608401610938565b60095461197983610f5c565b6119839083612486565b11156119c75760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610938565b611afa565b6001600160a01b0382165f9081526013602052604090205460ff168015611a0b57506001600160a01b0383165f9081526012602052604090205460ff16155b15611a81576007548111156119c75760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610938565b6001600160a01b0382165f9081526012602052604090205460ff16611afa57600954611aac83610f5c565b611ab69083612486565b1115611afa5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610938565b5f611b0430610f5c565b60085490915081108015908190611b235750600b5462010000900460ff165b8015611b395750600554600160a01b900460ff16155b8015611b5d57506001600160a01b0385165f9081526013602052604090205460ff16155b8015611b8157506001600160a01b0385165f9081526011602052604090205460ff16155b8015611ba557506001600160a01b0384165f9081526011602052604090205460ff16155b15611c1357435f9081526014602052604090205460031115611c13576005805460ff60a01b1916600160a01b179055611bdc6120e3565b6005805460ff60a01b19169055435f90815260146020526040902054611c03906001612486565b435f908152601460205260409020555b6005546001600160a01b0386165f9081526011602052604090205460ff600160a01b909204821615911680611c5f57506001600160a01b0385165f9081526011602052604090205460ff165b15611c6757505f5b5f8115611d2a576001600160a01b0386165f9081526013602052604090205460ff168015611c9657505f601054115b15611cc257611cbb6064611cb56010548861215f90919063ffffffff16565b90612171565b9050611d0c565b6001600160a01b0387165f9081526013602052604090205460ff168015611cea57505f600f54115b15611d0c57611d096064611cb5600f548861215f90919063ffffffff16565b90505b8015611d1d57611d1d873083611f90565b611d2781866125aa565b94505b611d35878787611f90565b50505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611dc257611dc26124f6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e6291906125bd565b81600181518110611e7557611e756124f6565b60200260200101906001600160a01b031690816001600160a01b031681525050611ec0307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611604565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611f149085905f908690309042906004016125d8565b5f604051808303815f87803b158015611f2b575f80fd5b505af1158015610eca573d5f803e3d5ffd5b6001600160a01b0382165f81815260136020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b038316611fb65760405162461bcd60e51b815260040161093890612522565b6001600160a01b038216611fdc5760405162461bcd60e51b815260040161093890612567565b6001600160a01b0383165f90815260208190526040902054818110156120535760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610938565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290612089908490612486565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120d591815260200190565b60405180910390a350505050565b5f6120ed30610f5c565b90505f815f036120fb575050565b600a5482111561210b57600a5491505b8161211581611d8f565b60065460405147916001600160a01b03169082905f81818185875af1925050503d805f8114611d35576040519150601f19603f3d011682016040523d82523d5f602084013e611d35565b5f61216a8284612450565b9392505050565b5f61216a8284612467565b5f6020808352835180828501525f5b818110156121a75785810183015185820160400152820161218b565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110a8575f80fd5b5f80604083850312156121ec575f80fd5b82356121f7816121c7565b946020939093013593505050565b5f60208284031215612215575f80fd5b813561216a816121c7565b5f60208284031215612230575f80fd5b5035919050565b5f805f60608486031215612249575f80fd5b8335612254816121c7565b92506020840135612264816121c7565b929592945050506040919091013590565b5f8083601f840112612285575f80fd5b50813567ffffffffffffffff81111561229c575f80fd5b6020830191508360208260051b85010111156122b6575f80fd5b9250929050565b5f805f80604085870312156122d0575f80fd5b843567ffffffffffffffff808211156122e7575f80fd5b6122f388838901612275565b9096509450602087013591508082111561230b575f80fd5b5061231887828801612275565b95989497509550505050565b5f8060408385031215612335575f80fd5b50508035926020909101359150565b80151581146110a8575f80fd5b5f8060408385031215612362575f80fd5b823561236d816121c7565b9150602083013561237d81612344565b809150509250929050565b5f60208284031215612398575f80fd5b813561216a81612344565b5f80604083850312156123b4575f80fd5b82356123bf816121c7565b9150602083013561237d816121c7565b600181811c908216806123e357607f821691505b60208210810361240157634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109085761090861243c565b5f8261248157634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156109085761090861243c565b5f602082840312156124a9575f80fd5b5051919050565b5f602082840312156124c0575f80fd5b815161216a81612344565b5f805f606084860312156124dd575f80fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161251b5761251b61243c565b5060010190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156109085761090861243c565b5f602082840312156125cd575f80fd5b815161216a816121c7565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156126265784516001600160a01b031683529383019391830191600101612601565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212209f8d32ffc445c6531ea0254a85e976c725e6bcfdf45b669924e31ce72a5adf6464736f6c63430008150033
Deployed Bytecode Sourcemap
11721:11268:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7229:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8143:169;;;;;;;;;;-1:-1:-1;8143:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8143:169:0;1023:187:1;12537:63:0;;;;;;;;;;-1:-1:-1;12537:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15175:118;;;;;;;;;;-1:-1:-1;15175:118:0;;;;;:::i;:::-;;:::i;:::-;;11802:51;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1842:32:1;;;1824:51;;1812:2;1797:18;11802:51:0;1652:229:1;7550:108:0;;;;;;;;;;-1:-1:-1;7638:12:0;;7550:108;;;2032:25:1;;;2020:2;2005:18;7550:108:0;1886:177:1;15301:240:0;;;;;;;;;;-1:-1:-1;15301:240:0;;;;;:::i;:::-;;:::i;8320:458::-;;;;;;;;;;-1:-1:-1;8320:458:0;;;;;:::i;:::-;;:::i;11905:53::-;;;;;;;;;;;;11951:6;11905:53;;7449:93;;;;;;;;;;-1:-1:-1;7449:93:0;;7532:2;2879:36:1;;2867:2;2852:18;7449:93:0;2737:184:1;8786:215:0;;;;;;;;;;-1:-1:-1;8786:215:0;;;;;:::i;:::-;;:::i;22148:246::-;;;;;;;;;;;;;:::i;11860:38::-;;;;;;;;;;;;;;;12187:33;;;;;;;;;;-1:-1:-1;12187:33:0;;;;;;;;14400:534;;;;;;:::i;:::-;;:::i;17959:346::-;;;;;;;;;;-1:-1:-1;17959:346:0;;;;;:::i;:::-;;:::i;12441:28::-;;;;;;;;;;;;;;;;17597:138;;;;;;;;;;-1:-1:-1;17597:138:0;;;;;:::i;:::-;;:::i;12267:31::-;;;;;;;;;;-1:-1:-1;12267:31:0;;;;;;;;;;;16750:149;;;;;;;;;;;;;:::i;7666:127::-;;;;;;;;;;-1:-1:-1;7666:127:0;;;;;:::i;:::-;;:::i;6275:103::-;;;;;;;;;;;;;:::i;17355:112::-;;;;;;;;;;-1:-1:-1;17355:112:0;;;;;:::i;:::-;;:::i;15981:144::-;;;;;;;;;;-1:-1:-1;15981:144:0;;;;;:::i;:::-;;:::i;16519:223::-;;;;;;;;;;-1:-1:-1;16519:223:0;;;;;:::i;:::-;;:::i;6052:87::-;;;;;;;;;;-1:-1:-1;6125:6:0;;-1:-1:-1;;;;;6125:6:0;6052:87;;16221:100;;;;;;;;;;-1:-1:-1;16221:100:0;;;;;:::i;:::-;;:::i;7337:104::-;;;;;;;;;;;;;:::i;12375:21::-;;;;;;;;;;;;;;;;16907:244;;;;;;;;;;-1:-1:-1;16907:244:0;;;;;:::i;:::-;;:::i;9009:413::-;;;;;;;;;;-1:-1:-1;9009:413:0;;;;;:::i;:::-;;:::i;15778:195::-;;;;;;;;;;-1:-1:-1;15778:195:0;;;;;:::i;:::-;;:::i;7801:175::-;;;;;;;;;;-1:-1:-1;7801:175:0;;;;;:::i;:::-;;:::i;17743:208::-;;;;;;;;;;-1:-1:-1;17743:208:0;;;;;:::i;:::-;;:::i;12609:57::-;;;;;;;;;;-1:-1:-1;12609:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12227:33;;;;;;;;;;-1:-1:-1;12227:33:0;;;;;;;;;;;16329:182;;;;;;;;;;-1:-1:-1;16329:182:0;;;;;:::i;:::-;;:::i;15549:221::-;;;;;;;;;;-1:-1:-1;15549:221:0;;;;;:::i;:::-;;:::i;12037:35::-;;;;;;;;;;;;;;;;12150:28;;;;;;;;;;;;;;;;15033:134;;;;;;;;;;-1:-1:-1;15033:134:0;;;;;:::i;:::-;;:::i;12405:27::-;;;;;;;;;;;;;;;;14942:83;;;;;;;;;;;;;:::i;7984:151::-;;;;;;;;;;-1:-1:-1;7984:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;8100:18:0;;;8073:7;8100:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7984:151;12079:33;;;;;;;;;;;;;;;;17475:114;;;;;;;;;;-1:-1:-1;17475:114:0;;;;;:::i;:::-;;:::i;6386:201::-;;;;;;;;;;-1:-1:-1;6386:201:0;;;;;:::i;:::-;;:::i;12119:24::-;;;;;;;;;;;;;;;;7229:100;7283:13;7316:5;7309:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7229:100;:::o;8143:169::-;8226:4;8243:39;5648:10;8266:7;8275:6;8243:8;:39::i;:::-;-1:-1:-1;8300:4:0;8143:169;;;;;:::o;15175:118::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;;;;;;;;;15263:22:::1;:9:::0;15276:8:::1;15263:22;:::i;:::-;15247:13;:38:::0;-1:-1:-1;15175:118:0:o;15301:240::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;15424:4:::1;15416;15395:13;7638:12:::0;;;7550:108;15395:13:::1;:17;::::0;15411:1:::1;15395:17;:::i;:::-;15394:26;;;;:::i;:::-;15393:35;;;;:::i;:::-;15383:6;:45;;15375:105;;;::::0;-1:-1:-1;;;15375:105:0;;6953:2:1;15375:105:0::1;::::0;::::1;6935:21:1::0;6992:2;6972:18;;;6965:30;7031:34;7011:18;;;7004:62;-1:-1:-1;;;7082:18:1;;;7075:45;7137:19;;15375:105:0::1;6751:411:1::0;15375:105:0::1;15514:19;:6:::0;15524:8:::1;15514:19;:::i;:::-;15491:20;:42:::0;-1:-1:-1;15301:240:0:o;8320:458::-;8426:4;8443:36;8453:6;8461:9;8472:6;8443:9;:36::i;:::-;-1:-1:-1;;;;;8519:19:0;;8492:24;8519:19;;;:11;:19;;;;;;;;5648:10;8519:33;;;;;;;;8571:26;;;;8563:79;;;;-1:-1:-1;;;8563:79:0;;7369:2:1;8563:79:0;;;7351:21:1;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;-1:-1:-1;;;7498:18:1;;;7491:38;7546:19;;8563:79:0;7167:404:1;8563:79:0;8678:57;8687:6;5648:10;8728:6;8709:16;:25;8678:8;:57::i;:::-;-1:-1:-1;8766:4:0;;8320:458;-1:-1:-1;;;;8320:458:0:o;8786:215::-;5648:10;8874:4;8923:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8923:34:0;;;;;;;;;;8874:4;;8891:80;;8914:7;;8923:47;;8960:10;;8923:47;:::i;:::-;8891:8;:80::i;22148:246::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;22216:46:::1;::::0;-1:-1:-1;;;22216:46:0;;22231:4:::1;22216:46;::::0;::::1;1824:51:1::0;;;22198:15:0::1;::::0;22216:31:::1;::::0;1797:18:1;;22216:46:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22273:51;::::0;-1:-1:-1;;;22273:51:0;;22304:10:::1;22273:51;::::0;::::1;8069::1::0;8136:18;;;8129:34;;;22198:64:0;;-1:-1:-1;22288:4:0::1;::::0;22273:30:::1;::::0;8042:18:1;;22273:51:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;22335:51:0::1;::::0;22343:10:::1;::::0;22364:21:::1;22335:51:::0;::::1;;;::::0;::::1;::::0;;;22364:21;22343:10;22335:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;22187:207;22148:246::o:0;14400:534::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;14474:64:::1;14491:4;14506:15;14524:13;7638:12:::0;;;7550:108;14474:64:::1;14549:15;-1:-1:-1::0;;;;;14549:31:0::1;;14588:21;14619:4;14625:24;14643:4;14625:9;:24::i;:::-;14650:1;14652::::0;14654:7:::1;6125:6:::0;;-1:-1:-1;;;;;6125:6:0;;6052:87;14654:7:::1;14549:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;14549:129:0;;;-1:-1:-1;;;;;8783:15:1;;;14549:129:0::1;::::0;::::1;8765:34:1::0;8815:18;;;8808:34;;;;8858:18;;;8851:34;;;;8901:18;;;8894:34;8965:15;;;8944:19;;;8937:44;14662:15:0::1;8997:19:1::0;;;8990:35;8699:19;;14549:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14689:71:0::1;::::0;-1:-1:-1;;;14689:71:0;;-1:-1:-1;;;;;14727:15:0::1;8087:32:1::0;;14689:71:0::1;::::0;::::1;8069:51:1::0;-1:-1:-1;;8136:18:1;;;8129:34;14696:13:0::1;14689:29;::::0;-1:-1:-1;14689:29:0::1;::::0;8042:18:1;;14689:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14773:6:0::1;:16:::0;14800:13:::1;:20:::0;;-1:-1:-1;;14831:18:0;;;;;14873:12:::1;14860:10;:25:::0;14911:15:::1;14896:12;:30:::0;14400:534::o;17959:346::-;18062:20;;;;;:58;;-1:-1:-1;18086:34:0;;;18062:58;18054:67;;;;;;18147:10;18132:12;18170:128;18190:20;;;18170:128;;;18232:54;18242:4;18248:9;;18258:1;18248:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;18262:7;;18270:1;18262:10;;;;;;;:::i;:::-;;;;;;;18276:8;18262:23;;;;:::i;:::-;18232:9;:54::i;:::-;18212:3;;;;:::i;:::-;;;;18170:128;;;;18043:262;17959:346;;;;:::o;17597:138::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;17676:12:::1;:19:::0;;;;17706:13:::1;:21:::0;17597:138::o;16750:149::-;16836:15;;16828:63;;16792:12;;-1:-1:-1;;;;;16836:15:0;;16865:21;;16792:12;16828:63;16792:12;16828:63;16865:21;16836:15;16828:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;16750:149:0:o;7666:127::-;-1:-1:-1;;;;;7767:18:0;7740:7;7767:18;;;;;;;;;;;;7666:127::o;6275:103::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;6340:30:::1;6367:1;6340:18;:30::i;:::-;6275:103::o:0;17355:112::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;17431:12:::1;:28:::0;17355:112::o;15981:144::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16071:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;16071:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15981:144::o;16519:223::-;16599:15;;-1:-1:-1;;;;;16599:15:0;5648:10;-1:-1:-1;;;;;16583:31:0;;16575:40;;;;;;16644:24;16662:4;16644:9;:24::i;:::-;16634:6;:34;;:48;;;;;16681:1;16672:6;:10;16634:48;16626:73;;;;-1:-1:-1;;;16626:73:0;;10031:2:1;16626:73:0;;;10013:21:1;10070:2;10050:18;;;10043:30;-1:-1:-1;;;10089:18:1;;;10082:42;10141:18;;16626:73:0;9829:336:1;16626:73:0;16710:24;16727:6;16710:16;:24::i;:::-;16519:223;:::o;16221:100::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;16292:11:::1;:21:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;16292:21:0;;::::1;::::0;;;::::1;::::0;;16221:100::o;7337:104::-;7393:13;7426:7;7419:14;;;;;:::i;16907:244::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;17014:13:::1;-1:-1:-1::0;;;;;17006:21:0::1;:4;-1:-1:-1::0;;;;;17006:21:0::1;::::0;16998:91:::1;;;::::0;-1:-1:-1;;;16998:91:0;;10372:2:1;16998:91:0::1;::::0;::::1;10354:21:1::0;10411:2;10391:18;;;10384:30;10450:34;10430:18;;;10423:62;10521:27;10501:18;;;10494:55;10566:19;;16998:91:0::1;10170:421:1::0;16998:91:0::1;17102:41;17131:4;17137:5;17102:28;:41::i;9009:413::-:0;5648:10;9102:4;9146:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9146:34:0;;;;;;;;;;9199:35;;;;9191:85;;;;-1:-1:-1;;;9191:85:0;;10798:2:1;9191:85:0;;;10780:21:1;10837:2;10817:18;;;10810:30;10876:34;10856:18;;;10849:62;-1:-1:-1;;;10927:18:1;;;10920:35;10972:19;;9191:85:0;10596:401:1;9191:85:0;9312:67;5648:10;9335:7;9363:15;9344:16;:34;9312:8;:67::i;:::-;-1:-1:-1;9410:4:0;;9009:413;-1:-1:-1;;;9009:413:0:o;15778:195::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15864:43:0;;::::1;;::::0;;;:31:::1;:43;::::0;;;;;;;:50;;;::::1;;-1:-1:-1::0;;15864:50:0;;::::1;::::0;::::1;::::0;;;15927:19:::1;:31:::0;;;;;;:38;;;;::::1;;::::0;;15778:195::o;7801:175::-;7887:4;7904:42;5648:10;7928:9;7939:6;7904:9;:42::i;17743:208::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;17880:15:::1;::::0;17837:59:::1;::::0;-1:-1:-1;;;;;17880:15:0;;::::1;::::0;17837:59;::::1;::::0;::::1;::::0;17880:15:::1;::::0;17837:59:::1;17907:15;:36:::0;;-1:-1:-1;;;;;;17907:36:0::1;-1:-1:-1::0;;;;;17907:36:0;;;::::1;::::0;;;::::1;::::0;;17743:208::o;16329:182::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16414:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;16414:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;16469:34;;1163:41:1;;;16469:34:0::1;::::0;1136:18:1;16469:34:0::1;;;;;;;16329:182:::0;;:::o;15549:221::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;15675:4:::1;15667;15646:13;7638:12:::0;;;7550:108;15646:13:::1;:17;::::0;15662:1:::1;15646:17;:::i;:::-;15645:26;;;;:::i;:::-;15644:35;;;;:::i;:::-;15634:6;:45;;15626:94;;;::::0;-1:-1:-1;;;15626:94:0;;11204:2:1;15626:94:0::1;::::0;::::1;11186:21:1::0;11243:2;11223:18;;;11216:30;11282:34;11262:18;;;11255:62;-1:-1:-1;;;11333:18:1;;;11326:34;11377:19;;15626:94:0::1;11002:400:1::0;15626:94:0::1;15743:19;:6:::0;15753:8:::1;15743:19;:::i;:::-;15731:9;:31:::0;-1:-1:-1;15549:221:0:o;15033:134::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;15137:22:::1;:9:::0;15150:8:::1;15137:22;:::i;:::-;15116:18;:43:::0;-1:-1:-1;15033:134:0:o;14942:83::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;14995:14:::1;:22:::0;;-1:-1:-1;;14995:22:0::1;::::0;;14942:83::o;17475:114::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;17552:13:::1;:29:::0;17475:114::o;6386:201::-;6125:6;;-1:-1:-1;;;;;6125:6:0;5648:10;6187:23;6179:68;;;;-1:-1:-1;;;6179:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6475:22:0;::::1;6467:73;;;::::0;-1:-1:-1;;;6467:73:0;;11609:2:1;6467:73:0::1;::::0;::::1;11591:21:1::0;11648:2;11628:18;;;11621:30;11687:34;11667:18;;;11660:62;-1:-1:-1;;;11738:18:1;;;11731:36;11784:19;;6467:73:0::1;11407:402:1::0;6467:73:0::1;6551:28;6570:8;6551:18;:28::i;11143:346::-:0;-1:-1:-1;;;;;11245:19:0;;11237:68;;;;-1:-1:-1;;;11237:68:0;;12016:2:1;11237:68:0;;;11998:21:1;12055:2;12035:18;;;12028:30;12094:34;12074:18;;;12067:62;-1:-1:-1;;;12145:18:1;;;12138:34;12189:19;;11237:68:0;11814:400:1;11237:68:0;-1:-1:-1;;;;;11324:21:0;;11316:68;;;;-1:-1:-1;;;11316:68:0;;12421:2:1;11316:68:0;;;12403:21:1;12460:2;12440:18;;;12433:30;12499:34;12479:18;;;12472:62;-1:-1:-1;;;12550:18:1;;;12543:32;12592:19;;11316:68:0;12219:398:1;11316:68:0;-1:-1:-1;;;;;11397:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11449:32;;2032:25:1;;;11449:32:0;;2005:18:1;11449:32:0;;;;;;;11143:346;;;:::o;18313:3198::-;-1:-1:-1;;;;;18411:18:0;;18403:68;;;;-1:-1:-1;;;18403:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18490:16:0;;18482:64;;;;-1:-1:-1;;;18482:64:0;;;;;;;:::i;:::-;18563:6;18573:1;18563:11;18559:93;;18591:28;18607:4;18613:2;18617:1;18591:15;:28::i;:::-;18313:3198;;;:::o;18559:93::-;18668:14;;;;18664:1322;;;6125:6;;-1:-1:-1;;;;;18703:15:0;;;6125:6;;18703:15;;;;:32;;-1:-1:-1;6125:6:0;;-1:-1:-1;;;;;18722:13:0;;;6125:6;;18722:13;;18703:32;:52;;;;-1:-1:-1;;;;;;18739:16:0;;;;18703:52;:77;;;;-1:-1:-1;;;;;;18759:21:0;;18773:6;18759:21;;18703:77;:90;;;;-1:-1:-1;18785:8:0;;-1:-1:-1;;;18785:8:0;;;;18784:9;18703:90;18699:1276;;;18843:12;18832:6;;18819:10;;:19;;;;:::i;:::-;18818:37;18814:195;;18947:2;18931:13;:18;;;18972:12;:17;18814:195;19034:13;;;;;;;19029:150;;-1:-1:-1;;;;;19080:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;19109:23:0;;;;;;:19;:23;;;;;;;;19080:52;19072:87;;;;-1:-1:-1;;;19072:87:0;;13634:2:1;19072:87:0;;;13616:21:1;13673:2;13653:18;;;13646:30;-1:-1:-1;;;13692:18:1;;;13685:52;13754:18;;19072:87:0;13432:346:1;19072:87:0;-1:-1:-1;;;;;19231:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;19267:35:0;;;;;;:31;:35;;;;;;;;19266:36;19231:71;19227:733;;;19345:20;;19335:6;:30;;19327:96;;;;-1:-1:-1;;;19327:96:0;;13985:2:1;19327:96:0;;;13967:21:1;14024:2;14004:18;;;13997:30;14063:34;14043:18;;;14036:62;-1:-1:-1;;;14114:18:1;;;14107:51;14175:19;;19327:96:0;13783:417:1;19327:96:0;19480:9;;19463:13;19473:2;19463:9;:13::i;:::-;19454:22;;:6;:22;:::i;:::-;:35;;19446:67;;;;-1:-1:-1;;;19446:67:0;;14407:2:1;19446:67:0;;;14389:21:1;14446:2;14426:18;;;14419:30;-1:-1:-1;;;14465:18:1;;;14458:49;14524:18;;19446:67:0;14205:343:1;19446:67:0;19227:733;;;-1:-1:-1;;;;;19589:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;19623:37:0;;;;;;:31;:37;;;;;;;;19622:38;19589:71;19585:375;;;19703:20;;19693:6;:30;;19685:97;;;;-1:-1:-1;;;19685:97:0;;14755:2:1;19685:97:0;;;14737:21:1;14794:2;14774:18;;;14767:30;14833:34;14813:18;;;14806:62;-1:-1:-1;;;14884:18:1;;;14877:52;14946:19;;19685:97:0;14553:418:1;19585:375:0;-1:-1:-1;;;;;19813:35:0;;;;;;:31;:35;;;;;;;;19808:152;;19907:9;;19890:13;19900:2;19890:9;:13::i;:::-;19881:22;;:6;:22;:::i;:::-;:35;;19873:67;;;;-1:-1:-1;;;19873:67:0;;14407:2:1;19873:67:0;;;14389:21:1;14446:2;14426:18;;;14419:30;-1:-1:-1;;;14465:18:1;;;14458:49;14524:18;;19873:67:0;14205:343:1;19873:67:0;19998:28;20029:24;20047:4;20029:9;:24::i;:::-;20105:18;;19998:55;;-1:-1:-1;20081:42:0;;;;;;;20154:22;;-1:-1:-1;20165:11:0;;;;;;;20154:22;:35;;;;-1:-1:-1;20181:8:0;;-1:-1:-1;;;20181:8:0;;;;20180:9;20154:35;:71;;;;-1:-1:-1;;;;;;20194:31:0;;;;;;:25;:31;;;;;;;;20193:32;20154:71;:101;;;;-1:-1:-1;;;;;;20230:25:0;;;;;;:19;:25;;;;;;;;20229:26;20154:101;:146;;;;-1:-1:-1;;;;;;20277:23:0;;;;;;:19;:23;;;;;;;;20276:24;20154:146;20136:468;;;20380:12;20369:24;;;;:10;:24;;;;;;20396:1;-1:-1:-1;20365:228:0;;;20418:8;:15;;-1:-1:-1;;;;20418:15:0;-1:-1:-1;;;20418:15:0;;;20454:10;:8;:10::i;:::-;20485:8;:16;;-1:-1:-1;;;;20485:16:0;;;20560:12;20496:5;20549:24;;;20485:8;20549:24;;;;;;:28;;20485:16;20549:28;:::i;:::-;20533:12;20522:24;;;;:10;:24;;;;;:55;20365:228;20632:8;;-1:-1:-1;;;;;20742:25:0;;20616:12;20742:25;;;:19;:25;;;;;;20632:8;-1:-1:-1;;;20632:8:0;;;;;20631:9;;20742:25;;:52;;-1:-1:-1;;;;;;20771:23:0;;;;;;:19;:23;;;;;;;;20742:52;20738:100;;;-1:-1:-1;20821:5:0;20738:100;20850:12;20955:7;20951:507;;;-1:-1:-1;;;;;21007:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;21056:1;21040:13;;:17;21007:50;21003:306;;;21085:34;21115:3;21085:25;21096:13;;21085:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;21078:41;;21003:306;;;-1:-1:-1;;;;;21181:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;21231:1;21216:12;;:16;21181:51;21177:132;;;21260:33;21289:3;21260:24;21271:12;;21260:6;:10;;:24;;;;:::i;:33::-;21253:40;;21177:132;21329:8;;21325:91;;21358:42;21374:4;21388;21395;21358:15;:42::i;:::-;21432:14;21442:4;21432:14;;:::i;:::-;;;20951:507;21470:33;21486:4;21492:2;21496:6;21470:15;:33::i;:::-;18392:3119;;;;18313:3198;;;:::o;6595:191::-;6688:6;;;-1:-1:-1;;;;;6705:17:0;;;-1:-1:-1;;;;;;6705:17:0;;;;;;;6738:40;;6688:6;;;6705:17;6688:6;;6738:40;;6669:16;;6738:40;6658:128;6595:191;:::o;21519:589::-;21669:16;;;21683:1;21669:16;;;;;;;;21645:21;;21669:16;;;;;;;;;;-1:-1:-1;21669:16:0;21645:40;;21714:4;21696;21701:1;21696:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;21696:23:0;;;-1:-1:-1;;;;;21696:23:0;;;;;21740:15;-1:-1:-1;;;;;21740:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21730:4;21735:1;21730:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;21730:32:0;;;-1:-1:-1;;;;;21730:32:0;;;;;21775:62;21792:4;21807:15;21825:11;21775:8;:62::i;:::-;21876:224;;-1:-1:-1;;;21876:224:0;;-1:-1:-1;;;;;21876:15:0;:66;;;;:224;;21957:11;;21983:1;;22027:4;;22054;;22074:15;;21876:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17159:188;-1:-1:-1;;;;;17242:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;17242:39:0;;;;;;;;;;17299:40;;17242:39;;:31;17299:40;;;17159:188;;:::o;9430:699::-;-1:-1:-1;;;;;9536:20:0;;9528:70;;;;-1:-1:-1;;;9528:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9617:23:0;;9609:71;;;;-1:-1:-1;;;9609:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9777:17:0;;9753:21;9777:17;;;;;;;;;;;9813:23;;;;9805:74;;;;-1:-1:-1;;;9805:74:0;;16684:2:1;9805:74:0;;;16666:21:1;16723:2;16703:18;;;16696:30;16762:34;16742:18;;;16735:62;-1:-1:-1;;;16813:18:1;;;16806:36;16859:19;;9805:74:0;16482:402:1;9805:74:0;-1:-1:-1;;;;;9915:17:0;;;:9;:17;;;;;;;;;;;9935:22;;;9915:42;;9979:20;;;;;;;;:30;;9951:6;;9915:9;9979:30;;9951:6;;9979:30;:::i;:::-;;;;;;;;10044:9;-1:-1:-1;;;;;10027:35:0;10036:6;-1:-1:-1;;;;;10027:35:0;;10055:6;10027:35;;;;2032:25:1;;2020:2;2005:18;;1886:177;10027:35:0;;;;;;;;9517:612;9430:699;;;:::o;22402:584::-;22441:23;22467:24;22485:4;22467:9;:24::i;:::-;22441:50;;22502:12;22531:15;22550:1;22531:20;22527:59;;22568:7;;22402:584::o;22527:59::-;22620:13;;22602:15;:31;22598:95;;;22668:13;;22650:31;;22598:95;22785:15;22813:36;22785:15;22813:16;:36::i;:::-;22936:15;;22928:50;;22881:21;;-1:-1:-1;;;;;22936:15:0;;22881:21;;22928:50;;;;22881:21;22936:15;22928:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3576:98;3634:7;3661:5;3665:1;3661;:5;:::i;:::-;3654:12;3576:98;-1:-1:-1;;;3576:98:0:o;3682:::-;3740:7;3767:5;3771:1;3767;:5;:::i;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;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;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1467:180::-;1526:6;1579:2;1567:9;1558:7;1554:23;1550:32;1547:52;;;1595:1;1592;1585:12;1547:52;-1:-1:-1;1618:23:1;;1467:180;-1:-1:-1;1467:180:1:o;2068:456::-;2145:6;2153;2161;2214:2;2202:9;2193:7;2189:23;2185:32;2182:52;;;2230:1;2227;2220:12;2182:52;2269:9;2256:23;2288:31;2313:5;2288:31;:::i;:::-;2338:5;-1:-1:-1;2395:2:1;2380:18;;2367:32;2408:33;2367:32;2408:33;:::i;:::-;2068:456;;2460:7;;-1:-1:-1;;;2514:2:1;2499:18;;;;2486:32;;2068:456::o;2926:367::-;2989:8;2999:6;3053:3;3046:4;3038:6;3034:17;3030:27;3020:55;;3071:1;3068;3061:12;3020:55;-1:-1:-1;3094:20:1;;3137:18;3126:30;;3123:50;;;3169:1;3166;3159:12;3123:50;3206:4;3198:6;3194:17;3182:29;;3266:3;3259:4;3249:6;3246:1;3242:14;3234:6;3230:27;3226:38;3223:47;3220:67;;;3283:1;3280;3273:12;3220:67;2926:367;;;;;:::o;3298:773::-;3420:6;3428;3436;3444;3497:2;3485:9;3476:7;3472:23;3468:32;3465:52;;;3513:1;3510;3503:12;3465:52;3553:9;3540:23;3582:18;3623:2;3615:6;3612:14;3609:34;;;3639:1;3636;3629:12;3609:34;3678:70;3740:7;3731:6;3720:9;3716:22;3678:70;:::i;:::-;3767:8;;-1:-1:-1;3652:96:1;-1:-1:-1;3855:2:1;3840:18;;3827:32;;-1:-1:-1;3871:16:1;;;3868:36;;;3900:1;3897;3890:12;3868:36;;3939:72;4003:7;3992:8;3981:9;3977:24;3939:72;:::i;:::-;3298:773;;;;-1:-1:-1;4030:8:1;-1:-1:-1;;;;3298:773:1:o;4076:248::-;4144:6;4152;4205:2;4193:9;4184:7;4180:23;4176:32;4173:52;;;4221:1;4218;4211:12;4173:52;-1:-1:-1;;4244:23:1;;;4314:2;4299:18;;;4286:32;;-1:-1:-1;4076:248:1:o;4329:118::-;4415:5;4408:13;4401:21;4394:5;4391:32;4381:60;;4437:1;4434;4427:12;4452:382;4517:6;4525;4578:2;4566:9;4557:7;4553:23;4549:32;4546:52;;;4594:1;4591;4584:12;4546:52;4633:9;4620:23;4652:31;4677:5;4652:31;:::i;:::-;4702:5;-1:-1:-1;4759:2:1;4744:18;;4731:32;4772:30;4731:32;4772:30;:::i;:::-;4821:7;4811:17;;;4452:382;;;;;:::o;4839:241::-;4895:6;4948:2;4936:9;4927:7;4923:23;4919:32;4916:52;;;4964:1;4961;4954:12;4916:52;5003:9;4990:23;5022:28;5044:5;5022:28;:::i;5085:388::-;5153:6;5161;5214:2;5202:9;5193:7;5189:23;5185:32;5182:52;;;5230:1;5227;5220:12;5182:52;5269:9;5256:23;5288:31;5313:5;5288:31;:::i;:::-;5338:5;-1:-1:-1;5395:2:1;5380:18;;5367:32;5408:33;5367:32;5408:33;:::i;5478:380::-;5557:1;5553:12;;;;5600;;;5621:61;;5675:4;5667:6;5663:17;5653:27;;5621:61;5728:2;5720:6;5717:14;5697:18;5694:38;5691:161;;5774:10;5769:3;5765:20;5762:1;5755:31;5809:4;5806:1;5799:15;5837:4;5834:1;5827:15;5691:161;;5478:380;;;:::o;5863:356::-;6065:2;6047:21;;;6084:18;;;6077:30;6143:34;6138:2;6123:18;;6116:62;6210:2;6195:18;;5863:356::o;6224:127::-;6285:10;6280:3;6276:20;6273:1;6266:31;6316:4;6313:1;6306:15;6340:4;6337:1;6330:15;6356:168;6429:9;;;6460;;6477:15;;;6471:22;;6457:37;6447:71;;6498:18;;:::i;6529:217::-;6569:1;6595;6585:132;;6639:10;6634:3;6630:20;6627:1;6620:31;6674:4;6671:1;6664:15;6702:4;6699:1;6692:15;6585:132;-1:-1:-1;6731:9:1;;6529:217::o;7576:125::-;7641:9;;;7662:10;;;7659:36;;;7675:18;;:::i;7706:184::-;7776:6;7829:2;7817:9;7808:7;7804:23;7800:32;7797:52;;;7845:1;7842;7835:12;7797:52;-1:-1:-1;7868:16:1;;7706:184;-1:-1:-1;7706:184:1:o;8174:245::-;8241:6;8294:2;8282:9;8273:7;8269:23;8265:32;8262:52;;;8310:1;8307;8300:12;8262:52;8342:9;8336:16;8361:28;8383:5;8361:28;:::i;9036:306::-;9124:6;9132;9140;9193:2;9181:9;9172:7;9168:23;9164:32;9161:52;;;9209:1;9206;9199:12;9161:52;9238:9;9232:16;9222:26;;9288:2;9277:9;9273:18;9267:25;9257:35;;9332:2;9321:9;9317:18;9311:25;9301:35;;9036:306;;;;;:::o;9347:127::-;9408:10;9403:3;9399:20;9396:1;9389:31;9439:4;9436:1;9429:15;9463:4;9460:1;9453:15;9479:135;9518:3;9539:17;;;9536:43;;9559:18;;:::i;:::-;-1:-1:-1;9606:1:1;9595:13;;9479:135::o;12622:401::-;12824:2;12806:21;;;12863:2;12843:18;;;12836:30;12902:34;12897:2;12882:18;;12875:62;-1:-1:-1;;;12968:2:1;12953:18;;12946:35;13013:3;12998:19;;12622:401::o;13028:399::-;13230:2;13212:21;;;13269:2;13249:18;;;13242:30;13308:34;13303:2;13288:18;;13281:62;-1:-1:-1;;;13374:2:1;13359:18;;13352:33;13417:3;13402:19;;13028:399::o;14976:128::-;15043:9;;;15064:11;;;15061:37;;;15078:18;;:::i;15241:251::-;15311:6;15364:2;15352:9;15343:7;15339:23;15335:32;15332:52;;;15380:1;15377;15370:12;15332:52;15412:9;15406:16;15431:31;15456:5;15431:31;:::i;15497:980::-;15759:4;15807:3;15796:9;15792:19;15838:6;15827:9;15820:25;15864:2;15902:6;15897:2;15886:9;15882:18;15875:34;15945:3;15940:2;15929:9;15925:18;15918:31;15969:6;16004;15998:13;16035:6;16027;16020:22;16073:3;16062:9;16058:19;16051:26;;16112:2;16104:6;16100:15;16086:29;;16133:1;16143:195;16157:6;16154:1;16151:13;16143:195;;;16222:13;;-1:-1:-1;;;;;16218:39:1;16206:52;;16313:15;;;;16278:12;;;;16254:1;16172:9;16143:195;;;-1:-1:-1;;;;;;;16394:32:1;;;;16389:2;16374:18;;16367:60;-1:-1:-1;;;16458:3:1;16443:19;16436:35;16355:3;15497:980;-1:-1:-1;;;15497:980:1:o
Swarm Source
ipfs://9f8d32ffc445c6531ea0254a85e976c725e6bcfdf45b669924e31ce72a5adf64
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.